Provide a topic filter for modules
This commit is contained in:
parent
c6afb6ce91
commit
6cb6498cd8
|
|
@ -3,6 +3,20 @@ from django.contrib import admin
|
||||||
from book.models import Book, Topic, Module
|
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)
|
@admin.register(Book)
|
||||||
class BookAdmin(admin.ModelAdmin):
|
class BookAdmin(admin.ModelAdmin):
|
||||||
list_display = ('title', 'slug')
|
list_display = ('title', 'slug')
|
||||||
|
|
@ -16,3 +30,4 @@ class TopicAdmin(admin.ModelAdmin):
|
||||||
@admin.register(Module)
|
@admin.register(Module)
|
||||||
class ModuleAdmin(admin.ModelAdmin):
|
class ModuleAdmin(admin.ModelAdmin):
|
||||||
list_display = ('title', 'slug', 'meta_title', 'teaser')
|
list_display = ('title', 'slug', 'meta_title', 'teaser')
|
||||||
|
list_filter = (TopicListFilter, )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue