Files
enlight-lms/lms/www/batches/batch_details.py
2023-09-27 19:21:57 +05:30

80 lines
1.9 KiB
Python

import frappe
from frappe import _
from lms.lms.utils import (
has_course_moderator_role,
has_course_evaluator_role,
check_multicurrency,
)
from lms.www.utils import is_student
def get_context(context):
context.no_cache = 1
batch_name = frappe.form_dict["batchname"]
context.batch_info = frappe.db.get_value(
"LMS Batch",
batch_name,
[
"name",
"title",
"description",
"batch_details",
"start_date",
"end_date",
"paid_batch",
"amount",
"currency",
"start_time",
"end_time",
"seat_count",
"published",
"meta_image",
"batch_details_raw",
],
as_dict=1,
)
if context.batch_info.amount and context.batch_info.currency:
amount, currency = check_multicurrency(
context.batch_info.amount, context.batch_info.currency
)
context.batch_info.amount = amount
context.batch_info.currency = currency
context.is_moderator = has_course_moderator_role()
context.is_evaluator = has_course_evaluator_role()
context.is_student = is_student(batch_name)
if not context.is_moderator and not context.batch_info.published:
raise frappe.PermissionError(_("You do not have permission to access this page."))
if context.is_student:
frappe.local.flags.redirect_location = f"/batches/{batch_name}"
raise frappe.Redirect
context.courses = frappe.get_all(
"Batch Course",
{"parent": batch_name},
["name as batch_course", "course", "title", "evaluator"],
order_by="idx",
)
for course in context.courses:
course.update(
frappe.db.get_value(
"LMS Course", course.course, ["name", "short_introduction", "image"], as_dict=1
)
)
context.student_count = frappe.db.count("Batch Student", {"parent": batch_name})
context.seats_left = context.batch_info.seat_count - context.student_count
context.metatags = {
"title": context.batch_info.title,
"image": context.batch_info.meta_image,
"description": context.batch_info.description,
"keywords": context.batch_info.title,
"og:type": "website",
}