diff options
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 |
commit | ffcc9a1b31a6ba783b4ab6032fc7039c739d568e (patch) | |
tree | 52c2b2bce918b49b5473601881931af628543758 | |
parent | cba23bc33928cc5c3a047efdcf1ad1d56ed32bc7 (diff) | |
download | Ishtar-ffcc9a1b31a6ba783b4ab6032fc7039c739d568e.tar.bz2 Ishtar-ffcc9a1b31a6ba783b4ab6032fc7039c739d568e.zip |
Custom form: finds forms
-rw-r--r-- | archaeological_finds/forms.py | 79 |
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) |