51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
from django.contrib import admin
|
|
from .models import (
|
|
CaseBase, TraditionalCase, ScriptCase,
|
|
TeachingCase, CaseStage, ScoringRule
|
|
)
|
|
|
|
|
|
@admin.register(CaseBase)
|
|
class CaseBaseAdmin(admin.ModelAdmin):
|
|
list_display = [
|
|
'id', 'title', 'case_type', 'difficulty',
|
|
'department', 'patient_age', 'patient_gender',
|
|
'osce_enabled', 'publish_status', 'status', 'created_at'
|
|
]
|
|
list_filter = ['case_type', 'difficulty', 'publish_status', 'status', 'osce_enabled']
|
|
search_fields = ['title', 'chief_complaint', 'tags', 'icd_codes']
|
|
ordering = ['-created_at']
|
|
|
|
|
|
@admin.register(TraditionalCase)
|
|
class TraditionalCaseAdmin(admin.ModelAdmin):
|
|
list_display = ['id', 'case']
|
|
search_fields = ['case__title']
|
|
|
|
|
|
@admin.register(ScriptCase)
|
|
class ScriptCaseAdmin(admin.ModelAdmin):
|
|
list_display = ['id', 'case', 'emotional_state', 'cultural_level']
|
|
search_fields = ['case__title']
|
|
|
|
|
|
@admin.register(TeachingCase)
|
|
class TeachingCaseAdmin(admin.ModelAdmin):
|
|
list_display = ['id', 'case']
|
|
search_fields = ['case__title']
|
|
|
|
|
|
@admin.register(CaseStage)
|
|
class CaseStageAdmin(admin.ModelAdmin):
|
|
list_display = ['id', 'case', 'stage_name', 'stage_type', 'stage_mode', 'sort_order', 'timeout_seconds']
|
|
list_filter = ['stage_type', 'stage_mode']
|
|
search_fields = ['case__title', 'stage_name']
|
|
ordering = ['case', 'sort_order']
|
|
|
|
|
|
@admin.register(ScoringRule)
|
|
class ScoringRuleAdmin(admin.ModelAdmin):
|
|
list_display = ['id', 'case', 'dimension', 'competency_dimension', 'score_weight', 'ai_auto_score']
|
|
list_filter = ['ai_auto_score', 'osce_dimension']
|
|
search_fields = ['case__title', 'dimension']
|