feat: redirect the learn page to the current lesson of the user

The current lesson is maintained in the LMS Batch Membership and that is
updated everytime a lesson page is visited.
This commit is contained in:
Anand Chitipothu
2021-05-24 13:07:29 +05:30
parent df431165e8
commit cac4f2afef
5 changed files with 60 additions and 43 deletions

View File

@@ -69,6 +69,24 @@ class LMSBatch(Document):
message.is_author = True
return messages
def get_membership(self, email):
"""Returns the membership document of given user.
"""
name = frappe.get_value(
doctype="LMS Batch Membership",
filters={
"batch": self.name,
"member": email
},
fieldname="name")
return frappe.get_doc("LMS Batch Membership", name)
def get_current_lesson(self, user):
"""Returns the name of the current lesson for the given user.
"""
membership = self.get_membership(user)
return membership and membership.current_lesson
@frappe.whitelist()
def save_message(message, batch):
doc = frappe.get_doc({

View File

@@ -150,6 +150,13 @@ class LMSCourse(Document):
"name")
return lesson_name and frappe.get_doc("Lesson", lesson_name)
def get_lesson_index(self, lesson_name):
"""Returns the {chapter_index}.{lesson_index} for the lesson.
"""
lesson = frappe.get_doc("Lesson", lesson_name)
chapter = frappe.get_doc("Chapter", lesson.chapter)
return f"{chapter.index_}.{lesson.index_}"
def get_outline(self):
return CourseOutline(self)