diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-13 06:16:52 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-25 12:06:03 +0200 |
commit | 8287e7ead4719e47e39fc48d6c1186302dcfdc16 (patch) | |
tree | 52b9b2445aca607d8e6ee6bebf0de974ec042259 | |
parent | ad6174177c495291bf039660243a3d360ff2134d (diff) | |
download | Ishtar-8287e7ead4719e47e39fc48d6c1186302dcfdc16.tar.bz2 Ishtar-8287e7ead4719e47e39fc48d6c1186302dcfdc16.zip |
Preventive forms: switch to the relevant tab after submit - disable add default button on form change
-rw-r--r-- | archaeological_files/templates/ishtar/forms/preventive_detail.html | 30 | ||||
-rw-r--r-- | archaeological_files/views.py | 14 |
2 files changed, 35 insertions, 9 deletions
diff --git a/archaeological_files/templates/ishtar/forms/preventive_detail.html b/archaeological_files/templates/ishtar/forms/preventive_detail.html index 1d743c615..9ad5c4802 100644 --- a/archaeological_files/templates/ishtar/forms/preventive_detail.html +++ b/archaeological_files/templates/ishtar/forms/preventive_detail.html @@ -16,14 +16,16 @@ </label> </div> </div> - <div class="w-100 pb-3 text-center form-group"> + <div class="w-100 pb-3 text-center form-group" id="add-default-costs-div"> <a class="btn btn-secondary btn-sm form-planned" type="button" + id="add-default-costs" href="{% url 'file-edit-preventive-default-cost' file.pk %}"> {% trans "Add default costs" %} </a> </div> - <div class="w-100 pb-3 text-center form-group"> + <div class="w-100 pb-3 text-center form-group" id="copy-planned-costs-div"> <a class="btn btn-secondary btn-sm form-worked" type="button" + id="copy-planned-costs" href="{% url 'file-edit-preventive-copy-planned' file.pk %}"> {% trans "Copy planned costs" %} </a> @@ -34,18 +36,22 @@ {% endfor %} </div> </div> +<input type="hidden" id="current_tab" name="current_tab" value="{{current_tab}}"/> {% endblock %} {# <script type='text/javascript'> #} {% block end_js %} {{block.super}} - var check_planned_value = function() { + + const check_planned_value = function() { if ($('#planned-toggle-true').is(":checked") === false){ - $(".form-planned").closest("div.form-group").hide() - $(".form-worked").closest("div.form-group").show() + $(".form-planned").closest("div.form-group").hide(); + $(".form-worked").closest("div.form-group").show(); + $("#current_tab").val("worked"); } else { - $(".form-planned").closest("div.form-group").show() - $(".form-worked").closest("div.form-group").hide() + $(".form-planned").closest("div.form-group").show(); + $(".form-worked").closest("div.form-group").hide(); + $("#current_tab").val("planned"); } }; @@ -71,8 +77,18 @@ }); }; $(document).ready(function(){ + {% if current_tab == "worked" %}$('#planned-toggle-false').click();{% endif %} $('input[type=radio][name=planned-toggle]').change(check_planned_value); $(".form-cost").change(update_units); + $(":input").change( + function(){ + $("#add-default-costs").addClass("disabled"); + $("#copy-planned-costs").addClass("disabled"); + let disabled_msg = "{% trans 'The form has changed. Submit your modifications first.' %}"; + $("#add-default-costs-div").attr("title", disabled_msg); + $("#copy-planned-costs-div").attr("title", disabled_msg); + } + ); check_planned_value(); update_units(); }); diff --git a/archaeological_files/views.py b/archaeological_files/views.py index b9c4395f5..3ed24f63b 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -452,7 +452,10 @@ class PreventiveEditView(IshtarMixin, LoginRequiredMixin, MixFormFormsetUpdateVi return inlines def get_success_url(self): - return reverse("file-edit-preventive", args=[self.object.pk]) + url = reverse("file-edit-preventive", args=[self.object.pk]) + if getattr(self, "current_tab", None): + url += "?current_tab=" + self.current_tab + return url def get_form_kwargs(self): kwargs = super(PreventiveEditView, self).get_form_kwargs() @@ -487,8 +490,13 @@ class PreventiveEditView(IshtarMixin, LoginRequiredMixin, MixFormFormsetUpdateVi flat_rates.update(form.flat_rates) context["form_unities"] = unities.items() context["form_flat_rates"] = flat_rates + context["current_tab"] = self.request.GET.get("current_tab", None) or "planned" return context + def form_valid(self, form, inline_forms): + self.current_tab = self.request.POST.get("current_tab", None) or "planned" + return super(PreventiveEditView, self).form_valid(form, inline_forms) + def file_edit_preventive_add_default(request, pk, current_right=None): job_attrs = ( @@ -536,4 +544,6 @@ def file_edit_preventive_copy_planned(request, pk, current_right=None): quantity_by_day_worked=F("quantity_by_day_planned"), days_worked=F("days_planned"), ) - return redirect(reverse("file-edit-preventive", kwargs={"pk": pk})) + return redirect( + reverse("file-edit-preventive", kwargs={"pk": pk}) + "?current_tab=worked" + ) |