add custom filter that has a default field

v1-0-stable
Christian Merten 8 years ago
parent 8d707b8cbc
commit 1b8e952866

@ -21,13 +21,52 @@ from django.conf import settings
from easy_select2 import apply_select2 from easy_select2 import apply_select2
class RegistrationFilter(admin.SimpleListFilter):
title = _('Registration complete')
parameter_name = 'registered'
default_value = ('All', None)
def lookups(self, request, model_admin):
return (
('True', _('True')),
('False', _('False')),
('All', _('All'))
)
def queryset(self, request, queryset):
if self.value() == 'True':
return queryset.filter(registered=True)
elif self.value() == 'False':
return queryset.filter(registered=False)
elif self.value() is None:
if self.default_value[1] is None:
return queryset
else:
return queryset.filter(registered=self.default_value[1])
elif self.value() == 'All':
return queryset
def choices(self, cl):
for lookup, title in self.lookup_choices:
yield {
'selected':
self.value() == lookup or
(self.value() is None and lookup == self.default_value[0]),
'query_string': cl.get_query_string({
self.parameter_name:
lookup,
}, []),
'display': title
}
# Register your models here. # Register your models here.
class MemberAdmin(admin.ModelAdmin): class MemberAdmin(admin.ModelAdmin):
fields = ['prename', 'lastname', 'email', 'email_parents', 'street', 'town', 'phone_number', 'phone_number_parents', 'birth_date', 'group', fields = ['prename', 'lastname', 'email', 'email_parents', 'street', 'town', 'phone_number', 'phone_number_parents', 'birth_date', 'group',
'gets_newsletter', 'registered', 'registration_form', 'comments'] 'gets_newsletter', 'registered', 'registration_form', 'comments']
list_display = ('name', 'birth_date', 'get_group', 'gets_newsletter', list_display = ('name', 'birth_date', 'get_group', 'gets_newsletter',
'registered', 'created', 'comments') 'registered', 'created', 'comments')
list_filter = ('group', 'gets_newsletter', 'registered') list_filter = ('group', 'gets_newsletter', RegistrationFilter)
formfield_overrides = { formfield_overrides = {
ManyToManyField: {'widget': forms.CheckboxSelectMultiple}, ManyToManyField: {'widget': forms.CheckboxSelectMultiple},
ForeignKey: {'widget': apply_select2(forms.Select)} ForeignKey: {'widget': apply_select2(forms.Select)}

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-11 11:50+0200\n" "POT-Creation-Date: 2017-10-11 12:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,19 +18,35 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin.py:59 #: admin.py:25 models.py:67
msgid "Registration complete"
msgstr "Anmeldung vollständig"
#: admin.py:31
msgid "True"
msgstr "Ja"
#: admin.py:32
msgid "False"
msgstr "Nein"
#: admin.py:33
msgid "All"
msgstr "Alle"
#: admin.py:98
msgid "Difficulty" msgid "Difficulty"
msgstr "Schwierigkeit" msgstr "Schwierigkeit"
#: admin.py:63 #: admin.py:102
msgid "Tour type" msgid "Tour type"
msgstr "Art der Tour" msgstr "Art der Tour"
#: admin.py:200 #: admin.py:239
msgid "Convert to PDF" msgid "Convert to PDF"
msgstr "Kriseninterventionsliste erstellen" msgstr "Kriseninterventionsliste erstellen"
#: admin.py:306 #: admin.py:345
msgid "Generate overview" msgid "Generate overview"
msgstr "Hinweise für Jugendleiter erstellen" msgstr "Hinweise für Jugendleiter erstellen"
@ -114,10 +130,6 @@ msgstr "Kommentare"
msgid "created" msgid "created"
msgstr "erstellt" msgstr "erstellt"
#: models.py:67
msgid "Registration complete"
msgstr "Anmeldung vollständig"
#: models.py:68 #: models.py:68
msgid "registration form" msgid "registration form"
msgstr "Anmeldeformular" msgstr "Anmeldeformular"

Loading…
Cancel
Save