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,31 +9,35 @@
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" %}
<a href="#" <div class="card-header text-bg-{{ bg_color }} px-2 py-1 d-flex flex-row">
hx-get="{% url 'extras:dashboardwidget_config' id=widget.id %}" <a href="#"
hx-target="#htmx-modal-content" hx-get="{% url 'extras:dashboardwidget_config' id=widget.id %}"
data-bs-toggle="modal" hx-target="#htmx-modal-content"
data-bs-target="#htmx-modal" data-bs-toggle="modal"
> data-bs-target="#htmx-modal"
<i class="mdi mdi-cog text-{{ widget.fg_color }}"></i> class="text-bg-{{ bg_color }}"
</a> >
<div class="card-title flex-fill text-center"> <i class="mdi mdi-cog"></i>
{% if widget.title %} </a>
<span class="fs-4 fw-bold">{{ widget.title }}</span> <div class="card-title flex-fill text-center">
{% endif %} {% if widget.title %}
<span class="fs-4 fw-bold">{{ widget.title }}</span>
{% endif %}
</div>
<a href="#"
hx-get="{% url 'extras:dashboardwidget_delete' id=widget.id %}"
hx-target="#htmx-modal-content"
data-bs-toggle="modal"
data-bs-target="#htmx-modal"
class="text-bg-{{ bg_color }}"
>
<i class="mdi mdi-close"></i>
</a>
</div> </div>
<a href="#" <div class="card-body p-2 pt-1 overflow-auto">
hx-get="{% url 'extras:dashboardwidget_delete' id=widget.id %}" {% render_widget widget %}
hx-target="#htmx-modal-content" </div>
data-bs-toggle="modal" {% endwith %}
data-bs-target="#htmx-modal"
>
<i class="mdi mdi-close text-{{ widget.fg_color }}"></i>
</a>
</div>
<div class="card-body p-2 pt-1 overflow-auto">
{% render_widget widget %}
</div>
</div> </div>
</div> </div>