diff --git a/apps/content/models.py b/apps/content/models.py index 5d93a2d7..57f744b5 100644 --- a/apps/content/models.py +++ b/apps/content/models.py @@ -3,6 +3,7 @@ from urllib.parse import urlparse from django.conf import settings from django.db import models from django.contrib.auth import get_user_model +from django.db.models.expressions import RawSQL from django.urls import reverse_lazy from django.utils import timezone from django.contrib.postgres.fields import ArrayField @@ -144,6 +145,7 @@ class GalleryImage(models.Model): class Banner(models.Model): PAGE_INDEX = 1 PAGE_COURSES = 2 + PAGE_SCHOOL = 3 text = models.TextField() button_text = models.CharField(max_length=50) @@ -164,6 +166,12 @@ class Banner(models.Model): verbose_name_plural = 'Банеры' ordering = ('-created_at',) + @classmethod + def get_for_page(cls, page): + return Banner.objects.filter(use=True, pages__contains=[page]).annotate( + is_main=RawSQL('main_banner @> %s', ([page],)) + ).order_by('-is_main') + class Contest(models.Model): title = models.CharField(max_length=255) diff --git a/apps/course/templates/course/courses.html b/apps/course/templates/course/courses.html index 64720f65..10a16ff9 100644 --- a/apps/course/templates/course/courses.html +++ b/apps/course/templates/course/courses.html @@ -4,12 +4,13 @@ {% block ogimage %}http://{{request.META.HTTP_HOST}}{% static 'img/og_courses.jpg' %}{% endblock ogimage %} {% block content %} - {% include "templates/blocks/banners.html" %} + {% if not banners|length %}
Онлайн-курсы LilCity
+ {% endif %}
diff --git a/apps/course/views.py b/apps/course/views.py index 9ed23e92..edd6ffa6 100644 --- a/apps/course/views.py +++ b/apps/course/views.py @@ -319,7 +319,7 @@ class CoursesView(ListView): context = super().get_context_data() filtered = CourseFilter(self.request.GET) context.update(filtered.data) - context['banners'] = Banner.objects.filter(use=True) + context['banners'] = Banner.get_for_page(Banner.PAGE_COURSES) context['course_items'] = Course.shuffle(context.get('course_items')) context['ages'] = Course.AGE_CHOICES[1:] age = context.get('age') diff --git a/apps/school/templates/school/summer_school.html b/apps/school/templates/school/summer_school.html index e0e05514..68523315 100644 --- a/apps/school/templates/school/summer_school.html +++ b/apps/school/templates/school/summer_school.html @@ -3,14 +3,15 @@ {% block ogimage %}http://{{request.META.HTTP_HOST}}{% static 'img/og_main.jpg' %}{% endblock %} {% block content %} {% if not is_purchased and not prev_school_payments_exists %} -{% include "../summer/promo.html" %} -{% include "../summer/about.html" %} -{% include "../summer/advantages.html" %} -{% include "../summer/online.html" %} +{% include "../summer/buy.html" %} {% include "../blocks/schedule.html" %} -{% include "templates/blocks/game.html" %} +{% include "../summer/advantages.html" %} +{% include "../summer/about.html" %} {% include "templates/blocks/partners.html" %} {% else %} +{% include 'templates/blocks/messages.html' %} +{% include "../summer/online.html" %} {% include "../summer/schedule_purchased.html" %} +{% include "templates/blocks/partners.html" %} {% endif %} {% endblock %} diff --git a/apps/school/templates/summer/buy.html b/apps/school/templates/summer/buy.html new file mode 100644 index 00000000..a7a7cf71 --- /dev/null +++ b/apps/school/templates/summer/buy.html @@ -0,0 +1,18 @@ + diff --git a/apps/school/templates/summer/online.html b/apps/school/templates/summer/online.html index 53957d3f..03241770 100644 --- a/apps/school/templates/summer/online.html +++ b/apps/school/templates/summer/online.html @@ -1,9 +1,7 @@ {% load static %} - +
-
ВИДЕОУРОКИ
-
В 17.00 (по Мск)
-
Каждый день
-
+
Каждый день в 17:00 (мск)
+
Онлайн-школа это ежедневные видео-уроки на разные темы. Уроки хранятся 7 дней.
diff --git a/apps/school/templates/summer/schedule_purchased.html b/apps/school/templates/summer/schedule_purchased.html index 0994e675..03952d01 100644 --- a/apps/school/templates/summer/schedule_purchased.html +++ b/apps/school/templates/summer/schedule_purchased.html @@ -1,7 +1,7 @@ {% load static %} {% load thumbnail %}
- {% include 'templates/blocks/messages.html' %} +
Расписание
-{% include './last_courses.html' %} diff --git a/apps/school/views.py b/apps/school/views.py index 3fb18699..a915ea1f 100644 --- a/apps/school/views.py +++ b/apps/school/views.py @@ -14,6 +14,7 @@ from django.utils.timezone import now from django.views.generic import ListView, UpdateView, TemplateView, DetailView from django.conf import settings +from apps.content.models import Banner from apps.course.models import Course from apps.payment.models import SchoolPayment, DrawingCampPayment from .models import LiveLesson, SchoolSchedule @@ -233,7 +234,9 @@ class SchoolView(TemplateView): school_schedules_dict[0] = school_schedules_dict.get(7) for ll in prev_live_lessons: ll.school_schedule = school_schedules_dict.get(ll.date.isoweekday()) + context.update({ + 'banners': Banner.get_for_page(Banner.PAGE_SCHOOL), 'online': online, 'prev_live_lessons': prev_live_lessons, 'prev_live_lessons_exists': prev_live_lessons_exists, diff --git a/project/templates/blocks/about.html b/project/templates/blocks/about.html index 71a8b0b6..e2c8b3c4 100644 --- a/project/templates/blocks/about.html +++ b/project/templates/blocks/about.html @@ -1,7 +1,5 @@ -{% load static %} -{% load ruplural from plural %}
-
+

Вы житель мегаполиса и у вас нет времени дополнительно развивать своего ребенка? @@ -12,38 +10,3 @@

- -
-
-
- -
Lil School в цифрах
-
-
-
-
> {{ config.NUMBER_OF_STUDENTS }}
-
{{ config.NUMBER_OF_STUDENTS|ruplural:'ученик,ученика,учеников' }}
-
прошли обучение в Lil School
-
-
-
{{ works_count }}
-
{{ works_count|ruplural:'работа,работы,работ' }}
-
- создано учениками Lil School.
- Большую часть из них легко найти в инстаграм -
-
-
-
{{ config.NUMBER_OF_COUNTRIES }}
-
{{ config.NUMBER_OF_COUNTRIES|ruplural:'страна,страны,стран' }}
-
где живут талантливые ученики Lil School
-
-
-
{{ config.NUMBER_OF_CITIES }}
-
{{ config.NUMBER_OF_CITIES|ruplural:'город,города,городов' }}
-
со всего мира со счастливыми учениками Lil School
-
-
- -
-
diff --git a/project/templates/blocks/banners.html b/project/templates/blocks/banners.html index c0120447..05065e9f 100644 --- a/project/templates/blocks/banners.html +++ b/project/templates/blocks/banners.html @@ -1,4 +1,12 @@ - + {% for banner in banners %} +{% endif %} diff --git a/project/templates/blocks/counters.html b/project/templates/blocks/counters.html new file mode 100644 index 00000000..40198a07 --- /dev/null +++ b/project/templates/blocks/counters.html @@ -0,0 +1,37 @@ +{% load static %} +{% load ruplural from plural %} + +
+
+
+ +
Lil School в цифрах
+
+
+
+
> {{ config.NUMBER_OF_STUDENTS }}
+
{{ config.NUMBER_OF_STUDENTS|ruplural:'ученик,ученика,учеников' }}
+
прошли обучение в Lil School
+
+
+
{{ works_count }}
+
{{ works_count|ruplural:'работа,работы,работ' }}
+
+ создано учениками Lil School.
+ Большую часть из них легко найти в инстаграм +
+
+
+
{{ config.NUMBER_OF_COUNTRIES }}
+
{{ config.NUMBER_OF_COUNTRIES|ruplural:'страна,страны,стран' }}
+
где живут талантливые ученики Lil School
+
+
+
{{ config.NUMBER_OF_CITIES }}
+
{{ config.NUMBER_OF_CITIES|ruplural:'город,города,городов' }}
+
со всего мира со счастливыми учениками Lil School
+
+
+ +
+
diff --git a/project/templates/lilcity/home.html b/project/templates/lilcity/home.html index 2bd38646..e052e724 100644 --- a/project/templates/lilcity/home.html +++ b/project/templates/lilcity/home.html @@ -12,17 +12,13 @@ {% block title %}School LIL.CITY{% endblock title %} {% block content %} - {% include "templates/blocks/promo.html" %} {% include "templates/blocks/messages.html" %} - {% include "templates/blocks/arts.html" %} - {% include "templates/blocks/video.html" %} + {% include "templates/blocks/buy.html" %} {% include "templates/blocks/about.html" %} - {% include "templates/blocks/gallery.html" %} - {% include "templates/blocks/mobile_apps.html" %} - {% include "templates/blocks/online_school.html" %} + {% include "templates/blocks/video.html" %} + {% include "templates/blocks/counters.html" %} {% include "templates/blocks/reviews.html" %} + {% include "templates/blocks/online_school.html" %} {% include "templates/blocks/teachers.html" %} - {% include "templates/blocks/last_courses.html" %} {% include "templates/blocks/partners.html" %} - {% include "templates/blocks/game.html" %} {% endblock content %} diff --git a/project/templates/lilcity/index.html b/project/templates/lilcity/index.html index 1d32d684..222f57ca 100644 --- a/project/templates/lilcity/index.html +++ b/project/templates/lilcity/index.html @@ -35,6 +35,9 @@
{% include "templates/blocks/header.html" %}
+ {% if banners %} + {% include "templates/blocks/banners.html" %} + {% endif %} {% block content %}{% endblock content %}
{% include "templates/blocks/footer.html" %} diff --git a/project/views.py b/project/views.py index 13b1c756..4eac0b91 100644 --- a/project/views.py +++ b/project/views.py @@ -99,10 +99,8 @@ class IndexView(TemplateView): review_images = list(map(str, range(1, 107))) shuffle(review_images) - banners = Banner.objects.filter(use=True) - context.update({ - 'banners': banners, + 'banners': Banner.get_for_page(Banner.PAGE_INDEX), 'is_drawing_camp': True, 'review_images': review_images, 'gift_certificate': user_gift_certificate.gift_certificate if user_gift_certificate else None, diff --git a/web/src/js/modules/common.js b/web/src/js/modules/common.js index 1700b113..961fecce 100644 --- a/web/src/js/modules/common.js +++ b/web/src/js/modules/common.js @@ -23,13 +23,6 @@ $(document).ready(function () { } }); - // Инициируем начальное состояние шапки - /* updateHeader(); - - $(window).on('scroll', function () { - updateHeader(); - }); */ - //===========BANNERS=============== const $banner = $('[data-banner]'); const bannerId = $banner.data('banner') + ''; @@ -130,30 +123,3 @@ $(document).ready(function () { $popupAuth.find(authPopupActiveTab == 'login' ? '.js-auth-type_login' : '.js-auth-type_registration').addClass('active'); $popupAuth.find(authPopupActiveTab == 'login' ? '.js-auth-tab_login' : '.js-auth-tab_registration').show(); }); - -function updateHeader() { - const scrollOffset = $(window).scrollTop(); - const headerElement = $('header'); - if (scrollOffset >= 130) { - headerElement.css('background-color', '#fff'); - } else { - headerElement.css('background-color', `rgba(255, 255, 255, ${scrollOffset / 130})`); - } - if (scrollOffset >= 150) { - headerElement.addClass('header--shadow'); - } else { - headerElement.removeClass('header--shadow'); - } - - if($('.banner').is(':visible')) { - if(scrollOffset > 0) { - if(scrollOffset <= 140) { - headerElement.css('top', (140-scrollOffset)+'px'); - } else { - headerElement.css('top', '0px'); - } - } else { - headerElement.css('top', ''); - } - } -} diff --git a/web/src/sass/_common.sass b/web/src/sass/_common.sass index 1457d2f6..ab59929a 100755 --- a/web/src/sass/_common.sass +++ b/web/src/sass/_common.sass @@ -120,6 +120,9 @@ button &_xs max-width: 540px +.text-center + text-align: center + .btn position: relative padding: 13px 24px 12px @@ -980,11 +983,7 @@ a[name] &_confirm padding: 30px 0 50px &_school - padding: 85px 0 20px - +t - padding: 65px 0 55px - +m - padding: 45px 0 + padding-bottom: 0px &_benefits padding: 95px 0 100px background: $bg @@ -1204,26 +1203,17 @@ a[name] .online display: block position: relative - padding: 55px 0 50px + padding-top: 55px background-position: 50% 50% background-repeat: no-repeat background-size: cover - color: white + color: black text-align: center z-index: 4 +t - padding: 30px 0 + padding-top: 30px +m - padding: 20px 0 - &:before - content: '' - position: absolute - top: 0 - left: 0 - width: 100% - height: 100% - background-image: linear-gradient(-1deg, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0.60) 100%) - z-index: -2 + padding-top: 20px &__type margin-bottom: 85px // +fb @@ -1236,20 +1226,19 @@ a[name] +m margin-bottom: 40px &__title - margin-bottom: 2px - // +fb - font-size: 50px + margin-bottom: 20px + font-size: 35px line-height: (6/5) +t - margin-bottom: 6px + margin-bottom: 15px font-size: 24px &__text max-width: 600px - +t - margin-bottom: 65px + font-size: 20px + font-family: 'ProximaNova-Regular', sans-serif + margin-bottom: 0 +m max-width: 80% - margin-bottom: 40px &__action +fb font-size: 10px