Merge branch 'feature/LIL-701' into 'master'

Feature/lil 701

See merge request lilcity/backend!219
remotes/origin/editis_13-01-19
cfwme 7 years ago
commit 81d027efa5
  1. 6
      api/v1/serializers/config.py
  2. 18
      apps/config/migrations/0011_config_main_page_video_url.py
  3. 23
      apps/config/migrations/0012_auto_20181210_1729.py
  4. 3
      apps/config/models.py
  5. 60
      project/templates/blocks/about.html
  6. 114
      project/templates/blocks/footer.html
  7. 5
      project/templates/blocks/gallery.html
  8. 11
      project/templates/blocks/last_courses.html
  9. 2
      project/templates/blocks/messages.html
  10. 2
      project/templates/blocks/mobile_apps.html
  11. 28
      project/templates/blocks/online_school.html
  12. 31
      project/templates/blocks/partners.html
  13. 2
      project/templates/blocks/promo.html
  14. 60
      project/templates/blocks/reviews.html
  15. 5
      project/templates/blocks/video.html
  16. 7
      project/templates/lilcity/main.html
  17. 8
      project/views.py
  18. BIN
      web/src/img/gamma.png
  19. BIN
      web/src/img/reviews/1.png
  20. BIN
      web/src/img/reviews/10.png
  21. BIN
      web/src/img/reviews/100.png
  22. BIN
      web/src/img/reviews/101.png
  23. BIN
      web/src/img/reviews/102.png
  24. BIN
      web/src/img/reviews/103.png
  25. BIN
      web/src/img/reviews/104.png
  26. BIN
      web/src/img/reviews/105.png
  27. BIN
      web/src/img/reviews/106.png
  28. BIN
      web/src/img/reviews/11.png
  29. BIN
      web/src/img/reviews/12.png
  30. BIN
      web/src/img/reviews/13.png
  31. BIN
      web/src/img/reviews/14.png
  32. BIN
      web/src/img/reviews/15.png
  33. BIN
      web/src/img/reviews/16.png
  34. BIN
      web/src/img/reviews/17.png
  35. BIN
      web/src/img/reviews/18.png
  36. BIN
      web/src/img/reviews/19.png
  37. BIN
      web/src/img/reviews/2.png
  38. BIN
      web/src/img/reviews/20.png
  39. BIN
      web/src/img/reviews/21.png
  40. BIN
      web/src/img/reviews/22.png
  41. BIN
      web/src/img/reviews/23.png
  42. BIN
      web/src/img/reviews/24.png
  43. BIN
      web/src/img/reviews/25.png
  44. BIN
      web/src/img/reviews/26.png
  45. BIN
      web/src/img/reviews/27.png
  46. BIN
      web/src/img/reviews/28.png
  47. BIN
      web/src/img/reviews/29.png
  48. BIN
      web/src/img/reviews/3.png
  49. BIN
      web/src/img/reviews/30.png
  50. BIN
      web/src/img/reviews/31.png
  51. BIN
      web/src/img/reviews/32.png
  52. BIN
      web/src/img/reviews/33.png
  53. BIN
      web/src/img/reviews/34.png
  54. BIN
      web/src/img/reviews/35.png
  55. BIN
      web/src/img/reviews/36.png
  56. BIN
      web/src/img/reviews/37.png
  57. BIN
      web/src/img/reviews/38.png
  58. BIN
      web/src/img/reviews/39.png
  59. BIN
      web/src/img/reviews/4.png
  60. BIN
      web/src/img/reviews/40.png
  61. BIN
      web/src/img/reviews/41.png
  62. BIN
      web/src/img/reviews/42.png
  63. BIN
      web/src/img/reviews/43.png
  64. BIN
      web/src/img/reviews/44.png
  65. BIN
      web/src/img/reviews/45.png
  66. BIN
      web/src/img/reviews/46.png
  67. BIN
      web/src/img/reviews/47.png
  68. BIN
      web/src/img/reviews/48.png
  69. BIN
      web/src/img/reviews/49.png
  70. BIN
      web/src/img/reviews/5.png
  71. BIN
      web/src/img/reviews/50.png
  72. BIN
      web/src/img/reviews/51.png
  73. BIN
      web/src/img/reviews/52.png
  74. BIN
      web/src/img/reviews/53.png
  75. BIN
      web/src/img/reviews/54.png
  76. BIN
      web/src/img/reviews/55.png
  77. BIN
      web/src/img/reviews/56.png
  78. BIN
      web/src/img/reviews/57.png
  79. BIN
      web/src/img/reviews/58.png
  80. BIN
      web/src/img/reviews/59.png
  81. BIN
      web/src/img/reviews/6.png
  82. BIN
      web/src/img/reviews/60.png
  83. BIN
      web/src/img/reviews/61.png
  84. BIN
      web/src/img/reviews/62.png
  85. BIN
      web/src/img/reviews/63.png
  86. BIN
      web/src/img/reviews/64.png
  87. BIN
      web/src/img/reviews/65.png
  88. BIN
      web/src/img/reviews/66.png
  89. BIN
      web/src/img/reviews/67.png
  90. BIN
      web/src/img/reviews/68.png
  91. BIN
      web/src/img/reviews/69.png
  92. BIN
      web/src/img/reviews/7.png
  93. BIN
      web/src/img/reviews/70.png
  94. BIN
      web/src/img/reviews/71.png
  95. BIN
      web/src/img/reviews/72.png
  96. BIN
      web/src/img/reviews/73.png
  97. BIN
      web/src/img/reviews/74.png
  98. BIN
      web/src/img/reviews/75.png
  99. BIN
      web/src/img/reviews/76.png
  100. BIN
      web/src/img/reviews/77.png
  101. Some files were not shown because too many files have changed in this diff Show More

