diff options
Diffstat (limited to 'archaeological_finds/forms.py')
| -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) | 
