""" 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',) }), )