FEAT: Statuses can have a CSS class defined in the admin panel

This replaces the hardcoding of colours in the asset list.
This commit is contained in:
2020-01-02 19:43:16 +00:00
parent 69facd5dc6
commit dad9797f74
3 changed files with 20 additions and 15 deletions

View File

@@ -0,0 +1,18 @@
# Generated by Django 2.0.13 on 2020-01-02 19:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('assets', '0009_auto_20200102_1933'),
]
operations = [
migrations.AddField(
model_name='assetstatus',
name='display_class',
field=models.TextField(default='', help_text='HTML class to be appended to alter display of assets with this status, such as in the list.'),
),
]

View File

@@ -33,6 +33,7 @@ class AssetStatus(models.Model):
name = models.CharField(max_length=80)
should_show = models.BooleanField(
default=True, help_text="Should this be shown by default in the asset list.")
display_class = models.CharField(max_length=80, help_text="HTML class to be appended to alter display of assets with this status, such as in the list.")
def __str__(self):
return self.name

View File

@@ -1,20 +1,6 @@
{% for item in object_list %}
{# <li><a href="{% url 'asset_detail' item.pk %}">{{ item.asset_id }} - {{ item.description }}</a></li>#}
<!---TODO: When the ability to filter the list is added, remove the colours from the filter - specifically, stop greying out sold/binned stuff if it is being searched for--> <tr class="
{% if item.status.name == 'Broken' %}
danger
{% elif item.status.name == 'Scrapped'%}
warning
{% elif item.status.name == 'Sold'%}
warning
{% elif item.status.name == 'Lost'%}
danger
{% elif item.status.name == 'Not Built Yet'%}
info
{% elif item.status.name == 'Active'%}
success
{% endif %}
">
<!---TODO: When the ability to filter the list is added, remove the colours from the filter - specifically, stop greying out sold/binned stuff if it is being searched for--> <tr class={{ item.status.display_class|default:"" }}>
<td style="vertical-align: middle;"><a href="{% url 'asset_detail' item.asset_id %}">{{ item.asset_id }}</a></td>
<td style="vertical-align: middle; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; max-width: 25vw">{{ item.description }}</td>
<td style="vertical-align: middle;">{{ item.category }}</td>