Fixes #17230: Ensure consistent rendering for all dashboard widget colors

This commit is contained in:
Jeremy Stretch 2024-08-27 09:30:15 -04:00
parent 8bea914163
commit 515d041560
2 changed files with 29 additions and 41 deletions

View File

@ -131,22 +131,6 @@ class DashboardWidget:
def name(self): def name(self):
return f'{self.__class__.__module__.split(".")[0]}.{self.__class__.__name__}' return f'{self.__class__.__module__.split(".")[0]}.{self.__class__.__name__}'
@property
def fg_color(self):
"""
Return the appropriate foreground (text) color for the widget's color.
"""
if self.color in (
ButtonColorChoices.CYAN,
ButtonColorChoices.GRAY,
ButtonColorChoices.GREY,
ButtonColorChoices.TEAL,
ButtonColorChoices.WHITE,
ButtonColorChoices.YELLOW,
):
return ButtonColorChoices.BLACK
return ButtonColorChoices.WHITE
@property @property
def form_data(self): def form_data(self):
return { return {

View File

@ -9,14 +9,16 @@
gs-id="{{ widget.id }}" gs-id="{{ widget.id }}"
> >
<div class="card grid-stack-item-content"> <div class="card grid-stack-item-content">
<div class="card-header text-{{ widget.fg_color }} bg-{{ widget.color|default:"secondary" }} px-2 py-1 d-flex flex-row"> {% with bg_color=widget.color|default:"secondary" %}
<div class="card-header text-bg-{{ bg_color }} px-2 py-1 d-flex flex-row">
<a href="#" <a href="#"
hx-get="{% url 'extras:dashboardwidget_config' id=widget.id %}" hx-get="{% url 'extras:dashboardwidget_config' id=widget.id %}"
hx-target="#htmx-modal-content" hx-target="#htmx-modal-content"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#htmx-modal" data-bs-target="#htmx-modal"
class="text-bg-{{ bg_color }}"
> >
<i class="mdi mdi-cog text-{{ widget.fg_color }}"></i> <i class="mdi mdi-cog"></i>
</a> </a>
<div class="card-title flex-fill text-center"> <div class="card-title flex-fill text-center">
{% if widget.title %} {% if widget.title %}
@ -28,12 +30,14 @@
hx-target="#htmx-modal-content" hx-target="#htmx-modal-content"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#htmx-modal" data-bs-target="#htmx-modal"
class="text-bg-{{ bg_color }}"
> >
<i class="mdi mdi-close text-{{ widget.fg_color }}"></i> <i class="mdi mdi-close"></i>
</a> </a>
</div> </div>
<div class="card-body p-2 pt-1 overflow-auto"> <div class="card-body p-2 pt-1 overflow-auto">
{% render_widget widget %} {% render_widget widget %}
</div> </div>
{% endwith %}
</div> </div>
</div> </div>