68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
import frappe
|
|
from frappe import _
|
|
|
|
|
|
def get_context(context):
|
|
module = frappe.form_dict.module
|
|
docname = frappe.form_dict.modulename
|
|
|
|
if frappe.session.user == "Guest":
|
|
raise frappe.PermissionError(_("You are not allowed to access this page."))
|
|
|
|
if module not in ["course", "class"]:
|
|
raise ValueError(_("Module is incorrect."))
|
|
|
|
doctype = "LMS Course" if module == "course" else "LMS Class"
|
|
context.module = module
|
|
context.docname = docname
|
|
context.doctype = doctype
|
|
|
|
if not frappe.db.exists(doctype, docname):
|
|
raise ValueError(_("Module Name is incorrect or does not exist."))
|
|
|
|
if doctype == "LMS Course":
|
|
membership = frappe.db.exists(
|
|
"LMS Enrollment", {"member": frappe.session.user, "course": docname}
|
|
)
|
|
if membership:
|
|
raise frappe.PermissionError(_("You are already enrolled for this course"))
|
|
|
|
else:
|
|
membership = frappe.db.exists(
|
|
"Class Student", {"student": frappe.session.user, "parent": docname}
|
|
)
|
|
if membership:
|
|
raise frappe.PermissionError(_("You are already enrolled for this class"))
|
|
|
|
if doctype == "LMS Course":
|
|
course = frappe.db.get_value(
|
|
"LMS Course",
|
|
docname,
|
|
["title", "name", "paid_course", "course_price", "currency"],
|
|
as_dict=True,
|
|
)
|
|
|
|
if not course.paid_course:
|
|
raise frappe.PermissionError(_("This course is free."))
|
|
|
|
context.title = course.title
|
|
context.amount = course.course_price
|
|
context.currency = course.currency
|
|
|
|
else:
|
|
class_info = frappe.db.get_value(
|
|
"LMS Class",
|
|
docname,
|
|
["title", "name", "paid_class", "amount", "currency"],
|
|
as_dict=True,
|
|
)
|
|
|
|
if not class_info.paid_class:
|
|
raise frappe.PermissionError(
|
|
_("To join this class, please contact the Administrator.")
|
|
)
|
|
|
|
context.title = class_info.title
|
|
context.amount = class_info.amount
|
|
context.currency = class_info.currency
|