summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/views.py29
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.")