diff options
| -rw-r--r-- | archaeological_operations/views.py | 47 | 
1 files changed, 35 insertions, 12 deletions
| diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index a40f8f9ef..5a3cf1112 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -419,25 +419,47 @@ def operation_modify_parcels(request, pk):      for town in operation.towns.all():          available_towns.append((town.id, town.name)) -    if request.method == 'POST':  #TODO -        print(request.POST) -        formset = formset_class(request.POST or None, request.FILES or None) +    if request.method == 'POST': +        formset = formset_class(request.POST, request.FILES) +        print(formset.non_form_errors()) +          if formset.is_valid(): +            print(formset.non_form_errors())              print(formset.cleaned_data) -            post_data = request.POST.copy() - -            for key in post_data.keys(): -                if key.endswith("-DELETE"): -                    post_data.pop(key) +            post_data = [form.cleaned_data for form in formset] +            for data in post_data: +                for key, value in data.items(): +                    print(str(key) + " -> " +  str(value) + "\n") +                    if key == "DELETE" and value == True: +                        post_data.pop(key) + +                current_parcel = models.Parcel.objects.get(pk=post_data.get["pk"]) +                if current_parcel: +                    current_parcel.year = post_data.get["year"] +                    current_parcel.section = post_data.get["section"] +                    current_parcel.parcel_number = post_data.get["parcel_number"] +                    current_parcel.town = post_data.get["town"] +                    current_parcel.save() +                else: +                    parcel_to_add = models.Parcel.objects.create( +                        year = post_data.get["year"], +                        section = post_data.get["section"], +                        parcel_number = post_data.get["parcel_number"], +                        town = post_data.get["town"] +                    ) +                    operation.parcels.add(parcel_to_add) -            request.POST = post_data -            formset_class(request.POST).save() +            #  request.POST = post_data +            #  formset_class(request.POST).save()          else: +            print(formset.non_form_errors()) +            print("je passe ici")              formset = formset_class()      else:          initial = [] -        for parcel in parcels: -            town = models.Town.objects.get(pk=parcel.town_id) +        if parcels: +            for parcel in parcels: +                town = models.Town.objects.get(pk=parcel.town_id)              initial.append({                  "pk": parcel.pk,                  "town": town.pk, @@ -462,6 +484,7 @@ def operation_modify_parcels(request, pk):      return render(request, 'ishtar/forms/operation_modify_parcels.html', {          'formset': formset, +        'url': reverse("operation-parcels-modify", args=[pk])      }) | 