@ -9,6 +9,8 @@ class ConfigSerializer(serializers.ModelSerializer):
SERVICE_TWITTER_URL = serializers.URLField(required=False)
SERVICE_FB_URL = serializers.URLField(required=False)
SERVICE_YOUTUBE_URL = serializers.URLField(required=False)
SERVICE_OK_URL = serializers.URLField(required=False)
SERVICE_VK_URL = serializers.URLField(required=False)
SERVICE_TELEGRAM_CHANNEL = serializers.URLField(required=False)
SERVICE_COMMISSION = serializers.IntegerField(required=False)
SERVICE_DISCOUNT_MIN_AMOUNT = serializers.IntegerField(required=False)
@ -22,6 +24,7 @@ class ConfigSerializer(serializers.ModelSerializer):
# MAIN_PAGE_TOP_IMAGE = serializers.ImageField(required=False, allow_null=True)
REFERRER_BONUS = serializers.IntegerField()
REFERRAL_BONUS = serializers.IntegerField()
MAIN_PAGE_VIDEO_URL = serializers.CharField(required=False)
class Meta:
model = Config
@ -29,6 +32,8 @@ class ConfigSerializer(serializers.ModelSerializer):
'SERVICE_INSTAGRAM_URL',
'SERVICE_TWITTER_URL',
'SERVICE_FB_URL',
'SERVICE_OK_URL',
'SERVICE_VK_URL',
'SERVICE_YOUTUBE_URL',
'SERVICE_TELEGRAM_CHANNEL',
'SERVICE_COMMISSION',
@ -41,6 +46,7 @@ class ConfigSerializer(serializers.ModelSerializer):
'MAIN_PAGE_TOP_IMAGE',
'REFERRER_BONUS',
'REFERRAL_BONUS',
'MAIN_PAGE_VIDEO_URL',
)
def get_SCHOOL_LOGO_IMAGE(self, config):

@ -0,0 +1,18 @@
# Generated by Django 2.0.7 on 2018-12-03 18:14
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('config', '0010_auto_20180820_0853'),
]
operations = [
migrations.AddField(
model_name='config',
name='MAIN_PAGE_VIDEO_URL',
field=models.URLField(default='https://www.youtube.com/embed/1w3amQGtQyc', max_length=126),
),
]

