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 | 53287009b6a6857a1141f77c02d7b08fb9691ee5 (patch) | |
| tree | 1223b24d98968e44535a5ab4b663f2237741cccd | |
| parent | fa6a708e9953d6f243cc369ed1e139bf78043549 (diff) | |
| download | Ishtar-53287009b6a6857a1141f77c02d7b08fb9691ee5.tar.bz2 Ishtar-53287009b6a6857a1141f77c02d7b08fb9691ee5.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.")  | 
