Changeset View
Changeset View
Standalone View
Standalone View
looper/admin/filters.py
| """Custom filters for looper admin.""" | """Custom filters for looper admin.""" | ||||
| from django.contrib.admin import FieldListFilter | from django.contrib.admin import FieldListFilter, ChoicesFieldListFilter | ||||
| from django.contrib.admin.options import IncorrectLookupParameters | from django.contrib.admin.options import IncorrectLookupParameters | ||||
| from django.core.exceptions import ImproperlyConfigured | from django.core.exceptions import ImproperlyConfigured | ||||
| from django.db import models | from django.db import models | ||||
| from django.utils.translation import gettext_lazy as _ | from django.utils.translation import gettext_lazy as _ | ||||
| class EmptyFieldListFilter(FieldListFilter): | class EmptyFieldListFilter(FieldListFilter): | ||||
| def __init__(self, field, request, params, model, model_admin, field_path): | def __init__(self, field, request, params, model, model_admin, field_path): | ||||
| Show All 33 Lines | def choices(self, changelist): | ||||
| ('1', _('Empty')), | ('1', _('Empty')), | ||||
| ('0', _('Not empty')), | ('0', _('Not empty')), | ||||
| ): | ): | ||||
| yield { | yield { | ||||
| 'selected': self.lookup_val == lookup, | 'selected': self.lookup_val == lookup, | ||||
| 'query_string': changelist.get_query_string({self.lookup_kwarg: lookup}), | 'query_string': changelist.get_query_string({self.lookup_kwarg: lookup}), | ||||
| 'display': title, | 'display': title, | ||||
| } | } | ||||
| class ChoicesFieldNoAllListFilter(ChoicesFieldListFilter): | |||||
| def choices(self, *args, **kwargs): | |||||
| choices = super().choices(*args, **kwargs) | |||||
| return (choice for choice in choices if str(choice['display']) != 'All') | |||||