diff --git a/server/book/admin.py b/server/book/admin.py index 2bb3ae83..ae78ac1c 100644 --- a/server/book/admin.py +++ b/server/book/admin.py @@ -3,6 +3,20 @@ from django.contrib import admin from book.models import Book, Topic, Module +class TopicListFilter(admin.SimpleListFilter): + title = 'topic modules' + parameter_name = 'topic_modules' + + def lookups(self, request, model_admin): + return list((topic.slug, topic.title) for topic in Topic.objects.all()) + + def queryset(self, request, queryset): + filter_value = self.value() + topic = Topic.objects.filter(slug=filter_value).first() + if topic: + return Module.get_topic_modules(topic) + + @admin.register(Book) class BookAdmin(admin.ModelAdmin): list_display = ('title', 'slug') @@ -16,3 +30,4 @@ class TopicAdmin(admin.ModelAdmin): @admin.register(Module) class ModuleAdmin(admin.ModelAdmin): list_display = ('title', 'slug', 'meta_title', 'teaser') + list_filter = (TopicListFilter, )