From 1e5a995917ede6ad17157fabccae4689a5110400 Mon Sep 17 00:00:00 2001 From: wangruidong <940853815@qq.com> Date: Wed, 2 Jul 2025 16:56:39 +0800 Subject: [PATCH] fix: Ticket filter error --- apps/tickets/const.py | 1 + apps/tickets/filters.py | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/apps/tickets/const.py b/apps/tickets/const.py index 99e308a87..8c55291bf 100644 --- a/apps/tickets/const.py +++ b/apps/tickets/const.py @@ -14,6 +14,7 @@ class TicketType(TextChoices): class TicketState(TextChoices): + all = 'all', _('All') pending = 'pending', _('Open') closed = 'closed', _("Cancel") approved = 'approved', _('Approved') diff --git a/apps/tickets/filters.py b/apps/tickets/filters.py index edfba460d..8d4c8a824 100644 --- a/apps/tickets/filters.py +++ b/apps/tickets/filters.py @@ -14,6 +14,7 @@ class TicketFilter(BaseFilterSet): relevant_asset = filters.CharFilter(method='filter_relevant_asset') relevant_command = filters.CharFilter(method='filter_relevant_command') applicant_username_name = filters.CharFilter(method='filter_applicant_username_name') + state = filters.CharFilter(method='filter_state') class Meta: model = Ticket @@ -65,6 +66,11 @@ class TicketFilter(BaseFilterSet): Q(applicant__username__icontains=value) ) + def filter_state(self, queryset, name, value): + if value == 'all': + return queryset + return queryset.filter(state=value) + class ApplyAssetTicketFilter(BaseFilterSet): class Meta: