@@ -301,11 +301,32 @@ def generate_report(self):
301301 generate_library_report .delay (self .request .GET )
302302
303303
304+ class TierFilter (admin .SimpleListFilter ):
305+ title = "tier"
306+ parameter_name = "tier"
307+
308+ def lookups (self , request , model_admin ):
309+ from libraries .models import Tier
310+
311+ choices = [
312+ ("unassigned" , "Unassigned" ),
313+ ]
314+ choices .extend ([(tier .value , tier .label ) for tier in Tier ])
315+ return choices
316+
317+ def queryset (self , request , queryset ):
318+ if self .value () == "unassigned" :
319+ return queryset .filter (tier__isnull = True )
320+ elif self .value () is not None :
321+ return queryset .filter (tier = self .value ())
322+ return queryset
323+
324+
304325@admin .register (Library )
305326class LibraryAdmin (admin .ModelAdmin ):
306- list_display = ["name" , "key" , "github_url" , "view_stats" ]
327+ list_display = ["name" , "key" , "tier" , " github_url" , "view_stats" ]
307328 search_fields = ["name" , "description" ]
308- list_filter = ["categories" ]
329+ list_filter = [TierFilter , "categories" ]
309330 ordering = ["name" ]
310331 change_list_template = "admin/library_change_list.html"
311332 inlines = [LibraryVersionInline ]
0 commit comments