87 lines
2.1 KiB
Python
87 lines
2.1 KiB
Python
from django.contrib import admin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from unfold.admin import ModelAdmin
|
|
|
|
from core.apps.chat.models import ChatmessageModel, ChatroomModel
|
|
|
|
|
|
@admin.register(ChatmessageModel)
|
|
class ChatmessageAdmin(ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"room",
|
|
"message_type",
|
|
"sender",
|
|
"short_text",
|
|
"is_read",
|
|
"created_at",
|
|
)
|
|
list_filter = ("message_type", "is_read", "created_at")
|
|
search_fields = (
|
|
"text",
|
|
"sender__phone",
|
|
"sender__first_name",
|
|
"sender__last_name",
|
|
)
|
|
readonly_fields = ("created_at",)
|
|
autocomplete_fields = ("sender",)
|
|
ordering = ("-created_at",)
|
|
fieldsets = (
|
|
(
|
|
_("Xabar"),
|
|
{
|
|
"fields": ("room", "sender", "message_type", "text", "file", "is_read"),
|
|
},
|
|
),
|
|
(
|
|
_("Tizim"),
|
|
{
|
|
"classes": ("collapse",),
|
|
"fields": ("created_at",),
|
|
},
|
|
),
|
|
)
|
|
|
|
def has_add_permission(self, request):
|
|
return False
|
|
|
|
def has_change_permission(self, request, obj=None):
|
|
return False
|
|
|
|
@admin.display(description=_("Xabar"))
|
|
def short_text(self, obj):
|
|
if not obj.text:
|
|
return f"[{obj.message_type}]"
|
|
return obj.text[:60] + "..." if len(obj.text) > 60 else obj.text
|
|
|
|
|
|
@admin.register(ChatroomModel)
|
|
class ChatroomAdmin(ModelAdmin):
|
|
list_display = (
|
|
"id",
|
|
"__str__",
|
|
"type",
|
|
"auto_evaluation",
|
|
"created_at",
|
|
)
|
|
list_filter = ("type",)
|
|
search_fields = ("auto_evaluation__id",)
|
|
autocomplete_fields = ("auto_evaluation",)
|
|
filter_horizontal = ("members",)
|
|
readonly_fields = ("created_at", "updated_at")
|
|
fieldsets = (
|
|
(
|
|
_("Xona"),
|
|
{
|
|
"fields": ("type", "auto_evaluation", "members"),
|
|
},
|
|
),
|
|
(
|
|
_("Tizim"),
|
|
{
|
|
"classes": ("collapse",),
|
|
"fields": ("created_at", "updated_at"),
|
|
},
|
|
),
|
|
)
|