diff options
author | Cefin <kevon@tuta.io> | 2022-01-26 16:41:24 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-12-12 12:20:59 +0100 |
commit | 26a24db67805c68ce7c738d4f2a9c6b145f6f836 (patch) | |
tree | d266bfc184bb1a1dd52c17c759dfaceac67360fe /archaeological_operations/views.py | |
parent | f1f9d2f5de328dec8fbd51bd9fb3ab92c6f05df5 (diff) | |
download | Ishtar-26a24db67805c68ce7c738d4f2a9c6b145f6f836.tar.bz2 Ishtar-26a24db67805c68ce7c738d4f2a9c6b145f6f836.zip |
Operation - Parcels - Modify: Temporary WIP on post #5227
Diffstat (limited to 'archaeological_operations/views.py')
-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]) }) |