@ -0,0 +1,23 @@
# Generated by Django 2.0.7 on 2018-12-10 17:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('config', '0011_config_main_page_video_url'),
]
operations = [
migrations.AddField(
model_name='config',
name='SERVICE_OK_URL',
field=models.URLField(default='#', max_length=126),
),
migrations.AddField(
model_name='config',
name='SERVICE_VK_URL',
field=models.URLField(default='#', max_length=126),
),
]

@ -10,6 +10,8 @@ class Config(models.Model):
SERVICE_INSTAGRAM_URL = models.URLField(max_length=126, default='#')
SERVICE_TWITTER_URL = models.URLField(max_length=126, default='#')
SERVICE_FB_URL = models.URLField(max_length=126, default='#')
SERVICE_VK_URL = models.URLField(max_length=126, default='#')
SERVICE_OK_URL = models.URLField(max_length=126, default='#')
SERVICE_YOUTUBE_URL = models.URLField(max_length=126, default='#')
SERVICE_TELEGRAM_CHANNEL = models.URLField(max_length=126, default='https://t.me/lilschool')
SERVICE_COMMISSION = models.IntegerField(default=10)
@ -19,6 +21,7 @@ class Config(models.Model):
MAIN_PAGE_TOP_IMAGE = models.ImageField(null=True, blank=True)
REFERRER_BONUS = models.IntegerField(default=10)
REFERRAL_BONUS = models.IntegerField(default=10)
MAIN_PAGE_VIDEO_URL = models.URLField(max_length=126, default='https://www.youtube.com/embed/1w3amQGtQyc')
def save(self, *args, **kwargs):
self.pk = 1

@ -1,48 +1,48 @@
{% load static %}
<div class="anchor" id="about"></div>
<div class="section section_school" style="padding-top: 0;">
<div class="section__center center">
<div class="text text_lg">
<p>Вы житель мегаполиса и&nbsp;у&nbsp;вас нет времени дополнительно развивать своего ребенка?
Или&nbsp;вы&nbsp;живете в&nbsp;маленьком городе,
где&nbsp;нет&nbsp;качественных школ и&nbsp;секций для&nbsp;детей?</p>
<p><b>Lil School</b>&nbsp;это решение для&nbsp;тех&nbsp;родителей, кто&nbsp;стремится дать лучшее своему ребенку.
Учитесь не&nbsp;выходя из&nbsp;дома!</p>
</div>
</div>
</div>
<div class="section section_school">
<div class="section__center center">
<div class="text text_only_curve">
<img class="text__curve text__curve_one" src="{% static 'img/curve-1.svg' %}" width="320">
<img class="text__curve text__curve_five" src="{% static 'img/curve-2.svg' %}" width="210">
<div class="title">Lil School в цифрах</div>
</div>
<div class="school">
<div class="school school_main">
<div class="school__col">
<div class="school__preview">
<svg class="icon icon-online">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-online"></use>
</svg>
</div>
<div class="school__title">Видеоуроки</div>
<div class="school__text">Каждый день</div>
<div class="school__preview">> 12000</div>
<div class="school__title">учеников</div>
<div class="school__text">прошли обучение в&nbsp;Lil&nbsp;School</div>
</div>
<div class="school__col">
<div class="school__preview">
<svg class="icon icon-everyday">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-everyday"></use>
</svg>
<div class="school__preview">{{ works_count }}</div>
<div class="school__title">работ</div>
<div class="school__text">
создано учениками Lil&nbsp;School.<br>
Большую часть из&nbsp;них легко найти в&nbsp;<a href="{{ config.SERVICE_INSTAGRAM_URL }}">инстаграм</a>
</div>
<div class="school__title">В 17:00</div>
<div class="school__text">По московскому времени</div>
</div>
<div class="school__col">
<div class="school__preview">
<svg class="icon icon-subjects">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-subjects"></use>
</svg>
</div>
<div class="school__title">7 дисциплин</div>
<div class="school__text">В разных техниках</div>
<div class="school__preview">32</div>
<div class="school__title">страны</div>
<div class="school__text">где живут талантливые ученики Lil&nbsp;School</div>
</div>
<div class="school__col">
<div class="school__preview">
<svg class="icon icon-view">
<use xlink:href="{% static 'img/sprite.svg' %}#icon-view"></use>
</svg>
</div>
<div class="school__title">Запись эфира</div>
<div class="school__text">Хранится 7 дней</div>
<div class="school__preview">107</div>
<div class="school__title">городов</div>
<div class="school__text">со&nbsp;всего мира со&nbsp;счастливыми учениками Lil&nbsp;School</div>
</div>
</div>
<div class="letsgo"></div>
<div style="margin: 50px 0; text-align: center;"><a class="btn" href="/faq">Часто задаваемые вопросы</a></div>
</div>
</div>

