feat: add showcase backend

This commit is contained in:
2026-04-30 08:59:14 -06:00
parent c5f46de80a
commit f99c2c8033
6 changed files with 643 additions and 5 deletions

View File

@@ -1,3 +1,51 @@
from django.contrib import admin
# Register your models here.
from .models import Award, SubmissionAward
@admin.register(Award)
class AwardAdmin(admin.ModelAdmin):
list_display = ("name", "sort_order", "is_active", "item_ordering", "created")
list_filter = ("is_active", "item_ordering")
search_fields = ("name",)
ordering = ("sort_order",)
@admin.register(SubmissionAward)
class SubmissionAwardAdmin(admin.ModelAdmin):
list_display = (
"award_name",
"submission_username",
"submission_task_title",
"submission_score",
"submission_view_count",
"sort_order",
"awarded_at",
)
list_filter = ("award", "submission__task", "submission__user__classname")
search_fields = (
"award__name",
"submission__user__username",
"submission__task__title",
)
raw_id_fields = ("submission",)
@admin.display(description="奖项")
def award_name(self, obj):
return obj.award.name
@admin.display(description="提交作者")
def submission_username(self, obj):
return obj.submission.user.username
@admin.display(description="挑战标题")
def submission_task_title(self, obj):
return obj.submission.task.title
@admin.display(description="评分")
def submission_score(self, obj):
return obj.submission.score
@admin.display(description="浏览量")
def submission_view_count(self, obj):
return obj.submission.view_count