From 970450cce2e80b8c884b70c80e7066466556712b Mon Sep 17 00:00:00 2001 From: Kavalar Date: Wed, 23 Sep 2026 18:40:37 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B2=20=D0=BE=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B8=20=D0=BC=D0=BE=D0=B4=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B1=D1=80=D0=B5=D0=BD=D0=B4,=20=D0=BE=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B5=D1=8F=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B8=20=D1=81=D1=81?= =?UTF-8?q?=D1=8B=D0=BB=D0=BA=D1=83=20=D0=BD=D0=B0=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D1=83=D1=8E=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=BA?= =?UTF-8?q?=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/moderation/admin.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/apps/moderation/admin.py b/apps/moderation/admin.py index 3cb3fc5..399c351 100644 --- a/apps/moderation/admin.py +++ b/apps/moderation/admin.py @@ -1,4 +1,6 @@ from django.contrib import admin +from django.urls import reverse +from django.utils.html import format_html from .models import AuditLog, ModerationRequest @@ -6,12 +8,17 @@ from .models import AuditLog, ModerationRequest @admin.register(ModerationRequest) class ModerationRequestAdmin(admin.ModelAdmin): list_display = ( - 'content_type', 'object_id', 'get_user', 'decision', - 'moderator', 'created_at', 'decided_at', + 'get_entity_name', 'get_user', 'get_story', 'get_link', + 'decision', 'moderator', 'created_at', 'decided_at', ) list_filter = ('decision', 'content_type') search_fields = ('comment', 'user__username', 'user__full_name') + @admin.display(description='Сущность') + def get_entity_name(self, obj): + entity = obj.entity + return str(entity) if entity else f'#{obj.object_id}' + @admin.display(description='Пользователь') def get_user(self, obj): """Пользователь из поля user, либо выводимый из сущности.""" @@ -27,6 +34,22 @@ class ModerationRequestAdmin(admin.ModelAdmin): return entity.brand.user return None + @admin.display(description='Описание деятельности') + def get_story(self, obj): + entity = obj.entity + story = getattr(entity, 'story', '') or '' + return story[:80] + ('…' if len(story) > 80 else '') + + @admin.display(description='Полное описание') + def get_link(self, obj): + entity = obj.entity + if entity is None: + return '-' + app_label = entity._meta.app_label + model_name = entity._meta.model_name + url = reverse(f'admin:{app_label}_{model_name}_change', args=[entity.pk]) + return format_html('Открыть', url) + @admin.register(AuditLog) class AuditLogAdmin(admin.ModelAdmin):