X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/566ee7cbbf5ad86cc0fe154a4c592c522d97ead2..83272404e6de588c8b436fed6e5ea41eb7df8e6a:/wtem/models.py diff --git a/wtem/models.py b/wtem/models.py index 4139efc..e3b0656 100644 --- a/wtem/models.py +++ b/wtem/models.py @@ -19,11 +19,24 @@ from django.utils import timezone from django.utils.translation import ugettext as _ from jsonfield import JSONField -from contact.models import Contact -f = file(os.path.dirname(__file__) + '/fixtures/exercises.json') -exercises = json.loads(f.read()) -f.close() +def prepare_exercises(): + f = file(os.path.dirname(__file__) + '/fixtures/exercises.json') + exercises = json.loads(f.read()) + for i, exercise in enumerate(exercises, 1): + exercise['id'] = i + if exercise['type'] == 'edumed_wybor' and exercise['answer_mode'] == 'multi': + answer = [] + for j, option in enumerate(exercise['options'], 1): + option['id'] = j + if option['answer']: + answer.append(j) + exercise['answer'] = answer + f.close() + return exercises + + +exercises = prepare_exercises() DEBUG_KEY = 'smerfetka159' @@ -72,7 +85,7 @@ class CompetitionState(models.Model): class Submission(models.Model): - contact = models.ForeignKey(Contact, null=True) + contact = models.ForeignKey('contact.Contact', null=True) key = models.CharField(max_length=30, unique=True) first_name = models.CharField(max_length=100) last_name = models.CharField(max_length=100) @@ -156,6 +169,8 @@ class Submission(models.Model): def get_final_exercise_mark(self, exercise_id): exercise = get_exercise_by_id(exercise_id) + if exercise.get('excluded'): + return 0 if exercise_checked_manually(exercise): marks_by_examiner = self.get_exercise_marks_by_examiner(exercise_id) if len(marks_by_examiner): @@ -266,7 +281,7 @@ class Assignment(models.Model): class AbstractConfirmation(models.Model): - contact = models.ForeignKey(Contact, null=True) + contact = models.ForeignKey('contact.Contact', null=True) key = models.CharField(max_length=30) confirmed = models.BooleanField(default=False)