from django.contrib import admin

from exam.models import Exam, ExamTemplate, ExamPage, Corrections, PublicExamTemplate, AnswerFile
from wikiazma import settings

if settings.DJANGO_ADMIN_IS_ENABLED:

    class ExamTemplateAdmin(admin.ModelAdmin):
        list_display = (
            'name', 'institute', 'rules', 'one_question_at_a_time', 'reanswer', 'report_card_strategy', 'shuffle_questions',
            'shuffle_answers', 'override_institute_name', 'override_institute_logo', 'description', 'modified_at', 'created_at')
        # search_fields = ()
        readonly_fields = ()


    admin.site.register(ExamTemplate, ExamTemplateAdmin)


    class PublicExamTemplateAdmin(admin.ModelAdmin):
        list_display = (
            'name', 'priority', 'rules', 'one_question_at_a_time', 'reanswer', 'report_card_strategy', 'shuffle_questions',
            'shuffle_answers', 'override_institute_name', 'override_institute_logo', 'description', 'modified_at', 'created_at')
        # search_fields = ()
        readonly_fields = ()


    admin.site.register(PublicExamTemplate, PublicExamTemplateAdmin)


    class ExamAdmin(admin.ModelAdmin):
        list_display = (
            'name', 'institute', 'start_date', 'end_date', 'duration', 'public', 'public_id', 'one_question_at_a_time', 'reanswer',
            'report_card_strategy',
            'report_card_date', 'shuffle_questions', 'shuffle_answers', 'override_institute_name', 'override_institute_logo',
            'description', 'modified_at', 'created_at')
        # search_fields = ()
        readonly_fields = []

        def get_readonly_fields(self, request, obj=None):
            readonly_fields = super(ExamAdmin, self).get_readonly_fields(request, obj)
            if obj.delayable is False:
                return readonly_fields + ['max_delay']
            return readonly_fields


    admin.site.register(Exam, ExamAdmin)


    class ExamPageAdmin(admin.ModelAdmin):
        list_display = (
            'state', 'entrance_token', 'entrance_type', 'device_token', 'device_history', 'entrance_ip', 'user', 'institute_student',
            'exam',
            'first_available_question_index', 'first_available_group_index', 'final_score', 'state_history', 'entrance_date', 'start_date',
            'end_date', 'duration',
            'modified_at', 'created_at')
        search_fields = ('entrance_ip',)
        list_filter = [
         "state",
         "entrance_type"
        ]
        readonly_fields = ()


    admin.site.register(ExamPage, ExamPageAdmin)


    class CorrectionsAdmin(admin.ModelAdmin):
        list_display = (
            'corrector', 'exam_page', 'question', 'blank', 'score', 'modified_at', 'created_at')
        search_fields = ('corrector__last_name','corrector__first_name')
        readonly_fields = ()


    admin.site.register(Corrections, CorrectionsAdmin)

else:
    # TODO
    pass

# TODO list fields
class AnswerFileAdmin(admin.ModelAdmin):
        list_display = (
            'exam_page', 'question_index', 'group_index', 'file_type', 'modified_at','created_at')
        search_fields = ('file_type',)
admin.site.register(AnswerFile,AnswerFileAdmin)
