Files
Hulumath-Web/backend/math_life/admin.py
T
Jacky 1f98f7152d
CI / test (push) Failing after 1m31s
v0.2 Preview: Construction Plan.
2026-08-08 21:25:27 +08:00

46 lines
1.3 KiB
Python

from django.contrib import admin
from django.core.exceptions import ValidationError
from .models import (
Character,
MathBTIAssessment,
MathBTIResult,
MathIdentity,
SkillPackage,
Story,
StoryChoice,
StoryRun,
StoryVersion,
UserRelationship,
)
from .services import validate_story_content
@admin.register(StoryVersion)
class StoryVersionAdmin(admin.ModelAdmin):
list_display = ("story", "version", "is_published", "published_at", "created_at")
list_filter = ("is_published", "story__kind")
def save_model(self, request, obj, form, change):
errors = validate_story_content(obj.content)
if errors:
raise ValidationError(errors)
super().save_model(request, obj, form, change)
@admin.register(StoryRun)
class StoryRunAdmin(admin.ModelAdmin):
list_display = ("id", "user", "story_version", "status", "current_node", "updated_at")
list_filter = ("status", "story_version__story")
readonly_fields = ("started_at", "updated_at", "completed_at")
admin.site.register(MathIdentity)
admin.site.register(MathBTIAssessment)
admin.site.register(MathBTIResult)
admin.site.register(Character)
admin.site.register(Story)
admin.site.register(StoryChoice)
admin.site.register(UserRelationship)
admin.site.register(SkillPackage)