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_TWITTER_URL = serializers.URLField(required=False)
SERVICE_FB_URL = serializers.URLField(required=False) SERVICE_FB_URL = serializers.URLField(required=False)
SERVICE_YOUTUBE_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_TELEGRAM_CHANNEL = serializers.URLField(required=False)
SERVICE_COMMISSION = serializers.IntegerField(required=False) SERVICE_COMMISSION = serializers.IntegerField(required=False)
SERVICE_DISCOUNT_MIN_AMOUNT = 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) # MAIN_PAGE_TOP_IMAGE = serializers.ImageField(required=False, allow_null=True)
REFERRER_BONUS = serializers.IntegerField() REFERRER_BONUS = serializers.IntegerField()
REFERRAL_BONUS = serializers.IntegerField() REFERRAL_BONUS = serializers.IntegerField()
MAIN_PAGE_VIDEO_URL = serializers.CharField(required=False)
class Meta: class Meta:
model = Config model = Config
@ -29,6 +32,8 @@ class ConfigSerializer(serializers.ModelSerializer):
'SERVICE_INSTAGRAM_URL', 'SERVICE_INSTAGRAM_URL',
'SERVICE_TWITTER_URL', 'SERVICE_TWITTER_URL',
'SERVICE_FB_URL', 'SERVICE_FB_URL',
'SERVICE_OK_URL',
'SERVICE_VK_URL',
'SERVICE_YOUTUBE_URL', 'SERVICE_YOUTUBE_URL',
'SERVICE_TELEGRAM_CHANNEL', 'SERVICE_TELEGRAM_CHANNEL',
'SERVICE_COMMISSION', 'SERVICE_COMMISSION',
@ -41,6 +46,7 @@ class ConfigSerializer(serializers.ModelSerializer):
'MAIN_PAGE_TOP_IMAGE', 'MAIN_PAGE_TOP_IMAGE',
'REFERRER_BONUS', 'REFERRER_BONUS',
'REFERRAL_BONUS', 'REFERRAL_BONUS',
'MAIN_PAGE_VIDEO_URL',
) )
def get_SCHOOL_LOGO_IMAGE(self, config): 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_INSTAGRAM_URL = models.URLField(max_length=126, default='#')
SERVICE_TWITTER_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_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_YOUTUBE_URL = models.URLField(max_length=126, default='#')
SERVICE_TELEGRAM_CHANNEL = models.URLField(max_length=126, default='https://t.me/lilschool') SERVICE_TELEGRAM_CHANNEL = models.URLField(max_length=126, default='https://t.me/lilschool')
SERVICE_COMMISSION = models.IntegerField(default=10) SERVICE_COMMISSION = models.IntegerField(default=10)
@ -19,6 +21,7 @@ class Config(models.Model):
MAIN_PAGE_TOP_IMAGE = models.ImageField(null=True, blank=True) MAIN_PAGE_TOP_IMAGE = models.ImageField(null=True, blank=True)
REFERRER_BONUS = models.IntegerField(default=10) REFERRER_BONUS = models.IntegerField(default=10)
REFERRAL_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): def save(self, *args, **kwargs):
self.pk = 1 self.pk = 1

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

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

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

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

@ -1,5 +1,5 @@
{% if messages %} {% 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"> <div class="section__center center center_xs">
{% for message in messages %} {% for message in messages %}
<div class="message message_{{ message.tags }}">{{ message }}</div> <div class="message message_{{ message.tags }}">{{ message }}</div>

@ -17,7 +17,7 @@
</div> </div>
<div class="app__col"> <div class="app__col">
<div class="app__preview"> <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> </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% по промокоду у наших партнеров Скидка 15% по промокоду у наших партнеров
</div> </div>
<div class="partners"> <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"> <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 class="partners__item-promocode">LIL</div>
</div> </div>
<div class="partners__item"> <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 class="partners__item-promocode">LILCITY</div>
</div> </div>
<div class="partners__item"> <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 class="partners__item-promocode">LILCITY</div>
</div> </div>
<div class="partners__item"> <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 class="partners__item-promocode">LILCITY</div>
</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> </div>
</div> </div>

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

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

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

@ -17,9 +17,12 @@
{% include "templates/blocks/arts.html" %} {% include "templates/blocks/arts.html" %}
{% include "templates/blocks/video.html" %} {% include "templates/blocks/video.html" %}
{% include "templates/blocks/about.html" %} {% include "templates/blocks/about.html" %}
{% include "templates/blocks/last_courses.html" %}
{% include "templates/blocks/gallery.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/teachers.html" %}
{% include "templates/blocks/game.html" %} {% include "templates/blocks/last_courses.html" %}
{% include "templates/blocks/partners.html" %} {% include "templates/blocks/partners.html" %}
{% include "templates/blocks/game.html" %}
{% endblock content %} {% endblock content %}

@ -1,4 +1,5 @@
from datetime import datetime, timedelta from datetime import datetime, timedelta
from random import shuffle
import short_url import short_url
from django.db.models import Min, Func, F 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.course.models import Course
from apps.school.models import SchoolSchedule 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() User = get_user_model()
@ -85,7 +86,11 @@ class IndexView(TemplateView):
except: except:
user_gift_certificate = None user_gift_certificate = None
review_images = list(map(str, range(1, 107)))
shuffle(review_images)
context.update({ context.update({
'review_images': review_images,
'gift_certificate': user_gift_certificate.gift_certificate if user_gift_certificate else None, 'gift_certificate': user_gift_certificate.gift_certificate if user_gift_certificate else None,
'user_gift_certificate': user_gift_certificate, 'user_gift_certificate': user_gift_certificate,
'is_gift_certificate_url': bool(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': SchoolSchedule.objects.all(),
'school_schedules_purchased': set(school_schedules_purchased), 'school_schedules_purchased': set(school_schedules_purchased),
'teachers': User.objects.filter(role=User.TEACHER_ROLE, show_in_mainpage=True), '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': 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, '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