feat: allow a student to be mentor of another batch
This is a requirement for mon.school. The students are of the first batch are now mentors of new batches.
This commit is contained in:
@@ -32,20 +32,28 @@ class LMSBatchMembership(Document):
|
|||||||
frappe.throw(_("{0} is already a {1} of the course {2}").format(member_name, previous_membership.member_type, course_title))
|
frappe.throw(_("{0} is already a {1} of the course {2}").format(member_name, previous_membership.member_type, course_title))
|
||||||
|
|
||||||
def validate_membership_in_different_batch_same_course(self):
|
def validate_membership_in_different_batch_same_course(self):
|
||||||
course = frappe.db.get_value("LMS Batch", self.batch, "course")
|
"""Ensures that a studnet is only part of one batch.
|
||||||
previous_membership = frappe.get_all("LMS Batch Membership",
|
"""
|
||||||
filters={
|
# nothing to worry if the member is not a student
|
||||||
"member": self.member,
|
if self.member_type != "Student":
|
||||||
"name": ["!=", self.name]
|
return
|
||||||
},
|
|
||||||
fields=["batch", "member_type", "name"]
|
|
||||||
)
|
|
||||||
|
|
||||||
for membership in previous_membership:
|
course = frappe.db.get_value("LMS Batch", self.batch, "course")
|
||||||
batch_course = frappe.db.get_value("LMS Batch", membership.batch, "course")
|
memberships = frappe.get_all(
|
||||||
if batch_course == course and (membership.member_type == "Student" or self.member_type == "Student"):
|
"LMS Batch Membership",
|
||||||
member_name = frappe.db.get_value("User", self.member, "full_name")
|
filters={
|
||||||
frappe.throw(_("{0} is already a {1} of {2} course through {3} batch").format(member_name, membership.member_type, course, membership.batch))
|
"member": self.member,
|
||||||
|
"name": ["!=", self.name],
|
||||||
|
"member_type": "Student",
|
||||||
|
"course": self.course
|
||||||
|
},
|
||||||
|
fields=["batch", "member_type", "name"]
|
||||||
|
)
|
||||||
|
|
||||||
|
if memberships:
|
||||||
|
membership = memberships[0]
|
||||||
|
member_name = frappe.db.get_value("User", self.member, "full_name")
|
||||||
|
frappe.throw(_("{0} is already a Student of {1} course through {2} batch").format(member_name, course, membership.batch))
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def create_membership(course, batch=None, member=None, member_type="Student", role="Member"):
|
def create_membership(course, batch=None, member=None, member_type="Student", role="Member"):
|
||||||
|
|||||||
Reference in New Issue
Block a user