diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-13 00:18:29 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-13 00:18:29 +0200 |
commit | 1cc2fe4062b16a91d04ed4ffa35248f82c92fbb4 (patch) | |
tree | 3f239121db47139228c5b6d2cc4b95fb8d9533ef /archaeological_operations | |
parent | 79ecf7ad94273476e4f0bc4c0351e6a6dbde090e (diff) | |
download | Ishtar-1cc2fe4062b16a91d04ed4ffa35248f82c92fbb4.tar.bz2 Ishtar-1cc2fe4062b16a91d04ed4ffa35248f82c92fbb4.zip |
New management of "popup" for new items -> change all form configuration
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/forms.py | 29 | ||||
-rw-r--r-- | archaeological_operations/views.py | 7 |
2 files changed, 32 insertions, 4 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index b79447d9f..1ac451505 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -756,6 +756,7 @@ class OperationFormGeneral(CustomForm, ManageOldType): form_label = _(u"General") form_admin_name = _(u"Operation - 010 - General") form_slug = "operation-010-general" + extra_form_modals = ["person", "organization"] file_upload = True associated_models = { @@ -1192,6 +1193,8 @@ class PeriodForm(CustomForm, ManageOldType, forms.Form): class ArchaeologicalSiteForm(ManageOldType): + associated_models = {'period': models.Period, 'remain': models.RemainType, + 'spatial_reference_system': SpatialReferenceSystem} HEADERS = {} reference = forms.CharField(label=_(u"Reference"), max_length=200) name = forms.CharField(label=_(u"Name"), max_length=200, required=False) @@ -1247,6 +1250,28 @@ class ArchaeologicalSiteForm(ManageOldType): def save(self, user): dct = self.cleaned_data dct['history_modifier'] = user + for typ in self.TYPES: + if not dct[typ.key]: + dct[typ.key] = None + if typ.is_multiple: + dct[typ.key] = [] + continue + if typ.is_multiple: + value = [] + for v in dct[typ.key]: + try: + value.append(typ.model.objects.get(pk=v, + available=True)) + except typ.model.DoesNotExist: + continue + else: + try: + value = typ.model.objects.get(pk=dct[typ.key], + available=True) + except typ.model.DoesNotExist: + value = None + dct[typ.key] = value + periods = dct.pop('periods') remains = dct.pop('remains') item = models.ArchaeologicalSite.objects.create(**dct) @@ -1257,7 +1282,7 @@ class ArchaeologicalSiteForm(ManageOldType): return item -class ArchaeologicalSiteBasicForm(IshtarForm): +class ArchaeologicalSiteBasicForm(widgets.Select2Media, IshtarForm): form_label = _("Archaeological site") base_model = 'archaeological_site' associated_models = {'archaeological_site': models.ArchaeologicalSite} @@ -1278,6 +1303,7 @@ ArchaeologicalSiteFormSet.form_label = _(u"Archaeological sites") ArchaeologicalSiteFormSet.form_admin_name = _( u"Operation - 030 - Archaeological sites") ArchaeologicalSiteFormSet.form_slug = "operation-030-archaeological-sites" +ArchaeologicalSiteFormSet.extra_form_modals = ["archaeologicalsite"] class ArchaeologicalSiteSelectionForm(IshtarForm): @@ -1598,6 +1624,7 @@ class AdministrativeActOpeFormSelection(IshtarForm): class AdministrativeActForm(CustomForm, ManageOldType): form_label = _("General") + extra_form_modals = ["person", "organization"] associated_models = {'act_type': models.ActType, 'signatory': Person} act_type = forms.ChoiceField(label=_("Act type"), choices=[]) diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 0d69d72f3..ca09510f7 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -53,7 +53,8 @@ from ishtar_common.models import get_current_profile, IshtarSiteProfile, \ DocumentTemplate from ishtar_common.utils import put_session_message, check_rights_condition from ishtar_common.views import gen_generate_doc, QAItemEditForm, QABaseLockView -from ishtar_common.views_item import get_item, show_item, revert_item, new_item +from ishtar_common.views_item import get_item, show_item, revert_item, \ + new_qa_item from ishtar_common.wizards import SearchWizard @@ -104,8 +105,8 @@ def autocomplete_archaeologicalsite(request): return HttpResponse(data, content_type='text/plain') -new_archaeologicalsite = new_item(models.ArchaeologicalSite, - ArchaeologicalSiteForm, many=True) +new_archaeologicalsite = new_qa_item(models.ArchaeologicalSite, + ArchaeologicalSiteForm, many=True) def autocomplete_operation(request): |