def _get_next_mod(id): m = get_module(id) if m: parent = m.parent child = get_child_by_serial(parent, m.serial+1) if not child: return get_module(parent) return child return None
def create_course_progress(courseId, userId): course = get_module(courseId) expireDays = get_expiry_by_id(courseId) if expireDays: dt = add_days(_get_now(), expireDays) else: dt = add_years(_get_now()) cp = CourseProgress(module_id=courseId, user_id=userId, expires_at=dt, completed_segments=0) _update_course_enroll(courseId) db.session.add(cp) commit()
def _get_status(id, userId): m = get_module(id) if m: if m.type=='quiz': return get_quiz_progress(m.id, userId) elif m.type=='video': return get_video_progress(m.id, userId) elif m.type=='lecture': return get_lecture_progress(m.id, userId) elif m.type=='segment': return get_or_create_segment_progress(m.id, m.parent, userId) elif m.type=='course': return get_course_progress(m.id, userId) return None
def _update_course_progress(courseId, userId, userName, segmentDelta, totalDelta, scoreDelta): courseProgress = get_course_progress(courseId, userId) courseProgress.completed_segments += segmentDelta courseProgress.total_points += totalDelta courseProgress.scored_points += scoreDelta totalSegments = get_total_children(courseId) if totalSegments <= courseProgress.completed_segments: courseData = get_course_data(courseId) awardedPercent = (courseProgress.scored_points / courseProgress.total_points) * 100.00 courseProgress.completed_at = _get_now() courseProgress.is_complete = True if awardedPercent >= courseData.pass_percent - 0.1: course = get_module(courseId) rt = create_certificate_pending(courseId, userId, course.name, userName, courseProgress.completed_at, courseProgress.scored_points, courseProgress.total_points) print(rt) _update_course_student_finish(courseId)
def _get_prev_mod(id): m = get_module(id) if m: parent = m.parent return get_child_by_serial(parent, m.serial-1)
def _get_type(id): m = get_module(id) if m: return m.type return None
def _get_module(id): return get_module(id)