diff options
-rw-r--r-- | archaeological_files/wizards.py | 2 | ||||
-rw-r--r-- | archaeological_files_pdl/forms.py | 14 | ||||
-rw-r--r-- | archaeological_files_pdl/views.py | 20 | ||||
-rw-r--r-- | archaeological_files_pdl/wizards.py | 2 | ||||
-rw-r--r-- | archaeological_operations/wizards.py | 10 |
5 files changed, 36 insertions, 12 deletions
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py index 2279fef4f..3ccd6e3d9 100644 --- a/archaeological_files/wizards.py +++ b/archaeological_files/wizards.py @@ -38,7 +38,7 @@ class FileWizard(OperationWizard): model = models.File object_parcel_type = 'associated_file' parcel_step_key = 'parcels-' - town_step_key = 'towns-' + town_step_keys = ['towns-'] wizard_done_window = reverse_lazy('show-file') ''' diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index 21ed4238a..824254d37 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -93,6 +93,20 @@ class FileFormPlanning(forms.Form): required=False, validators=[validators.MinValueValidator(0), validators.MaxValueValidator(999999999)]) +class FileFormResearchAddress(forms.Form): + form_label = _(u"Address") + associated_models = {'main_town':models.Town} + main_town = get_advanced_town_field(required=True) + locality = forms.CharField(label=_(u"Locality"), max_length=100, + required=False) + address = forms.CharField(label=_(u"Address (number/street)"), + widget=forms.Textarea( + attrs={"placeholder":_(u"Number/street")}), + required=False, + ) + postal_code = forms.CharField(label=_(u"Postal code"), max_length=10, + required=False) + class FileFormGeneralContractor(forms.Form): form_label = _(u"General contractor") associated_models = {'general_contractor':models.Person} diff --git a/archaeological_files_pdl/views.py b/archaeological_files_pdl/views.py index c8e1d1498..a319954b9 100644 --- a/archaeological_files_pdl/views.py +++ b/archaeological_files_pdl/views.py @@ -30,27 +30,33 @@ from archaeological_operations.forms import ParcelFormSet from archaeological_files import models + +file_creation_wizard_is_preventive = is_preventive('general-file_creation', + models.FileType, type_key='file_type') +file_creation_wizard_is_not_preventive = is_not_preventive( + 'general-file_creation', models.FileType, type_key='file_type') file_creation_wizard = FileWizard.as_view([ ('general-file_creation', forms.FileFormGeneral), ('preventivetype-file_creation', forms.FileFormPreventiveType), ('preventiveplanning-file_creation', forms.FileFormPlanning), + ('researchaddress-file_creation', forms.FileFormResearchAddress), ('parcelspdl-file_creation', ParcelFormSet), ('generalcontractor-file_creation', forms.FileFormGeneralContractor), ('planningservice-file_creation', forms.FileFormPlanningService), + ('research-file_creation', ref_forms.FileFormResearch), ('instruction-file_creation', forms.FileFormInstruction), - ('research-file_creation', ref_forms.FileFormResearch), ('final-file_creation', ref_forms.FinalForm)], label=_(u"New file"), condition_dict={ - 'preventivetype-file_creation':\ - is_preventive('general-file_creation', models.FileType, - type_key='file_type'), - 'research-file_creation':\ - is_not_preventive('general-file_creation', models.FileType, - type_key='file_type'), + 'preventivetype-file_creation':file_creation_wizard_is_preventive, + 'preventiveplanning-file_creation':file_creation_wizard_is_preventive, + 'generalcontractor-file_creation':file_creation_wizard_is_preventive, + 'planningservice-file_creation':file_creation_wizard_is_preventive, + 'researchaddress-file_creation':file_creation_wizard_is_not_preventive, + 'research-file_creation':file_creation_wizard_is_not_preventive }, url_name='file_creation',) diff --git a/archaeological_files_pdl/wizards.py b/archaeological_files_pdl/wizards.py index 6f688d7ca..0a4ace7c8 100644 --- a/archaeological_files_pdl/wizards.py +++ b/archaeological_files_pdl/wizards.py @@ -21,7 +21,7 @@ from archaeological_files.wizards import FileWizard as BaseFileWizard class FileWizard(BaseFileWizard): parcel_step_key = 'parcelspdl-' - town_step_key = 'preventiveplanning-' + town_step_keys = ['preventiveplanning-', 'researchaddress-'] town_input_id = 'main_town' multi_towns = False wizard_templates = { diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index 7fdc26b12..01f15886d 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -39,7 +39,7 @@ class OperationWizard(Wizard): model = models.Operation object_parcel_type = 'operation' parcel_step_key = 'parcelsgeneral-' - town_step_key = 'towns-' # step contening the current(s) town(s) + town_step_keys = ['towns-'] # step contening the current(s) town(s) town_input_id = 'town' # input id of the current(s) town(s) multi_towns = True # true if current town are multi wizard_done_window = reverse_lazy('show-operation') @@ -139,10 +139,14 @@ class OperationWizard(Wizard): if file: data['PARCELS'] = self.get_available_parcels(file) else: - town_form_key = self.town_step_key + self.url_name - town_ids = self.session_get_value(town_form_key, + town_ids = [] + for town_step_key in self.town_step_keys: + town_form_key = town_step_key + self.url_name + town_ids = self.session_get_value(town_form_key, self.town_input_id, multi=self.multi_towns) or [] + if town_ids: + break if not self.multi_towns and town_ids: town_ids = [town_ids] towns = [] |