from django.db import models from university.db.fields import JSONField from .badge import Badge class Exam(models.Model): name = models.CharField(max_length=255, unique=True) description = models.TextField() price = models.DecimalField(max_digits=10, decimal_places=2) registration_start = models.DateTimeField(blank=False, null=False) registration_deadline = models.DateTimeField(blank=False, null=False) venues = JSONField(default=[]) exam_times = JSONField(default=[]) required_badges = JSONField(default=[]) class Meta: db_table = 'exams' def __str__(self): return self.name @property def required_permissions_desc(self): return list( Badge.objects.filter(id__in=self.required_badges) .values_list('description', flat=True))