summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCefin <kevon@tuta.io>2021-12-21 15:48:56 +0000
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-12-12 12:20:59 +0100
commitbdf926910d290b7a6628326d709c0dc6d26c732f (patch)
tree41bdd168e0be02b4a2d45748305bfe65666264e1
parenta06a19778ef0423e29cb423a01a677fc3242f0da (diff)
downloadIshtar-bdf926910d290b7a6628326d709c0dc6d26c732f.tar.bz2
Ishtar-bdf926910d290b7a6628326d709c0dc6d26c732f.zip
Operation - Parcels - Modify - work in progress, attempt to manage formsets with view for #5227
-rw-r--r--archaeological_operations/models.py2
-rw-r--r--archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html80
-rw-r--r--archaeological_operations/urls.py2
-rw-r--r--archaeological_operations/views.py81
4 files changed, 121 insertions, 44 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 5845a5c46..5c637aacf 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1696,7 +1696,7 @@ class Operation(
"fa fa-pencil",
_("Parcels"),
"",
- False,
+ True,
),
]
can_add_cr = self.can_do(request, "add_contextrecord")
diff --git a/archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html b/archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html
index 226f993d7..64619a6f4 100644
--- a/archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html
+++ b/archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html
@@ -1,8 +1,72 @@
-<form method="post">
- {{ formset.management_form }}
- <table>
- {% for form in formset %}
- {{ form }}
- {% endfor %}
- </table>
-</form>
+{% load i18n inline_formset table_form %}
+
+<div class="modal-dialog modal-lg">
+ <div class="modal-content">
+ <div class="modal-header">
+ <h2>{{ formset.form_label }}</h2>
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+ <span aria-hidden="true">&times;</span>
+ </button>
+ </div>
+ <form enctype="multipart/form-data" action="{{url}}" method="post" id="{{ formset.form_slug }}">
+ {% csrf_token %}
+ <div class="modal-body body-scroll">
+ <div class='form'>
+ {% block main_form %}
+ {{ formset.management_form }}
+ {{ formset_general.management_form }}
+ {% if formset.non_form_errors %}
+ {{ formset.non_form_errors }}
+ {% endif %}
+ <table>
+ {% for form in formset %}
+ <th></th>
+ <tr>
+ <td>{{ form }}</td>
+ </tr>
+ {% endfor %}
+ </table>
+
+ <table>
+ {% for form_g in formset_general %}
+ <th></th>
+ <tr>
+ <td>{{ form_g }}</td>
+ </tr>
+ {% endfor %}
+ </table>
+ {% endblock %}
+ </div>
+ </div>
+ <div class="modal-footer">
+ {% block footer %}
+ <button type="submit" id="submit_form" name='validate'
+ value="validate" class="btn btn-success">
+ {% if action_name %}
+ {{ action_name }}
+ {% else %}
+ {% trans "Add/Modify" %}
+ {% endif %}
+ </button>
+ <button type="button" data-dismiss="modal"
+ aria-label="Close" class="btn btn-secondary">
+ {% trans "Cancel" %}
+ </button>
+ {% endblock %}
+ </div>
+ </form>
+ </div>
+</div>
+<script type="text/javascript">
+ {% block js %}
+ {% endblock %}
+ $(document).ready(function(){
+ {% if slug %}
+ qa_action_register("{{url}}", "{{slug}}");
+ {% else %}
+ qa_action_register("{{url}}");
+ {% endif %}
+ {% block js_ready %}
+ {% endblock %}
+ });
+</script>
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index 1efbff107..c6ecc3281 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -299,7 +299,7 @@ urlpatterns = [
),
url(
r"^operation-parcels-modify/(?P<pk>.+)/$",
- views.ParcelFormView.as_view(),
+ views.operation_modify_parcels,
name="operation-parcels-modify",
),
url(
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 77d0c8f24..c3442b5b5 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -31,7 +31,12 @@ from django.forms import formset_factory
from archaeological_operations import models
from archaeological_operations import forms
-from archaeological_operations.forms import SelectedParcelForm, ParcelFormSet, SelectedParcelFormSet
+from archaeological_operations.forms import (
+ SelectedParcelForm,
+ ParcelFormSet,
+ SelectedParcelFormSet,
+ SelectedParcelGeneralFormSet,
+)
from archaeological_operations import wizards
from ishtar_common.forms import ClosingDateFormSelection, FinalForm, FinalDeleteForm
from ishtar_common.models import (
@@ -408,40 +413,48 @@ def operation_delete(request, pk):
return redirect(reverse(wizard_url, kwargs={"step": "final-" + wizard_url}))
-# def operation_modify_parcels(request, pk):
-# for form in SelectedParcelFormSet():
-# print(form)
-# formset = ''
-# if request.method == 'POST':
-# formset = SelectedParcelFormSet(request.POST, request.FILES)
-# print(formset)
-# if formset.is_valid():
-# for form in formset:
-# print(form)
-# else:
-# formset = SelectedParcelFormSet()
-# return render(request, 'ishtar/forms/operation_modify_parcels.html', {'formset': formset})
-
-
-class ParcelFormView(QAItemForm):
- template_name = 'ishtar/forms/operation_modify_parcels.html'
- form_class = SelectedParcelFormSet
- base_url = "operation-parcels-modify"
- model = models.Operation
-
- def get_form_kwargs(self):
- kwargs = super(ParcelFormView, self).get_form_kwargs()
- kwargs["user"] = self.request.user
- return kwargs
-
- def form_valid(self, form):
- form.save()
- return HttpResponseRedirect(reverse("success"))
+def operation_modify_parcels(request, pk):
+ formset = None
+ parcels = models.Parcel.objects.filter(operation=pk).all()
- def get_context_data(self, **kwargs):
- data = super(ParcelFormView, self).get_context_data(**kwargs)
- data["action_name"] = _("Modify parcels")
- return data
+ if request.method == 'POST': #TODO
+ formset = SelectedParcelFormSet(request.POST, request.FILES)
+ if formset.is_valid():
+ pass
+ else:
+ formset = SelectedParcelFormSet
+ else:
+ data = [{
+ 'parcels': parcel,
+ 'selected_town': parcel.town
+ } for parcel in parcels]
+ formset = SelectedParcelFormSet(initial=data)
+ formset_general = SelectedParcelGeneralFormSet(initial=data)
+ return render(request, 'ishtar/forms/operation_modify_parcels.html', {
+ 'formset': formset,
+ 'formset_general': formset_general,
+ })
+
+
+# class ParcelFormView(QAItemForm):
+# template_name = 'ishtar/forms/operation_modify_parcels.html'
+# form_class = SelectedParcelFormSet
+# base_url = "operation-parcels-modify"
+# model = models.Operation
+#
+# def get_form_kwargs(self):
+# kwargs = super(ParcelFormView, self).get_form_kwargs()
+# kwargs["user"] = self.request.user
+# return kwargs
+#
+# def form_valid(self, form):
+# form.save()
+# return HttpResponseRedirect(reverse("success"))
+#
+# def get_context_data(self, **kwargs):
+# data = super(ParcelFormView, self).get_context_data(**kwargs)
+# data["action_name"] = _("Modify parcels")
+# return data
# archaeological sites