57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
import frappe
|
|
|
|
def get_member_with_email():
|
|
try:
|
|
return frappe.db.get_value("Community Member", {"email": frappe.session.user}, "name")
|
|
except frappe.DoesNotExistError:
|
|
return
|
|
|
|
def get_member_with_name(name):
|
|
try:
|
|
return frappe.get_doc("Community Member", name)
|
|
except frappe.DoesNotExistError:
|
|
return
|
|
|
|
def get_batch(code):
|
|
try:
|
|
return frappe.db.get_value("LMS Batch", {"code": code}, ["name", "description"], as_dict=True)
|
|
except frappe.DoesNotExistError:
|
|
return
|
|
|
|
def is_member_of_batch(batch_code):
|
|
membership = frappe.get_all("LMS Batch Membership", {"batch": get_batch(batch_code).name, "member": get_member_with_email()})
|
|
if len(membership):
|
|
return True
|
|
return False
|
|
|
|
def redirect_if_not_a_member(course,batch_code):
|
|
if not is_member_of_batch(batch_code):
|
|
frappe.local.flags.redirect_location = "/courses/" + course
|
|
raise frappe.Redirect
|
|
|
|
def get_course(slug):
|
|
try:
|
|
return frappe.get_doc("LMS Course", {"slug": slug})
|
|
except frappe.DoesNotExistError:
|
|
return
|
|
|
|
def get_instructor(owner):
|
|
instructor = frappe._dict()
|
|
try:
|
|
instructor = frappe.get_doc("Community Member", {"email": owner})
|
|
except frappe.DoesNotExistError:
|
|
instructor.full_name = owner
|
|
instructor.abbr = ("").join([ s[0] for s in owner.split() ])
|
|
instructor.course_count = len(frappe.get_all("LMS Course", {"owner": owner}))
|
|
return instructor
|
|
|
|
def get_batch_members(batch):
|
|
members = []
|
|
memberships = frappe.get_all("LMS Batch Membership", {"batch": batch}, ["member", "member_type"])
|
|
|
|
for membership in memberships:
|
|
member = get_member_with_name(membership.member)
|
|
if membership.member_type == "Mentor":
|
|
member.is_mentor = True
|
|
members.append(member)
|
|
return members |