Merge remote-tracking branch 'origin/dev' into dev

remotes/origin/hasaccess
Vitaly Baev 8 years ago
commit 55ee199364
  1. 1
      apps/course/models.py
  2. 30
      apps/course/views.py

@ -56,6 +56,7 @@ class Course(models.Model):
class Meta: class Meta:
verbose_name = "Курс" verbose_name = "Курс"
verbose_name_plural = "Курсы" verbose_name_plural = "Курсы"
ordering = ['-created_at']
class Category(models.Model): class Category(models.Model):

@ -1,4 +1,6 @@
from django.http import JsonResponse
from django.views.generic import ListView from django.views.generic import ListView
from django.template import loader
from .models import Course from .models import Course
from .filters import CourseFilter from .filters import CourseFilter
@ -6,9 +8,33 @@ from .filters import CourseFilter
class CoursesView(ListView): class CoursesView(ListView):
model = Course model = Course
context_object_name = "course_items" context_object_name = 'course_items'
paginate_by = 6 paginate_by = 6
def get(self, request, *args, **kwargs):
self.object_list = self.get_queryset()
allow_empty = self.get_allow_empty()
if request.is_ajax():
context = self.get_context_data()
template_name = self.get_template_names()
html = loader.render_to_string(template_name, context)
is_paginated = context.get('is_paginated')
if is_paginated:
page_obj = context.get('page_obj')
prev_url = '?page=' + str(page_obj.previous_page_number()) if page_obj.has_previous() else None
next_url = '?page=' + str(page_obj.next_page_number()) if page_obj.has_next() else None
else:
prev_url = None
next_url = None
return JsonResponse({
'success': True,
'content': html,
'prev_url': prev_url,
'next_url': next_url,
})
else:
return super().get(request, args, kwargs)
def get_queryset(self): def get_queryset(self):
queryset = super().get_queryset() queryset = super().get_queryset()
filtered = CourseFilter(self.request.GET, queryset=queryset) filtered = CourseFilter(self.request.GET, queryset=queryset)
@ -17,4 +43,4 @@ class CoursesView(ListView):
def get_template_names(self): def get_template_names(self):
if self.request.is_ajax(): if self.request.is_ajax():
return 'course/course_items.html' return 'course/course_items.html'
return "course/courses.html" return 'course/courses.html'

Loading…
Cancel
Save