from django.db import models from django.conf import settings class LabQuiz(models.Model): lab_code = models.CharField(max_length=20) language_code = models.CharField(max_length=10) content_hash = models.CharField(max_length=128) title = models.CharField(max_length=255) description = models.TextField(null=True, blank=True) allow_repeat_submission = models.BooleanField(default=True) evaluate_immediately = models.BooleanField(default=True) show_correct_answer = models.BooleanField(default=True) questions = models.JSONField(default=list) max_score = models.IntegerField(default=0) class Meta: db_table = "lab_quizzes" unique_together = ("lab_code", "language_code", "content_hash") class LabQuizSubmission(models.Model): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, ) lab_instance = models.ForeignKey( "labs.LabInstance", on_delete=models.CASCADE, ) lab_quiz = models.ForeignKey( "labs.LabQuiz", on_delete=models.CASCADE, ) answers = models.JSONField(default=list) score = models.IntegerField(default=0) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: db_table = "lab_quiz_submissions"