diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-08-02 15:39:18 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:23:17 +0100 |
commit | dee51462642460801b57b6c896695f48d07c6acb (patch) | |
tree | 398c2f5cc794139f363aa81117febbfbb0ab7c87 | |
parent | 1562c200ca28da7b5931b9c992e803c830510499 (diff) | |
download | Ishtar-dee51462642460801b57b6c896695f48d07c6acb.tar.bz2 Ishtar-dee51462642460801b57b6c896695f48d07c6acb.zip |
Files: fix parcel form - general contractor check - remove parcel formset in wizard
-rw-r--r-- | CHANGES.md | 6 | ||||
-rw-r--r-- | archaeological_files/views.py | 30 | ||||
-rw-r--r-- | archaeological_files_pdl/forms.py | 10 | ||||
-rw-r--r-- | archaeological_files_pdl/views.py | 2 |
4 files changed, 25 insertions, 23 deletions
diff --git a/CHANGES.md b/CHANGES.md index 611ab8959..17d59f7b7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,12 +6,16 @@ date: 2022-07-27 Ishtar changelog ================ -v4.0.11 - 2022-07- +v4.0.11 - 2022-08-02 -------------------- ### Bug fix ### - Admin - custom form: fix form choice initialization +- File: + - Parcel form: fix town initialization + - Remove Parcel formset from wizard + - Fix modification when general contractor is missing v4.0.10 - 2022-07-22 -------------------- diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 061085710..cbe1a9f96 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -53,7 +53,8 @@ from archaeological_operations.wizards import OperationWizard from archaeological_operations.views import operation_creation_wizard from ishtar_common.forms_common import TownFormset -from archaeological_operations.forms import FinalAdministrativeActDeleteForm, SelectedParcelGeneralFormSet +from archaeological_operations.forms import FinalAdministrativeActDeleteForm, \ + SelectedParcelGeneralFormSet from ishtar_common.forms import ClosingDateFormSelection from . import forms, models @@ -140,7 +141,6 @@ file_creation_wizard = wizards.FileWizard.as_view( [ ("general-file_creation", forms.FileFormGeneral), ("towns-file_creation", TownFormset), - ("parcels-file_creation", forms.ParcelFormset), ("preventive-file_creation", forms.FileFormPreventive), ("research-file_creation", forms.FileFormResearch), ("final-file_creation", forms.FinalForm), @@ -162,7 +162,6 @@ file_modification_wizard = wizards.FileModificationWizard.as_view( ("selec-file_modification", forms.FileFormSelection), ("general-file_modification", forms.FileFormGeneralRO), ("towns-file_modification", TownFormset), - ("parcels-file_modification", forms.ParcelFormset), ("preventive-file_modification", forms.FileFormPreventive), ("research-file_modification", forms.FileFormResearch), ("final-file_modification", forms.FinalForm), @@ -346,11 +345,12 @@ def file_add_operation(request, pk, current_right=None): PARCEL_FORMSET_EXTRA_FORM = 3 + def file_modify_parcels(request, pk): formset_class = SelectedParcelGeneralFormSet file = models.File.objects.get(pk=pk) parcels = Parcel.objects.filter(associated_file=pk).all() - available_towns = [] + available_towns = [(town.pk, str(town)) for town in file.towns.all()] initial = [] for parcel in parcels: @@ -375,7 +375,7 @@ def file_modify_parcels(request, pk): if request.method == 'POST': new_data = dict(request.POST) - new_data = {k: new_data[k][0] for k in new_data} # convert POST to classic dict + new_data = {k: new_data[k][0] for k in new_data} # convert POST to classic dict new_data.update(data) formset = formset_class(new_data) parcel_selection = new_data.get('_parcel_selection', None) @@ -383,7 +383,6 @@ def file_modify_parcels(request, pk): if parcel_selection: selected_town = new_data.get("_town") _parcels = parse_parcels(parcel_selection) - existant_parcel = None for p in _parcels: p_year = p["year"] @@ -391,7 +390,8 @@ def file_modify_parcels(request, pk): p_parcel_number = p["parcel_number"] p_town = models.Town.objects.get(pk=int(selected_town)) q = Parcel.objects.filter( - section=p_section, parcel_number=p_parcel_number, town=p_town, associated_file=file + section=p_section, parcel_number=p_parcel_number, town=p_town, + associated_file=file ) nb = q.count() # parcels_who_cant_be_deleted = 0 @@ -416,7 +416,7 @@ def file_modify_parcels(request, pk): added_parcel.save() # if parcels_who_cant_be_deleted > 0: # raise ValidationError(str(parcels_who_cant_be_deleted) + " parcels could not be created because there already exists.") - return redirect(reverse("operation-parcels-modify", args=[pk])) + return redirect(reverse("file-parcels-modify", args=[pk])) if formset.is_valid(): for data in formset.cleaned_data: @@ -451,13 +451,13 @@ def file_modify_parcels(request, pk): current_parcel.public_domain = data.get("public_domain") current_parcel.save() else: - parcel_to_add = Parcel.objects.create( - year = data.get("year"), - section = data.get("section"), - parcel_number = data.get("parcel_number"), - town = models.Town.objects.get(pk=int(data.get("town"))), - public_domain = data.get("public_domain"), - associated_file = file, + Parcel.objects.create( + year=data.get("year"), + section=data.get("section"), + parcel_number=data.get("parcel_number"), + town=models.Town.objects.get(pk=int(data.get("town"))), + public_domain=data.get("public_domain"), + associated_file=file, ) return redirect(reverse("file-parcels-modify", args=[pk])) else: diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index 18940f2d5..58480a36b 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -330,11 +330,11 @@ class FileFormGeneralContractor(CustomForm, ManageOldType): ) def clean(self): - general_contractor = self.cleaned_data["general_contractor"] - corporation_general_contractor = self.cleaned_data[ - "corporation_general_contractor" - ] - if general_contractor: + general_contractor = self.cleaned_data.get("general_contractor", None) + corporation_general_contractor = self.cleaned_data.get( + "corporation_general_contractor", None + ) + if general_contractor and corporation_general_contractor: try: person = models.Person.objects.get(pk=general_contractor) except models.Person.DoesNotExist: diff --git a/archaeological_files_pdl/views.py b/archaeological_files_pdl/views.py index a0c5720d1..717f945cf 100644 --- a/archaeological_files_pdl/views.py +++ b/archaeological_files_pdl/views.py @@ -42,7 +42,6 @@ file_creation_wizard = FileWizard.as_view( ("preventivetype-file_creation", forms.FileFormPreventiveType), ("preventiveplanning-file_creation", forms.FileFormPlanning), ("researchaddress-file_creation", forms.FileFormResearchAddress), - ("parcelspdl-file_creation", ref_forms.ParcelFormset), ("generalcontractor-file_creation", forms.FileFormGeneralContractor), ("planningservice-file_creation", forms.FileFormPlanningService), ("research-file_creation", ref_forms.FileFormResearch), @@ -74,7 +73,6 @@ file_modification_wizard = FileModificationWizard.as_view( ("preventivetype-file_modification", forms.FileFormPreventiveType), ("preventiveplanning-file_modification", forms.FileFormPlanning), ("researchaddress-file_modification", forms.FileFormResearchAddress), - ("parcelspdl-file_modification", ref_forms.ParcelFormset), ("generalcontractor-file_modification", forms.FileFormGeneralContractor), ("planningservice-file_modification", forms.FileFormPlanningService), ("research-file_modification", ref_forms.FileFormResearch), |