# -*- 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)