def problem_in_lesson(request, lesson_name, problem_name): course = Course.objects.get(urlname=DEFAULT_COURSE) lesson_db = Lesson.objects.get(urlname=lesson_name) lessons = course.lessonincourse_set.all() lesson = load_lesson(lesson_db) lesson_in_course = lesson_db.lessonincourse_set.get(course=course) problems = get_sorted_problems(lesson=lesson_db) for problem in problems: if request.user.is_authenticated(): statuses = [submission.get_status_display() for submission in Submission.objects.filter(user=request.user, problem=problem['db_object'])] else: statuses = [] if 'ok' in statuses: problem['status'] = 'solved' elif 'accepted' in statuses: problem['status'] = 'accepted' elif 'error' in statuses: problem['status'] = 'unsolved' else: problem['status'] = '' problem_db = Problem.objects.get(urlname=problem_name) problem = load_problem(problem_db) saved_code = get_best_saved_code(request.user, problem_name) tests_examples = [] for test_input, test_output in zip(problem['tests'], problem['answers']): tests_examples.append({'input': test_input, 'output': test_output}) return render(request, 'problem.html', locals())
def lesson_in_course(request, lesson_name): course = Course.objects.get(urlname=DEFAULT_COURSE) lesson_db = Lesson.objects.get(urlname=lesson_name) lessons = course.lessonincourse_set.all() lesson_in_course = lesson_db.lessonincourse_set.get(course=course) problems = get_sorted_problems(lesson=lesson_db) lesson = load_lesson(lesson_db) return render(request, 'lesson.html', locals())
def problem_in_lesson(request, lesson_name, problem_name): course = Course.objects.get(urlname=DEFAULT_COURSE) lesson_db = Lesson.objects.get(urlname=lesson_name) lessons = course.lessonincourse_set.all() lesson = load_lesson(lesson_db) lesson_in_course = lesson_db.lessonincourse_set.get(course=course) problems = get_sorted_problems(lesson=lesson_db) for problem in problems: if request.user.is_authenticated(): statuses = [ submission.get_status_display() for submission in Submission.objects.filter( user=request.user, problem=problem['db_object']) ] else: statuses = [] if 'ok' in statuses: problem['status'] = 'solved' elif 'accepted' in statuses: problem['status'] = 'accepted' elif 'error' in statuses: problem['status'] = 'unsolved' else: problem['status'] = '' problem_db = Problem.objects.get(urlname=problem_name) problem = load_problem(problem_db) saved_code = get_best_saved_code(request.user, problem_name) tests_examples = [] for test_input, test_output in zip(problem['tests'], problem['answers']): tests_examples.append({'input': test_input, 'output': test_output}) return render(request, 'problem.html', locals())