Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 1 | import frappe |
Shivam Mishra | f121b51 | 2019-06-05 19:43:51 +0530 | [diff] [blame] | 2 | from frappe import _ |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 3 | |
Chillar Anand | 915b343 | 2021-09-02 16:44:59 +0530 | [diff] [blame] | 4 | import erpnext.education.utils as utils |
| 5 | |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 6 | no_cache = 1 |
| 7 | |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 8 | |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 9 | def get_context(context): |
Shivam Mishra | 147d5d9 | 2019-06-12 16:01:02 +0530 | [diff] [blame] | 10 | try: |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 11 | program = frappe.form_dict["program"] |
Shivam Mishra | 147d5d9 | 2019-06-12 16:01:02 +0530 | [diff] [blame] | 12 | except KeyError: |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 13 | frappe.local.flags.redirect_location = "/lms" |
Shivam Mishra | 147d5d9 | 2019-06-12 16:01:02 +0530 | [diff] [blame] | 14 | raise frappe.Redirect |
| 15 | |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 16 | context.education_settings = frappe.get_single("Education Settings") |
Shivam Mishra | 147d5d9 | 2019-06-12 16:01:02 +0530 | [diff] [blame] | 17 | context.program = get_program(program) |
Shivam Mishra | 570161b | 2019-06-05 13:08:53 +0530 | [diff] [blame] | 18 | context.courses = [frappe.get_doc("Course", course.course) for course in context.program.courses] |
Shivam Mishra | 147d5d9 | 2019-06-12 16:01:02 +0530 | [diff] [blame] | 19 | context.has_access = utils.allowed_program_access(program) |
Shivam Mishra | 570161b | 2019-06-05 13:08:53 +0530 | [diff] [blame] | 20 | context.progress = get_course_progress(context.courses, context.program) |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 21 | |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 22 | |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 23 | def get_program(program_name): |
| 24 | try: |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 25 | return frappe.get_doc("Program", program_name) |
Shivam Mishra | 823c795 | 2019-05-19 16:01:45 +0530 | [diff] [blame] | 26 | except frappe.DoesNotExistError: |
Suraj Shetty | 48e9bc3 | 2020-01-29 15:06:18 +0530 | [diff] [blame] | 27 | frappe.throw(_("Program {0} does not exist.").format(program_name)) |
Shivam Mishra | 570161b | 2019-06-05 13:08:53 +0530 | [diff] [blame] | 28 | |
Ankush Menat | 494bd9e | 2022-03-28 18:52:46 +0530 | [diff] [blame] | 29 | |
Shivam Mishra | 570161b | 2019-06-05 13:08:53 +0530 | [diff] [blame] | 30 | def get_course_progress(courses, program): |
Shivam Mishra | 16b4129 | 2019-06-05 17:29:48 +0530 | [diff] [blame] | 31 | progress = {course.name: utils.get_course_progress(course, program) for course in courses} |
Ankush Menat | 4551d7d | 2021-08-19 13:41:10 +0530 | [diff] [blame] | 32 | return progress or {} |