diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-04 13:16:24 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-01-04 13:16:24 +0100 | 
| commit | c3e655c6a8efd1a79c8d066bc95fb5bd56886fb5 (patch) | |
| tree | 5e3b600b8b872b0db4deb5244526668da86aaa4e | |
| parent | e45888d4d796c5f1fb121dc7e41116fa8f38bfdc (diff) | |
| download | Ishtar-c3e655c6a8efd1a79c8d066bc95fb5bd56886fb5.tar.bz2 Ishtar-c3e655c6a8efd1a79c8d066bc95fb5bd56886fb5.zip | |
Custom form: archaeological files forms
| -rw-r--r-- | archaeological_files/forms.py | 15 | ||||
| -rw-r--r-- | archaeological_files/views.py | 7 | ||||
| -rw-r--r-- | archaeological_files_pdl/forms.py | 50 | ||||
| -rw-r--r-- | archaeological_files_pdl/views.py | 5 | ||||
| -rw-r--r-- | archaeological_operations/forms.py | 4 | ||||
| -rw-r--r-- | ishtar_common/admin.py | 3 | 
6 files changed, 54 insertions, 30 deletions
| diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 7c254f936..cf8b8ea4b 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -25,6 +25,7 @@ import datetime  from django import forms  from django.conf import settings  from django.core import validators +from django.forms.formsets import formset_factory  from django.utils.translation import ugettext_lazy as _  from django.utils.safestring import mark_safe @@ -34,12 +35,13 @@ from ishtar_common.models import Person, Organization, \  from archaeological_operations.models import ActType, AdministrativeAct, \      OperationType  import models +  from ishtar_common.forms import FinalForm, get_now, reverse_lazy, TableSelect, \      ManageOldType, CustomForm, FieldType  from ishtar_common.forms_common import get_town_field  from archaeological_operations.forms import AdministrativeActOpeForm, \      AdministrativeActOpeFormSelection, \ -    ParcelField, SLICING, AdministrativeActModifForm +    ParcelField, SLICING, AdministrativeActModifForm, ParcelForm, ParcelFormSet  from ishtar_common import widgets @@ -271,6 +273,13 @@ class FileFormGeneralRO(FileFormGeneral):          return cleaned_data +ParcelFormset = formset_factory(ParcelForm, can_delete=True, +                                formset=ParcelFormSet) +ParcelFormset.form_label = _(u"Parcels") +ParcelFormset.form_admin_name = _("Archaeological file - 020 - Parcel") +ParcelFormset.form_slug = "source-general" + +  class FileFormPreventive(ManageOldType, forms.Form):      form_label = _(u"Preventive informations")      associated_models = {'general_contractor': Person, @@ -329,8 +338,10 @@ class FileFormPreventive(ManageOldType, forms.Form):          self.fields['permit_type'].help_text = models.PermitType.get_help() -class FileFormResearch(ManageOldType, forms.Form): +class FileFormResearch(CustomForm, ManageOldType, forms.Form):      form_label = _("Research archaeology") +    form_admin_name = _("Archaeological file - 045 - Research - General") +    form_slug = "file-045-research-general"      base_model = 'department'      associated_models = {'scientist': Person,                           'requested_operation_type': OperationType, diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 0c0dac3f3..86fa83ee4 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -37,8 +37,7 @@ from archaeological_operations.wizards import AdministrativeActDeletionWizard, \  from wizards import *  from ishtar_common.forms_common import TownFormset -from archaeological_operations.forms import ParcelFormSet, \ -    FinalAdministrativeActDeleteForm +from archaeological_operations.forms import FinalAdministrativeActDeleteForm  from ishtar_common.forms import ClosingDateFormSelection  from forms import * @@ -108,7 +107,7 @@ file_search_wizard = SearchWizard.as_view(  file_creation_wizard = FileWizard.as_view(      [('general-file_creation', FileFormGeneral),       ('towns-file_creation', TownFormset), -     ('parcels-file_creation', ParcelFormSet), +     ('parcels-file_creation', ParcelFormset),       ('preventive-file_creation', FileFormPreventive),       ('research-file_creation', FileFormResearch),       ('final-file_creation', FinalForm)], @@ -127,7 +126,7 @@ file_modification_wizard = FileModificationWizard.as_view(      [('selec-file_modification', FileFormSelection),       ('general-file_modification', FileFormGeneralRO),       ('towns-file_modification', TownFormset), -     ('parcels-file_modification', ParcelFormSet), +     ('parcels-file_modification', ParcelFormset),       ('preventive-file_modification', FileFormPreventive),       ('research-file_modification', FileFormResearch),       ('final-file_modification', FinalForm)], diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index e5fbb4a96..e0a8f119b 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -29,13 +29,16 @@ from ishtar_common.models import Person, Town, Department, valid_id, \      organization_type_pk_lazy  from archaeological_files import models -from ishtar_common.forms import get_now, reverse_lazy, ManageOldType +from ishtar_common.forms import get_now, reverse_lazy, ManageOldType, \ +    CustomForm, FieldType  from ishtar_common import widgets -class FileFormGeneral(ManageOldType, forms.Form): +class FileFormGeneral(CustomForm, ManageOldType, forms.Form):      form_label = _("General") +    form_admin_name = _(u"Archaeological file - 010 - General") +    form_slug = "file-010-general"      associated_models = {'file_type': models.FileType}      file_type = forms.ChoiceField(label=_("File type"), choices=[])      year = forms.IntegerField(label=_("Year"), @@ -47,11 +50,9 @@ class FileFormGeneral(ManageOldType, forms.Form):      reception_date = forms.DateField(          label=_(u"Reception date"), initial=get_now, widget=widgets.JQueryDate) -    def __init__(self, *args, **kwargs): -        super(FileFormGeneral, self).__init__(*args, **kwargs) -        self.fields['file_type'].choices = models.FileType.get_types( -            initial=self.init_data.get('file_type')) -        self.fields['file_type'].help_text = models.FileType.get_help() +    TYPES = [ +        FieldType('file_type', models.FileType), +    ]      def clean_reception_date(self):          value = self.cleaned_data.get('reception_date', None) @@ -61,27 +62,31 @@ class FileFormGeneral(ManageOldType, forms.Form):          return value -class FileFormPreventiveType(ManageOldType, forms.Form): +class FileFormPreventiveType(CustomForm, ManageOldType, forms.Form):      form_label = u"Saisine" +    form_admin_name = _(u"Archaeological file - 013 - Preventive - Saisine") +    form_slug = "file-013-preventivesaisine"      associated_models = {'saisine_type': models.SaisineType,                           'permit_type': models.PermitType}      permit_type = forms.ChoiceField(label=_(u"Permit type"), required=False,                                      choices=[])      saisine_type = forms.ChoiceField(label=_(u"Saisine type"),                                       choices=[]) +    TYPES = [ +        FieldType('saisine_type', models.SaisineType), +    ]      def __init__(self, *args, **kwargs):          super(FileFormPreventiveType, self).__init__(*args, **kwargs) -        self.fields['saisine_type'].choices = models.SaisineType.get_types( -            initial=self.init_data.get('saisine_type')) -        self.fields['saisine_type'].help_text = models.SaisineType.get_help()          self.fields['permit_type'].choices = models.PermitType.get_types(              default='NP', initial=self.init_data.get('permit_type'))          self.fields['permit_type'].help_text = models.PermitType.get_help() -class FileFormPlanning(forms.Form): +class FileFormPlanning(CustomForm, forms.Form):      form_label = _(u"Planning") +    form_admin_name = _(u"Archaeological file - 017 - Preventive - Planning") +    form_slug = "file-017-preventiveplanning"      base_models = ['town', 'department']      associated_models = {'town': Town, 'department': Department}      name = forms.CharField(label=_(u"Planning name"), required=False, @@ -112,8 +117,10 @@ class FileFormPlanning(forms.Form):                      validators.MaxValueValidator(999999999)]) -class FileFormResearchAddress(forms.Form): +class FileFormResearchAddress(CustomForm, forms.Form):      form_label = _(u"Address") +    form_admin_name = _(u"Archaeological file - 015 - Research - Address") +    form_slug = "file-015-researchplanning"      base_models = ['town', 'department']      associated_models = {'town': Town, 'department': Department}      name = forms.CharField(label=_(u"Project name"), required=False, @@ -228,8 +235,11 @@ class PersonOrgaForm(forms.Form):                  validators=[valid_id(models.Organization)]) -class FileFormGeneralContractor(PersonOrgaForm): +class FileFormGeneralContractor(CustomForm, PersonOrgaForm):      form_label = _(u"General contractor") +    form_admin_name = _("Archaeological file - 030 - General contrator") +    form_slug = "file-030-generalcontractor" +      associated_models = {'general_contractor': models.Person,                           'corporation_general_contractor': models.Organization}      corporation_general_contractor = forms.IntegerField( @@ -323,6 +333,10 @@ class FileFormGeneralContractor(PersonOrgaForm):          if status not in ('natural', 'corporation'):              status = DEFAULT_STATUS +        user = None +        if 'user' in kwargs: +            user = kwargs.pop('user') +          super(PersonOrgaForm, self).__init__(*args, **kwargs)          # distinct widget for natural and corporation @@ -344,8 +358,10 @@ class FileFormGeneralContractor(PersonOrgaForm):              self.fields.pop(self.ORGA_FIELD) -class FileFormPlanningService(forms.Form): +class FileFormPlanningService(CustomForm, forms.Form):      form_label = _(u"Planning service") +    form_admin_name = _("Archaeological file - 040 - Planning service") +    form_slug = "file-040-planningservice"      associated_models = {'responsible_town_planning_service': models.Person,                           'planning_service': models.Organization} @@ -387,8 +403,10 @@ class FileFormPlanningService(forms.Form):      ) -class FileFormInstruction(forms.Form): +class FileFormInstruction(CustomForm, forms.Form):      form_label = u"Instruction SRA" +    form_admin_name = _("Archaeological file - 050 - Instruction") +    form_slug = "file-050-instruction"      associated_models = {'in_charge': models.Person,                           'related_file': models.File}      in_charge = forms.IntegerField( diff --git a/archaeological_files_pdl/views.py b/archaeological_files_pdl/views.py index d03fd958d..cf412efb6 100644 --- a/archaeological_files_pdl/views.py +++ b/archaeological_files_pdl/views.py @@ -27,7 +27,6 @@ from ishtar_common.views import OrganizationPersonCreate, \  from archaeological_files_pdl import forms  from archaeological_files import forms as ref_forms -from archaeological_operations.forms import ParcelFormSet  from archaeological_files import models @@ -41,7 +40,7 @@ file_creation_wizard = FileWizard.as_view([      ('preventivetype-file_creation', forms.FileFormPreventiveType),      ('preventiveplanning-file_creation', forms.FileFormPlanning),      ('researchaddress-file_creation', forms.FileFormResearchAddress), -    ('parcelspdl-file_creation', ParcelFormSet), +    ('parcelspdl-file_creation', ref_forms.ParcelFormset),      ('generalcontractor-file_creation', forms.FileFormGeneralContractor),      ('planningservice-file_creation', forms.FileFormPlanningService),      ('research-file_creation', ref_forms.FileFormResearch), @@ -68,7 +67,7 @@ file_modification_wizard = FileModificationWizard.as_view([      ('preventivetype-file_modification', forms.FileFormPreventiveType),      ('preventiveplanning-file_modification', forms.FileFormPlanning),      ('researchaddress-file_modification', forms.FileFormResearchAddress), -    ('parcelspdl-file_modification', ParcelFormSet), +    ('parcelspdl-file_modification', ref_forms.ParcelFormset),      ('generalcontractor-file_modification', forms.FileFormGeneralContractor),      ('planningservice-file_modification', forms.FileFormPlanningService),      ('research-file_modification', ref_forms.FileFormResearch), diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index b85b5e937..6ba343508 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -366,10 +366,6 @@ class ParcelFormSet(FormSet):          if hasattr(self, 'cleaned_data') and self.cleaned_data:              return self.cleaned_data -ParcelFormSet = formset_factory(ParcelForm, can_delete=True, -                                formset=ParcelFormSet) -ParcelFormSet.form_label = _(u"Parcels") -  class RecordRelationsForm(ManageOldType, forms.Form):      base_model = 'right_relation' diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 189a02c05..fa71c4d3f 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -46,6 +46,7 @@ from ishtar_common.utils import get_cache  from ishtar_common import forms as common_forms  from archaeological_files import forms as file_forms +from archaeological_files_pdl import forms as file_pdl_forms  from archaeological_operations import forms as operation_forms  from archaeological_context_records import forms as context_record_forms  from archaeological_finds import forms as find_forms, \ @@ -53,7 +54,7 @@ from archaeological_finds import forms as find_forms, \  from archaeological_warehouse import forms as warehouse_forms -ISHTAR_FORMS = [common_forms, file_forms, operation_forms, +ISHTAR_FORMS = [common_forms, file_pdl_forms, file_forms, operation_forms,                  context_record_forms, find_forms, treatment_forms,                  warehouse_forms] | 
