Admin Models

This commit is contained in:
Corban-Lee Jones 2024-01-14 01:51:00 +00:00
parent a708a8b151
commit 0670382172

View File

@ -1,9 +1,47 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
from collections.abc import Callable
from typing import Any
from django.contrib import admin from django.contrib import admin
from .models import Ticket, TicketPriority, TicketTag from .models import Ticket, TicketPriority, TicketTag
admin.site.register(Ticket)
admin.site.register(TicketPriority) class TicketAdmin(admin.ModelAdmin):
admin.site.register(TicketTag)
list_display = ["uuid", "title", "get_author_name", "get_priority_title", "get_tags_count"]
@admin.display(description="Author", ordering="author__name")
def get_author_name(self, obj):
return obj.author.fullname if obj.author else None
@admin.display(description="Priority", ordering="priority__title")
def get_priority_title(self, obj):
return obj.priority.title if obj.priority else None
@admin.display(description="Tags")
def get_tags_count(self, obj):
return obj.tags.count()
class TicketPriorityAdmin(admin.ModelAdmin):
list_display = ["uuid", "title", "colour", "backgroundcolour", "get_used_count"]
@admin.display(description="Used by")
def get_used_count(self, obj):
return Ticket.objects.filter(priority=obj).count()
class TicketTagAdmin(admin.ModelAdmin):
list_display = ["uuid", "title", "colour", "backgroundcolour", "get_used_count"]
@admin.display(description="Used by")
def get_used_count(self, obj):
return Ticket.objects.filter(tags__in=[obj]).count()
admin.site.register(Ticket, TicketAdmin)
admin.site.register(TicketPriority, TicketPriorityAdmin)
admin.site.register(TicketTag, TicketTagAdmin)