summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_operations/views.py35
1 files changed, 24 insertions, 11 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 0864bd1f9..65ad0e2ae 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -452,18 +452,31 @@ def operation_modify_parcels(request, pk):
if parcel_selection:
selected_town = new_data.get("_town")
_parcels = parse_parcels(parcel_selection)
- print("Parcel_Selection ", _parcels)
- print("Selected_Town ", selected_town)
+ existant_parcel = None
+
for p in _parcels:
- print(p)
- added_parcel = models.Parcel.objects.create(
- year = int(p["year"]),
- section = p["section"],
- parcel_number = p["parcel_number"],
- town = models.Town.objects.get(pk=int(selected_town)),
- # public_domain = parcel["public_domain"]
- )
- operation.parcels.add(added_parcel)
+ p_year = p["year"]
+ 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:
+ pass
+
+ if existant_parcel is None:
+ added_parcel = models.Parcel.objects.create(
+ section = p_section,
+ parcel_number = p_parcel_number,
+ town = p_town,
+ )
+ if p_year:
+ added_parcel.year = p_year
+ added_parcel.save()
+ operation.parcels.add(added_parcel)
return redirect(reverse("operation-parcels-modify", args=[pk]))
print(new_data)