Files
enlight-lms/lms/www/classes/progress.py
2023-07-24 17:10:03 +05:30

54 lines
1.5 KiB
Python

import frappe
from lms.lms.utils import has_course_moderator_role, has_course_evaluator_role
from frappe import _
from lms.www.utils import get_assessments
def get_context(context):
context.no_cache = 1
student = frappe.form_dict["username"]
class_name = frappe.form_dict["classname"]
context.is_moderator = has_course_moderator_role()
context.is_evaluator = has_course_evaluator_role()
context.student = frappe.db.get_value(
"User",
{"username": student},
["first_name", "full_name", "name", "last_active", "username"],
as_dict=True,
)
if (
not context.is_moderator
and not context.is_evaluator
and not context.student.name == frappe.session.user
):
raise frappe.PermissionError(_("You don't have permission to access this page."))
context.class_info = frappe.db.get_value(
"LMS Class", class_name, ["name"], as_dict=True
)
context.courses = frappe.get_all(
"Class Course", {"parent": class_name}, pluck="course"
)
context.assessments = get_assessments(class_name, context.student.name)
upcoming_evals = frappe.get_all(
"LMS certificate Request",
{
"member": context.student.name,
"course": ["in", context.courses],
"date": [">=", frappe.utils.nowdate()],
},
["date", "start_time", "course", "evaluator", "google_meet_link"],
order_by="date",
)
for evals in upcoming_evals:
evals.course_title = frappe.db.get_value("LMS Course", evals.course, "title")
evals.evaluator_name = frappe.db.get_value("User", evals.evaluator, "full_name")
context.upcoming_evals = upcoming_evals