summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2025-06-13 17:11:42 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2025-06-13 17:49:24 +0200
commite8b6b433704e1eaae34f5100f3590a7950ddce5e (patch)
tree485c81043f8aa1c8b08a0e931239aeffe372b169
parentf349bf72328277ab93a54292784f61b2b392f65c (diff)
downloadIshtar-e8b6b433704e1eaae34f5100f3590a7950ddce5e.tar.bz2
Ishtar-e8b6b433704e1eaae34f5100f3590a7950ddce5e.zip
🐛 QA context record forms: fix parcel field (refs #6353)
-rw-r--r--archaeological_context_records/forms.py42
-rw-r--r--archaeological_context_records/templates/ishtar/sheet_contextrecord.html2
2 files changed, 21 insertions, 23 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index 70e632af1..11d4cbbb1 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -677,7 +677,7 @@ class QAOperationCR(IshtarForm):
]
if self.profil.parcel_mandatory:
self.fields["parcel"].choices += [("", "--")] + [
- (str(parcel.pk), "{} - {}".format(parcel.short_label, parcel.town))
+ (str(parcel.pk), "{} - {}".format(parcel.town, parcel.short_label))
for parcel in operation.parcels.all()
]
@@ -848,31 +848,29 @@ class QAContextRecordFormMulti(QAForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.items = kwargs.pop("items")
- disable = False
+ # manage parcel field
if "qa_parcel" not in self.fields or not self.items:
return
op_pk = self.items[0].operation_id
- if len(self.items) > 1:
- for cr in self.items[1:]:
- if op_pk != cr.operation_id:
- disable = self.fields["qa_parcel"].disabled = True
-
- self.fields["qa_parcel"].widget = forms.TextInput(
- attrs={
- "class": 'w-100',
- "placeholder": _(
- "Parcel can be modified only if operations are the same"
- )}
- )
- break
- if not disable:
- choices = [
- (p.pk, str(p)) for p in Parcel.objects.filter(operation_id=op_pk).all()
- ]
- self.fields["qa_parcel"].choices = choices
- if len(choices) == 1:
- self.fields["qa_parcel"].disabled = True
+ if len(self.items) > 1 and any(
+ (1 for cr in self.items[1:] if op_pk != cr.operation_id)):
+ self.fields["qa_parcel"].disabled = True
+
+ self.fields["qa_parcel"].widget = forms.TextInput(
+ attrs={
+ "class": 'w-100',
+ "placeholder": _(
+ "Parcel can be modified only if operations are the same"
+ )}
+ )
+ return
+ choices = [("", "--")]
+ choices += [
+ (p.pk, "{} - {}".format(p.town, p.short_label))
+ for p in Parcel.objects.filter(operation_id=op_pk).all()
+ ]
+ self.fields["qa_parcel"].choices = choices
def clean(self):
cleaned_data = super().clean()
diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html
index f43df6c4e..4bd770fd0 100644
--- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html
+++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html
@@ -125,7 +125,7 @@
<p class="window-refs"
title="{% trans 'Identifier' %}">
<strong>{{ item.cached_label }}</strong></p>
- <p class='window-refs' title="{% trans 'Parcel' %}">{{ item.parcel.short_label }}</p>
+ <p class='window-refs' title="{% trans 'Parcel' %}">{{ item.parcel.town }} | {{ item.parcel.short_label }}</p>
{% if item.label != item.external_id %}
<p class="window-refs">{{ item.label|default:"" }}</p>{% endif %}
{% include "ishtar/blocks/sheet_external_id.html" %}