diff options
| -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.") | 
