summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit3c706ecd3db631350a2e59fc9bc1bca8653e2137 (patch)
tree398c2f5cc794139f363aa81117febbfbb0ab7c87
parentfa9d2d44979eea3219f36df3d50807db3ba9d446 (diff)
downloadIshtar-3c706ecd3db631350a2e59fc9bc1bca8653e2137.tar.bz2
Ishtar-3c706ecd3db631350a2e59fc9bc1bca8653e2137.zip
Files: fix parcel form - general contractor check - remove parcel formset in wizard
-rw-r--r--CHANGES.md6
-rw-r--r--archaeological_files/views.py30
-rw-r--r--archaeological_files_pdl/forms.py10
-rw-r--r--archaeological_files_pdl/views.py2
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),