fix: profile and progress on dashboard

This commit is contained in:
pateljannat
2021-09-01 16:21:55 +05:30
parent cd4ffa2eff
commit 13b968e18c
19 changed files with 126 additions and 49 deletions
+14 -14
View File
@@ -187,20 +187,6 @@ class LMSCourse(Document):
def get_slugified_chapter_title(self, chapter):
return slugify(chapter)
def get_course_progress(self):
""" Returns the course progress of the session user """
lesson_count = len(self.get_lessons())
completed_lessons = frappe.db.count("LMS Course Progress",
{
"course": self.name,
"owner": frappe.session.user,
"status": "Complete"
})
precision = cint(frappe.db.get_default("float_precision")) or 3
if not lesson_count:
return 0
return flt(((completed_lessons/lesson_count) * 100), precision)
def get_batch(self, batch_name):
return find("LMS Batch", name=batch_name, course=self.name)
@@ -340,6 +326,20 @@ class LMSCourse(Document):
},
["status"])
def get_course_progress(self, member=None):
""" Returns the course progress of the session user """
lesson_count = len(self.get_lessons())
completed_lessons = frappe.db.count("LMS Course Progress",
{
"course": self.name,
"owner": member or frappe.session.user,
"status": "Complete"
})
precision = cint(frappe.db.get_default("float_precision")) or 3
if not lesson_count:
return 0
return flt(((completed_lessons/lesson_count) * 100), precision)
def get_neighbours(self, current, lessons):
current = flt(current)
numbers = sorted(lesson.number for lesson in lessons)
+1 -1
View File
@@ -8,7 +8,7 @@ frappe.ready(function () {
frappe.web_form.after_save = () => {
setTimeout(() => {
window.location.href = `/user/${frappe.web_form.get_value(["username"])}`;
window.location.href = `/users/${frappe.web_form.get_value(["username"])}`;
})
}
})
@@ -3,7 +3,7 @@
<div class="cards-parent mt-10">
{% for course_row in courses %}
{% set course = frappe.get_doc("LMS Course", course_row.course) %}
{{ widgets.CourseCard(course=course) }}
{{ widgets.CourseCard(course=course, show_progress_indicators=True) }}
{% endfor %}
</div>
</div>
-4
View File
@@ -1,4 +0,0 @@
<div class="p-5 batch-header">
<h3>{{batch_name}}</h3>
<div class="text-muted">{{member_count}} members</div>
</div>
+29 -7
View File
@@ -1,6 +1,8 @@
{% set membership = course.get_membership(frappe.session.user) %}
<div class="common-card-style course-card">
<div class="course-image {% if not course.image %}default-image{% endif %}"
{% if course.image %} style="background-image: url( {{ course.image }} );" {% endif %}>
<div class="course-image {% if not course.image %}default-image{% endif %}" {% if course.image %}
style="background-image: url( {{ course.image }} );" {% endif %}>
<div class="course-tags">
{% for tag in course.get_tags() %}
<div class="course-card-pills">{{ tag }}</div>
@@ -10,7 +12,9 @@
<div class="default-image-text">{{ course.title[0] }}</div>
{% endif %}
</div>
<div class="course-card-content">
<div class="course-card-meta muted-text">
{% if course.get_chapters() | length %}
<span>
@@ -25,13 +29,32 @@
{{ course.get_upcoming_batches() | length }} Open Batches
</span>
{% endif %}
{% set certificate = course.is_certified() %}
{% if certificate and show_progress_indicators %}
<a class="muted-text dark-links pull-right zindex" href="/courses/{{ course.name }}/{{ certificate }}">View
Certificate</a>
{% endif %}
</div>
<div class="course-card-title">{{ course.title }}</div>
{% if membership and show_progress_indicators %}
{% set progress = course.get_course_progress() %}
<div class="progress mb-5 zindex" title="{{ frappe.utils.rounded(progress) }}%">
<div class="progress-bar" role="progressbar" style="width: {{ progress }}%" aria-valuenow="{{ progress }}"
aria-valuemin="0" aria-valuemax="100"></div>
</div>
{% else %}
<div class="card-divider"></div>
{% endif %}
<div class="course-card-meta-2">
{{ widgets.Avatar(member=course.get_instructor(), avatar_class="avatar-small") }}
<span class="course-instructor">
{{ course.get_instructor().full_name }}
<span class="zindex">
{{ widgets.Avatar(member=course.get_instructor(), avatar_class="avatar-small") }}
<a class="button-links" href="/users/{{ course.get_instructor().username}}">
<span class="course-instructor">
{{ course.get_instructor().full_name }}
</span>
</a>
</span>
<span class="course-student-count">
{% if course.get_students() | length %}
@@ -42,14 +65,13 @@
{% endif %}
{% set avg_rating = course.get_average_rating() %}
{% if avg_rating %}
<span>
<span class="">
<img class="icon-background" src="/assets/community/icons/rating.svg" />
{{ avg_rating }}
</span>
{% endif %}
</span>
</div>
{% set membership = course.get_membership(frappe.session.user) %}
{% set lesson_index = course.get_lesson_index(membership.current_lesson) if membership and
membership.current_lesson
+1 -1
View File
@@ -12,7 +12,7 @@
{% endif %}
<div class="course-author">
{% with author = course.get_instructor() %}
{{ widgets.Avatar(member=author, avatar_class="avatar-medium") }} <a href="/user/{{author.username}}">{{ author.full_name }}</a>
{{ widgets.Avatar(member=author, avatar_class="avatar-medium") }} <a href="/users/{{author.username}}">{{ author.full_name }}</a>
{% endwith %}
</div>
</div>
@@ -1,6 +0,0 @@
<div class="instructor">
{{ widgets.Avatar(member=instructor, avatar_class="avatar-medium") }}
<a class="ml-1 instructor-title" href="/user/{{instructor.username}}">{{ instructor.full_name }}</a>
<div class="instructor-subtitle">Course Creator</div>
<!-- <div class="instructor-subtitle">Created {{instructor.get_course_count()}} courses</div> -->
</div>
+1 -1
View File
@@ -11,5 +11,5 @@
Created {{ course_count }} {{ suffix }}
</div>
{% endif %}
<a class="stretched-link" href="/user/{{ member.username }}"></a>
<a class="stretched-link" href="/users/{{ member.username }}"></a>
</div>
+1 -1
View File
@@ -19,7 +19,7 @@
<div class="review-card-footer">
<div>
{{ widgets.Avatar(member=review.owner_details, avatar_class="avatar-medium") }}
<a class="button-links" href="/user/{{review.owner_details.username}}">
<a class="button-links" href="/users/{{review.owner_details.username}}">
<span class="course-instructor">
{{ review.owner_details.full_name }}
</span>