def render_report(self, request, report): problem = report.submission.problem_instance.problem return ProblemController.render_report(problem.controller, request, report)
def render_report_failure(self, request, report): return ProblemController.render_report(self, request, report)
suggestion can be returned """ user_level = Experience(user).current_level if user_level >= SuggestLvl5From: qset = get_problems_by_difficulty(DIFFICULTY.IMPOSSIBLE) elif user_level >= SuggestLvl4From: qset = get_problems_by_difficulty(DIFFICULTY.HARD) elif user_level >= SuggestLvl3From: qset = get_problems_by_difficulty(DIFFICULTY.MEDIUM) elif user_level >= SuggestLvl2From: qset = get_problems_by_difficulty(DIFFICULTY.EASY) else: qset = get_problems_by_difficulty(DIFFICULTY.TRIVIAL) try: return qset.filter(is_public=True).order_by('?').first() except Problem.DoesNotExist: return None class DifficultyProblemMixin(object): """A class to mix-in with problem controller, overriding fill_ev to update difficulty rows""" def adjust_problem(self): """Creates row with difficulty for current problem""" super(DifficultyProblemMixin, self).adjust_problem() _update_problem_difficulty(self.problem) ProblemController.mix_in(DifficultyProblemMixin)
return None user_level = Experience(user).current_level if user_level >= SuggestLvl5From: qset = get_problems_by_difficulty(DIFFICULTY.IMPOSSIBLE) elif user_level >= SuggestLvl4From: qset = get_problems_by_difficulty(DIFFICULTY.HARD) elif user_level >= SuggestLvl3From: qset = get_problems_by_difficulty(DIFFICULTY.MEDIUM) elif user_level >= SuggestLvl2From: qset = get_problems_by_difficulty(DIFFICULTY.EASY) else: qset = get_problems_by_difficulty(DIFFICULTY.TRIVIAL) try: return qset.filter(is_public=True).order_by('?').first() except Problem.DoesNotExist: return None class DifficultyProblemMixin(object): """A class to mix-in with problem controller, overriding fill_ev to update difficulty rows""" def adjust_problem(self): """Creates row with difficulty for current problem""" super(DifficultyProblemMixin, self).adjust_problem() _update_problem_difficulty(self.problem) ProblemController.mix_in(DifficultyProblemMixin)