diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-08-02 17:19:16 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:48 +0200 |
commit | ab48e1850c5a797d55515d0794f6efe8687a01d8 (patch) | |
tree | 9e4f111ce19af56381aee5954d258323c4a4f61a /archaeological_files/views.py | |
parent | 585f2a1e3e0576ce7fe0bf8efd973a9d419a7691 (diff) | |
download | Ishtar-ab48e1850c5a797d55515d0794f6efe8687a01d8.tar.bz2 Ishtar-ab48e1850c5a797d55515d0794f6efe8687a01d8.zip |
Preventive file: copy planned, add default cost - tests - fixtures
Diffstat (limited to 'archaeological_files/views.py')
-rw-r--r-- | archaeological_files/views.py | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/archaeological_files/views.py b/archaeological_files/views.py index 26787142f..9f45d5e08 100644 --- a/archaeological_files/views.py +++ b/archaeological_files/views.py @@ -21,7 +21,7 @@ import json import re from django.core.urlresolvers import reverse -from django.db.models import Q +from django.db.models import Q, F from django.http import HttpResponse, Http404, HttpResponseRedirect from django.forms.formsets import formset_factory from django.views.generic.edit import UpdateView @@ -489,7 +489,7 @@ class PreventiveEditView(IshtarMixin, LoginRequiredMixin, MixFormFormsetUpdateVi return context -def file_edit_preventive_add_default(request, pk): +def file_edit_preventive_add_default(request, pk, current_right=None): job_attrs = ( ("default_daily_need_on_ground", models.PreventiveFileGroundJob), ("default_daily_need", models.PreventiveFileJob), @@ -503,18 +503,36 @@ def file_edit_preventive_add_default(request, pk): "job": job, "file_id": pk, "days_planned": 1, - "man_by_day_planned": getattr(job, attr) + "man_by_day_planned": getattr(job, attr), } - job_model.create(**dct) - q = models.EquipmentServiceCost.exclude(default_quantity_by_day=0) + job_model.objects.create(**dct) + q = models.EquipmentServiceCost.objects.exclude(default_quantity_by_day=0) for cost in list(q.all()): q = models.PreventiveFileEquipmentServiceCost.objects.filter( - equipment_service_cost=cost, file_id=pk) + equipment_service_cost=cost, file_id=pk + ) if not q.count(): models.PreventiveFileEquipmentServiceCost.objects.create( - equipment_service_cost=cost, file_id=pk, + equipment_service_cost=cost, + file_id=pk, quantity_by_day_planned=cost.default_quantity_by_day, - days_planned=1 + days_planned=1, ) + return redirect(reverse("file-edit-preventive", kwargs={"pk": pk})) + +def file_edit_preventive_copy_planned(request, pk, current_right=None): + job_models = ( + models.PreventiveFileGroundJob, + models.PreventiveFileJob, + ) + for job_model in job_models: + job_model.objects.filter(file_id=pk).update( + man_by_day_worked=F("man_by_day_planned"), days_worked=F("days_planned") + ) + + models.PreventiveFileEquipmentServiceCost.objects.filter(file_id=pk).update( + quantity_by_day_worked=F("quantity_by_day_planned"), + days_worked=F("days_planned"), + ) return redirect(reverse("file-edit-preventive", kwargs={"pk": pk})) |