summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
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
commit1cc2fe4062b16a91d04ed4ffa35248f82c92fbb4 (patch)
tree3f239121db47139228c5b6d2cc4b95fb8d9533ef /archaeological_operations
parent79ecf7ad94273476e4f0bc4c0351e6a6dbde090e (diff)
downloadIshtar-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.py29
-rw-r--r--archaeological_operations/views.py7
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):