diff options
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r-- | archaeological_operations/views.py | 35 |
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) |