summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-12 16:20:30 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-02-12 16:23:40 +0100
commitcf386287da6c20da6f0df500ac5c228e6a847724 (patch)
tree1107e2620576170d1014381bdd28dcf00afec88c
parent51eaeed4339a98495eb0f2f5189fa8bdef80fe7c (diff)
downloadIshtar-cf386287da6c20da6f0df500ac5c228e6a847724.tar.bz2
Ishtar-cf386287da6c20da6f0df500ac5c228e6a847724.zip
🐛 archaeological files - preventive: display detailled cost with "display_label" (refs #6172)
-rw-r--r--archaeological_files/forms.py2
-rw-r--r--archaeological_files/models.py35
-rw-r--r--archaeological_files/templates/ishtar/sheet_file.html6
3 files changed, 29 insertions, 14 deletions
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py
index b14147dc0..4519fbd90 100644
--- a/archaeological_files/forms.py
+++ b/archaeological_files/forms.py
@@ -1079,7 +1079,7 @@ class PreventiveFileEquipmentServiceBaseFormSet(FileBaseFormset):
) | Q(
equipment_service_cost__parent__generic_equipment_type__txt_idx=self.type_filter
)
- queryset = queryset.filter(q).order_by()
+ queryset = queryset.filter(q).order_by("-equipment_service_cost__parent")
return queryset
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 47e6185ca..b45589509 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -125,12 +125,16 @@ class Job(GeneralType):
)
ADMIN_SECTION = _("Preventive")
- def __str__(self):
+ @property
+ def display_label(self):
lbl = self.label
if not self.permanent_contract:
lbl += " ({})".format(_("fixed-term contract"))
return lbl
+ def __str__(self):
+ return self.display_label + f" - {self.price_agreement}"
+
@property
def has_parents(self):
return bool(self.parents.count())
@@ -143,14 +147,17 @@ class Job(GeneralType):
)
if price_agreement_id:
q = q.filter(price_agreement=price_agreement_id)
- permanent = [(j.pk, str(j)) for j in q.filter(permanent_contract=True).all()]
- fixed_term = [(j.pk, str(j)) for j in q.filter(permanent_contract=False).all()]
- if current_value:
- if current_value.permanent_contract:
- permanent.append((current_value.pk, str(current_value)))
- else:
- fixed_term.append((current_value.pk, str(current_value)))
- return [("", "-" * 9)] + [
+ permanent = [
+ (j.pk, j.display_label) for j in q.filter(permanent_contract=True).all()
+ ]
+ fixed_term = [
+ (j.pk, j.display_label) for j in q.filter(permanent_contract=False).all()
+ ]
+ choices = [("", "-" * 9)]
+ if current_value and \
+ current_value.pk not in [pk for pk, __ in (permanent + fixed_term)]:
+ choices.append((current_value.pk, str(current_value)))
+ choices += [
(
_("Permanent contract"),
permanent,
@@ -160,6 +167,7 @@ class Job(GeneralType):
fixed_term,
),
]
+ return choices
class GenericEquipmentServiceType(GeneralType):
@@ -266,7 +274,7 @@ class EquipmentServiceCost(models.Model):
Used for automatic documentation generation
"""
s = []
- exclude = ["id", "order", "availabel"]
+ exclude = ["id", "order", "available"]
for field in cls._meta.get_fields():
if field.name in exclude:
continue
@@ -275,6 +283,13 @@ class EquipmentServiceCost(models.Model):
s = ", ".join(s)
return s
+ @property
+ def display_label(self):
+ lbl = str(self.equipment_service_type)
+ if self.specificity:
+ lbl += " - " + self.specificity
+ return lbl
+
def __str__(self):
lbl = ""
if self.parent:
diff --git a/archaeological_files/templates/ishtar/sheet_file.html b/archaeological_files/templates/ishtar/sheet_file.html
index a5e9d4013..9a347c978 100644
--- a/archaeological_files/templates/ishtar/sheet_file.html
+++ b/archaeological_files/templates/ishtar/sheet_file.html
@@ -300,7 +300,7 @@
</thead>
{% for job in item.ground_jobs.all %}
<tr>
- <td><em>{{job.job}}</em></td>
+ <td><em>{{job.job.display_label}}</em></td>
<td class="text-right">{{job.man_by_day_planned|default:"-"}}</td>
<td class="text-right">{{job.days_planned|default:"-"}}</td>
<td class="text-right">{{job.cost_planned|default:"-"|floatformat:2}}</td>
@@ -352,7 +352,7 @@
</thead>
{% for job in item.jobs.all %}
<tr>
- <td><em>{{job.job}}</em></td>
+ <td><em>{{job.job.display_label}}</em></td>
<td class="text-right">{{job.man_by_day_planned|default:"-"}}</td>
<td class="text-right">{{job.days_planned|default:"-"}}</td>
<td class="text-right">{{job.cost_planned|default:"-"|floatformat:2}}</td>
@@ -405,7 +405,7 @@
{% for equipment in equipments %}
{% if equipment.cost_planned or equipment.cost_worked %}
<tr>
- <td><em>{{equipment.equipment_service_cost.equipment_service_type.label}}</em></td>
+ <td><em>{{equipment.equipment_service_cost.display_label}}</em></td>
<td class="text-right">{{equipment.quantity_by_day_planned|default:"-"}}</td>
<td class="text-right">{{equipment.days_planned|default:"-"}}</td>
<td>{{equipment.equipment_service_cost.unit_label}}</td>