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

remotes/origin/hasaccess
Vitaly Baev 8 years ago
commit ad35d4644b
  1. 2
      .gitignore
  2. 36
      apps/course/templates/course/result.html
  3. 25
      apps/course/views.py
  4. 6
      project/urls.py
  5. 10
      web/build/css/app.css
  6. 2
      web/build/css/app.css.map
  7. 19
      web/src/sass/_common.sass
  8. 6326
      web/yarn.lock

2
.gitignore vendored

@ -53,7 +53,7 @@ coverage.xml
# Django stuff: # Django stuff:
*.log *.log
.static_storage/ .static_storage/
.media/ media/*
local_settings.py local_settings.py
/static /static

@ -0,0 +1,36 @@
{% extends "templates/lilcity/index.html" %}
{% load static %}
{% block title %}Результаты поиска - {{ block.super }}{% endblock title %}
{% block content %}
<div class="main main_sm" style="background-image: url({% static 'img/bg-1.jpg' %});">
<div class="main__center center">
<div class="main__title">Результаты поиска</div>
</div>
</div>
<div class="section">
<div class="section__center center">
<div class="searching">
<input class="searching__input" type="text" placeholder="Поиск" value="{{ q }}">
<button class="searching__btn btn">Найти</button>
</div>
<div class="head"></div>
<div class="layout">
<div class="layout__search">
<div class="courses courses_three">
{% if course_items %}
<div class="courses__list">
{% include "./course_items.html" %}
</div>
<div class="courses__load load">
<button class="load__btn btn">Подгрузить еще</button>
</div>
{% else %}
<div class="empty">К сожалению, по вашему запросу ничего не&nbsp;найдено.</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock content %}

@ -1,4 +1,5 @@
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.db.models import Q
from django.http import JsonResponse from django.http import JsonResponse
from django.template import loader, Context, Template from django.template import loader, Context, Template
from django.views.generic import View, CreateView, DetailView, ListView from django.views.generic import View, CreateView, DetailView, ListView
@ -136,3 +137,27 @@ class LessonView(DetailView):
model = Lesson model = Lesson
context_object_name = 'lesson' context_object_name = 'lesson'
template_name = 'course/lesson.html' 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.views.generic import TemplateView
from django.conf import settings 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 = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
@ -28,6 +31,7 @@ urlpatterns = [
path('course/<int:course_id>/like', likes, name='likes'), path('course/<int:course_id>/like', likes, name='likes'),
path('course/<int:course_id>/comment', coursecomment, name='coursecomment'), path('course/<int:course_id>/comment', coursecomment, name='coursecomment'),
path('lesson/<int:pk>/', LessonView.as_view(), name='lesson'), 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'), path('', TemplateView.as_view(template_name="templates/lilcity/main.html"), name='index'),
] ]

@ -865,6 +865,8 @@ a.grey-link:hover { color: #000; border-bottom: 1px #545454 solid; }
.layout__container { -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; } .layout__container { -ms-flex: 0 0 66.66%; flex: 0 0 66.66%; }
.layout__search { -ms-flex: 0 0 100%; flex: 0 0 100%; }
.layout__sidebar { -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; } .layout__sidebar { -ms-flex: 0 0 33.33%; flex: 0 0 33.33%; }
.similar__item { display: -ms-flexbox; display: flex; margin-bottom: 30px; color: #191919; } .similar__item { display: -ms-flexbox; display: flex; margin-bottom: 30px; color: #191919; }
@ -1369,6 +1371,14 @@ a.grey-link:hover { color: #000; border-bottom: 1px #545454 solid; }
.form__common-error { margin-top: 15px; font-size: 14px; background: #FF9393; color: #fff; padding: 10px; display: none; } .form__common-error { margin-top: 15px; font-size: 14px; background: #FF9393; color: #fff; padding: 10px; display: none; }
.searching { display: -ms-flexbox; display: flex; margin-bottom: 40px; }
.searching__input { height: 40px; padding: 0 10px; border: 1px solid #E6E6E6; border-radius: 3px 0 0 3px; font-size: 18px; transition: border-color .2s; -ms-flex: 0 0 calc(100% - 100px); flex: 0 0 calc(100% - 100px); }
.searching__input:focus { border-color: #191919; }
.searching__btn { border-radius: 0 3px 3px 0; -ms-flex: 0 0 100px; flex: 0 0 100px; }
@media only screen and (max-width: 1023px) { @media only screen and (max-width: 1023px) {
body { font-size: 14px; line-height: 1.57; } body { font-size: 14px; line-height: 1.57; }

File diff suppressed because one or more lines are too long

@ -2069,6 +2069,8 @@ a.grey-link
flex: 0 0 66.66% flex: 0 0 66.66%
+t +t
margin-bottom: 40px margin-bottom: 40px
&__search
flex: 0 0 100%
&__sidebar &__sidebar
flex: 0 0 33.33% flex: 0 0 33.33%
@ -3165,7 +3167,22 @@ a.grey-link
+m +m
display: none display: none
.searching
display: flex
margin-bottom: 40px
&__input
height: 40px
padding: 0 10px
border: 1px solid $border
border-radius: 3px 0 0 3px
font-size: 18px
transition: border-color .2s
&:focus
border-color: $cl
flex: 0 0 calc(100% - 100px)
&__btn
border-radius: 0 3px 3px 0
flex: 0 0 100px

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save