fix: get progress from membership
This commit is contained in:
@@ -65,11 +65,12 @@ class CourseLesson(Document):
|
||||
|
||||
@frappe.whitelist()
|
||||
def save_progress(lesson, course, status):
|
||||
if not frappe.db.exists("LMS Batch Membership",
|
||||
{
|
||||
"member": frappe.session.user,
|
||||
"course": course
|
||||
}):
|
||||
membership = frappe.db.exists("LMS Batch Membership",
|
||||
{
|
||||
"member": frappe.session.user,
|
||||
"course": course
|
||||
})
|
||||
if not membership:
|
||||
return
|
||||
|
||||
if frappe.db.exists("LMS Course Progress",
|
||||
@@ -92,5 +93,8 @@ def save_progress(lesson, course, status):
|
||||
"lesson": lesson,
|
||||
"status": status,
|
||||
}).save(ignore_permissions=True)
|
||||
|
||||
course_details = frappe.get_doc("LMS Course", course)
|
||||
return course_details.get_course_progress()
|
||||
progress = course_details.get_course_progress()
|
||||
frappe.db.set_value("LMS Batch Memebership", membership, "progress", progress)
|
||||
return progress
|
||||
|
||||
@@ -5,15 +5,16 @@
|
||||
"editable_grid": 1,
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"batch",
|
||||
"course",
|
||||
"member",
|
||||
"member_name",
|
||||
"member_username",
|
||||
"column_break_3",
|
||||
"course",
|
||||
"batch",
|
||||
"member_type",
|
||||
"role",
|
||||
"current_lesson"
|
||||
"progress",
|
||||
"current_lesson",
|
||||
"role"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
@@ -80,11 +81,18 @@
|
||||
"fieldtype": "Data",
|
||||
"label": "Memeber Username",
|
||||
"read_only": 1
|
||||
},
|
||||
{
|
||||
"fieldname": "progress",
|
||||
"fieldtype": "Data",
|
||||
"label": "Progress",
|
||||
"read_only": 1
|
||||
}
|
||||
],
|
||||
"index_web_pages_for_search": 1,
|
||||
"links": [],
|
||||
"modified": "2021-09-29 15:27:58.765399",
|
||||
"migration_hash": "10fbeeba76887ba1dc94e7ac19ea637d",
|
||||
"modified": "2021-10-20 10:08:04.071690",
|
||||
"modified_by": "Administrator",
|
||||
"module": "LMS",
|
||||
"name": "LMS Batch Membership",
|
||||
|
||||
@@ -251,7 +251,7 @@ class LMSCourse(Document):
|
||||
|
||||
membership = frappe.db.get_value("LMS Batch Membership",
|
||||
filters,
|
||||
["name", "batch", "current_lesson", "member_type"],
|
||||
["name", "batch", "current_lesson", "member_type", "progress"],
|
||||
as_dict=True)
|
||||
|
||||
if membership and membership.batch:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# License: MIT. See LICENSE
|
||||
|
||||
import frappe
|
||||
from frappe.utils import rounded
|
||||
from frappe.utils import cint
|
||||
from frappe import _
|
||||
|
||||
def execute(filters=None):
|
||||
@@ -23,21 +23,16 @@ def get_data(filters=None):
|
||||
memberships = frappe.get_all(
|
||||
"LMS Batch Membership",
|
||||
query_filter,
|
||||
["name", "course", "member", "member_name"],
|
||||
["name", "course", "member", "member_name", "progress"],
|
||||
order_by="course")
|
||||
|
||||
current_course = memberships[0].course
|
||||
for membership in memberships:
|
||||
if current_course != membership.course:
|
||||
current_course = membership.course
|
||||
|
||||
course_details = frappe.get_doc("LMS Course", current_course)
|
||||
summary.append(frappe._dict({
|
||||
"course": course_details.name,
|
||||
"course_name": course_details.title,
|
||||
"course": membership.name,
|
||||
"course_name": frappe.db.get_value("LMS Course", membership.course, "title"),
|
||||
"member": membership.member,
|
||||
"member_name": membership.member_name,
|
||||
"progress": rounded(course_details.get_course_progress(membership.member))
|
||||
"progress": cint(membership.progress)
|
||||
}))
|
||||
|
||||
return summary
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% set membership = course.get_membership(frappe.session.user) %}
|
||||
{% set progress = course.get_course_progress() %}
|
||||
{% set progress = membership.progress %}
|
||||
<div class="common-card-style course-card">
|
||||
|
||||
<div class="course-image {% if not course.image %}default-image{% endif %}"
|
||||
|
||||
@@ -109,7 +109,7 @@ class CustomUser(User):
|
||||
if member_type:
|
||||
filters["member_type"] = member_type
|
||||
|
||||
return frappe.get_all("LMS Batch Membership", filters, ["name", "course"])
|
||||
return frappe.get_all("LMS Batch Membership", filters, ["name", "course", "progress"])
|
||||
|
||||
def get_mentored_courses(self):
|
||||
""" Returns all courses mentored by this user """
|
||||
@@ -130,10 +130,9 @@ class CustomUser(User):
|
||||
def get_enrolled_courses(self):
|
||||
in_progress = []
|
||||
completed = []
|
||||
memberships = self.get_course_membership("Student");
|
||||
memberships = self.get_course_membership("Student")
|
||||
for membership in memberships:
|
||||
course = frappe.get_doc("LMS Course", membership.course)
|
||||
progress = course.get_course_progress(member=self.name)
|
||||
progress = cint(membership.progress)
|
||||
if progress < 100:
|
||||
in_progress.append(course)
|
||||
else:
|
||||
|
||||
@@ -18,3 +18,4 @@ execute:frappe.delete_doc("DocType", "Lessons") #06-10-2021
|
||||
execute:frappe.delete_doc("DocType", "Chapter") #06-10-2021
|
||||
execute:frappe.delete_doc("DocType", "Lesson") #06-10-2021
|
||||
execute:frappe.delete_doc("DocType", "LMS Topic") #06-10-2021
|
||||
community.patches.v0_0.add_progress_to_membership #20-10-2021
|
||||
|
||||
22
community/patches/v0_0/add_progress_to_membership.py
Normal file
22
community/patches/v0_0/add_progress_to_membership.py
Normal file
@@ -0,0 +1,22 @@
|
||||
import frappe
|
||||
from frappe.utils import rounded
|
||||
|
||||
def execute():
|
||||
frappe.reload_doc("lms", "doctype", "lms_batch_membership")
|
||||
memberships = frappe.get_all(
|
||||
"LMS Batch Membership",
|
||||
["name", "course", "member"],
|
||||
order_by="course")
|
||||
|
||||
if len(memberships):
|
||||
current_course = memberships[0].course
|
||||
for membership in memberships:
|
||||
if current_course != membership.course:
|
||||
current_course = membership.course
|
||||
|
||||
course_details = frappe.get_doc("LMS Course", current_course)
|
||||
progress = rounded(course_details.get_course_progress(membership.member))
|
||||
frappe.db.set_value("LMS Batch Membership", membership.name, "progress", progress)
|
||||
|
||||
frappe.db.delete("Prepared Report", {"ref_report_doctype": "Course Progress Summary"})
|
||||
frappe.db.set_value("Report", "Course Progress Summary", "prepared_report", 0)
|
||||
@@ -99,7 +99,7 @@
|
||||
<img class="ml-2" src="/assets/community/icons/side-arrow-white.svg">
|
||||
</a>
|
||||
{% elif course.enable_certification %}
|
||||
<div class="button is-primary {% if course.get_course_progress() != 100 %} hide {% endif %}" id="certification">
|
||||
<div class="button is-primary {% if membership.progress != 100 %} hide {% endif %}" id="certification">
|
||||
Get Certificate
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
</div>
|
||||
{{ widgets.MemberCard(member=course.get_instructor(), show_course_count=True, dimension_class="member-card-large") }}
|
||||
</div>
|
||||
{% set progress = course.get_course_progress() %}
|
||||
{% set progress = membership.progress %}
|
||||
{% if progress %}
|
||||
<div class="course-progress-section">
|
||||
<div class="course-home-headings">
|
||||
|
||||
Reference in New Issue
Block a user