from django.contrib import admin from tickets.models import Attachment, Comment, Task, TaskList, TicketType from tickets.admin_utils import * from django.contrib.auth.models import Group from django.contrib.auth.admin import GroupAdmin @admin.register(Task) class TaskAdmin(admin.ModelAdmin): list_display = ("title", "task_list", "status", "priority", "due_date") list_filter = ("task_list",) ordering = ("priority",) search_fields = ("title",) @admin.register(TaskList) class TaskListAdmin(admin.ModelAdmin): actions = [add_default_tickets_list_admin] @admin.register(TicketType) class TicketTypeAdmin(admin.ModelAdmin): actions = [add_default_ticketstype_admin] admin.site.unregister(Group) @admin.register(Group) class GroupsAdmin(admin.ModelAdmin): actions = [add_default_group_admin] search_fields = ("name",) ordering = ("name",) filter_horizontal = ("permissions",) def formfield_for_manytomany(self, db_field, request=None, **kwargs): if db_field.name == "permissions": qs = kwargs.get("queryset", db_field.remote_field.model.objects) kwargs["queryset"] = qs.select_related("content_type") return super().formfield_for_manytomany(db_field, request=request, **kwargs) class CommentAdmin(admin.ModelAdmin): list_display = ("author", "date", "snippet") class AttachmentAdmin(admin.ModelAdmin): list_display = ("task", "added_by", "timestamp", "file") autocomplete_fields = ["added_by", "task"] admin.site.register(Comment, CommentAdmin) admin.site.add_action(export_to_csv) admin.site.register(Attachment)