feat: course filters
This commit is contained in:
@@ -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 %}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user