diff --git a/lms/install.py b/lms/install.py index 8265d694..fca317b0 100644 --- a/lms/install.py +++ b/lms/install.py @@ -52,6 +52,7 @@ def before_uninstall(): def create_lms_roles(): create_course_creator_role() create_moderator_role() + create_evaluator_role() def delete_lms_roles(): @@ -91,6 +92,19 @@ def create_moderator_role(): role.save(ignore_permissions=True) +def create_evaluator_role(): + if not frappe.db.exists("Role", "Class Evaluator"): + role = frappe.new_doc("Role") + role.update( + { + "role_name": "Class Evaluator", + "home_page": "", + "desk_access": 0, + } + ) + role.save(ignore_permissions=True) + + def delete_custom_fields(): fields = [ "user_category", diff --git a/lms/lms/doctype/class_course/class_course.json b/lms/lms/doctype/class_course/class_course.json index f53619c4..6a614436 100644 --- a/lms/lms/doctype/class_course/class_course.json +++ b/lms/lms/doctype/class_course/class_course.json @@ -7,7 +7,8 @@ "engine": "InnoDB", "field_order": [ "course", - "title" + "title", + "evaluator" ], "fields": [ { @@ -23,14 +24,20 @@ "fieldname": "title", "fieldtype": "Data", "in_list_view": 1, - "label": "Title", + "label": "Course Title", "read_only": 1 + }, + { + "fieldname": "evaluator", + "fieldtype": "Link", + "label": "Evaluator", + "options": "Course Evaluator" } ], "index_web_pages_for_search": 1, "istable": 1, "links": [], - "modified": "2022-11-11 15:51:45.560864", + "modified": "2023-07-13 14:21:49.953345", "modified_by": "Administrator", "module": "LMS", "name": "Class Course", diff --git a/lms/lms/doctype/course_evaluator/course_evaluator.json b/lms/lms/doctype/course_evaluator/course_evaluator.json index 07cbcb20..cac4f195 100644 --- a/lms/lms/doctype/course_evaluator/course_evaluator.json +++ b/lms/lms/doctype/course_evaluator/course_evaluator.json @@ -27,7 +27,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2022-04-01 15:14:03.300260", + "modified": "2023-07-13 11:30:22.641076", "modified_by": "Administrator", "module": "LMS", "name": "Course Evaluator", @@ -45,6 +45,30 @@ "role": "System Manager", "share": 1, "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Moderator", + "share": 1, + "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Class Evaluator", + "share": 1, + "write": 1 } ], "sort_field": "modified", diff --git a/lms/lms/doctype/course_evaluator/course_evaluator.py b/lms/lms/doctype/course_evaluator/course_evaluator.py index c868c2f8..de3a6587 100644 --- a/lms/lms/doctype/course_evaluator/course_evaluator.py +++ b/lms/lms/doctype/course_evaluator/course_evaluator.py @@ -42,6 +42,7 @@ def get_schedule(course, date): "Evaluator Schedule", filters={"parent": evaluator}, fields=["day", "start_time", "end_time"], + order_by="start_time", ) booked_slots = frappe.get_all( "LMS Certificate Request", diff --git a/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json b/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json index 87960137..fbc3af60 100644 --- a/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json +++ b/lms/lms/doctype/lms_certificate_evaluation/lms_certificate_evaluation.json @@ -104,7 +104,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2023-02-22 16:00:34.361934", + "modified": "2023-07-13 11:30:53.432076", "modified_by": "Administrator", "module": "LMS", "name": "LMS Certificate Evaluation", @@ -121,6 +121,18 @@ "role": "System Manager", "share": 1, "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Class Evaluator", + "share": 1, + "write": 1 } ], "sort_field": "modified", diff --git a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json index 3532d24b..275dd2bd 100644 --- a/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json +++ b/lms/lms/doctype/lms_certificate_request/lms_certificate_request.json @@ -93,7 +93,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2023-02-28 19:53:17.534351", + "modified": "2023-07-13 11:30:41.740461", "modified_by": "Administrator", "module": "LMS", "name": "LMS Certificate Request", @@ -111,6 +111,18 @@ "select": 1, "share": 1, "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Class Evaluator", + "share": 1, + "write": 1 } ], "sort_field": "modified", diff --git a/lms/lms/doctype/lms_class/lms_class.json b/lms/lms/doctype/lms_class/lms_class.json index 3f3b61e3..7253100b 100644 --- a/lms/lms/doctype/lms_class/lms_class.json +++ b/lms/lms/doctype/lms_class/lms_class.json @@ -138,7 +138,7 @@ ], "index_web_pages_for_search": 1, "links": [], - "modified": "2023-06-22 15:57:25.190084", + "modified": "2023-07-13 11:30:09.097605", "modified_by": "Administrator", "module": "LMS", "name": "LMS Class", @@ -168,6 +168,18 @@ "role": "Moderator", "share": 1, "write": 1 + }, + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Class Evaluator", + "share": 1, + "write": 1 } ], "sort_field": "modified", diff --git a/lms/patches.txt b/lms/patches.txt index 22e92dab..f0d194df 100644 --- a/lms/patches.txt +++ b/lms/patches.txt @@ -56,3 +56,8 @@ lms.patches.v0_0.convert_course_description_to_html #11-05-2023 lms.patches.v1_0.rename_assignment_doctype execute:frappe.permissions.reset_perms("LMS Assignment") execute:frappe.permissions.reset_perms("LMS Quiz") +lms.patches.v1_0.create_class_evaluator_role +execute:frappe.permissions.reset_perms("LMS Class") +execute:frappe.permissions.reset_perms("Course Evaluator") +execute:frappe.permissions.reset_perms("LMS Certificate Request") +execute:frappe.permissions.reset_perms("LMS Certificate Evaluation") \ No newline at end of file diff --git a/lms/patches/v1_0/create_class_evaluator_role.py b/lms/patches/v1_0/create_class_evaluator_role.py new file mode 100644 index 00000000..ffabe2ea --- /dev/null +++ b/lms/patches/v1_0/create_class_evaluator_role.py @@ -0,0 +1,5 @@ +from lms.install import create_evaluator_role + + +def execute(): + create_evaluator_role() diff --git a/lms/www/classes/class.html b/lms/www/classes/class.html index 3193e05a..f566e229 100644 --- a/lms/www/classes/class.html +++ b/lms/www/classes/class.html @@ -180,7 +180,7 @@ {% if class_courses | length %}