blob: 9a8746387b1ab8492420f12356931e9083d93cce [file] [log] [blame]
scmmishra1778b592018-10-30 18:25:49 +05301from __future__ import unicode_literals
2import frappe
3import erpnext.education.utils as utils
4
scmmishra9c642ac2018-11-01 17:17:49 +05305# Functions to get homepage details
scmmishra1778b592018-10-30 18:25:49 +05306@frappe.whitelist()
7def get_portal_details():
8 settings = frappe.get_doc("Education Settings")
9 title = settings.portal_title
10 description = settings.description
11 return dict(title=title, description=description)
12
13@frappe.whitelist()
14def get_featured_programs():
15 featured_program_names = frappe.get_list("Program", filters={"is_published": True, "is_featured": True})
16 featured_list = [program["name"] for program in featured_program_names]
17 if featured_list:
18 return featured_list
19 else:
20 return None
21
scmmishra9c642ac2018-11-01 17:17:49 +053022# Functions to get program & course details
scmmishra1778b592018-10-30 18:25:49 +053023@frappe.whitelist()
24def get_program_details(program_name):
25 try:
26 program = frappe.get_doc('Program', program_name)
27 return program
28 except:
29 return None
scmmishra9c642ac2018-11-01 17:17:49 +053030
31@frappe.whitelist()
32def get_courses(program_name):
33 program = frappe.get_doc('Program', program_name)
34 courses = program.get_course_list()
35 return courses
36
37@frappe.whitelist()
38def get_starting_content(course_name):
39 course = frappe.get_doc('Course', course_name)
40 content = course.course_content[0].content
41 content_type = course.course_content[0].content_type
42 return dict(content=content, content_type=content_type)
43
44
45# Functions to get content details
46@frappe.whitelist()
47def get_content(content_name, content_type):
48 try:
49 content = frappe.get_doc(content_type, content_name)
50 return content
51 except:
52 frappe.throw("{0} with name {1} does not exist".format(content_type, content_name))
53 return None
54
55@frappe.whitelist()
56def get_next_content(content, content_type, course):
57 course_doc = frappe.get_doc("Course", course)
58 content_list = [{'content_type':item.content_type, 'content':item.content} for item in course_doc.get_all_children()]
59 current_index = content_list.index({'content': content, 'content_type': content_type})
60 try:
61 return content_list[current_index + 1]
62 except IndexError:
scmmishra37418442018-11-01 19:50:47 +053063 return None
64
65def get_quiz_with_answers(quiz_name):
66 try:
67 quiz = frappe.get_doc("Quiz", quiz_name).get_questions()
68 quiz_output = [{'name':question.name, 'question':question.question, 'options':[{'name': option.name, 'option':option.option, 'is_correct':option.is_correct} for option in question.options]} for question in quiz]
69 return quiz_output
70 except:
71 frappe.throw("Quiz {0} does not exist".format(quiz_name))
72 return None
73
74@frappe.whitelist()
75def get_quiz_without_answers(quiz_name):
76 try:
77 quiz = frappe.get_doc("Quiz", quiz_name).get_questions()
78 quiz_output = [{'name':question.name, 'question':question.question, 'options':[{'name': option.name, 'option':option.option} for option in question.options]} for question in quiz]
79 return quiz_output
80 except:
81 frappe.throw("Quiz {0} does not exist".format(quiz_name))
scmmishra9c642ac2018-11-01 17:17:49 +053082 return None