@ -4,83 +4,71 @@
<div class="footer__row footer__row_first">
<div class="footer__col footer__col_md">
<a class="footer__logo logo" href="/"></a>
<div class="footer__content">Первая онлайн-школа креативного мышления Lil School</div>
<div class="footer__content">Lil School – первая образовательная онлайн-платформа креативного мышления
для детей 5+</div>
</div>
<div class="footer__col">
<div class="footer__title">КОМПАНИЯ</div>
<div class="footer__title">Продукты</div>
<nav class="footer__nav">
<a class="footer__link" href="{% url 'about' %}">О нас</a>
<a class="footer__link" href="/#teachers">Преподаватели</a>
<a class="footer__link" href="https://blog.lil.school">Блог</a>
<a class="footer__link" href="/#game">Наши приложения</a>
<a class="footer__link" target="_blank" href="https://drive.google.com/drive/folders/1g14ExvB9X_8ZsES6XkNzkTY3QrZm2WgT?usp=sharing">Медиа-кит</a>
<div>
<a class="footer__link" href="{% url 'school:school' %}">Онлайн-школа</a>
<a class="footer__link" href="{% url 'courses' %}">Видео-курсы</a>
<a class="footer__link" href="https://blog.lil.school">Блог</a>
</div>
<div>
<a class="footer__link" href="/courses/?category=14">Метод. пособия</a>
<!--<a class="footer__link" href="#TODO">Бонусная система</a>-->
<a class="footer__link" href="/#game">Мобильные приложения</a>
</div>
</nav>
</div>
<div class="footer__col">
<div class="footer__title">Программы</div>
<div class="footer__title">КОМПАНИЯ</div>
<nav class="footer__nav">
<a class="footer__link" href="{% url 'school:school' %}">Онлайн-школа</a>
<a class="footer__link" href="{% url 'courses' %}">Онлайн-курсы</a>
<a class="footer__link" href="{% url 'author_request' %}">Стать автором</a>
<div>
<a class="footer__link" href="{% url 'about' %}">О&nbsp;нас</a>
<a class="footer__link" href="/#teachers">Преподаватели</a>
<a class="footer__link" href="{% url 'author_request' %}">Стать автором</a>
<a class="footer__link" target="_blank" href="https://drive.google.com/drive/folders/1g14ExvB9X_8ZsES6XkNzkTY3QrZm2WgT?usp=sharing">Медиа-кит</a>
</div>
<div>
<a class="footer__link" href="{% url 'terms' %}">Договор-оферта</a>
<a class="footer__link" href="{% url 'refund_policy' %}">Политика возврата</a>
<a class="footer__link" href="{% url 'privacy' %}">Политика обработки персональных&nbsp;данных</a>
</div>
</nav>
</div>
<div class="footer__col">
<div class="footer__title">Контакты</div>
<div class="footer__contact">Общие вопросы:
<a href='mailto:school@lil.city'>school@lil.city</a>
</div>
<div class="footer__contact">Сотрудничество:
<a href='mailto:partnership@lil.city'>partnership@lil.city</a>
</div>
</div>
<div class="footer__col footer__col_md">
<div class="footer__title">ПОДПИСАТЬСЯ НА НОВОСТИ</div>
<a target="_blank" class="subscribe__btn btn btn_light" href="{{ config.SERVICE_TELEGRAM_CHANNEL }}">
<svg class="icon icon-telegram">
<use xlink:href={% static "img/sprite.svg" %}#icon-telegram></use>
</svg>
ПОДПИСАТЬСЯ
</a>
<div class="subscribe__content">
Подпишитесь на наш канал в Telegram чтобы получать от нас важные новости о школе, новых курсах и бонусах от Lil City.
</div>
<nav class="footer__nav">
<div>
{% if config.SERVICE_INSTAGRAM_URL != '#' %}<a class="footer__link" href="{{ config.SERVICE_INSTAGRAM_URL }}">Instagram</a>{% endif %}
{% if config.SERVICE_FB_URL != '#' %}<a class="footer__link" href="{{ config.SERVICE_FB_URL }}">Facebook</a>{% endif %}
{% if config.SERVICE_YOUTUBE_URL != '#' %}<a class="footer__link" href="{{ config.SERVICE_YOUTUBE_URL }}">YouTube</a>{% endif %}
{% if config.SERVICE_TWITTER_URL != '#' %}<a class="footer__link" href="{{ config.SERVICE_TWITTER_URL }}">Twitter</a>{% endif %}
</div>
<div>
{% if config.SERVICE_OK_URL != '#' %}<a class="footer__link" href="{{ config.SERVICE_OK_URL }}">Odnoklassniki</a>{% endif %}
{% if config.SERVICE_VK_URL != '#' %}<a class="footer__link" href="{{ config.SERVICE_VK_URL }}">VKontakte</a>{% endif %}
<a class="footer__link" href='mailto:school@lil.city'>Email по&nbsp;общим вопросам</a>
<a class="footer__link" href='mailto:partnership@lil.city'>Сотрудничество</a>
</div>
</nav>
</div>
</div>
<div class="footer__row footer__row_second">
<div class="footer__col footer__col_md" style="flex: 0 0 23%;">
<div class="footer__socials socials">
<a target="_blank" class="socials__item" href="{{ config.SERVICE_INSTAGRAM_URL }}">
<svg class="icon icon-instagram">
<use xlink:href={% static "img/sprite.svg" %}#icon-instagram></use>
</svg>
</a>
<a target="_blank" class="socials__item" href="{{ config.SERVICE_TWITTER_URL }}">
<svg class="icon icon-twitter">
<use xlink:href={% static "img/sprite.svg" %}#icon-twitter></use>
</svg>
</a>
<a target="_blank" class="socials__item" href="{{ config.SERVICE_FB_URL }}">
<svg class="icon icon-fb">
<use xlink:href={% static "img/sprite.svg" %}#icon-fb></use>
</svg>
</a>
<a target="_blank" class="socials__item" href="{{ config.SERVICE_YOUTUBE_URL }}">
<svg class="icon icon-youtube">
<use xlink:href={% static "img/sprite.svg" %}#icon-youtube></use>
</svg>
</a>
</div>
</div>
<div class="footer__col footer__col_lg" style="flex: 0 0 77%;">
<div class="footer__group">
<div class="footer__copyright">{% now 'Y' %} © Lil City, UAB.</div>
<div class="footer__links">
<a class="footer__link" href="{% url 'terms' %}">Договор-оферта</a>
<div class="footer__divider">|</div>
<a class="footer__link" href="{% url 'privacy' %}">Политика обработки персональных данных</a>
<div class="footer__divider">|</div>
<a class="footer__link" href="{% url 'refund_policy' %}">Политика возврата</a>
</div>
<div class="footer__col footer__col_md mobile-hide"></div>
<div class="footer__col footer__col_md">
<div>Подписаться на&nbsp;самую интересную рассылку на&nbsp;планете</div>
<form class="subscribe" method="post" action="{% url 'subscribe' %}">
{% csrf_token %}
<input class="subscribe__input" name="email" placeholder="Email">
<button class="subscribe__btn btn btn_light">ПОДПИСАТЬСЯ</button>
</form>
<div class="footer__copyright">
Все права защищены ©&nbsp;Lil&nbsp;City,&nbsp;UAB. Все&nbsp;материалы принадлежат компании Lil&nbsp;City,&nbsp;UAB.<br>
Никакая из&nbsp;частей этого сайта, текстов или&nbsp;изображений, не&nbsp;может быть&nbsp;скопирована, использована или&nbsp;передана
на&nbsp;электронных, физических и&nbsp;других носителях без&nbsp;письменного согласия компании Lil&nbsp;City.
</div>
</div>
</div>

