diff options
Diffstat (limited to 'archaeological_operations')
-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.") |