From e6b4bbd912c2b353e5211656a439efea0151d611 Mon Sep 17 00:00:00 2001 From: George Katsikas <giorgakis.katsikas@gmail.com> Date: Wed, 6 Mar 2024 17:36:47 +0100 Subject: [PATCH] allow multiple renewal-of subsidies --- scipost_django/finances/forms.py | 17 +++++++++++++---- scipost_django/finances/views.py | 10 ++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/scipost_django/finances/forms.py b/scipost_django/finances/forms.py index b74540c87..c642baf03 100644 --- a/scipost_django/finances/forms.py +++ b/scipost_django/finances/forms.py @@ -33,16 +33,25 @@ class SubsidyForm(forms.ModelForm): organization = forms.ModelChoiceField( queryset=Organization.objects.all(), widget=autocomplete.ModelSelect2( - url="/organizations/organization-autocomplete", attrs={"data-html": True} + url="/organizations/organization-autocomplete", + attrs={ + "data-html": True, + "style": "width: 100%", + }, ), ) - renewal_of = forms.ModelChoiceField( + renewal_of = forms.ModelMultipleChoiceField( queryset=Subsidy.objects.all(), - widget=autocomplete.ModelSelect2( - url=reverse_lazy("finances:subsidy_autocomplete") + widget=autocomplete.ModelSelect2Multiple( + url=reverse_lazy("finances:subsidy_autocomplete"), + attrs={ + "data-html": True, + "style": "width: 100%", + }, ), help_text=("Start typing, and select from the popup."), + required=False, ) class Meta: diff --git a/scipost_django/finances/views.py b/scipost_django/finances/views.py index 79e7c7c94..1846ef697 100644 --- a/scipost_django/finances/views.py +++ b/scipost_django/finances/views.py @@ -8,6 +8,7 @@ import mimetypes from dal import autocomplete from django.db.models import Q +from django.utils.html import format_html import matplotlib matplotlib.use("Agg") @@ -314,6 +315,15 @@ class SubsidyAutocompleteView(autocomplete.Select2QuerySetView): | Q(date_until__year__icontains=self.q) ) return qs + + def get_result_label(self, item): + return format_html( + "{}<br>{} -> {} [{}]", + item.organization.name, + item.date_from, + item.date_until, + item.get_status_display(), + ) class SubsidyListView(ListView): -- GitLab