diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-04-15 16:07:15 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-04-17 14:03:21 +0200 |
commit | a252e18f76ba1e73a892a25798b3260c6ee8a026 (patch) | |
tree | 32c7a82594b6b605237b05cf62cb4612ab79463b | |
parent | dfe7542584a11df5038d1fa62e2d9ac364b92194 (diff) | |
download | Ishtar-a252e18f76ba1e73a892a25798b3260c6ee8a026.tar.bz2 Ishtar-a252e18f76ba1e73a892a25798b3260c6ee8a026.zip |
🐛 finds forms non museum instances: fix mark label (refs #6273) - fix museum ID display (refs #6286)
-rw-r--r-- | archaeological_finds/forms.py | 52 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 2 | ||||
-rw-r--r-- | ishtar_common/forms.py | 4 |
3 files changed, 42 insertions, 16 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 094e6be21..65ca5aa66 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -202,7 +202,34 @@ class RecordFormSelection(CustomForm, forms.Form): widget.source = str(widget.source) + "?operation__pk={}".format(cr.operation.pk) -class BasicFindForm(CustomForm, ManageOldType): +class MuseumForm: + MARK_FIELD = "mark" + + def update_museum_fields(self): + """ + Overload fields labels for museum + """ + if not getattr(self, "site_profile"): + self.site_profile = get_current_profile() + + # changes for museum profile + if not self.site_profile.museum: + return + # reorder museum id (second position after museum_id_prefix) + if "museum_id" in self.fields: + fields = {} + if "museum_id_prefix" in self.fields: + fields["museum_id_prefix"] = self.fields.pop("museum_id_prefix") + fields["museum_id"] = self.fields.pop("museum_id") + fields.update(self.fields) + self.fields = fields + # update label of mark field + if self.MARK_FIELD not in self.fields: + return + self.fields[self.MARK_FIELD].label = _("Marking details") + + +class BasicFindForm(MuseumForm, CustomForm, ManageOldType): """ Basic find form with no field related to base_find """ @@ -243,17 +270,17 @@ class BasicFindForm(CustomForm, ManageOldType): "museum_donor": BiographicalNote, "museum_former_collection": BiographicalNote, "get_first_base_find__discovery_method": models.DiscoveryMethod, - #'collection': Warehouse, + # 'collection': Warehouse, } field_order = [ "museum_id_prefix", - "museum_id", "museum_id_suffix", "label", "denomination", - "museum_id_comment", "previous_id", "laboratory_id", + "museum_id", + "museum_id_comment", "seal_number", "museum_inventory_marking_presence", "museum_marking_type", @@ -324,7 +351,6 @@ class BasicFindForm(CustomForm, ManageOldType): PROFILE_FILTER = { "museum": [ "museum_id_prefix", - "museum_id", "museum_id_suffix", "museum_id_comment", "museum_owner_institution", @@ -350,7 +376,7 @@ class BasicFindForm(CustomForm, ManageOldType): "museum_purchase_price", "museum_inventory_quantity", "museum_observed_quantity", - ], + ], } HEADERS = {} HEADERS["museum_id_prefix"] = FormHeader(_("Museum identification")) @@ -372,7 +398,7 @@ class BasicFindForm(CustomForm, ManageOldType): museum_marking_type = widgets.Select2MultipleField( label=_("Type of marking"), required=False ) - mark = forms.CharField(label=_("Marking details"), required=False) + mark = forms.CharField(label=_("Mark"), required=False) # collection = forms.IntegerField( # label=_("Collection (warehouse)"), # widget=widgets.JQueryAutoComplete( @@ -581,6 +607,7 @@ class BasicFindForm(CustomForm, ManageOldType): super().__init__(*args, **kwargs) if not context_record or not context_record.operation.operation_type.judiciary: self._remove_fields(("seal_number",)) + self.update_museum_fields() def get_headers(self): if self._headers: @@ -622,7 +649,6 @@ class FindForm(BasicFindForm): ) field_order = [ "museum_id_prefix", - "museum_id", "museum_id_suffix", "museum_id_comment", "label", @@ -630,6 +656,7 @@ class FindForm(BasicFindForm): "previous_id", "get_first_base_find__excavation_id", "laboratory_id", + "museum_id", "seal_number", "museum_inventory_marking_presence", "museum_marking_type", @@ -887,7 +914,7 @@ class ResultingFindsForm(CustomForm, ManageOldType): return self.cleaned_data -class QAFindFormMulti(QAForm): +class QAFindFormMulti(MuseumForm, QAForm): form_admin_name = _("Find - Quick action - Modify") form_slug = "find-quickaction-modify" base_models = [ @@ -1023,7 +1050,7 @@ class QAFindFormMulti(QAForm): qa_museum_id_suffix = forms.CharField(label=_("Museum ID suffix"), required=False) qa_laboratory_id = forms.CharField(label=_("Laboratory ID"), required=False) qa_seal_number = forms.CharField(label=_("Seal number"), required=False) - qa_mark = forms.CharField(label=_("Marking details"), required=False) + qa_mark = forms.CharField(label=_("Mark"), required=False) # qa_collection = forms.IntegerField( # label=_("Collection"), # widget=widgets.JQueryAutoComplete( @@ -1574,7 +1601,7 @@ DatingFormSet.form_admin_name = _("Find - 040 - Dating") DatingFormSet.form_slug = "find-040-dating" -class FindSelect(GeoItemSelect, PeriodSelect): +class FindSelect(MuseumForm, GeoItemSelect, PeriodSelect): _model = models.Find form_admin_name = _("Find - 001 - Search") form_slug = "find-001-search" @@ -1670,7 +1697,6 @@ class FindSelect(GeoItemSelect, PeriodSelect): ] PROFILE_FILTER = { "museum": [ - "museum_id", "cache_complete_museum_id", "museum_id_comment", "museum_owner_institution", @@ -1951,7 +1977,7 @@ class FindSelect(GeoItemSelect, PeriodSelect): museum_marking_type = forms.ChoiceField( label=_("Museum - Type of marking"), choices=[] ) - mark = forms.CharField(label=_("Marking details")) + mark = forms.CharField(label=_("Mark")) museum_collection = forms.ChoiceField( label=_("Museum - Collection"), choices=[] ) diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 78e1ec217..2ab4e23bf 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -2152,7 +2152,7 @@ class Find( dimensions_comment = models.TextField( _("Dimensions comment"), blank=True, default="" ) - mark = models.TextField(_("Marking details"), blank=True, default="") + mark = models.TextField(_("Mark"), blank=True, default="") comment = models.TextField(_("General comment"), blank=True, default="") dating_comment = models.TextField(_("Comment on dating"), blank=True, default="") previous_id = models.TextField(_("Previous ID"), blank=True, default="") diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index ad76d63cd..468fb32f1 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -689,9 +689,9 @@ class IshtarForm(forms.Form, BSForm): self._headers = {} # used for dynamic headers self._types = [] # used for dynamic types super().__init__(*args, **kwargs) - profile = None + profile = self.site_profile = None if self.PROFILE_FILTER or self.SITE_KEYS: - profile = models.get_current_profile() + profile = self.site_profile = models.get_current_profile() if self.PROFILE_FILTER: for profile_key in self.PROFILE_FILTER: |