X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/4cba0fdf6957b65fa1e0b91b14d4197464e4e73b..7095c251b3ed9450375c82a7f465e2db201fe841:/stage2/models.py diff --git a/stage2/models.py b/stage2/models.py index 37308fc..7b791b2 100644 --- a/stage2/models.py +++ b/stage2/models.py @@ -83,11 +83,11 @@ class Assignment(models.Model): def available_answers(self, expert): answers = self.answer_set.exclude(mark__expert=expert) - assigned_to_expert = self.answer_set.filter(expert=expert).exists() + assigned_to_expert = self.answer_set.filter(experts=expert).exists() is_supervisor = expert in self.supervisors.all() is_arbiter = expert in self.arbiters.all() if assigned_to_expert: - expert_answers = answers.filter(expert=expert) + expert_answers = answers.filter(experts=expert) if expert_answers or not is_arbiter: answers = expert_answers answers = answers.extra(where=[ @@ -162,6 +162,16 @@ class Answer(models.Model): return None return self.mark_set.aggregate(avg=models.Avg('points'))['avg'] + # unrelated to `complete' attribute, but whatever + def is_complete(self): + file_count = len(self.assignment.file_descriptions) + field_count = len(self.assignment.field_descriptions) + if self.attachment_set.count() < file_count: + return False + if self.fieldoption_set.count() + sum(1 for k, v in self.field_values.iteritems() if v) < field_count: + return False + return True + class FieldOptionSet(models.Model): name = models.CharField(verbose_name=_('nazwa'), max_length=32, db_index=True)