agdar/ot/admin.py
2025-11-02 14:35:35 +03:00

152 lines
5.2 KiB
Python

"""
Django admin configuration for ot app.
"""
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from .models import (
OTConsult,
OTSession,
OTTargetSkill,
OTProgressReport,
)
@admin.register(OTConsult)
class OTConsultAdmin(admin.ModelAdmin):
"""Admin interface for OTConsult model."""
list_display = ['patient', 'consultation_date', 'provider', 'recommendation', 'signed_by',
'signed_at', 'tenant']
list_filter = ['consultation_date', 'recommendation', 'tenant', 'signed_at']
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en',
'reasons']
readonly_fields = ['id', 'created_at', 'updated_at']
date_hierarchy = 'consultation_date'
fieldsets = (
(_('Patient & Provider'), {
'fields': ('patient', 'tenant', 'consultation_date', 'provider', 'appointment')
}),
(_('Referral Information'), {
'fields': ('reasons', 'top_difficulty_areas')
}),
(_('Assessment'), {
'fields': ('developmental_motor_milestones', 'self_help_skills', 'feeding_participation')
}),
(_('Behavior'), {
'fields': ('infant_behavior_descriptors', 'current_behavior_descriptors')
}),
(_('Recommendations'), {
'fields': ('recommendation', 'recommendation_notes')
}),
(_('Signature'), {
'fields': ('signed_by', 'signed_at'),
'classes': ('collapse',)
}),
(_('Metadata'), {
'fields': ('id', 'created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
@admin.register(OTSession)
class OTSessionAdmin(admin.ModelAdmin):
"""Admin interface for OTSession model."""
list_display = ['patient', 'session_date', 'session_type', 'provider', 'cooperative_level_display',
'signed_by', 'tenant']
list_filter = ['session_date', 'session_type', 'tenant', 'signed_at']
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en']
readonly_fields = ['id', 'cooperative_level_display', 'distraction_tolerance_display',
'created_at', 'updated_at']
date_hierarchy = 'session_date'
fieldsets = (
(_('Patient & Provider'), {
'fields': ('patient', 'tenant', 'session_date', 'session_type', 'provider', 'appointment')
}),
(_('Child Behavior'), {
'fields': ('cooperative_level', 'cooperative_level_display', 'distraction_tolerance',
'distraction_tolerance_display')
}),
(_('Activities'), {
'fields': ('activities_checklist', 'activities_performed')
}),
(_('Session Notes'), {
'fields': ('observations', 'recommendations')
}),
(_('Signature'), {
'fields': ('signed_by', 'signed_at'),
'classes': ('collapse',)
}),
(_('Metadata'), {
'fields': ('id', 'created_at', 'updated_at'),
'classes': ('collapse',)
}),
)
@admin.register(OTTargetSkill)
class OTTargetSkillAdmin(admin.ModelAdmin):
"""Admin interface for OTTargetSkill model."""
list_display = ['session', 'skill_name', 'score', 'score_percentage', 'achievement_level', 'order']
list_filter = ['session__patient', 'session__session_date']
search_fields = ['skill_name', 'session__patient__mrn']
readonly_fields = ['id', 'score_percentage', 'achievement_level']
fieldsets = (
(None, {
'fields': ('session', 'skill_name', 'order')
}),
(_('Scoring'), {
'fields': ('score', 'score_percentage', 'achievement_level')
}),
(_('Notes'), {
'fields': ('notes',),
'classes': ('collapse',)
}),
(_('Metadata'), {
'fields': ('id',),
'classes': ('collapse',)
}),
)
@admin.register(OTProgressReport)
class OTProgressReportAdmin(admin.ModelAdmin):
"""Admin interface for OTProgressReport model."""
list_display = ['patient', 'report_date', 'provider', 'sessions_attended', 'attendance_rate',
'signed_by', 'tenant']
list_filter = ['report_date', 'tenant', 'signed_at']
search_fields = ['patient__mrn', 'patient__first_name_en', 'patient__last_name_en']
readonly_fields = ['id', 'attendance_rate', 'created_at', 'updated_at']
date_hierarchy = 'report_date'
fieldsets = (
(_('Patient & Provider'), {
'fields': ('patient', 'tenant', 'report_date', 'provider')
}),
(_('Attendance'), {
'fields': ('sessions_scheduled', 'sessions_attended', 'attendance_rate')
}),
(_('Progress Summary'), {
'fields': ('goals_progress', 'overall_progress')
}),
(_('Recommendations'), {
'fields': ('recommendations', 'continue_treatment')
}),
(_('Signature'), {
'fields': ('signed_by', 'signed_at'),
'classes': ('collapse',)
}),
(_('Metadata'), {
'fields': ('id', 'created_at', 'updated_at'),
'classes': ('collapse',)
}),
)