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:
Anand Chitipothu
2021-06-22 18:09:21 +05:30
parent 5abfa35095
commit fc1c393f15

View File

@@ -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):
"""Ensures that a studnet is only part of one batch.
"""
# nothing to worry if the member is not a student
if self.member_type != "Student":
return
course = frappe.db.get_value("LMS Batch", self.batch, "course") course = frappe.db.get_value("LMS Batch", self.batch, "course")
previous_membership = frappe.get_all("LMS Batch Membership", memberships = frappe.get_all(
"LMS Batch Membership",
filters={ filters={
"member": self.member, "member": self.member,
"name": ["!=", self.name] "name": ["!=", self.name],
"member_type": "Student",
"course": self.course
}, },
fields=["batch", "member_type", "name"] fields=["batch", "member_type", "name"]
) )
for membership in previous_membership: if memberships:
batch_course = frappe.db.get_value("LMS Batch", membership.batch, "course") membership = memberships[0]
if batch_course == course and (membership.member_type == "Student" or self.member_type == "Student"):
member_name = frappe.db.get_value("User", self.member, "full_name") member_name = frappe.db.get_value("User", self.member, "full_name")
frappe.throw(_("{0} is already a {1} of {2} course through {3} batch").format(member_name, membership.member_type, course, membership.batch)) 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"):