Update CoursesView ajax response

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 558988e2b3
commit 4f72ca82af
  1. 30
      apps/course/views.py

@ -1,4 +1,6 @@
from django.http import JsonResponse
from django.views.generic import ListView
from django.template import loader
from .models import Course
from .filters import CourseFilter
@ -6,9 +8,33 @@ from .filters import CourseFilter
class CoursesView(ListView):
model = Course
context_object_name = "course_items"
context_object_name = 'course_items'
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):
queryset = super().get_queryset()
filtered = CourseFilter(self.request.GET, queryset=queryset)
@ -17,4 +43,4 @@ class CoursesView(ListView):
def get_template_names(self):
if self.request.is_ajax():
return 'course/course_items.html'
return "course/courses.html"
return 'course/courses.html'

Loading…
Cancel
Save