diff options
author | Cefin <kevon@tuta.io> | 2022-02-18 12:17:20 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:21:00 +0100 |
commit | c7a400871bb522de4e335932e44ee06097dd8a5f (patch) | |
tree | 1223b24d98968e44535a5ab4b663f2237741cccd | |
parent | fe3a9614d49c9fad1a2a9faea7cba5cc22941b27 (diff) | |
download | Ishtar-c7a400871bb522de4e335932e44ee06097dd8a5f.tar.bz2 Ishtar-c7a400871bb522de4e335932e44ee06097dd8a5f.zip |
Operation - Parcels - Modify: adding verification (operation) for selection_form #5227
-rw-r--r-- | archaeological_operations/views.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 65ad0e2ae..6208e7265 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -28,7 +28,7 @@ from django.urls import reverse from django.views.generic import RedirectView from ishtar_common.utils import ugettext_lazy as _, pgettext_lazy from archaeological_operations.utils import parse_parcels -from django.forms import formset_factory +from django.forms import formset_factory, ValidationError from archaeological_operations import models from archaeological_operations import forms @@ -459,15 +459,21 @@ def operation_modify_parcels(request, pk): p_section = p["section"] p_parcel_number = p["parcel_number"] p_town = models.Town.objects.get(pk=int(selected_town)) - - try: - existant_parcel = models.Parcel.objects.get( - section=p_section, parcel_number=p_parcel_number, town=p_town - ) - except models.Parcel.DoesNotExist: + q = models.Parcel.objects.filter( + section=p_section, parcel_number=p_parcel_number, town=p_town, operation=operation + ) + nb = q.count() + # parcels_who_cant_be_deleted = 0 + + if nb > 1: # if duplicates parcels, keep just one + while nb > 1: + for d in q: + d.delete() + nb -= 1 + elif nb == 1: + # parcels_who_cant_be_deleted += 1 pass - - if existant_parcel is None: + else: added_parcel = models.Parcel.objects.create( section = p_section, parcel_number = p_parcel_number, @@ -477,12 +483,12 @@ def operation_modify_parcels(request, pk): added_parcel.year = p_year added_parcel.save() operation.parcels.add(added_parcel) + # 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])) - print(new_data) if formset.is_valid(): for data in formset.cleaned_data: - print("Data : ", data) if (not data.get('parcel_number') or not data.get('section')) and \ not data.get('public_domain'): continue @@ -499,7 +505,6 @@ def operation_modify_parcels(request, pk): for key, value in data.items(): if key == "DELETE" and value is True: - print("Je passe dans le delete") parcel_associated_by_context_record = ContextRecord.objects.filter(parcel=current_parcel.pk).all() if parcel_associated_by_context_record.count() > 0: raise ValidationError("This parcel is associated with a context record. It can't be deleted.") |