summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit8287e7ead4719e47e39fc48d6c1186302dcfdc16 (patch)
tree52b9b2445aca607d8e6ee6bebf0de974ec042259
parentad6174177c495291bf039660243a3d360ff2134d (diff)
downloadIshtar-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.html30
-rw-r--r--archaeological_files/views.py14
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"
+ )