feat: course and lesson completion count
This commit is contained in:
@@ -5,6 +5,8 @@
|
|||||||
"editable_grid": 1,
|
"editable_grid": 1,
|
||||||
"engine": "InnoDB",
|
"engine": "InnoDB",
|
||||||
"field_order": [
|
"field_order": [
|
||||||
|
"member",
|
||||||
|
"member_name",
|
||||||
"status",
|
"status",
|
||||||
"column_break_3",
|
"column_break_3",
|
||||||
"lesson",
|
"lesson",
|
||||||
@@ -26,7 +28,6 @@
|
|||||||
"fetch_from": "lesson.chapter",
|
"fetch_from": "lesson.chapter",
|
||||||
"fieldname": "chapter",
|
"fieldname": "chapter",
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"in_list_view": 1,
|
|
||||||
"label": "Chapter",
|
"label": "Chapter",
|
||||||
"options": "Course Chapter",
|
"options": "Course Chapter",
|
||||||
"read_only": 1
|
"read_only": 1
|
||||||
@@ -49,11 +50,24 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "column_break_3",
|
"fieldname": "column_break_3",
|
||||||
"fieldtype": "Column Break"
|
"fieldtype": "Column Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "member",
|
||||||
|
"fieldtype": "Link",
|
||||||
|
"label": "Member",
|
||||||
|
"options": "User"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fetch_from": "member.full_name",
|
||||||
|
"fieldname": "member_name",
|
||||||
|
"fieldtype": "Data",
|
||||||
|
"label": "Member Name",
|
||||||
|
"read_only": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2021-09-30 13:07:54.246863",
|
"modified": "2022-11-09 14:24:06.312623",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "LMS",
|
"module": "LMS",
|
||||||
"name": "LMS Course Progress",
|
"name": "LMS Course Progress",
|
||||||
@@ -74,5 +88,7 @@
|
|||||||
],
|
],
|
||||||
"sort_field": "modified",
|
"sort_field": "modified",
|
||||||
"sort_order": "DESC",
|
"sort_order": "DESC",
|
||||||
|
"states": [],
|
||||||
|
"title_field": "member_name",
|
||||||
"track_changes": 1
|
"track_changes": 1
|
||||||
}
|
}
|
||||||
@@ -34,3 +34,4 @@ lms.patches.v0_0.create_course_instructor_role #29-08-2022
|
|||||||
lms.patches.v0_0.create_course_moderator_role
|
lms.patches.v0_0.create_course_moderator_role
|
||||||
lms.patches.v0_0.set_dashboard #11-10-2022
|
lms.patches.v0_0.set_dashboard #11-10-2022
|
||||||
lms.patches.v0_0.set_courses_page_as_home
|
lms.patches.v0_0.set_courses_page_as_home
|
||||||
|
lms.patches.v0_0.set_member_in_progress
|
||||||
|
|||||||
9
lms/patches/v0_0/set_member_in_progress.py
Normal file
9
lms/patches/v0_0/set_member_in_progress.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
progress_records = frappe.get_all("LMS Course Progress", fields=["name", "owner"])
|
||||||
|
|
||||||
|
for progress in progress_records:
|
||||||
|
full_name = frappe.db.get_value("User", progress.owner, "full_name")
|
||||||
|
frappe.db.set_value("LMS Course Progress", progress.name, "member", progress.owner)
|
||||||
|
frappe.db.set_value("LMS Course Progress", progress.name, "member_name", full_name)
|
||||||
@@ -1715,6 +1715,11 @@ li {
|
|||||||
grid-gap: 2rem;
|
grid-gap: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tab-pane .stats-parent {
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
||||||
|
grid-gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.stats-label {
|
.stats-label {
|
||||||
color: var(--gray-900);
|
color: var(--gray-900);
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
@@ -1770,8 +1775,8 @@ li {
|
|||||||
|
|
||||||
.frappe-chart .title {
|
.frappe-chart .title {
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-weight: bold;
|
font-weight: 500;
|
||||||
color: var(--gray-900);
|
fill: var(--gray-900);
|
||||||
}
|
}
|
||||||
|
|
||||||
.course-description-section {
|
.course-description-section {
|
||||||
@@ -1799,3 +1804,7 @@ select {
|
|||||||
appearance: none;
|
appearance: none;
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.course-list-cta {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|||||||
@@ -46,4 +46,30 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if course_completion %}
|
||||||
|
{% set course_completion_count = frappe.db.count("LMS Batch Membership", {
|
||||||
|
"progress":["=","100"]
|
||||||
|
}) %}
|
||||||
|
<div class="common-card-style p-4 flex-column">
|
||||||
|
<div class="stats-label">
|
||||||
|
{{ _("Courses Completed") }}
|
||||||
|
</div>
|
||||||
|
<div class="stats-value">
|
||||||
|
{{ frappe.utils.fmt_money(course_completion_count, 0) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if lesson_completion %}
|
||||||
|
{% set lesson_completion_count = frappe.db.count("LMS Course Progress") %}
|
||||||
|
<div class="common-card-style p-4 flex-column">
|
||||||
|
<div class="stats-label">
|
||||||
|
{{ _("Lessons Completed") }}
|
||||||
|
</div>
|
||||||
|
<div class="stats-value">
|
||||||
|
{{ frappe.utils.fmt_money(lesson_completion_count, 0) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
{% set published_courses = True %}
|
{% set published_courses = True %}
|
||||||
{% set total_signups = True %}
|
{% set total_signups = True %}
|
||||||
{% set enrollment_count = True %}
|
{% set enrollment_count = True %}
|
||||||
|
{% set course_completion = True %}
|
||||||
|
{% set lesson_completion = True %}
|
||||||
|
{% set quiz_completion = True %}
|
||||||
|
|
||||||
<div class="mt-10">
|
<div class="mt-10">
|
||||||
{% include "lms/templates/statistics.html" %}
|
{% include "lms/templates/statistics.html" %}
|
||||||
|
|||||||
@@ -29,24 +29,24 @@
|
|||||||
|
|
||||||
<!-- {% include "lms/templates/search_course/search_course.html" %} -->
|
<!-- {% include "lms/templates/search_course/search_course.html" %} -->
|
||||||
|
|
||||||
<div class="course-home-headings">
|
<div class="course-list-cta">
|
||||||
{{ _("All Courses") }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="pull-right">
|
|
||||||
{% if frappe.session.user != "Guest" %}
|
{% if frappe.session.user != "Guest" %}
|
||||||
<a class="btn btn-secondary btn-sm" href="/users">
|
<a class="btn btn-default btn-sm" href="/users">
|
||||||
{{ _("My Profile") }}
|
{{ _("My Profile") }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if show_creators_section %}
|
{% if show_creators_section %}
|
||||||
<a class="btn btn-secondary btn-sm ml-2" href="/courses/new-course">
|
<a class="btn btn-default btn-sm ml-2" href="/courses/new-course">
|
||||||
{{ _("Create a Course") }}
|
{{ _("Create a Course") }}
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="course-home-headings">
|
||||||
|
{{ _("All Courses") }}
|
||||||
|
</div>
|
||||||
|
|
||||||
<ul class="nav lms-nav" id="courses-tab">
|
<ul class="nav lms-nav" id="courses-tab">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active" data-toggle="tab" href="#live">
|
<a class="nav-link active" data-toggle="tab" href="#live">
|
||||||
|
|||||||
Reference in New Issue
Block a user