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: