From 1352f68baed5874cacc637f8ffee1b206cf4d037 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Tue, 5 Nov 2019 10:31:31 +0100 Subject: [PATCH] Add topic to objective admin view --- server/objectives/admin.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/server/objectives/admin.py b/server/objectives/admin.py index 901bf3e6..5c70d0c0 100644 --- a/server/objectives/admin.py +++ b/server/objectives/admin.py @@ -1,7 +1,8 @@ from django.contrib import admin +from wagtail.core.models import Page from objectives.models import ObjectiveGroup, Objective, ObjectiveProgressStatus - +from books.models import Topic @admin.register(ObjectiveGroup) class ObjectiveGroupAdmin(admin.ModelAdmin): @@ -11,9 +12,31 @@ class ObjectiveGroupAdmin(admin.ModelAdmin): @admin.register(Objective) class ObjectiveAdmin(admin.ModelAdmin): - list_display = ('text', 'group', 'owner') + list_display = ('text', 'get_topic', 'group', 'owner') list_filter = ('group', 'owner') + def get_topic(self, obj): + try: + page = Page.objects.get(pk=obj.group.module.page_ptr_id) + except Page.DoesNotExist: + return None + + parent_path = str(page.path)[:-4] + + try: + parent = Page.objects.get(path=parent_path) + except Page.DoesNotExist: + return None + + try: + topic = Topic.objects.get(page_ptr_id=parent.id) + except Topic.DoesNotExist: + return None + + return topic.title + + get_topic.short_description = 'Thema' + @admin.register(ObjectiveProgressStatus) class ObjectiveProgressStatusAdmin(admin.ModelAdmin):