From 000e7063375c6b76eccdefba7c8f00ef40d1f347 Mon Sep 17 00:00:00 2001 From: scmmishra Date: Tue, 19 Mar 2019 12:30:43 +0530 Subject: [PATCH] feat: Only student progress is recorded in LMS Changes - Instructors can freely audit the course and their progress will not be recorded - Added check for super access for get_program in utils.py - Guests can view topics page - Instructors can see explore topic button - Content Activity is only saved for a student in lms.py - Modified variable names in topic.py --- erpnext/education/doctype/topic/topic.py | 4 +-- erpnext/education/utils.py | 7 ++++- .../education/lms/components/CourseCard.vue | 8 +++--- .../js/education/lms/components/TopicCard.vue | 6 ++--- erpnext/www/lms.py | 27 +++++++++++++------ 5 files changed, 34 insertions(+), 18 deletions(-) diff --git a/erpnext/education/doctype/topic/topic.py b/erpnext/education/doctype/topic/topic.py index 71bfc18c4d6..b890935e3ef 100644 --- a/erpnext/education/doctype/topic/topic.py +++ b/erpnext/education/doctype/topic/topic.py @@ -9,8 +9,8 @@ from frappe.model.document import Document class Topic(Document): def get_contents(self): try: - course_content_list = self.get_all_children() - content_data = [frappe.get_doc(course_content.content_type, course_content.content) for course_content in course_content_list] + topic_content_list = self.get_all_children() + content_data = [frappe.get_doc(topic_content.content_type, topic_content.content) for topic_content in topic_content_list] except Exception as e: return None return content_data \ No newline at end of file diff --git a/erpnext/education/utils.py b/erpnext/education/utils.py index 8166ac7ea6c..a88f66b04ce 100644 --- a/erpnext/education/utils.py +++ b/erpnext/education/utils.py @@ -70,6 +70,11 @@ def get_current_student(): except IndexError: return None +def check_super_access(): + current_user = frappe.get_doc('User', frappe.session.user) + roles = set([role.role for role in current_user.roles]) + return bool(roles & {'Administrator', 'Instructor', 'Education Manager', 'System Manager', 'Academic User'}) + def get_program_enrollment(program_name): """ Function to get program enrollments for a particular student for a program @@ -86,7 +91,7 @@ def get_program_enrollment(program_name): def get_program(program_name): program = frappe.get_doc('Program', program_name) - is_enrolled = bool(get_program_enrollment(program_name)) + is_enrolled = bool(get_program_enrollment(program_name)) or check_super_access() return {'program': program, 'is_enrolled': is_enrolled} def get_course_enrollment(course_name): diff --git a/erpnext/public/js/education/lms/components/CourseCard.vue b/erpnext/public/js/education/lms/components/CourseCard.vue index b9cb548ef0d..90c0c7b6673 100644 --- a/erpnext/public/js/education/lms/components/CourseCard.vue +++ b/erpnext/public/js/education/lms/components/CourseCard.vue @@ -14,7 +14,7 @@
-