diff options
| -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" +    ) | 
