报名表单
This commit is contained in:
@@ -39,8 +39,8 @@ class ActivityAdmin(ModelAdmin):
|
||||
('基本信息', {
|
||||
'fields': ('title', 'description', 'banner', 'banner_url', 'is_active')
|
||||
}),
|
||||
('时间与地点', {
|
||||
'fields': ('start_time', 'end_time', 'location'),
|
||||
('费用与时间', {
|
||||
'fields': ('is_paid', 'price', 'start_time', 'end_time', 'location'),
|
||||
'classes': ('tab',)
|
||||
}),
|
||||
('报名设置', {
|
||||
@@ -63,21 +63,34 @@ class ActivityAdmin(ModelAdmin):
|
||||
|
||||
@admin.register(ActivitySignup)
|
||||
class ActivitySignupAdmin(ModelAdmin):
|
||||
list_display = ('activity', 'user', 'signup_time', 'status_label')
|
||||
list_display = ('activity', 'user', 'signup_time', 'status_label', 'order_link')
|
||||
list_filter = ('status', 'signup_time', 'activity')
|
||||
search_fields = ('user__nickname', 'activity__title')
|
||||
autocomplete_fields = ['activity', 'user']
|
||||
|
||||
fieldsets = (
|
||||
('报名详情', {
|
||||
'fields': ('activity', 'user', 'status')
|
||||
'fields': ('activity', 'user', 'status', 'order', 'signup_info_display')
|
||||
}),
|
||||
('时间信息', {
|
||||
'fields': ('signup_time',),
|
||||
'classes': ('collapse',)
|
||||
}),
|
||||
)
|
||||
readonly_fields = ('signup_time',)
|
||||
readonly_fields = ('signup_time', 'signup_info_display')
|
||||
|
||||
@display(description="报名信息")
|
||||
def signup_info_display(self, obj):
|
||||
import json
|
||||
if not obj.signup_info:
|
||||
return "无"
|
||||
|
||||
try:
|
||||
# Format JSON nicely
|
||||
formatted_json = json.dumps(obj.signup_info, indent=2, ensure_ascii=False)
|
||||
return format_html('<pre style="white-space: pre-wrap; word-break: break-all;">{}</pre>', formatted_json)
|
||||
except:
|
||||
return str(obj.signup_info)
|
||||
|
||||
@display(
|
||||
description="状态",
|
||||
@@ -90,6 +103,12 @@ class ActivitySignupAdmin(ModelAdmin):
|
||||
def status_label(self, obj):
|
||||
return obj.status
|
||||
|
||||
@display(description="关联订单")
|
||||
def order_link(self, obj):
|
||||
if obj.order:
|
||||
return format_html('<a href="/admin/shop/order/{}/change/">Order #{}</a>', obj.order.id, obj.order.id)
|
||||
return "-"
|
||||
|
||||
@admin.register(Topic)
|
||||
class TopicAdmin(ModelAdmin):
|
||||
list_display = ('title', 'category', 'author', 'get_related_item', 'reply_count', 'view_count', 'is_pinned', 'created_at')
|
||||
|
||||
Reference in New Issue
Block a user