@@ -68,6 +68,22 @@ def queryset(self, request, queryset):
68
68
return queryset .filter (access_granted__atype = v )
69
69
70
70
71
+ class CityListFilter (admin .SimpleListFilter ):
72
+ title = _ ("Cities" )
73
+ parameter_name = 'city'
74
+
75
+ def lookups (self , request , model_admin ):
76
+ cities = Member .objects .values_list ('city' ,flat = True ).distinct ()
77
+ return zip (cities ,cities )
78
+
79
+ def queryset (self , request , queryset ):
80
+ v = self .value ()
81
+ if not v :
82
+ return queryset
83
+ return queryset .filter (city = v )
84
+
85
+
86
+
71
87
class CreditListFilter (admin .SimpleListFilter ):
72
88
title = _ ("Credit" )
73
89
parameter_name = 'credit'
@@ -97,8 +113,9 @@ class MemberAdmin(VersionAdmin):
97
113
'credit_formatted' ,
98
114
'mtypes_formatted' ,
99
115
'grants_formatted' ,
116
+ 'city' ,
100
117
)
101
- list_filter = (MemberTypeListFilter , GrantListFilter , CreditListFilter )
118
+ list_filter = (MemberTypeListFilter , GrantListFilter , CreditListFilter , CityListFilter )
102
119
inlines = [MemberNoteInline , GrantInline , TokenInline , RTInline ]
103
120
search_fields = ['lname' , 'fname' , 'email' , 'nick' ]
104
121
ordering = ['lname' , 'fname' ]
0 commit comments