feat: course filters

This commit is contained in:
Jannat Patel
2023-08-16 22:01:59 +05:30
parent d90bb1e5ea
commit 01a1632a5a
7 changed files with 80 additions and 18 deletions

View File

@@ -24,9 +24,25 @@
{% include "lms/templates/search_course/search_course.html" %}
<div class="course-list-cta">
<div class="flex align-center pull-right">
<select class="lms-menu" id="course-filter">
<option disabled value="">
{{ _("Sort By") }}
</option>
<option selected value="enrollment">
{{ _("Most Popular") }}
</option>
<option value="rating">
{{ _("Highest Rated") }}
</option>
<option value="creation">
{{ _("Newest") }}
</option>
</select>
{% if frappe.session.user != "Guest" %}
<a class="btn btn-default btn-sm" href="/users">
<a class="btn btn-default btn-sm ml-2" href="/users">
{{ _("My Profile") }}
</a>
{% endif %}

View File

@@ -6,6 +6,7 @@ from lms.lms.utils import (
get_restriction_details,
has_course_moderator_role,
get_courses_under_review,
get_average_rating,
)
from lms.overrides.user import get_enrolled_courses, get_authored_courses
@@ -49,13 +50,22 @@ def get_courses():
"paid_certificate",
"price_certificate",
"currency",
"creation",
],
)
live_courses, upcoming_courses = [], []
for course in courses:
course.enrollment_count = frappe.db.count(
"LMS Batch Membership", {"course": course.name, "member_type": "Student"}
)
course.avg_rating = get_average_rating(course.name) or 0
if course.upcoming:
upcoming_courses.append(course)
else:
live_courses.append(course)
live_courses.sort(key=lambda x: x.enrollment_count, reverse=True)
upcoming_courses.sort(key=lambda x: x.enrollment_count, reverse=True)
return live_courses, upcoming_courses