diff options
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 |
commit | e8b6b433704e1eaae34f5100f3590a7950ddce5e (patch) | |
tree | 485c81043f8aa1c8b08a0e931239aeffe372b169 | |
parent | f349bf72328277ab93a54292784f61b2b392f65c (diff) | |
download | Ishtar-e8b6b433704e1eaae34f5100f3590a7950ddce5e.tar.bz2 Ishtar-e8b6b433704e1eaae34f5100f3590a7950ddce5e.zip |
🐛 QA context record forms: fix parcel field (refs #6353)
-rw-r--r-- | archaeological_context_records/forms.py | 42 | ||||
-rw-r--r-- | archaeological_context_records/templates/ishtar/sheet_contextrecord.html | 2 |
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" %} |