From 9a73badb3cf9ee0cbe6af695ccf9e07b8121313b Mon Sep 17 00:00:00 2001 From: Ali Asadi Date: Tue, 21 Jul 2026 15:31:57 +0330 Subject: [PATCH] add admin panel --- apps/chat/admin.py | 62 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/apps/chat/admin.py b/apps/chat/admin.py index a389924..40ecaaf 100644 --- a/apps/chat/admin.py +++ b/apps/chat/admin.py @@ -1,6 +1,66 @@ from django.contrib import admin -from apps.chat.models import ConversationReport +from apps.chat.models import ( + Conversation, + ConversationParticipant, + ConversationReadState, + ConversationReport, + MattermostAccountMapping, +) + + +class ConversationParticipantInline(admin.TabularInline): + model = ConversationParticipant + extra = 0 + fields = ("user_uuid", "joined_at") + readonly_fields = ("joined_at",) + + +@admin.register(Conversation) +class ConversationAdmin(admin.ModelAdmin): + list_display = ( + "uuid", + "type", + "status", + "mattermost_channel_id", + "closed_by_uuid", + "created_at", + ) + list_filter = ("type", "status", "created_at") + search_fields = ("uuid", "mattermost_channel_id") + readonly_fields = ("uuid", "created_at", "updated_at") + ordering = ("-created_at",) + inlines = [ConversationParticipantInline] + + +@admin.register(ConversationParticipant) +class ConversationParticipantAdmin(admin.ModelAdmin): + list_display = ("uuid", "conversation", "user_uuid", "joined_at") + search_fields = ("uuid", "conversation__uuid", "user_uuid") + readonly_fields = ("uuid", "joined_at") + ordering = ("-joined_at",) + + +@admin.register(ConversationReadState) +class ConversationReadStateAdmin(admin.ModelAdmin): + list_display = ( + "uuid", + "conversation", + "user_uuid", + "last_read_mattermost_post_id", + "updated_at", + ) + search_fields = ("uuid", "conversation__uuid", "user_uuid") + readonly_fields = ("uuid", "updated_at") + ordering = ("-updated_at",) + + +@admin.register(MattermostAccountMapping) +class MattermostAccountMappingAdmin(admin.ModelAdmin): + list_display = ("uuid", "user_uuid", "mattermost_user_id", "created_at") + search_fields = ("uuid", "user_uuid", "mattermost_user_id") + readonly_fields = ("uuid", "created_at") + ordering = ("-created_at",) @admin.register(ConversationReport)