@ -5,9 +5,8 @@
<div class="title title_center">Галерея</div>
</a>
<div class="text">
<p>Тысячи шедевров уже созданы благодаря Lil School. Более 10000 работ можно
<a target="_blank" href='{{ config.SERVICE_INSTAGRAM_URL }}'>увидеть</a> в Инстаграм</p>
<img class="text__curve text__curve_three" src="{% static 'img/curve-3.svg' %}">
<p>Тысячи шедевров уже&nbsp;созданы благодаря Lil&nbsp;School. Более 10000&nbsp;работ можно
<a target="_blank" href='{{ config.SERVICE_INSTAGRAM_URL }}'>увидеть</a> в&nbsp;Инстаграм</p>
</div>
<div class="gallery">
<div class="gallery__grid">

@ -1,17 +1,16 @@
{% load static %} {% if course_items %}
<div class="section section_courses">
<div class="section__center center">
<div class="title title_center">Видео-курсы без расписания</div>
<div class="text text_courses">Если вам не совсем удобно заниматься с нами каждый день в нашей онлайн-школе, специально для вас мы
делаем отдельные уроки в записи, которые вы можете проходить, когда вам будет удобно.<br><br>
Учите и развивайте креативное мышление когда и где угодно
<div class="title title_center">Онлайн-курсы</div>
<div class="text">Помимо школы у нас есть углубленные видео-курсы на разные темы для тех,
кто хочет стать настоящим профессионалом
</div>
<div class="courses">
<div class="courses__list">
{% include "course/course_items.html" %}
</div>
<div class="courses__load load">
<a class="load__btn btn" href="{% url 'courses' %}">Узнать подробнее</a>
<div class="text">
<a class="btn" href="{% url 'courses' %}">Подробнее о видео-курсах</a>
</div>
</div>
</div>

