From aae75ce291a7c99c7c36ed062f1380b8ad2c9a91 Mon Sep 17 00:00:00 2001 From: Christian Merten Date: Sun, 9 Nov 2025 23:27:25 +0100 Subject: [PATCH] perf(finance/admin): remove `is_valid` from list view (#9) The new unified statement view is very slow in production. This is caused by the computation of `is_valid` for every entry of the list, which entails at least one database query per row. Instead of removing the `is_valid` field from the list view, we could prefetch the related fields, but I don't think the `is_valid` provides any noticeable benefit anyway. We also add pagination to the statement view. --- jdav_web/finance/admin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/jdav_web/finance/admin.py b/jdav_web/finance/admin.py index 308e9e3..be05fdf 100644 --- a/jdav_web/finance/admin.py +++ b/jdav_web/finance/admin.py @@ -65,11 +65,12 @@ def decorate_statement_view(model, perm=None): @admin.register(Statement) class StatementAdmin(CommonAdminMixin, admin.ModelAdmin): fields = ['short_description', 'explanation', 'excursion', 'status'] - list_display = ['__str__', 'total_pretty', 'created_by', 'submitted_date', 'is_valid', 'status_badge'] + list_display = ['__str__', 'total_pretty', 'created_by', 'submitted_date', 'status_badge'] list_filter = ['status'] search_fields = ('excursion__name', 'short_description') ordering = ['-submitted_date'] inlines = [BillOnStatementInline] + list_per_page = 25 def has_change_permission(self, request, obj=None): if obj is None: