From a6e0abac583053423499a0de5acd5ce2641c5e3a Mon Sep 17 00:00:00 2001 From: Ivlev Denis Date: Mon, 2 Jul 2018 08:26:26 +0300 Subject: [PATCH] LIL-557. Add coming soon block --- apps/school/models.py | 5 +++++ project/templates/blocks/promo.html | 7 ++++++- project/views.py | 9 +++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/school/models.py b/apps/school/models.py index f63a2024..eaa17664 100644 --- a/apps/school/models.py +++ b/apps/school/models.py @@ -1,3 +1,4 @@ +import arrow from datetime import datetime, timedelta from django.db import models @@ -65,6 +66,10 @@ class SchoolSchedule(models.Model): ).first() return live_lesson + @property + def start_at_humanize(self): + return arrow.get(self.start_at).humanize(locale='ru') if self.start_at else None + class SchoolScheduleImage(models.Model): schoolschedule = models.ForeignKey( diff --git a/project/templates/blocks/promo.html b/project/templates/blocks/promo.html index 9c37b96a..7f179344 100644 --- a/project/templates/blocks/promo.html +++ b/project/templates/blocks/promo.html @@ -11,6 +11,10 @@
Lil School — первая образовательная онлайн-платформа креативного мышления для детей
+ {% if online_coming_soon and school_schedule and school_schedule.start_at_humanize %} +
До начала урока «{{ school_schedule.title }}»
+
{{ school_schedule.start_at_humanize }}
+ {% else %}
Присоединяйтесь в Рисовальный лагерь
@@ -30,8 +34,9 @@ {% if is_purchased_future and not is_purchased %}ваша подписка начинается {{school_purchased_future.date_start}}{% endif %} {% if is_purchased %}ваша подписка истекает {{ subscription_ends_humanize }}
перейти к оплате{% endif %} - О лагере + {% endif %} + diff --git a/project/views.py b/project/views.py index 61e62c90..2f6b62b1 100644 --- a/project/views.py +++ b/project/views.py @@ -27,6 +27,8 @@ class IndexView(TemplateView): school_schedule = SchoolSchedule.objects.get(weekday=now_time.isoweekday()) except SchoolSchedule.DoesNotExist: online = False + online_coming_soon = False + school_schedule = None else: end_at = datetime.combine(now_time.today(), school_schedule.start_at) online = ( @@ -34,6 +36,12 @@ class IndexView(TemplateView): (end_at + timedelta(hours=2)).time() >= now_time.time() and school_schedule.current_live_lesson() ) + online_coming_soon = ( + school_schedule.start_at < now_time.time() and + (school_schedule.start_at - timedelta(hours=5)).time() >= now_time.time() and + school_schedule.current_live_lesson() + ) + date_now = now_time.date() if self.request.user.is_authenticated: school_payment = SchoolPayment.objects.filter( @@ -62,6 +70,7 @@ class IndexView(TemplateView): context.update({ 'online': online, + 'online_coming_soon': online_coming_soon, 'course_items': Course.objects.filter(status=Course.PUBLISHED)[:6], 'is_purchased': school_payment_exists, 'min_school_price': SchoolSchedule.objects.aggregate(Min('month_price'))['month_price__min'],