@ -1,5 +1,5 @@
{% if messages %}
<div class="section section_gray section_menu" style="margin-bottom: 20px;">
<div class="section section_gray section_menu" style="margin-bottom: 70px;">
<div class="section__center center center_xs">
{% for message in messages %}
<div class="message message_{{ message.tags }}">{{ message }}</div>

@ -17,7 +17,7 @@
</div>
<div class="app__col">
<div class="app__preview">
<img class="app__pic" src="{% static 'img/screens.png' %}">
<img class="app__pic" src="{% static 'img/screens2.png' %}">
</div>
</div>
</div>

@ -0,0 +1,28 @@
<div class="section section_school">
<div class="section__center center">
<div class="title title_center">Процесс</div>
<div class="text">
Онлайн-образование &mdash; это очень удобно! Можете учиться в&nbsp;пижаме, без&nbsp;макияжа
и&nbsp;с&nbsp;огурцами на&nbsp;лице!)
</div>
<div class="school school_main">
<div class="school__col">
<div class="school__preview">Видеоуроки</div>
<div class="school__text">Каждый день!</div>
</div>
<div class="school__col">
<div class="school__preview">В 17:00</div>
<div class="school__text">По московскому времени</div>
</div>
<div class="school__col">
<div class="school__preview">7 дисциплин</div>
<div class="school__text">В разных техниках</div>
</div>
<div class="school__col">
<div class="school__preview">Запись эфира</div>
<div class="school__text">Хранится 7 дней</div>
</div>
</div>
<div class="letsgo"></div>
</div>
</div>

