diff --git a/community/lms/doctype/lms_batch/lms_batch.py b/community/lms/doctype/lms_batch/lms_batch.py
index 301f5f40..8ed2b990 100644
--- a/community/lms/doctype/lms_batch/lms_batch.py
+++ b/community/lms/doctype/lms_batch/lms_batch.py
@@ -19,7 +19,7 @@ class LMSBatch(Document):
frappe.throw(_("You are not a mentor of the course {0}").format(course.title))
def after_insert(self):
- create_membership(batch=self.name, member_type="Mentor")
+ create_membership(batch=self.name, course=self.course, member_type="Mentor")
def is_member(self, email, member_type=None):
"""Checks if a person is part of a batch.
diff --git a/community/lms/doctype/lms_batch_membership/lms_batch_membership.json b/community/lms/doctype/lms_batch_membership/lms_batch_membership.json
index 6a0cc143..ba43cd69 100644
--- a/community/lms/doctype/lms_batch_membership/lms_batch_membership.json
+++ b/community/lms/doctype/lms_batch_membership/lms_batch_membership.json
@@ -13,8 +13,7 @@
"course",
"member_type",
"role",
- "current_lesson",
- "is_current"
+ "current_lesson"
],
"fields": [
{
@@ -81,19 +80,11 @@
"fieldtype": "Data",
"label": "Memeber Username",
"read_only": 1
- },
- {
- "default": "0",
- "fieldname": "is_current",
- "fieldtype": "Check",
- "hidden": 1,
- "label": "Is Currently Being Used",
- "read_only": 1
}
],
"index_web_pages_for_search": 1,
"links": [],
- "modified": "2021-06-14 10:24:35.425498",
+ "modified": "2021-06-21 12:10:28.808803",
"modified_by": "Administrator",
"module": "LMS",
"name": "LMS Batch Membership",
diff --git a/community/lms/doctype/lms_batch_membership/lms_batch_membership.py b/community/lms/doctype/lms_batch_membership/lms_batch_membership.py
index c170dc4b..5dd33f09 100644
--- a/community/lms/doctype/lms_batch_membership/lms_batch_membership.py
+++ b/community/lms/doctype/lms_batch_membership/lms_batch_membership.py
@@ -14,18 +14,22 @@ class LMSBatchMembership(Document):
self.validate_membership_in_different_batch_same_course()
def validate_membership_in_same_batch(self):
+ filters={
+ "member": self.member,
+ "course": self.course,
+ "name": ["!=", self.name]
+ }
+ if self.batch:
+ filters["batch"] = self.batch
previous_membership = frappe.db.get_value("LMS Batch Membership",
- filters={
- "member": self.member,
- "batch": self.batch,
- "name": ["!=", self.name]
- },
+ filters,
fieldname=["member_type","member"],
as_dict=1)
if previous_membership:
member_name = frappe.db.get_value("User", self.member, "full_name")
- frappe.throw(_("{0} is already a {1} of {2}").format(member_name, previous_membership.member_type, self.batch))
+ course_title = frappe.db.get_value("LMS Course", self.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):
course = frappe.db.get_value("LMS Batch", self.batch, "course")
diff --git a/community/lms/doctype/lms_course/lms_course.json b/community/lms/doctype/lms_course/lms_course.json
index 187a24e1..8b46e3ec 100644
--- a/community/lms/doctype/lms_course/lms_course.json
+++ b/community/lms/doctype/lms_course/lms_course.json
@@ -22,6 +22,7 @@
"field_order": [
"title",
"is_published",
+ "disable_self_learning",
"column_break_3",
"short_code",
"video_link",
@@ -73,6 +74,12 @@
"fieldtype": "Small Text",
"label": "Short Introduction",
"reqd": 1
+ },
+ {
+ "default": "0",
+ "fieldname": "disable_self_learning",
+ "fieldtype": "Check",
+ "label": "Disable Self Learning"
}
],
"index_web_pages_for_search": 1,
@@ -99,7 +106,7 @@
"link_fieldname": "course"
}
],
- "modified": "2021-06-01 04:36:45.696776",
+ "modified": "2021-06-21 11:34:04.552376",
"modified_by": "Administrator",
"module": "LMS",
"name": "LMS Course",
diff --git a/community/lms/doctype/lms_course/lms_course.py b/community/lms/doctype/lms_course/lms_course.py
index 4e70f2e3..0f3439ec 100644
--- a/community/lms/doctype/lms_course/lms_course.py
+++ b/community/lms/doctype/lms_course/lms_course.py
@@ -192,16 +192,17 @@ class LMSCourse(Document):
return
return f"/courses/{self.name}/learn/{lesson_number}"
- def get_current_membership(self, member):
- current_membership = frappe.get_all("LMS Batch Membership", {"member": member, "course": self.name, "is_current": 1}, ["name", "batch"])
- if len(current_membership):
- return current_membership[0]
- return frappe.db.get_value("LMS Batch Membership", {"member": member, "course": self.name}, ["name","batch"], as_dict=True)
+ def get_membership(self, member, batch):
+ filters = {
+ "member": member,
+ "course": self.name
+ }
+ if batch:
+ filters["batch"] = batch
+ return frappe.db.get_value("LMS Batch Membership", filters, ["name","batch", "current_lesson"], as_dict=True)
def get_all_memberships(self, member=frappe.session.user):
- print(member, frappe.session.user)
- all_memberships = frappe.get_all("LMS Batch Membership", {"member": member, "course": self.name}, ["batch", "is_current"])
- print(all_memberships)
+ all_memberships = frappe.get_all("LMS Batch Membership", {"member": member, "course": self.name}, ["batch"])
for membership in all_memberships:
membership.batch_title = frappe.db.get_value("LMS Batch", membership.batch, "title")
return all_memberships
@@ -214,7 +215,6 @@ class LMSCourse(Document):
if batch:
filters["batch"] = batch
- print(filters)
memberships = frappe.get_all(
"LMS Batch Membership",
filters,
diff --git a/community/lms/widgets/BatchTabs.html b/community/lms/widgets/BatchTabs.html
index 2c7dc758..2a5fc913 100644
--- a/community/lms/widgets/BatchTabs.html
+++ b/community/lms/widgets/BatchTabs.html
@@ -4,14 +4,14 @@
{{ course.title }} {% endif %}
{% set all_memberships = course.get_all_memberships() %}
{% if all_memberships | length > 1 %}
-
Switch Batch
@@ -22,18 +22,21 @@
{% else %}
{% set display_class = "" %}
{% endif %}
+
-
- Home
+ Home
-
- Lessons
+ {% set lesson_index = course.get_lesson_index(membership.current_lesson) if membership.current_lesson else '1.1' %}
+ Lessons
-
- Members
+ Members
- {% if batch and batch.is_member(frappe.session.user, member_type="Mentor") %}
+ {% if membership.batch and course.is_mentor(frappe.session.user) %}
-
- Progress
+ Progress
{% endif %}
+{% block script %}
+{% endblock %}
diff --git a/community/lms/widgets/ChapterTeaser.html b/community/lms/widgets/ChapterTeaser.html
index 505c2d96..b4a0179f 100644
--- a/community/lms/widgets/ChapterTeaser.html
+++ b/community/lms/widgets/ChapterTeaser.html
@@ -8,7 +8,7 @@
{% for lesson in chapter.get_lessons() %}
{{ lesson.title }}
{% if show_progress and not course.is_mentor(frappe.session.user) and lesson.get_progress() %}
{{ lesson.get_progress() }}
diff --git a/community/lms/widgets/RenderBatch.html b/community/lms/widgets/RenderBatch.html
index 05bce4b7..bb70c2c5 100644
--- a/community/lms/widgets/RenderBatch.html
+++ b/community/lms/widgets/RenderBatch.html
@@ -18,7 +18,7 @@
{% if can_manage %}
-
Manage
{% elif can_join %}