Compare commits
4 Commits
learning-m
...
mon-fixes-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
20b3ae7d76 | ||
|
|
f303be4db5 | ||
|
|
fc1c393f15 | ||
|
|
5abfa35095 |
@@ -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"):
|
||||||
|
|||||||
@@ -36,6 +36,8 @@ def find_macros(text):
|
|||||||
('Exercise', 'four-circles')
|
('Exercise', 'four-circles')
|
||||||
]
|
]
|
||||||
"""
|
"""
|
||||||
|
if not text:
|
||||||
|
return []
|
||||||
macros = re.findall(MACRO_RE, text)
|
macros = re.findall(MACRO_RE, text)
|
||||||
# remove the quotes around the argument
|
# remove the quotes around the argument
|
||||||
return [(name, _remove_quotes(arg)) for name, arg in macros]
|
return [(name, _remove_quotes(arg)) for name, arg in macros]
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ def get_context(context):
|
|||||||
raise frappe.Redirect
|
raise frappe.Redirect
|
||||||
|
|
||||||
context.course = course
|
context.course = course
|
||||||
|
context.course.query_parameter = ""
|
||||||
if not course.is_mentor(frappe.session.user):
|
if not course.is_mentor(frappe.session.user):
|
||||||
batch = course.get_membership(frappe.session.user)
|
batch = course.get_membership(frappe.session.user)
|
||||||
if batch:
|
if batch:
|
||||||
|
|||||||
Reference in New Issue
Block a user