From 0c47667785e5a664590ac3c1c394639645bdf964 Mon Sep 17 00:00:00 2001 From: gzbender Date: Fri, 24 May 2019 17:19:30 +0300 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BA=D0=B0=D1=82=D0=B5=D0=B3=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=B8=20=D0=BF=D0=BE=20=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=20=D0=B2=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BA=D1=83=D1=80=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/course/filters.py | 1 + .../course/inclusion/category_menu_items.html | 2 +- apps/course/views.py | 5 ++++- web/src/js/modules/courses.js | 10 +++++----- 4 files changed, 11 insertions(+), 7 deletions(-) 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) {