Repository URL to install this package:
|
Version:
0.0.1 ▾
|
dj-kaos-utils
/
filters.py
|
|---|
from django.contrib import admin
class GenericBooleanAdminFilter(admin.SimpleListFilter):
default_value = 'All'
filter_kwargs = {
'yes': None,
'no': None,
}
def lookups(self, request, model_admin):
return (
('yes', "Yes"),
('no', "No"),
)
def filter_yes(self, request, queryset):
if self.filter_kwargs.get('yes'):
return queryset.filter(**self.filter_kwargs['yes']).distinct()
raise NotImplementedError
def filter_no(self, request, queryset):
if self.filter_kwargs.get('no'):
return queryset.filter(**self.filter_kwargs['no']).distinct()
raise NotImplementedError
def queryset(self, request, queryset):
value = self.value() or self.default_value
if value == 'yes':
return self.filter_yes(request, queryset)
if value == 'no':
return self.filter_no(request, queryset)
return queryset