83 lines
2.4 KiB
Python
83 lines
2.4 KiB
Python
from django.contrib import admin
|
|
|
|
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)
|
|
class ConversationReportAdmin(admin.ModelAdmin):
|
|
list_display = ("uuid", "conversation", "reporter_uuid", "reason", "created_at")
|
|
list_filter = ("reason", "created_at")
|
|
search_fields = ("uuid", "conversation__uuid", "reporter_uuid")
|
|
readonly_fields = (
|
|
"uuid",
|
|
"conversation",
|
|
"reporter_uuid",
|
|
"reason",
|
|
"other_reason_text",
|
|
"created_at",
|
|
)
|
|
ordering = ("-created_at",)
|
|
|
|
def has_add_permission(self, request):
|
|
# Reports are only ever created by users through the API.
|
|
return False
|