diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-02 16:27:36 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-02 16:27:36 +0100 |
commit | cba23bc33928cc5c3a047efdcf1ad1d56ed32bc7 (patch) | |
tree | 97427ebf002883ed0e86913cc393f69159fb6120 /archaeological_context_records/forms.py | |
parent | 1cac1c5a18082c804f2a6600aa3c689ddd78f84a (diff) | |
download | Ishtar-cba23bc33928cc5c3a047efdcf1ad1d56ed32bc7.tar.bz2 Ishtar-cba23bc33928cc5c3a047efdcf1ad1d56ed32bc7.zip |
Custom form: context records forms
Diffstat (limited to 'archaeological_context_records/forms.py')
-rw-r--r-- | archaeological_context_records/forms.py | 72 |
1 files changed, 34 insertions, 38 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index c310e98fa..7cc94bb9a 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -37,14 +37,17 @@ import models from ishtar_common import widgets from archaeological_operations.widgets import OAWidget from ishtar_common.forms import FinalForm, FormSet, \ - reverse_lazy, get_form_selection, TableSelect, ManageOldType + reverse_lazy, get_form_selection, TableSelect, ManageOldType, CustomForm,\ + FieldType from ishtar_common.forms_common import get_town_field, SourceSelect from archaeological_operations.forms import OperationSelect, ParcelField,\ RecordRelationsForm as OpeRecordRelationsForm, RecordRelationsFormSetBase -class OperationFormSelection(forms.Form): +class OperationFormSelection(CustomForm, forms.Form): form_label = _("Operation") + form_admin_name = _(u"Context record - 010 - Operation choice") + form_slug = "contextrecord-010-operationchoice" associated_models = {'operation': Operation} currents = {'operation': Operation} operation = forms.IntegerField( @@ -129,8 +132,10 @@ class RecordFormSelection(forms.Form): return cleaned_data -class RecordFormGeneral(ManageOldType, forms.Form): +class RecordFormGeneral(CustomForm, ManageOldType, forms.Form): form_label = _("General") + form_admin_name = _(u"Context record - 020 - General") + form_slug = "contextrecord-020-general" file_upload = True base_models = ["documentation"] associated_models = { @@ -175,6 +180,12 @@ class RecordFormGeneral(ManageOldType, forms.Form): 'height': settings.IMAGE_MAX_SIZE[1]}), max_length=255, required=False, widget=widgets.ImageFileInput()) + TYPES = [ + FieldType('unit', models.Unit), + FieldType('excavation_technic', models.ExcavationTechnicType), + FieldType('documentation', models.DocumentationType, is_multiple=True) + ] + def __init__(self, *args, **kwargs): # TODO: simplify operation = None @@ -222,19 +233,6 @@ class RecordFormGeneral(ManageOldType, forms.Form): (" - ".join([k for k in key if k]), [(parcel.pk, parcel.short_label) for parcel in gparcels]) ) - self.fields['unit'].choices = models.Unit.get_types( - initial=self.init_data.get('unit')) - self.fields['unit'].help_text = models.Unit.get_help() - self.fields['excavation_technic'].choices = \ - models.ExcavationTechnicType.get_types( - initial=self.init_data.get('excavation_technic')) - self.fields['excavation_technic'].help_text = \ - models.ExcavationTechnicType.get_help() - self.fields['documentation'].choices = \ - models.DocumentationType.get_types(empty_first=False, - initial=self.init_data.get('documentation')) - self.fields['documentation'].help_text = \ - models.DocumentationType.get_help() def clean(self): # manage unique context record ID @@ -264,22 +262,18 @@ class DatingForm(ManageOldType, forms.Form): dating_type = forms.ChoiceField(label=_("Dating type"), required=False, choices=[]) - def __init__(self, *args, **kwargs): - super(DatingForm, self).__init__(*args, **kwargs) - self.fields['dating_type'].choices = models.DatingType.get_types( - initial=self.init_data.get('dating_type')) - self.fields['dating_type'].help_text = models.DatingType.get_help() - self.fields['quality'].choices = models.DatingQuality.get_types( - initial=self.init_data.get('quality')) - self.fields['quality'].help_text = models.DatingQuality.get_help() - self.fields['period'].choices = Period.get_types( - initial=self.init_data.get('period')) - self.fields['period'].help_text = Period.get_help() + TYPES = [ + FieldType('dating_type', models.DatingType), + FieldType('quality', models.DatingQuality), + FieldType('period', models.Period) + ] DatingFormSet = formset_factory(DatingForm, can_delete=True, formset=FormSet) DatingFormSet.form_label = _("Dating") +DatingFormSet.form_admin_name = _(u"Context record - 030 - Dating") +DatingFormSet.form_slug = "contextrecord-030-datings" class RecordRelationsForm(OpeRecordRelationsForm): @@ -301,13 +295,19 @@ class RecordRelationsForm(OpeRecordRelationsForm): if crs: self.fields['right_record'].choices = [('', '-' * 2)] + crs + RecordRelationsFormSet = formset_factory( RecordRelationsForm, can_delete=True, formset=RecordRelationsFormSetBase) RecordRelationsFormSet.form_label = _(u"Relations") +RecordRelationsFormSet.form_admin_name = _(u"Context record - 050 - Relations") +RecordRelationsFormSet.form_slug = "contextrecord-050-recordrelations" -class RecordFormInterpretation(ManageOldType, forms.Form): +class RecordFormInterpretation(CustomForm, ManageOldType, forms.Form): form_label = _("Interpretation") + form_admin_name = "Context record - 040 - Interpretation" + form_slug = "contextrecord-040-interpretation" + associated_models = {'activity': models.ActivityType, 'identification': models.IdentificationType} datings_comment = forms.CharField( @@ -328,16 +328,11 @@ class RecordFormInterpretation(ManageOldType, forms.Form): tpq_estimated = forms.IntegerField(label=_(u"Estimated TPQ"), required=False) - def __init__(self, *args, **kwargs): - super(RecordFormInterpretation, self).__init__(*args, **kwargs) - self.fields['activity'].choices = models.ActivityType.get_types( - initial=self.init_data.get('activity')) - self.fields['activity'].help_text = models.ActivityType.get_help() - self.fields['identification'].choices = \ - models.IdentificationType.get_types( - initial=self.init_data.get('identification')) - self.fields['identification'].help_text = \ - models.IdentificationType.get_help() + TYPES = [ + FieldType('activity', models.ActivityType), + FieldType('identification', models.IdentificationType), + ] + OperationRecordFormSelection = get_form_selection( 'OperationRecordFormSelection', _(u"Operation search"), 'operation_id', @@ -353,6 +348,7 @@ class RecordDeletionForm(FinalForm): # Source management for context records # ######################################### + SourceRecordFormSelection = get_form_selection( 'SourceRecordFormSelection', _(u"Context record search"), 'context_record', models.ContextRecord, RecordSelect, 'get-contextrecord', |