def lesson_check_code(course_slug, lesson_slug): if not is_name_valid_for_directory( course_slug) or not is_name_valid_for_directory(lesson_slug): abort(404) r = request.json result = lesson_check_execute(course_slug, lesson_slug, r['code']) return jsonify(result)
def lesson_image(course_slug, lesson_slug, image_name): if not is_name_valid_for_directory(course_slug) or not is_name_valid_for_directory(lesson_slug)\ or not is_name_valid_for_filename(image_name): abort(403) img = lesson_image_path(course_slug, lesson_slug, image_name) if img: return send_from_directory(os.path.dirname(img), os.path.basename(img)) else: abort(403)
def lesson_logo(course_slug, lesson_slug): if not is_name_valid_for_directory( course_slug) or not is_name_valid_for_directory(lesson_slug): abort(404) logo = lesson_logo_from_path(course_slug, lesson_slug) if logo: return send_from_directory(os.path.dirname(logo), os.path.basename(logo)) else: return course_logo(course_slug)
def course_logo(course_slug): if not is_name_valid_for_directory(course_slug): abort(404) logo = course_logo_from_path(course_slug) if logo: return send_from_directory(os.path.dirname(logo), os.path.basename(logo)) abort(404)
def course_statistics(course_slug): if not is_name_valid_for_directory(course_slug): abort(404) users_table = get_users_for_course_statistics(course_slug) lessons = course_content_from_path(course_slug) statistics_table = [] for row in users_table.values(): statistics_row = { 'uid': row['uid'], 'username': row['username'], 'lessons': {}, } for lesson in lessons: statistics_row['lessons'][lesson['slug']] = { 'progress': lesson['slug'] in row['lessons'] and row['lessons'][lesson['slug']] == True, } statistics_table.append(statistics_row) return jsonify({ 'statistics_header': lessons, 'statistics_content': statistics_table })
def lesson_check_status(course_slug, lesson_slug, task_id): if not is_name_valid_for_directory( course_slug) or not is_name_valid_for_directory(lesson_slug): abort(404) result = lesson_check_results(course_slug, lesson_slug, task_id) return jsonify(result)
def lesson_content(course_slug, lesson_slug): if not is_name_valid_for_directory( course_slug) or not is_name_valid_for_directory(lesson_slug): abort(404) lesson = lesson_content_from_path(course_slug, lesson_slug) return jsonify(lesson)
def course_info(course_slug): if not is_name_valid_for_directory(course_slug): abort(404) course = course_info_from_path(course_slug) return jsonify(course)