diff options
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}))  | 
