diff options
-rw-r--r-- | archaeological_operations/forms.py | 85 | ||||
-rw-r--r-- | ishtar_common/forms.py | 18 | ||||
-rw-r--r-- | ishtar_common/forms_common.py | 15 |
3 files changed, 67 insertions, 51 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 4dd896966..6966fff50 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -477,6 +477,8 @@ class RecordRelationsFormSetBase(FormSet): RecordRelationsFormSet = formset_factory( RecordRelationsForm, can_delete=True, formset=RecordRelationsFormSetBase) RecordRelationsFormSet.form_label = _(u"Relations") +RecordRelationsFormSet.form_admin_name = _("Operations - Relations") +RecordRelationsFormSet.form_slug = "operation-relations" class OperationSelect(TableSelect): @@ -675,12 +677,15 @@ class OperationFormFileChoice(forms.Form): validators=[valid_id(File)], required=False) -class OperationFormAbstract(forms.Form): +class OperationFormAbstract(CustomForm, forms.Form): form_label = _(u"Abstract") + form_admin_name = _("Operations - Abstract") + form_slug = "operation-abstract" abstract = forms.CharField( label=_(u"Abstract"), widget=forms.Textarea(attrs={'class': 'xlarge'}), required=False) + SLICING = (("month", _(u"months")), ('year', _(u"years")),) DATE_SOURCE = (('creation', _(u"Creation date")), @@ -763,8 +768,8 @@ class DashboardForm(forms.Form): class OperationFormGeneral(ManageOldType, CustomForm, forms.Form): form_label = _(u"General") - form_admin_name = _(u"Operation - General - Creation") - form_slug = "operation-general-creation" + form_admin_name = _(u"Operation - General") + form_slug = "operation-general" file_upload = True associated_models = {'scientist': Person, @@ -978,9 +983,6 @@ class OperationFormGeneral(ManageOldType, CustomForm, forms.Form): class OperationFormModifGeneral(OperationFormGeneral): - form_admin_name = _(u"Operation - General - Modification") - form_slug = "operation-general-modification" - operation_code = forms.IntegerField(label=_(u"Operation code"), required=False) currents = {'associated_file': File} @@ -1078,6 +1080,7 @@ class SelectedTownForm(forms.Form): SelectedTownFormset = formset_factory(SelectedTownForm, can_delete=True, formset=TownFormSet) SelectedTownFormset.form_label = _(u"Towns") +SelectedTownFormset.form_slug = "towns" class SelectedParcelForm(forms.Form): @@ -1094,13 +1097,17 @@ class SelectedParcelForm(forms.Form): if parcels: self.fields['parcel'].choices = [('', '--')] + parcels + SelectedParcelFormSet = formset_factory(SelectedParcelForm, can_delete=True, formset=ParcelFormSet) SelectedParcelFormSet.form_label = _("Parcels") +SelectedParcelFormSet.form_admin_name = _(u"Operations - Parcels") +SelectedParcelFormSet.form_slug = "operation-parcels" SelectedParcelGeneralFormSet = formset_factory(ParcelForm, can_delete=True, formset=ParcelFormSet) -SelectedParcelGeneralFormSet.form_label = _("Parcels") +SelectedParcelGeneralFormSet.form_admin_name = _("Parcels") +SelectedParcelGeneralFormSet.form_slug = "operation-parcels" """ class SelectedParcelFormSet(forms.Form): @@ -1128,36 +1135,36 @@ class SelectedParcelFormSet(forms.Form): """ -class RemainForm(ManageOldType, forms.Form): +class RemainForm(CustomForm, ManageOldType, forms.Form): form_label = _("Remain types") + form_admin_name = _("Operations - Remains") + form_slug = "operation-remains" + base_model = 'remain' associated_models = {'remain': models.RemainType} remain = forms.MultipleChoiceField( label=_("Remain type"), required=False, choices=[], widget=forms.CheckboxSelectMultiple) - def __init__(self, *args, **kwargs): - super(RemainForm, self).__init__(*args, **kwargs) - self.fields['remain'].choices = models.RemainType.get_types( - initial=self.init_data.get('remain'), - empty_first=False) - self.fields['remain'].help_text = models.RemainType.get_help() + TYPES = [ + FieldType('remain', models.RemainType, True), + ] -class PeriodForm(ManageOldType, forms.Form): +class PeriodForm(CustomForm, ManageOldType, forms.Form): form_label = _("Periods") + form_admin_name = _("Operations - Periods") + form_slug = "operation-periods" + base_model = 'period' associated_models = {'period': models.Period} period = forms.MultipleChoiceField( label=_("Period"), required=False, choices=[], widget=forms.CheckboxSelectMultiple) - def __init__(self, *args, **kwargs): - super(PeriodForm, self).__init__(*args, **kwargs) - self.fields['period'].choices = models.Period.get_types( - initial=self.init_data.get('period'), - empty_first=False) - self.fields['period'].help_text = models.Period.get_help() + TYPES = [ + FieldType('period', models.Period, True), + ] class ArchaeologicalSiteForm(ManageOldType, forms.Form): @@ -1170,21 +1177,16 @@ class ArchaeologicalSiteForm(ManageOldType, forms.Form): label=_("Remains"), choices=[], widget=widgets.Select2Multiple, required=False) + TYPES = [ + FieldType('periods', models.Period, True), + FieldType('remains', models.RemainType, True), + ] + def __init__(self, *args, **kwargs): self.limits = {} if 'limits' in kwargs: kwargs.pop('limits') super(ArchaeologicalSiteForm, self).__init__(*args, **kwargs) - self.fields['periods'].choices = \ - models.Period.get_types( - empty_first=False, - initial=self.init_data.get('periods')) - self.fields['periods'].help_text = models.Period.get_help() - self.fields['remains'].choices = \ - models.RemainType.get_types( - initial=self.init_data.get('remains'), - empty_first=False) - self.fields['remains'].help_text = models.RemainType.get_help() def clean_reference(self): reference = self.cleaned_data['reference'] @@ -1253,6 +1255,9 @@ class OperationDeletionForm(FinalForm): class OperationSourceForm(SourceForm): + form_admin_name = _("Operation Sources - Main") + form_slug = "operation-source-relations" + pk = forms.IntegerField(required=False, widget=forms.HiddenInput) index = forms.IntegerField(label=_(u"Index")) hidden_operation_id = forms.IntegerField(label="", @@ -1400,8 +1405,11 @@ class AdministrativeActOpeFormSelection(forms.Form): return cleaned_data -class AdministrativeActOpeForm(ManageOldType, forms.Form): +class AdministrativeActOpeForm(CustomForm, ManageOldType, forms.Form): form_label = _("General") + form_admin_name = _("Operations - Administrative act - General") + form_slug = "operation-adminact-general" + associated_models = {'act_type': models.ActType, } # 'signatory':Person} act_type = forms.ChoiceField(label=_("Act type"), choices=[]) @@ -1417,13 +1425,10 @@ class AdministrativeActOpeForm(ManageOldType, forms.Form): ref_sra = forms.CharField(label=u"Autre référence", max_length=15, required=False) - def __init__(self, *args, **kwargs): - super(AdministrativeActOpeForm, self).__init__(*args, **kwargs) - self.fields['act_type'].choices = models.ActType.get_types( - initial=self.init_data.get('act_type'), - dct={'intented_to': 'O'}) - self.fields['act_type'].help_text = models.ActType.get_help( - dct={'intented_to': 'O'}) + TYPES = [ + FieldType('act_type', models.ActType, + extra_args={"dct": {'intented_to': 'O'}}), + ] class AdministrativeActModifForm(object): @@ -1439,7 +1444,7 @@ class AdministrativeActModifForm(object): def clean(self): # manage unique act ID - year = self.cleaned_data.get("signature_date") + year = self.cleaned_data.get("signature_date", None) if not year or not hasattr(year, 'year'): return self.cleaned_data year = year.year diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 8b97cfbab..eebd912ea 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -336,18 +336,26 @@ def get_data_from_formset(data): class FieldType(object): - def __init__(self, key, model, is_multiple=False): + def __init__(self, key, model, is_multiple=False, extra_args=None): self.key = key self.model = model self.is_multiple = is_multiple + self.extra_args = extra_args def get_choices(self, initial=None): - return self.model.get_types( - empty_first=not self.is_multiple, - initial=initial) + args = { + 'empty_first': not self.is_multiple, + 'initial': initial + } + if self.extra_args: + args.update(self.extra_args) + return self.model.get_types(**args) def get_help(self): - return self.model.get_help() + args = {} + if self.extra_args: + args.update(self.extra_args) + return self.model.get_help(**args) class ManageOldType(object): diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 116c8c277..32c91b683 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -35,7 +35,7 @@ import models import widgets from ishtar_common.templatetags.link_to_window import link_to_window from forms import FinalForm, FormSet, reverse_lazy, name_validator, \ - TableSelect, ManageOldType + TableSelect, ManageOldType, CustomForm, FieldType def get_town_field(label=_(u"Town"), required=True): @@ -733,6 +733,8 @@ class TownFormSet(FormSet): TownFormset = formset_factory(TownForm, can_delete=True, formset=TownFormSet) TownFormset.form_label = _("Towns") +TownFormset.form_admin_name = _(u"Towns") +TownFormset.form_slug = "towns" class MergeFormSet(BaseModelFormSet): @@ -860,7 +862,7 @@ class MergeOrganizationForm(MergeForm): ###################### # Sources management # ###################### -class SourceForm(ManageOldType, forms.Form): +class SourceForm(CustomForm, ManageOldType, forms.Form): form_label = _(u"Documentation informations") file_upload = True associated_models = {'source_type': models.SourceType} @@ -899,10 +901,9 @@ class SourceForm(ManageOldType, forms.Form): 'height': settings.IMAGE_MAX_SIZE[1]}), max_length=255, required=False, widget=widgets.ImageFileInput()) - def __init__(self, *args, **kwargs): - super(SourceForm, self).__init__(*args, **kwargs) - self.fields['source_type'].choices = models.SourceType.get_types( - initial=self.init_data.get('source_type')) + TYPES = [ + FieldType('source_type', models.SourceType), + ] class SourceSelect(TableSelect): @@ -986,3 +987,5 @@ class AuthorFormSet(FormSet): AuthorFormset = formset_factory(AuthorFormSelection, can_delete=True, formset=AuthorFormSet) AuthorFormset.form_label = _("Authors") +AuthorFormset.form_admin_name = _(u"Authors") +AuthorFormset.form_slug = "authors" |