From d52d2ad78b19f532dd516ff025683e9b38c62312 Mon Sep 17 00:00:00 2001 From: C4 Patino Date: Tue, 30 Aug 2022 21:17:48 -0500 Subject: [PATCH] Updated admin with new filters --- housewars/admin.py | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/housewars/admin.py b/housewars/admin.py index 75a8a93..6ad2b4b 100644 --- a/housewars/admin.py +++ b/housewars/admin.py @@ -2,7 +2,7 @@ from django.contrib import admin from django.db.models import Sum from django.db.models.functions import Coalesce -from .models import Activity, House, PointsEntry, UserEntry +from .models import Activity, House, Teacher, PointsEntry, UserEntry @admin.register(Activity) @@ -13,24 +13,24 @@ class ActivityAdmin(admin.ModelAdmin): 'fields': ['quota', 'time']}), ] - list_display = ['name', 'time', 'quota', 'hawk_signups', + list_display = ['name', 'time', 'quota', 'teacher', 'hawk_signups', 'great_grey_signups', 'snowy_signups', 'eagle_signups'] @admin.display(description='Hawk Signups') def hawk_signups(self, obj): - return str(UserEntry.hawk.filterActivity1(obj).count()) + " / " + str((UserEntry.hawk.filterActivity2(obj).count(), "N/A")[obj.time == 60]) + return str(UserEntry.hawk.filterActivity1(obj).count()) + " | " + str((UserEntry.hawk.filterActivity2(obj).count(), "-")[obj.time == 60]) @admin.display(description='Great Grey Signups') def great_grey_signups(self, obj): - return str(UserEntry.great_grey.filterActivity1(obj).count()) + " / " + str((UserEntry.great_grey.filterActivity2(obj).count(), "N/A")[obj.time == 60]) + return str(UserEntry.great_grey.filterActivity1(obj).count()) + " | " + str((UserEntry.great_grey.filterActivity2(obj).count(), "-")[obj.time == 60]) @admin.display(description='Snowy Signups') def snowy_signups(self, obj): - return str(UserEntry.snowy.filterActivity1(obj).count()) + " / " + str((UserEntry.snowy.filterActivity2(obj).count(), "N/A")[obj.time == 60]) + return str(UserEntry.snowy.filterActivity1(obj).count()) + " | " + str((UserEntry.snowy.filterActivity2(obj).count(), "-")[obj.time == 60]) @admin.display(description='Eagle Signups') def eagle_signups(self, obj): - return str(UserEntry.eagle.filterActivity1(obj).count()) + " / " + str((UserEntry.eagle.filterActivity2(obj).count(), "N/A")[obj.time == 60]) + return str(UserEntry.eagle.filterActivity1(obj).count()) + " | " + str((UserEntry.eagle.filterActivity2(obj).count(), "-")[obj.time == 60]) @admin.register(House) @@ -46,6 +46,18 @@ class HouseAdmin(admin.ModelAdmin): return self.current_points(obj) + obj.points +@admin.register(Teacher) +class TeacherAdmin(admin.ModelAdmin): + fieldsets = [ + ('Personal Information', {'fields': [ + 'first_name', 'last_name']}), + ('House Wars Information', { + 'fields': ['grade', 'house', 'activity']}), + ] + + list_display = ('first_name', 'last_name', 'grade', 'activity') + + @admin.register(UserEntry) class EntryAdmin(admin.ModelAdmin): fieldsets = [ @@ -56,9 +68,24 @@ class EntryAdmin(admin.ModelAdmin): ] list_display = ('first_name', 'last_name', - 'house', 'activity1', 'activity2') + 'house', 'activity1', 'activity1_teacher', 'activity2', 'activity2_teacher') - list_filter = ['house', 'grade', 'activity1', 'activity2'] + list_filter = ['house', 'grade', 'activity1', + 'activity1__teacher', 'activity2', 'activity2__teacher'] + + @admin.display(description='Activity 1 Teacher') + def activity1_teacher(self, obj): + if (obj.activity1 == None): + return None + + return obj.activity1.teacher + + @admin.display(description='Activity 2 Teacher') + def activity2_teacher(self, obj): + if (obj.activity2 == None): + return None + + return obj.activity2.teacher @admin.register(PointsEntry)