File size: 3,045 Bytes
b4f2238 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | """Django admin configuration."""
import logging
from typing import Any, ClassVar
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from apps.documents.models import EvidenceList
from .evidence import EvidenceItemInline, EvidenceListForm
from .evidence.mixins import EvidenceListAdminActionsMixin, EvidenceListAdminSaveMixin, EvidenceListAdminViewsMixin
logger = logging.getLogger(__name__)
@admin.register(EvidenceList)
class EvidenceListAdmin(
EvidenceListAdminViewsMixin,
EvidenceListAdminActionsMixin,
EvidenceListAdminSaveMixin,
admin.ModelAdmin,
):
form = EvidenceListForm
list_display: tuple[Any, ...] = (
"title",
"case_display",
"list_type",
"item_count_display",
"order_range_display",
"total_pages_display",
"page_range_display",
"export_version",
"has_merged_pdf_display",
"actions_display",
"updated_at",
)
list_filter: tuple[Any, ...] = ("case", "list_type")
search_fields: tuple[Any, ...] = ("title", "case__name")
ordering: ClassVar = ["case", "order"]
autocomplete_fields: tuple[Any, ...] = ("export_template",)
readonly_fields: tuple[Any, ...] = (
"list_type",
"order",
"page_range_display",
"order_range_display",
"total_pages",
"merged_pdf",
"created_by",
"created_at",
"updated_at",
)
fieldsets: tuple[Any, ...] = (
(None, {"fields": ("case",)}),
(
_("自动计算信息"),
{
"fields": ("list_type", "order_range_display", "total_pages", "page_range_display"),
"description": _("以下信息由系统自动计算,无需手动填写."),
},
),
(
_("合并PDF"),
{
"fields": ("merged_pdf",),
"description": _("点击列表页的「合并」按钮将证据文件合并为PDF."),
},
),
(
_("导出设置"),
{
"fields": ("export_version", "export_template"),
"description": _("导出版本号用于文件名控制,请手动修改.选择导出模板后,导出清单时将使用该模板格式."),
"classes": ("evidence-export-section",),
},
),
(
_("系统信息"),
{
"fields": ("created_by", "created_at", "updated_at"),
"classes": ("collapse",),
},
),
)
inlines: ClassVar = [EvidenceItemInline]
actions: ClassVar = ["merge_pdfs", "export_list_word"]
list_select_related: tuple[Any, ...] = ("case", "created_by")
class Media:
css: ClassVar = {"all": ("documents/css/evidence_admin.css",)}
js: tuple[Any, ...] = (
"documents/js/evidence_sortable.js",
"documents/js/evidence_merge.js",
"documents/js/evidence_list_type.js",
)
|