diff --git a/scipost_django/finances/forms.py b/scipost_django/finances/forms.py index 45241102186c09c547a73918d4f94ba67811def5..d64a3450900c1c32ddeb4e7a8ebb9ae5c97a9dda 100644 --- a/scipost_django/finances/forms.py +++ b/scipost_django/finances/forms.py @@ -305,12 +305,7 @@ class SubsidyAttachmentInlineLinkForm(forms.ModelForm): subsidy = forms.ModelChoiceField( queryset=Subsidy.objects.all(), widget=HTMXDynSelWidget( - dynsel_context={ - "results_page_url": reverse_lazy( - "finances:_hx_dynsel_subsidy_result_page" - ), - "collection_name": "subsidies", - } + url=reverse_lazy("finances:subsidy_autocomplete"), ), help_text=("Start typing, and select from the popup."), required=False, @@ -357,8 +352,8 @@ class SubsidyAttachmentInlineLinkForm(forms.ModelForm): ) ) - def clean_subsidy(self): - return + # def clean_subsidy(self): + # return def clean(self): return self.cleaned_data diff --git a/scipost_django/finances/managers.py b/scipost_django/finances/managers.py index b6b19719a4661259b1f5910d863fcf0594148f9c..0ca66ae7cd6979a20b7da40f4fc320eb0a4fa636 100644 --- a/scipost_django/finances/managers.py +++ b/scipost_django/finances/managers.py @@ -31,7 +31,7 @@ class SubsidyAttachmentQuerySet(models.QuerySet): return self.filter(kind=self.model.KIND_PROOF_OF_PAYMENT) def orphaned(self): - return self.filter(subsidy__isnull=True) + return self.filter(subsidy__isnull=True).order_by("date") def unattached(self): return self.filter( diff --git a/scipost_django/finances/templates/finances/_hx_subsidyattachment_list_item.html b/scipost_django/finances/templates/finances/_hx_subsidyattachment_list_item.html index 52affdfe214b7c29a80d52fb63f627cdcf68cb06..03c4d54fddb67a9661a356bd3803a327b088533d 100644 --- a/scipost_django/finances/templates/finances/_hx_subsidyattachment_list_item.html +++ b/scipost_django/finances/templates/finances/_hx_subsidyattachment_list_item.html @@ -24,7 +24,7 @@ </div> <div class="col-12" hx-get="{% url "finances:_hx_subsidyattachment_link_form" attachment_id=attachment.id %}" - hx-trigger="revealed once"> + hx-trigger="intersect once"> <div class="spinner-grow spinner-grow-sm ms-2" role="status" aria-hidden="true"></div> diff --git a/scipost_django/finances/urls.py b/scipost_django/finances/urls.py index 82cb880713f770d3b601a06c887d3b7f43319079..a02edce4df5510dd641d4d71974b010491dd9d8d 100644 --- a/scipost_django/finances/urls.py +++ b/scipost_django/finances/urls.py @@ -112,20 +112,10 @@ urlpatterns = [ name="subsidy_delete", ), path( - "subsidies/autocomplete/", - views.SubsidyAutocompleteView.as_view(), + "subsidies/autocomplete", + views.HXDynselSubsidyAutocomplete.as_view(), name="subsidy_autocomplete", ), - path( - "subsidies/_hx_dynsel_/page", - views.HXDynselSubsidyResultPage.as_view(), - name="_hx_dynsel_subsidy_result_page", - ), - path( - "subsidies/_hx_dynsel/select_option", - views.HXDynselSubsidySelectOption.as_view(), - name="_hx_dynsel_subsidy_select_option", - ), path( "subsidies/<int:pk>/", views.SubsidyDetailView.as_view(), name="subsidy_details" ), diff --git a/scipost_django/finances/views.py b/scipost_django/finances/views.py index 6560331e66d6dec89810f7be03922acaeca4fa3a..8fbb98a1874530e0ce26affa719ca8d625519c4e 100644 --- a/scipost_django/finances/views.py +++ b/scipost_django/finances/views.py @@ -15,7 +15,7 @@ from django.template.response import TemplateResponse from django.utils.html import format_html import matplotlib -from common.views import HXDynselResultPage, HXDynselSelectOptionView +from common.views import HXDynselAutocomplete, HXDynselSelectOptionView from finances.constants import SUBSIDY_TYPE_SPONSORSHIPAGREEMENT, SUBSIDY_PROMISED matplotlib.use("Agg") @@ -720,10 +720,8 @@ def _hx_subsidyattachment_link_form(request, attachment_id): ) -class HXDynselSubsidyResultPage(HXDynselResultPage): +class HXDynselSubsidyAutocomplete(HXDynselAutocomplete): model = Subsidy - collection_name = "subsidies" - obj_select_option_url = reverse_lazy("finances:_hx_dynsel_subsidy_select_option") def search(self, queryset, q): return queryset.filter( @@ -737,10 +735,6 @@ class HXDynselSubsidyResultPage(HXDynselResultPage): ) -class HXDynselSubsidySelectOption(HXDynselSelectOptionView): - model = Subsidy - - def subsidy_attachment(request, attachment_id): attachment = get_object_or_404(SubsidyAttachment.objects, id=attachment_id) if not (request.user.is_authenticated and attachment.visible_to_user(request.user)):