@ -8,32 +8,35 @@
Скидка 15% по промокоду у наших партнеров
</div>
<div class="partners">
<a target="_blank" class="partners__item" href="https://www.mann-ivanov-ferber.ru/tag/sasha-kru/">
<img class="partners__pic" src="{% static 'img/mif.jpg' %}">
</a>
<a target="_blank" class="partners__item" href="https://artkvartal.ru">
<img class="partners__pic" src="{% static 'img/artkvartal.png' %}">
</a>
<a target="_blank" class="partners__item" href="http://www.pinkbus.ru/">
<img class="partners__pic" src="{% static 'img/pinkbus.jpg' %}">
</a>
<a target="_blank" class="partners__item" href="http://joviland.ru/lil-school/">
<img class="partners__pic" src="{% static 'img/jovi.png' %}">
</a>
</div>
<div class="partners partners_promocodes">
<div class="partners__item">
<a target="_blank" href="https://www.mann-ivanov-ferber.ru/tag/sasha-kru/">
<img class="partners__pic" src="{% static 'img/mif.jpg' %}">
</a>
<div class="partners__item-promocode">LIL</div>
</div>
<div class="partners__item">
<a target="_blank" href="https://artkvartal.ru">
<img class="partners__pic" src="{% static 'img/artkvartal.png' %}">
</a>
<div class="partners__item-promocode">LILCITY</div>
</div>
<div class="partners__item">
<a target="_blank" href="http://www.pinkbus.ru/">
<img class="partners__pic" src="{% static 'img/pinkbus.jpg' %}">
</a>
<div class="partners__item-promocode">LILCITY</div>
</div>
<div class="partners__item">
<a target="_blank" href="http://joviland.ru/lil-school/">
<img class="partners__pic" src="{% static 'img/jovi.png' %}">
</a>
<div class="partners__item-promocode">LILCITY</div>
</div>
<div class="partners__item">
<a target="_blank" href="http://artgamma.ru/">
<img class="partners__pic" src="{% static 'img/gamma.png' %}">
</a>
</div>
</div>
</div>
</div>

@ -69,7 +69,7 @@
</a>
<a class="main__btn btn btn_stroke-black" href="{% url 'gift-certificates' %}">Подарить другу</a>
{% else %}
<a class="main__btn btn btn_white" href="{% url 'school:school' %}">Подробнее</a>
<a class="main__btn btn" href="{% url 'school:school' %}">Подробнее</a>
{% endif %}
</div>
{% endif %}

@ -1,50 +1,20 @@
{% load static %}
<div class="section section_review">
<div class="section__center center center_md">
<a id="reviews" name="reviews">
<div class="title title_center">Отзывы</div>
</a>
<div class="text">Мы получаем сотни тёплых отзывов от довольных родителей. Их можно почитать
<a href="#">здесь;)</a>
</div>
<div class="reviews">
<div class="reviews__item">
<div class="reviews__ava ava">
<img class="ava__pic" src="{% static 'img/user.jpg' %}">
</div>
<div class="reviews__wrap">
<div class="reviews__name">@redanna333</div>
<div class="reviews__content">Мой ребёнок зарисовал!!! Хотя, я и не ставила таких глобальных целей, участвуя в этом лагере, просто занять дитё
чем-то творческим хоть иногда, но он реально рисует, сам, и не надо приглашать и уговаривать, просто берёт и
рисует) Спасибо, Саша, от всей души) Надеемся на встречу в школе)</div>
</div>
</div>
<div class="reviews__item">
<div class="reviews__ava ava">
<img class="ava__pic" src="{% static 'img/user.jpg' %}">
</div>
<div class="reviews__wrap">
<div class="reviews__name">@redanna333</div>
<div class="reviews__content">Саша, огромное спасибо за ещё одну возможность погружения в удивительный мир Ваших уроков! С начала первого летнего
лагеря и до сегодняшнего дня, был запущен творческий круговорот разных идей, по заданиям и просто так)). На самом
деле, удивительная способность, находясь далеко, по другую сторону экрана, создавать уникальный контакт присутствия
рядом, будто в одной комнате и давно знакомы). И ещё одно важное качество- быть на стороне ребёнка в непростом
творческом процессе- моя дочь, слушая Ваше задание, расправляет "крылья", не боясь оценочного мнения , а сосредоточившись
на задаче)). P.S В школу идём без сомнений!</div>
</div>
<div class="section reviews-section">
<div class="reviews-section__center section__center center center_md">
<div class="reviews-section__title">
<a id="reviews" name="reviews">
<div class="title title_left">Отзывы о Lil School</div>
</a>
<div class="text">Тёплых отзывов настолько много, что потребуется несколько суток, чтобы их просмотреть
и несколько месяцев чтобы прочитать.<br>
P.S.: Но мы читаем их все!)
</div>
<div class="reviews__item">
<div class="reviews__ava ava">
<img class="ava__pic" src="{% static 'img/user.jpg' %}">
</div>
<div class="reviews__wrap">
<div class="reviews__name">@redanna333</div>
<div class="reviews__content">Саша, 👋 Вы потрясающе четко и качественно можете объяснить задание урока! Дети настолько увлекаются процессом,
что взрослые и сами включаются в эту интересную игру ТВОРЧЕСТВО! Спасибо Вам за Вдохновение, Любовь и желание
творить Чудеса! Темыч теперь легко может начать рисовать "трудные" картинки, потому что тетя Саша сказала: "все
состоит из простых форм!" Теперь это наш девиз) главное ушёл страх, что не выйдет ПРАВИЛЬНО, потому что нет ограничений
и правил в творчестве😜🙌надеемся на скорую встречу!!!</div>
</div>
</div>
<div class="reviews-section__reviews reviews" data-review-images="{{ review_images|join:',' }}">
<div class="reviews__wrap">
{% for review_image in review_images|slice:":10" %}
<img class="reviews__item" src="{% static 'img/reviews/'|add:review_image|add:'.png' %}">
{% endfor %}
</div>
</div>
</div>

