diff --git a/apps/course/filters.py b/apps/course/filters.py index cfecd0a0..2a084773 100644 --- a/apps/course/filters.py +++ b/apps/course/filters.py @@ -5,6 +5,7 @@ from .models import Course class CourseFilter(django_filters.FilterSet): category = django_filters.CharFilter(field_name='category') + cat = django_filters.CharFilter(field_name='category__title') age = django_filters.ChoiceFilter(field_name='age', choices=Course.AGE_CHOICES) class Meta: diff --git a/apps/course/templates/course/inclusion/category_menu_items.html b/apps/course/templates/course/inclusion/category_menu_items.html index ecb83298..da2d3855 100644 --- a/apps/course/templates/course/inclusion/category_menu_items.html +++ b/apps/course/templates/course/inclusion/category_menu_items.html @@ -2,7 +2,7 @@
Все курсы
{% for cat in category_items %} - +
{{ cat.title }}
{% endfor %} diff --git a/apps/course/views.py b/apps/course/views.py index 1f0a101f..73bdeab1 100644 --- a/apps/course/views.py +++ b/apps/course/views.py @@ -16,7 +16,7 @@ from django.utils.translation import gettext as _ from django.utils.timezone import now from apps.payment.models import AuthorBalance, CoursePayment -from .models import Course, Like, Lesson, CourseComment, LessonComment +from .models import Course, Like, Lesson, CourseComment, LessonComment, Category from .filters import CourseFilter User = get_user_model() @@ -327,6 +327,9 @@ class CoursesView(ListView): context['age_name'] = dict(Course.AGE_CHOICES).get(age, '') else: context['age_name'] = '' + if not context.get('category') and context.get('cat'): + context['category'] = Category.objects.filter(title__iexact=context.get('cat')[0]).values_list( + 'id', flat=True)[:1] if self.request.user.is_authenticated: can_buy_again_courses = list(CoursePayment.objects.filter(user=self.request.user, status__in=CoursePayment.PW_PAID_STATUSES, diff --git a/web/src/js/modules/courses.js b/web/src/js/modules/courses.js index 0208df54..8b94d36d 100644 --- a/web/src/js/modules/courses.js +++ b/web/src/js/modules/courses.js @@ -12,7 +12,7 @@ moment.locale('ru'); const history = createHistory(); $(document).ready(function () { - const categoryName = $('div.js-select-option.active[data-category-option]').attr('data-category-name'); + let categoryName = $('div.js-select-option.active[data-category-option]').attr('data-category-name'); let category = $('div.js-select-option.active[data-category-option]').attr('data-category'); let age = $('div.js-select-option.active[data-age-option]').data('age'); let page = 1; @@ -39,10 +39,10 @@ $(document).ready(function () { // Обработчик выбора категории $('div.js-select-option[data-category-option]').on('click', function (e) { e.preventDefault(); - const categoryName = $(this).attr('data-category-name'); + const cat = $(this).attr('data-category-name'); $('[data-category-name]').removeClass('active'); - $(`[data-category-name='${categoryName}']`).addClass('active'); - category = $(this).attr('data-category'); + $(`[data-category-name='${cat}']`).addClass('active'); + categoryName = $(this).attr('data-category-name'); page = 1; loadCourses(true); }); @@ -116,7 +116,7 @@ $(document).ready(function () { $('.courses__list').css('opacity', '0.9'); const buttonElement = $('.courses').find('button.load__btn'); let coursesUrl = window.LIL_STORE.urls.courses + '?' + $.param({ - category, + cat: categoryName, age, }); if (page > 1) {