diff options
| -rw-r--r-- | archaeological_files/forms.py | 13 | ||||
| -rw-r--r-- | archaeological_files/models.py | 4 | 
2 files changed, 15 insertions, 2 deletions
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 1958cb2ae..d6ce59b28 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -686,7 +686,13 @@ class PreventiveFileGenJobForm(PreventiveFileForm):          current_value = None          if hasattr(self.instance, "job") and self.instance.job:              current_value = self.instance.job -        self.fields["job"].choices = models.Job.get_choices(current_value) +        price_agreement_id = None +        q = models.File.objects.filter(pk=self.file_id).values("price_agreement_id") +        if q.count(): +            price_agreement_id = q.all()[0]["price_agreement_id"] +        self.fields["job"].choices = models.Job.get_choices( +            current_value, price_agreement_id=price_agreement_id +        )      def save(self, commit=True):          item = super().save(commit=True) @@ -796,9 +802,14 @@ class PreventiveFileEquipmentServiceForm(PreventiveFileForm):      def __init__(self, *args, **kwargs):          super(PreventiveFileEquipmentServiceForm, self).__init__(*args, **kwargs) +        price_agreement_id = None +        q = models.File.objects.filter(pk=self.file_id).values("price_agreement_id") +        if q.count(): +            price_agreement_id = q.all()[0]["price_agreement_id"]          q = models.EquipmentServiceCost.objects.filter(              available=True,              parent__isnull=True, +            price_agreement_id=price_agreement_id,              equipment_service_type__generic_equipment_type__txt_idx=self.type_filter,          ) diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 60f9882fe..829c8c550 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -126,11 +126,13 @@ class Job(GeneralType):          return lbl      @classmethod -    def get_choices(cls, current_value): +    def get_choices(cls, current_value, price_agreement_id=None):          q = cls.objects.filter(              available=True,              parents__isnull=True,          ) +        if price_agreement_id: +            q = q.filter(price_agreement=price_agreement_id)          permanent = [(j.pk, str(j)) for j in q.filter(permanent_contract=True).all()]          fixed_term = [(j.pk, str(j)) for j in q.filter(permanent_contract=False).all()]          if current_value:  | 
