summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/forms.py52
-rw-r--r--archaeological_finds/models_finds.py2
-rw-r--r--ishtar_common/forms.py4
3 files changed, 42 insertions, 16 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 2796bb844..95138c158 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 fa38a6dbb..d10494483 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -2227,7 +2227,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 1416dd464..29fb33e91 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -779,9 +779,9 @@ class IshtarForm(BSForm, forms.Form):
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:
self._profile_filter(profile)