def create_submission(self, key, submission): if submission.user not in self._scores: self._scores[submission.user] = dict() if submission.task not in self._scores[submission.user]: task = task_store.retrieve(submission.task) self._scores[submission.user][submission.task] = \ Score(score_mode=task["score_mode"]) score_obj = self._scores[submission.user][submission.task] old_score = score_obj.get_score() score_obj.create_submission(key, submission) new_score = score_obj.get_score() if old_score != new_score: self.notify_callbacks(submission.user, submission.task, new_score)
def update_submission(self, key, old_submission, submission): if old_submission.user != submission.user or \ old_submission.task != submission.task: # TODO Delete all subchanges from the Score of the old # submission and create them on the new one. self.delete_submission(key, old_submission) self.create_submission(key, submission) return task = task_store.retrieve(submission.task) score_obj = self._scores[submission.user][submission.task] old_score = score_obj.get_score() score_obj.update_submission(key, submission) score_obj.update_score_mode(task["score_mode"]) new_score = score_obj.get_score() if old_score != new_score: self.notify_callbacks(submission.user, submission.task, new_score)