diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 047b43f7..22f78197 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -435,16 +435,16 @@ def redirect_to_courses_list(): raise frappe.Redirect -def has_course_instructor_role(): +def has_course_instructor_role(member=None): return frappe.db.get_value("Has Role", { - "parent": frappe.session.user, + "parent": member or frappe.session.user, "role": "Course Instructor" }, "name") -def has_course_moderator_role(): +def has_course_moderator_role(member=None): return frappe.db.get_value("Has Role", { - "parent": frappe.session.user, + "parent": member or frappe.session.user, "role": "Course Moderator" }, "name") @@ -453,5 +453,5 @@ def get_courses_under_review(): return frappe.get_all("LMS Course", { "status": "Under Review" }, ["name", "upcoming", "title", "image", "enable_certification", "status", "published"] - ) +) diff --git a/lms/overrides/user.py b/lms/overrides/user.py index 52db13c7..820a4be5 100644 --- a/lms/overrides/user.py +++ b/lms/overrides/user.py @@ -330,3 +330,22 @@ def get_users(or_filters, start, page_length, text): """.format(or_filters = or_filters, start=start, page_length=page_length), as_dict=1) return users + + +@frappe.whitelist() +def save_role(user, role, value): + if cint(value): + doc = frappe.get_doc({ + "doctype": "Has Role", + "parent": user, + "role": role, + "parenttype": "User", + "parentfield": "roles" + }) + doc.save(ignore_permissions=True) + else: + frappe.db.delete("Has Role", { + "parent": user, + "role": role + }) + return True diff --git a/lms/public/css/style.css b/lms/public/css/style.css index b8b2b9f7..d24d8ff8 100644 --- a/lms/public/css/style.css +++ b/lms/public/css/style.css @@ -1686,3 +1686,8 @@ li { .review-link { float: right } + +.role { + margin-bottom: 0; + cursor: pointer; +} diff --git a/lms/www/courses/course.html b/lms/www/courses/course.html index 7472880a..4fdaf48e 100644 --- a/lms/www/courses/course.html +++ b/lms/www/courses/course.html @@ -214,7 +214,7 @@ {% macro CourseSettings(course) %} - {% if has_course_moderator_role() %} + {% if course.edit_mode and has_course_moderator_role() %}