@@ -0,0 +1,45 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user