LIL-139. Add Serch view

remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent c35915acdb
commit eaa3cf7205
  1. 25
      apps/course/views.py
  2. 6
      project/urls.py

@ -1,4 +1,5 @@
from django.contrib.auth.decorators import login_required
from django.db.models import Q
from django.http import JsonResponse
from django.template import loader, Context, Template
from django.views.generic import View, CreateView, DetailView, ListView
@ -136,3 +137,27 @@ class LessonView(DetailView):
model = Lesson
context_object_name = 'lesson'
template_name = 'course/lesson.html'
class SearchView(CoursesView):
template_name = 'course/result.html'
def get_queryset(self):
search_query = self.request.GET.get('q', None)
queryset = super().get_queryset()
if search_query:
query = Q(title__icontains=search_query) | Q(short_description__icontains=search_query)
queryset = queryset.filter(query)
else:
queryset = queryset.none()
return queryset
def get_context_data(self):
context = super().get_context_data()
context['q'] = self.request.GET.get('q', None) or ''
return context
def get_template_names(self):
if self.request.is_ajax():
return 'course/course_items.html'
return 'course/result.html'

@ -18,7 +18,10 @@ from django.urls import path, include
from django.views.generic import TemplateView
from django.conf import settings
from apps.course.views import CoursesView, likes, coursecomment, CourseView, LessonView
from apps.course.views import (
CoursesView, likes, coursecomment,
CourseView, LessonView, SearchView,
)
urlpatterns = [
path('admin/', admin.site.urls),
@ -28,6 +31,7 @@ urlpatterns = [
path('course/<int:course_id>/like', likes, name='likes'),
path('course/<int:course_id>/comment', coursecomment, name='coursecomment'),
path('lesson/<int:pk>/', LessonView.as_view(), name='lesson'),
path('search/', SearchView.as_view(), name='search'),
path('', TemplateView.as_view(template_name="templates/lilcity/main.html"), name='index'),
]

Loading…
Cancel
Save