示例#1
0
    def get_topic_progress(self, course_enrollment_name, topic):
        """
		Get Progress Dictionary of a student for a particular topic
		        :param self: Student Object
		        :param course_enrollment_name: Name of the Course Enrollment
		        :param topic: Topic DocType Object
		"""
        contents = topic.get_contents()
        progress = []
        if contents:
            for content in contents:
                if content.doctype in ("Article", "Video"):
                    status = check_content_completion(content.name,
                                                      content.doctype,
                                                      course_enrollment_name)
                    progress.append({
                        "content": content.name,
                        "content_type": content.doctype,
                        "is_complete": status
                    })
                elif content.doctype == "Quiz":
                    status, score, result, time_taken = check_quiz_completion(
                        content, course_enrollment_name)
                    progress.append({
                        "content": content.name,
                        "content_type": content.doctype,
                        "is_complete": status,
                        "score": score,
                        "result": result,
                    })
        return progress
示例#2
0
    def get_topic_progress(self, course_enrollment_name, topic):
        """
		Get Progress Dictionary of a student for a particular topic
			:param self: Student Object
			:param course_enrollment_name: Name of the Course Enrollment
			:param topic: Topic DocType Object
		"""
        contents = topic.get_contents()
        progress = []
        if contents:
            for content in contents:
                if content.doctype in ('Article', 'Video'):
                    status = check_content_completion(content.name,
                                                      content.doctype,
                                                      course_enrollment_name)
                    progress.append({
                        'content': content.name,
                        'content_type': content.doctype,
                        'is_complete': status
                    })
                elif content.doctype == 'Quiz':
                    status, score, result = check_quiz_completion(
                        content, course_enrollment_name)
                    progress.append({
                        'content': content.name,
                        'content_type': content.doctype,
                        'is_complete': status,
                        'score': score,
                        'result': result
                    })
        return progress
示例#3
0
def get_contents(topic, course, program):
	student = utils.get_current_student()
	if student:
		course_enrollment = utils.get_or_create_course_enrollment(course, program)
	contents = topic.get_contents()
	progress = []
	if contents:
		for content in contents:
			if content.doctype in ("Article", "Video"):
				if student:
					status = utils.check_content_completion(content.name, content.doctype, course_enrollment.name)
				else:
					status = True
				progress.append({"content": content, "content_type": content.doctype, "completed": status})
			elif content.doctype == "Quiz":
				if student:
					status, score, result, time_taken = utils.check_quiz_completion(
						content, course_enrollment.name
					)
				else:
					status = False
					score = None
					result = None
				progress.append(
					{
						"content": content,
						"content_type": content.doctype,
						"completed": status,
						"score": score,
						"result": result,
					}
				)

	return progress
示例#4
0
def get_contents(topic, course, program):
    student = utils.get_current_student()
    if student:
        course_enrollment = utils.get_or_create_course_enrollment(
            course, program)
    contents = topic.get_contents()
    progress = []
    if contents:
        for content in contents:
            content_data = frappe.get_doc(content.doctype,
                                          content.name).as_dict()
            publish_date = content_data.publish_date if content_data.publish_date is not None else date.today(
            )
            if content.doctype in ('Article', 'Video'):
                if student:
                    status = utils.check_content_completion(
                        content.name, content.doctype, course_enrollment.name)
                else:
                    status = True
                progress.append({
                    'content': content,
                    'content_type': content.doctype,
                    'completed': status,
                    'publish_date': publish_date
                })
            elif content.doctype == 'Quiz':
                if student:
                    status, score, result, max_points = check_quiz_completion(
                        content, course_enrollment.name)
                else:
                    status = False
                    score = None
                    result = None
                    max_points = None
                progress.append({
                    'content': content,
                    'content_type': content.doctype,
                    'completed': status,
                    'score': score,
                    'result': result,
                    'max_points': max_points,
                    'publish_date': publish_date
                })

    return progress
示例#5
0
def get_contents(topic, course, program):
    student = utils.get_current_student()
    if student:
        course_enrollment = utils.get_or_create_course_enrollment(
            course, program)
    contents = topic.get_contents()
    progress = []
    if contents:
        for content in contents:
            if content.doctype in ('Article', 'Video'):
                if student:
                    status = utils.check_content_completion(
                        content.name, content.doctype, course_enrollment.name)
                else:
                    status = True
                progress.append({
                    'content': content,
                    'content_type': content.doctype,
                    'completed': status
                })
            elif content.doctype == 'Quiz':
                if student:
                    status, score, result, time_taken = utils.check_quiz_completion(
                        content, course_enrollment.name)
                else:
                    status = False
                    score = None
                    result = None
                progress.append({
                    'content': content,
                    'content_type': content.doctype,
                    'completed': status,
                    'score': score,
                    'result': result
                })

    return progress