HH/apps/dashboard/admin.py
2026-03-28 14:03:56 +03:00

94 lines
3.4 KiB
Python

"""
Dashboard Admin Configuration
Admin interface for employee evaluation models.
"""
from django.contrib import admin
from .models import EvaluationNote, ComplaintRequest, ReportCompletion, EscalatedComplaintLog, InquiryDetail
@admin.register(EvaluationNote)
class EvaluationNoteAdmin(admin.ModelAdmin):
"""Admin interface for EvaluationNote model"""
list_display = ["staff", "category", "sub_category", "count", "note_date", "created_by"]
list_filter = ["category", "note_date", "created_at"]
search_fields = ["staff__first_name", "staff__last_name", "description"]
date_hierarchy = "note_date"
raw_id_fields = ["staff", "created_by"]
@admin.register(ComplaintRequest)
class ComplaintRequestAdmin(admin.ModelAdmin):
"""Admin interface for ComplaintRequest model"""
list_display = [
"staff",
"patient_name",
"filled",
"on_hold",
"from_barcode",
"request_date",
"filling_time_category",
"reason_non_activation",
"hospital",
]
list_filter = [
"filled",
"on_hold",
"from_barcode",
"filling_time_category",
"reason_non_activation",
"request_date",
"hospital",
]
search_fields = ["staff__first_name", "staff__last_name", "patient_name", "file_number", "notes"]
date_hierarchy = "request_date"
raw_id_fields = ["staff", "complaint", "hospital", "complained_department"]
fieldsets = (
(None, {"fields": ("staff", "complaint", "hospital", "request_date", "request_time")}),
(
"Patient Information",
{"fields": ("patient_name", "file_number", "complained_department", "incident_date", "phone_number")},
),
("Status", {"fields": ("filled", "on_hold", "not_filled", "from_barcode", "filling_time_category")}),
("Timeline", {"fields": ("form_sent_at", "form_sent_time", "filled_at", "filled_time")}),
("Non-Activation", {"fields": ("reason_non_activation", "reason_non_activation_other", "pr_observations")}),
("Notes", {"fields": ("notes",)}),
)
@admin.register(ReportCompletion)
class ReportCompletionAdmin(admin.ModelAdmin):
"""Admin interface for ReportCompletion model"""
list_display = ["staff", "report_type", "is_completed", "week_start_date", "completed_at"]
list_filter = ["report_type", "is_completed", "week_start_date"]
search_fields = ["staff__first_name", "staff__last_name"]
date_hierarchy = "week_start_date"
raw_id_fields = ["staff"]
@admin.register(EscalatedComplaintLog)
class EscalatedComplaintLogAdmin(admin.ModelAdmin):
"""Admin interface for EscalatedComplaintLog model"""
list_display = ["staff", "complaint", "escalation_timing", "is_resolved", "escalated_at"]
list_filter = ["escalation_timing", "is_resolved", "week_start_date"]
search_fields = ["staff__first_name", "staff__last_name", "resolution_notes"]
date_hierarchy = "escalated_at"
raw_id_fields = ["staff", "complaint"]
@admin.register(InquiryDetail)
class InquiryDetailAdmin(admin.ModelAdmin):
"""Admin interface for InquiryDetail model"""
list_display = ["staff", "inquiry_type", "is_outgoing", "inquiry_date", "response_time_category"]
list_filter = ["inquiry_type", "is_outgoing", "response_time_category", "inquiry_status", "inquiry_date"]
search_fields = ["staff__first_name", "staff__last_name", "notes"]
date_hierarchy = "inquiry_date"
raw_id_fields = ["staff", "inquiry"]