from django.contrib import admin from django.utils.safestring import mark_safe from quiz.models import QuizResult @admin.register(QuizResult) class QuizResultAdmin(admin.ModelAdmin): """Admin interface for Quiz Results""" list_display = ['id', 'user_preview', 'question_preview', 'selected_answer', 'correct_answer', 'result_status', 'answered_at'] list_filter = ['is_correct', 'answered_at'] search_fields = ['user__session_key', 'question__text'] readonly_fields = ['user', 'question', 'selected_answer', 'is_correct', 'answered_at'] def user_preview(self, obj): """Show user session preview""" return f"{obj.user.session_key[:8]}..." user_preview.short_description = 'User' def question_preview(self, obj): """Show question preview""" return obj.question.text[:40] + '...' question_preview.short_description = 'Question' def correct_answer(self, obj): """Show correct answer""" return obj.question.correct_answer correct_answer.short_description = 'Correct' def result_status(self, obj): """Show visual result status""" if obj.is_correct: return mark_safe('✓ Correct') return mark_safe('✗ Wrong') result_status.short_description = 'Result'