LMS: Added functions to get LMS contents
Co-authored-by: Chinmay Pai <chinmaydpai@gmail.com>
diff --git a/erpnext/education/doctype/content/content.json b/erpnext/education/doctype/content/content.json
index ff87d0b..053372f 100644
--- a/erpnext/education/doctype/content/content.json
+++ b/erpnext/education/doctype/content/content.json
@@ -120,39 +120,6 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "0",
- "fieldname": "is_published",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Is Published",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "translatable": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_in_quick_entry": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
"fieldname": "column_break_5",
"fieldtype": "Column Break",
"hidden": 0,
@@ -548,7 +515,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-10-16 13:03:35.328063",
+ "modified": "2018-10-16 15:50:59.193504",
"modified_by": "Administrator",
"module": "Education",
"name": "Content",
diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py
index 493a876..9314da2 100644
--- a/erpnext/education/utils.py
+++ b/erpnext/education/utils.py
@@ -133,19 +133,68 @@
try:
activity_name = frappe.get_all("Course Activity", filters={"student_id": get_student_id(frappe.session.user), "program_name": program})[0]
except IndexError:
- print("------ Got No Doc ------")
return True, None
else:
- print("------ Got A Doc ------")
return None, frappe.get_doc("Course Activity", activity_name)
+def get_contents_in_course(course_name):
+ try:
+ course_doc = frappe.get_doc("Course", {"name":course_name, "is_published": True})
+ return [frappe.get_doc("Content", content.content) for content in course_doc.get_all_children()]
+ except frappe.DoesNotExistError:
+ return None
+
+def get_courses_in_program(program):
+ try:
+ program_doc = frappe.get_doc("Program", program)
+ if program_doc.is_published:
+ course_list = [frappe.get_doc("Course", course.course_name) for course in program_doc.get_all_children()]
+ return [course for course in course_list if course.is_published == True]
+ else:
+ return None
+ except frappe.DoesNotExistError:
+ return None
+
+def get_program():
+ program_list = frappe.get_list("Program", filters={"is_published": is_published})
+ if program_list:
+ return program_list
+ else:
+ return None
+
+def get_featured_program():
+ featured_list = frappe.get_list("Program", filters={"is_published": True, "is_featured": True})
+ if featured_list:
+ return featured_list
+ else:
+ return None
+
+@frappe.whitelist()
+def add_course_enrollment(course, email):
+ student_id = get_student_id(email)
+ if not get_course_enrollment(course, email):
+ enrollment = frappe.get_doc({
+ "doctype": "Course Enrollment",
+ "student": student_id,
+ "course": course
+ })
+ enrollment.save()
+ frappe.db.commit()
+ return enrollment
+
+def get_course_enrollment(course, email):
+ student_id = get_student_id(email)
+ try:
+ return frappe.get_list("Course Enrollment", filters={'course':course, 'student':student_id})[0]
+ except IndexError:
+ return None
+
def get_student_id(email):
"""Returns Student ID, example EDU-STU-2018-00001 from email address
:params email: email address of the student"""
try:
- student = frappe.get_list('Student', filters={'student_email_id': email})[0].name
- return student
+ return frappe.get_list('Student', filters={'student_email_id': email})[0].name
except IndexError:
frappe.throw("Student Account with email:{0} does not exist".format(email))