@@ -16,10 +16,20 @@ from .models import (
|
||||
from .services import validate_story_content
|
||||
|
||||
|
||||
@admin.register(Story)
|
||||
class StoryAdmin(admin.ModelAdmin):
|
||||
list_display = ("title", "kind", "estimated_minutes", "is_visible")
|
||||
list_filter = ("kind", "is_visible")
|
||||
search_fields = ("title", "summary", "slug")
|
||||
list_editable = ("is_visible",)
|
||||
|
||||
|
||||
@admin.register(StoryVersion)
|
||||
class StoryVersionAdmin(admin.ModelAdmin):
|
||||
list_display = ("story", "version", "is_published", "published_at", "created_at")
|
||||
list_filter = ("is_published", "story__kind")
|
||||
search_fields = ("story__title",)
|
||||
ordering = ("story", "-version")
|
||||
|
||||
def save_model(self, request, obj, form, change):
|
||||
errors = validate_story_content(obj.content)
|
||||
@@ -33,13 +43,14 @@ 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")
|
||||
search_fields = ("user__username", "user__nickname", "story_version__story__title")
|
||||
ordering = ("-updated_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)
|
||||
|
||||
@@ -2,5 +2,6 @@ from django.apps import AppConfig
|
||||
|
||||
|
||||
class MathLifeConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'math_life'
|
||||
default_auto_field = "django.db.models.BigAutoField"
|
||||
name = "math_life"
|
||||
verbose_name = "数学人生与 MathBTI"
|
||||
|
||||
Reference in New Issue
Block a user