X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/933e7a7227802f0aee60a0295c08077467ee4250..720b406bad055e68e416812153ef45b471457107:/wtem/models.py diff --git a/wtem/models.py b/wtem/models.py index 30539b2..90492bf 100644 --- a/wtem/models.py +++ b/wtem/models.py @@ -2,6 +2,10 @@ import random import string from django.db import models +from django.contrib.auth.models import User +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext as _ +from jsonfield import JSONField from contact.models import Contact @@ -15,6 +19,7 @@ class Submission(models.Model): last_name = models.CharField(max_length = 100) email = models.EmailField(max_length = 100, unique = True) answers = models.CharField(max_length = 65536, null = True, blank = True) + key_sent = models.BooleanField(default = False) @classmethod def generate_key(cls): @@ -40,4 +45,16 @@ class Submission(models.Model): class Attachment(models.Model): submission = models.ForeignKey(Submission) name = models.CharField(max_length=100) - file = models.FileField(upload_to = 'wtem/attachment') \ No newline at end of file + file = models.FileField(upload_to = 'wtem/attachment') + + +class Assignment(models.Model): + user = models.ForeignKey(User) + exercises = JSONField() + + def clean(self): + if not isinstance(self.exercises, list): + raise ValidationError(_('Assigned exercises must be declared in a list format')) + for exercise in self.exercises: + if not isinstance(exercise, int) or exercise < 1: + raise ValidationError(_('Invalid exercise id: %s' % exercise))