fc / apps /cases /admin /caselog_admin.py
jun2024's picture
Upload 2241 files
b4f2238 verified
Raw History Blame Contribute Delete
1.3 kB
from __future__ import annotations
from django.contrib import admin
from django.forms import ModelForm
from django.http import HttpRequest
from apps.cases.admin.base_admin import BaseModelAdmin
from apps.cases.models import CaseLog, CaseLogAttachment
@admin.register(CaseLog)
class CaseLogAdmin(BaseModelAdmin):
list_display = ("id", "case", "actor", "reminder_type", "reminder_time", "created_at", "updated_at")
search_fields = ("content", "case__name")
autocomplete_fields = ("case", "actor")
exclude = ("actor",)
def save_model(
self,
request: HttpRequest,
obj: CaseLog,
form: ModelForm[CaseLog],
change: bool,
) -> None:
if not getattr(obj, "actor_id", None):
user_id = getattr(request.user, "id", None)
if user_id is not None:
obj.actor_id = user_id
super().save_model(request, obj, form, change)
@admin.register(CaseLogAttachment)
class CaseLogAttachmentAdmin(BaseModelAdmin):
list_display = ("id", "log", "uploaded_at")
search_fields = ("log__case__name",)
autocomplete_fields = ("log",)
def get_model_perms(self, request: HttpRequest) -> dict[str, bool]:
"""隐藏 Admin 首页入口,但保留直接 URL 访问能力"""
return {}