class GroupReport(models.Model): submission_report = models.ForeignKey(SubmissionReport, on_delete=models.CASCADE) group = models.CharField(max_length=30) score = ScoreField(null=True, blank=True) max_score = ScoreField(null=True, blank=True) status = EnumField(submission_statuses)
class ScoreReport(models.Model): submission_report = models.ForeignKey(SubmissionReport, on_delete=models.CASCADE) status = EnumField(submission_statuses, blank=True, null=True) score = ScoreField(blank=True, null=True) max_score = ScoreField(blank=True, null=True) comment = models.TextField(blank=True, null=True) def get_score_display(self): if self.score is None: return '' return six.text_type(self.score)
class Submission(models.Model): problem_instance = models.ForeignKey(ProblemInstance, verbose_name=_("problem")) user = models.ForeignKey(User, blank=True, null=True, verbose_name=_("user")) date = models.DateTimeField(default=datetime.datetime.now, blank=True, verbose_name=_("date")) kind = EnumField(submission_kinds, default='NORMAL', verbose_name=_("kind")) score = ScoreField(blank=True, null=True, verbose_name=_("score")) status = EnumField(submission_statuses, default='?', verbose_name=_("status")) comment = models.TextField(blank=True, verbose_name=_("comment")) class Meta: verbose_name = _("submission") verbose_name_plural = _("submissions") get_latest_by = 'id' def get_date_display(self): return self.problem_instance.contest.controller \ .render_submission_date(self) def get_score_display(self): if self.score is None: return None return self.problem_instance.contest.controller \ .render_submission_score(self)
class ScoreReport(models.Model): submission_report = models.ForeignKey(SubmissionReport) status = EnumField(submission_statuses, blank=True, null=True) score = ScoreField(blank=True, null=True) comment = models.TextField(blank=True, null=True) def get_score_display(self): if self.score is None: return '' return unicode(self.score)
class Submission(models.Model): problem_instance = models.ForeignKey(ProblemInstance, verbose_name=_("problem"), on_delete=models.CASCADE) user = models.ForeignKey(User, blank=True, null=True, verbose_name=_("user"), on_delete=models.CASCADE) date = models.DateTimeField(default=timezone.now, blank=True, verbose_name=_("date"), db_index=True) kind = EnumField(submission_kinds, default='NORMAL', verbose_name=_("kind")) score = ScoreField(blank=True, null=True, verbose_name=_("score")) status = EnumField(submission_statuses, default='?', verbose_name=_("status")) comment = models.TextField(blank=True, verbose_name=_("comment")) @property def problem(self): return self.problem_instance.problem class Meta(object): verbose_name = _("submission") verbose_name_plural = _("submissions") get_latest_by = 'date' def is_scored(self): return self.score is not None def get_date_display(self, shortened=False): return self.problem_instance.controller.render_submission_date( self, shortened) def get_date_display_shortened(self): return self.get_date_display(True) def get_score_display(self): if self.score is None: return None return self.problem_instance.controller.render_submission_score(self) def __str__(self): return u"Submission(%d, %s, %s, %s, %s, %s)" % ( self.id, self.problem_instance.problem.name, self.user.username if self.user else None, self.date, self.kind, self.status, )
class TestReport(models.Model): __test__ = False submission_report = models.ForeignKey(SubmissionReport, on_delete=models.CASCADE) status = EnumField(submission_statuses) comment = models.CharField(max_length=255, blank=True) score = ScoreField(null=True, blank=True) max_score = ScoreField(null=True, blank=True) time_used = models.IntegerField(blank=True) output_file = FileField(upload_to=make_output_filename, null=True, blank=True) test = models.ForeignKey(Test, blank=True, null=True, on_delete=models.SET_NULL) test_name = models.CharField(max_length=30) test_group = models.CharField(max_length=30) test_time_limit = models.IntegerField(null=True, blank=True)
class UserResultForRound(models.Model): """User result (score) for the round. Each user can have only one :class:`UserResultForRound` per round. """ user = models.ForeignKey(User, on_delete=models.CASCADE) round = models.ForeignKey(Round, on_delete=models.CASCADE) score = ScoreField(blank=True, null=True) class Meta(object): unique_together = ('user', 'round')
class UserResultForContest(models.Model): """Represents the user result (score) for the contest. Each user can have only one :class:`UserResultForContest` per contest for given type. """ user = models.ForeignKey(User, on_delete=models.CASCADE) contest = models.ForeignKey(Contest, on_delete=models.CASCADE) score = ScoreField(blank=True, null=True) class Meta(object): unique_together = ('user', 'contest')
class UserResultForProblem(models.Model): """User result (score) for the problem. Each user can have only one class:`UserResultForProblem` per problem instance. """ user = models.ForeignKey(User) problem_instance = models.ForeignKey(ProblemInstance) score = ScoreField(blank=True, null=True) status = EnumField(submission_statuses, blank=True, null=True) class Meta: unique_together = ('user', 'problem_instance')
class TestReport(models.Model): submission_report = models.ForeignKey(SubmissionReport) status = EnumField(submission_statuses) comment = models.CharField(max_length=255, blank=True) score = ScoreField(blank=True) time_used = models.IntegerField(blank=True) test = models.ForeignKey(Test, blank=True, null=True, on_delete=models.SET_NULL) test_name = models.CharField(max_length=30) test_group = models.CharField(max_length=30) test_time_limit = models.IntegerField(null=True, blank=True) test_max_score = models.IntegerField(null=True, blank=True)
class QuestionReport(models.Model): submission_report = models.ForeignKey(SubmissionReport, verbose_name=_("Submission report")) comment = models.TextField(blank=True, null=True, verbose_name=_("Comment")) score = ScoreField(verbose_name=_("Score")) question = models.ForeignKey(QuizQuestion, blank=True, null=True, on_delete=models.SET_NULL, verbose_name=_("Question")) question_max_score = models.IntegerField(verbose_name=_("Question max score")) status = EnumField(submission_statuses, default='WA', verbose_name=_("Status")) class Meta(object): verbose_name = _("Question report") verbose_name_plural = _("Question reports")
class GroupReport(models.Model): submission_report = models.ForeignKey(SubmissionReport) group = models.CharField(max_length=30) score = ScoreField() status = EnumField(submission_statuses)
class ScoreFieldTestModel(models.Model): score = ScoreField(null=True)
class ScoreReport(models.Model): submission_report = models.ForeignKey(SubmissionReport) status = EnumField(submission_statuses, blank=True, null=True) score = ScoreField(blank=True, null=True) comment = models.TextField(blank=True, null=True)