summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-01-02 16:56:15 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-01-02 16:56:15 +0100
commitffcc9a1b31a6ba783b4ab6032fc7039c739d568e (patch)
tree52c2b2bce918b49b5473601881931af628543758
parentcba23bc33928cc5c3a047efdcf1ad1d56ed32bc7 (diff)
downloadIshtar-ffcc9a1b31a6ba783b4ab6032fc7039c739d568e.tar.bz2
Ishtar-ffcc9a1b31a6ba783b4ab6032fc7039c739d568e.zip
Custom form: finds forms
-rw-r--r--archaeological_finds/forms.py79
1 files changed, 29 insertions, 50 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 2a895064f..eca12f6e9 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -43,7 +43,7 @@ from ishtar_common.forms import FormSet, FloatField, \
get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm, \
ManageOldType, FieldType
-from ishtar_common.forms_common import get_town_field, SourceSelect
+from ishtar_common.forms_common import get_town_field, SourceSelect, CustomForm
from ishtar_common.utils import convert_coordinates_to_point
from ishtar_common import widgets
from archaeological_operations.widgets import OAWidget
@@ -92,8 +92,10 @@ __all__ = [
logger = logging.getLogger(__name__)
-class RecordFormSelection(forms.Form):
+class RecordFormSelection(CustomForm, forms.Form):
form_label = _("Context record")
+ form_admin_name = _(u"Find - 010 - Context record choice")
+ form_slug = "find-010-contextrecord"
base_models = ['get_first_base_find']
associated_models = {'get_first_base_find__context_record': ContextRecord}
get_first_base_find__context_record = forms.IntegerField(
@@ -124,9 +126,11 @@ class RecordFormSelection(forms.Form):
cr.operation.pk)
-class FindForm(ManageOldType, forms.Form):
+class FindForm(CustomForm, ManageOldType, forms.Form):
file_upload = True
form_label = _("Find")
+ form_admin_name = _(u"Find - 020 - General")
+ form_slug = "find-020-general"
base_models = ['get_first_base_find', 'object_type', 'material_type',
'integritie', 'remarkabilitie']
associated_models = {'material_type': models.MaterialType,
@@ -206,6 +210,14 @@ class FindForm(ManageOldType, forms.Form):
'height': settings.IMAGE_MAX_SIZE[1]}),
max_length=255, required=False, widget=widgets.ImageFileInput())
+ TYPES = [
+ FieldType('material_type', models.MaterialType, is_multiple=True),
+ FieldType('object_type', models.ObjectType, is_multiple=True),
+ FieldType('get_first_base_find__batch', models.BatchType),
+ FieldType('integritie', models.IntegrityType, is_multiple=True),
+ FieldType('remarkabilitie', models.RemarkabilityType, is_multiple=True)
+ ]
+
def __init__(self, *args, **kwargs):
super(FindForm, self).__init__(*args, **kwargs)
if not get_current_profile().mapping:
@@ -224,35 +236,6 @@ class FindForm(ManageOldType, forms.Form):
self.fields[srs].help_text = \
SpatialReferenceSystem.get_help()
self.fields['checked'].choices = models.CHECK_CHOICES
- self.fields['material_type'].choices = models.MaterialType.get_types(
- initial=self.init_data.get('material_type'),
- empty_first=False
- )
- self.fields['material_type'].help_text = models.MaterialType.get_help()
-
- self.fields['object_type'].choices = models.ObjectType.get_types(
- initial=self.init_data.get('object_type'),
- empty_first=False
- )
- self.fields['object_type'].help_text = models.ObjectType.get_help()
-
- self.fields['get_first_base_find__batch'].choices = \
- models.BatchType.get_types(
- initial=self.init_data.get('get_first_base_find__batch'))
- self.fields['get_first_base_find__batch'].help_text = \
- models.BatchType.get_help()
- self.fields['integritie'].choices = \
- models.IntegrityType.get_types(
- empty_first=False,
- initial=self.init_data.get('integritie'))
- self.fields['integritie'].help_text = \
- models.IntegrityType.get_help()
- self.fields['remarkabilitie'].choices = \
- models.RemarkabilityType.get_types(
- empty_first=False,
- initial=self.init_data.get('remarkabilitie'))
- self.fields['remarkabilitie'].help_text = \
- models.RemarkabilityType.get_help()
self.fields['estimated_value'].label = u"{} ({})".format(
unicode(self.fields['estimated_value'].label),
get_current_profile().currency)
@@ -285,8 +268,10 @@ class FindForm(ManageOldType, forms.Form):
return self.cleaned_data
-class PreservationForm(ManageOldType, forms.Form):
+class PreservationForm(CustomForm, ManageOldType, forms.Form):
form_label = _("Preservation")
+ form_admin_name = _(u"Find - 030 - Preservation")
+ form_slug = "find-030-preservation"
base_models = ['alteration', 'alteration_cause',
'preservation_to_consider']
associated_models = {'alteration': models.AlterationType,
@@ -346,23 +331,18 @@ class DateForm(ManageOldType, forms.Form):
required=False, choices=[])
precise_dating = forms.CharField(label=_("Precise dating"),
required=False)
-
- def __init__(self, *args, **kwargs):
- super(DateForm, self).__init__(*args, **kwargs)
- self.fields['dating_type'].choices = DatingType.get_types(
- initial=self.init_data.get('dating_type'))
- self.fields['dating_type'].help_text = DatingType.get_help()
- self.fields['period'].choices = Period.get_types(
- initial=self.init_data.get('period'))
- self.fields['period'].help_text = Period.get_help()
- self.fields['quality'].choices = DatingQuality.get_types(
- initial=self.init_data.get('quality'))
- self.fields['quality'].help_text = DatingQuality.get_help()
+ TYPES = [
+ FieldType('dating_type', DatingType),
+ FieldType('period', Period),
+ FieldType('quality', DatingQuality),
+ ]
DatingFormSet = formset_factory(DateForm, can_delete=True,
formset=FormSet)
DatingFormSet.form_label = _("Dating")
+DatingFormSet.form_admin_name = _(u"Find - 040 - Dating")
+DatingFormSet.form_slug = "find-040-dating"
class FindSelect(TableSelect):
@@ -660,11 +640,10 @@ class ResultFindForm(ManageOldType, forms.Form):
weight = forms.IntegerField(label=_(u"Weight (g)"))
find_number = forms.IntegerField(label=_(u"Find number"))
- def __init__(self, *args, **kwargs):
- super(ResultFindForm, self).__init__(*args, **kwargs)
- self.fields['material_type'].choices = models.MaterialType.get_types(
- initial=self.init_data.get('material_type'))
- self.fields['material_type'].help_text = models.MaterialType.get_help()
+ TYPES = [
+ FieldType('material_type', models.MaterialType)
+ ]
+
ResultFindFormSet = formset_factory(ResultFindForm, can_delete=True,
formset=FormSet)