From 6cb6498cd815bd55005d8fe5e3104cae94df99dd Mon Sep 17 00:00:00 2001 From: Pawel Kowalski Date: Wed, 8 Aug 2018 16:28:00 +0200 Subject: [PATCH] Provide a topic filter for modules --- server/book/admin.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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, )