44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from django.contrib import admin
|
|
|
|
from .models import ActionPlanStep, ProblemCase, RootCause, SolutionOption
|
|
|
|
|
|
class RootCauseInline(admin.TabularInline):
|
|
model = RootCause
|
|
extra = 0
|
|
|
|
|
|
class SolutionOptionInline(admin.TabularInline):
|
|
model = SolutionOption
|
|
extra = 0
|
|
fields = ("rank", "title", "impact", "efficiency", "speed", "low_risk", "decision_score", "success_rate")
|
|
readonly_fields = ("decision_score",)
|
|
|
|
|
|
@admin.register(ProblemCase)
|
|
class ProblemCaseAdmin(admin.ModelAdmin):
|
|
list_display = ("title", "business_area", "urgency", "priority_score", "financial_impact", "status", "created_at")
|
|
list_filter = ("business_area", "status", "urgency")
|
|
search_fields = ("title", "description")
|
|
inlines = [RootCauseInline, SolutionOptionInline]
|
|
|
|
|
|
@admin.register(SolutionOption)
|
|
class SolutionOptionAdmin(admin.ModelAdmin):
|
|
list_display = ("title", "problem", "rank", "decision_score", "success_rate")
|
|
list_filter = ("rank",)
|
|
search_fields = ("title", "problem__title")
|
|
|
|
|
|
@admin.register(ActionPlanStep)
|
|
class ActionPlanStepAdmin(admin.ModelAdmin):
|
|
list_display = ("solution", "day_index", "title", "is_done")
|
|
list_filter = ("is_done",)
|
|
search_fields = ("title", "task", "solution__title")
|
|
|
|
|
|
@admin.register(RootCause)
|
|
class RootCauseAdmin(admin.ModelAdmin):
|
|
list_display = ("factor", "problem", "contribution_score", "parent")
|
|
search_fields = ("factor", "why_chain", "problem__title")
|