SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 7c3529ec authored by George Katsikas's avatar George Katsikas :goat:
Browse files

add none choices for subsidy payment attachments

parent 19e6c3fc
No related branches found
No related tags found
No related merge requests found
...@@ -240,15 +240,26 @@ class SubsidyPaymentForm(forms.ModelForm): ...@@ -240,15 +240,26 @@ class SubsidyPaymentForm(forms.ModelForm):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.fields["subsidy"].initial = subsidy self.fields["subsidy"].initial = subsidy
self.fields["subsidy"].widget = forms.HiddenInput() self.fields["subsidy"].widget = forms.HiddenInput()
print(subsidy.attachments.invoices())
self.fields["invoice"].choices = [ invoice_qs = subsidy.attachments.unattached().invoices()
(att.id, f"{att.attachment.name.split('/')[-1]}") if self.instance.invoice:
for att in subsidy.attachments.invoices() invoice_qs |= SubsidyAttachment.objects.filter(id=self.instance.invoice.id)
self.fields["invoice"].initial = self.instance.invoice.id
proofs_qs = subsidy.attachments.unattached().proofs_of_payment()
if self.instance.proof_of_payment:
proofs_qs |= SubsidyAttachment.objects.filter(
id=self.instance.proof_of_payment.id
)
self.fields["proof_of_payment"].initial = self.instance.proof_of_payment.id
self.fields["invoice"].choices = [(None, "---")] + [
(att.id, f"{att.attachment.name.split('/')[-1]}") for att in invoice_qs
] ]
self.fields["proof_of_payment"].choices = [ self.fields["proof_of_payment"].choices = [(None, "---")] + [
(att.id, f"{att.attachment.name.split('/')[-1]}") (att.id, f"{att.attachment.name.split('/')[-1]}") for att in proofs_qs
for att in subsidy.attachments.proofs_of_payment()
] ]
self.helper = FormHelper() self.helper = FormHelper()
self.helper.layout = Layout( self.helper.layout = Layout(
Field("subsidy"), Field("subsidy"),
...@@ -278,10 +289,8 @@ class SubsidyPaymentForm(forms.ModelForm): ...@@ -278,10 +289,8 @@ class SubsidyPaymentForm(forms.ModelForm):
def save(self, commit=True): def save(self, commit=True):
instance = super().save(commit=False) instance = super().save(commit=False)
if invoice := self.cleaned_data["invoice"]: instance.invoice = self.cleaned_data["invoice"] or None
instance.invoice = invoice instance.proof_of_payment = self.cleaned_data["proof_of_payment"] or None
if proof_of_payment := self.cleaned_data["proof_of_payment"]:
instance.proof_of_payment = proof_of_payment
if commit: if commit:
instance.save() instance.save()
return instance return instance
......
...@@ -33,6 +33,12 @@ class SubsidyAttachmentQuerySet(models.QuerySet): ...@@ -33,6 +33,12 @@ class SubsidyAttachmentQuerySet(models.QuerySet):
def orphaned(self): def orphaned(self):
return self.filter(subsidy__isnull=True) return self.filter(subsidy__isnull=True)
def unattached(self):
return self.filter(
models.Q(proof_of_payment_for__isnull=True)
& models.Q(invoice_for__isnull=True)
)
class PubFracQuerySet(models.QuerySet): class PubFracQuerySet(models.QuerySet):
def uncompensated(self): def uncompensated(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment