diff options
-rw-r--r-- | archaeological_operations/models.py | 2 | ||||
-rw-r--r-- | archaeological_operations/templates/ishtar/forms/operation_modify_parcels.html | 80 | ||||
-rw-r--r-- | archaeological_operations/urls.py | 2 | ||||
-rw-r--r-- | archaeological_operations/views.py | 81 |
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">×</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 |