87 lines
2.9 KiB
Python
87 lines
2.9 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
||
|
|
|
||
|
|
from django.contrib import admin
|
||
|
|
|
||
|
|
from competition.models import (BankInfo, ChoiceInfo, CompetitionKindInfo,
|
||
|
|
CompetitionQAInfo, FillInBlankInfo)
|
||
|
|
|
||
|
|
|
||
|
|
class CompetitionKindInfoAdmin(admin.ModelAdmin):
|
||
|
|
"""
|
||
|
|
比赛信息后台
|
||
|
|
"""
|
||
|
|
|
||
|
|
list_display = ('kind_id', 'account_id', 'app_id', 'bank_id', 'kind_name', 'total_score', 'question_num', 'total_partin_num', 'status', 'created_at', 'updated_at')
|
||
|
|
list_filter = ('account_id', 'status')
|
||
|
|
search_fields = ('kind_name', 'kind_id', 'app_id', 'account_id',)
|
||
|
|
readonly_fields = ('kind_id', 'total_partin_num',)
|
||
|
|
|
||
|
|
def save_model(self, request, obj, form, change):
|
||
|
|
obj.save()
|
||
|
|
|
||
|
|
def delete_model(self, request, obj):
|
||
|
|
obj.delete()
|
||
|
|
|
||
|
|
def get_readonly_fields(self, request, obj=None):
|
||
|
|
return self.readonly_fields
|
||
|
|
|
||
|
|
|
||
|
|
class BankInfoAdmin(admin.ModelAdmin):
|
||
|
|
"""
|
||
|
|
题库后台配置
|
||
|
|
"""
|
||
|
|
|
||
|
|
list_display = ('bank_id', 'bank_type', 'kind_num', 'choice_num', 'fillinblank_num', 'partin_num')
|
||
|
|
list_filter = ('bank_type', 'bank_id',)
|
||
|
|
search_fields = ('bank_id',)
|
||
|
|
readonly_fields = ('bank_id', 'choice_num', 'fillinblank_num', 'kind_num', 'partin_num')
|
||
|
|
|
||
|
|
def save_model(self, request, obj, form, change):
|
||
|
|
obj.choice_num = ChoiceInfo.objects.filter(bank_id=obj.bank_id).count()
|
||
|
|
obj.fillinblank_num = FillInBlankInfo.objects.filter(bank_id=obj.bank_id).count()
|
||
|
|
obj.save()
|
||
|
|
|
||
|
|
|
||
|
|
class ChoiceInfoAdmin(admin.ModelAdmin):
|
||
|
|
"""
|
||
|
|
选择题配置后台
|
||
|
|
"""
|
||
|
|
|
||
|
|
list_display = ('bank_id', 'question', 'answer', 'item1', 'item2', 'item3', 'item4', 'source', 'status', 'created_at', 'updated_at')
|
||
|
|
list_filter = ('bank_id', 'status')
|
||
|
|
search_fields = ('bank_id', 'question', 'answer', 'item1', 'item2', 'item3', 'item4')
|
||
|
|
|
||
|
|
def save_model(self, request, obj, form, change):
|
||
|
|
obj.save()
|
||
|
|
|
||
|
|
def delete_model(self, request, obj):
|
||
|
|
obj.delete()
|
||
|
|
|
||
|
|
|
||
|
|
class FillInBlankInfoAdmin(admin.ModelAdmin):
|
||
|
|
"""
|
||
|
|
填空题配置后台
|
||
|
|
"""
|
||
|
|
|
||
|
|
list_display = ('bank_id', 'question', 'answer', 'source', 'status', 'created_at', 'updated_at')
|
||
|
|
list_filter = ('bank_id', 'status')
|
||
|
|
search_fields = ('bank_id', 'question', 'answer')
|
||
|
|
|
||
|
|
|
||
|
|
class CompetitionQAInfoAdmin(admin.ModelAdmin):
|
||
|
|
"""
|
||
|
|
答题记录信息后台
|
||
|
|
"""
|
||
|
|
|
||
|
|
list_display = ('kind_id', 'status', 'uid', 'qa_id', 'score', 'created_at', 'updated_at')
|
||
|
|
list_filter = ('kind_id', 'uid', 'qa_id', 'started', 'finished', 'status')
|
||
|
|
search_fields = ('uid', 'kind_id', )
|
||
|
|
readonly_fields = ('qa_id',)
|
||
|
|
|
||
|
|
|
||
|
|
admin.site.register(CompetitionKindInfo, CompetitionKindInfoAdmin)
|
||
|
|
admin.site.register(CompetitionQAInfo, CompetitionQAInfoAdmin)
|
||
|
|
admin.site.register(ChoiceInfo, ChoiceInfoAdmin)
|
||
|
|
admin.site.register(FillInBlankInfo, FillInBlankInfoAdmin)
|
||
|
|
admin.site.register(BankInfo, BankInfoAdmin)
|