@ -1,12 +1,13 @@
<div class="section section_video">
<div class="section__center center center_sm" style="text-align: center;">
<iframe style="display: inline-block;"
<iframe class="main-video" style="display: inline-block;"
width="100%"
height="360"
src="https://www.youtube.com/embed/1w3amQGtQyc"
src="{{ config.MAIN_PAGE_VIDEO_URL }}"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen
></iframe>
<div>Много развивающих видео на&nbsp;нашем <a href="{{ config.SERVICE_YOUTUBE_URL }}">YouTube&nbsp;канале</a></div>
</div>
</div>

@ -17,9 +17,12 @@
{% include "templates/blocks/arts.html" %}
{% include "templates/blocks/video.html" %}
{% include "templates/blocks/about.html" %}
{% include "templates/blocks/last_courses.html" %}
{% include "templates/blocks/gallery.html" %}
{% include "templates/blocks/mobile_apps.html" %}
{% include "templates/blocks/online_school.html" %}
{% include "templates/blocks/reviews.html" %}
{% include "templates/blocks/teachers.html" %}
{% include "templates/blocks/game.html" %}
{% include "templates/blocks/last_courses.html" %}
{% include "templates/blocks/partners.html" %}
{% include "templates/blocks/game.html" %}
{% endblock content %}

@ -1,4 +1,5 @@
from datetime import datetime, timedelta
from random import shuffle
import short_url
from django.db.models import Min, Func, F
@ -9,7 +10,7 @@ from paymentwall.pingback import Pingback
from apps.course.models import Course
from apps.school.models import SchoolSchedule
from apps.payment.models import SchoolPayment, UserGiftCertificate
from apps.payment.models import SchoolPayment, UserGiftCertificate, Payment
User = get_user_model()
@ -85,7 +86,11 @@ class IndexView(TemplateView):
except:
user_gift_certificate = None
review_images = list(map(str, range(1, 107)))
shuffle(review_images)
context.update({
'review_images': review_images,
'gift_certificate': user_gift_certificate.gift_certificate if user_gift_certificate else None,
'user_gift_certificate': user_gift_certificate,
'is_gift_certificate_url': bool(user_gift_certificate),
@ -100,6 +105,7 @@ class IndexView(TemplateView):
'school_schedules': SchoolSchedule.objects.all(),
'school_schedules_purchased': set(school_schedules_purchased),
'teachers': User.objects.filter(role=User.TEACHER_ROLE, show_in_mainpage=True),
'works_count': Payment.objects.filter(status__in=Payment.PW_PAID_STATUSES).count() * 5,
'subscription_ends': school_payment.filter(add_days=False).first().date_end if school_payment_exists else None,
'subscription_ends_humanize': school_payment.filter(add_days=False).first().date_end_humanize if school_payment_exists else None,

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save