Skip to content

Commit 2eb40bb

Browse files
authored
Merge pull request #55 from moscowpython/fix/closed_reg
make site work if no active enrollment
2 parents d30af78 + 9914651 commit 2eb40bb

File tree

5 files changed

+155
-141
lines changed

5 files changed

+155
-141
lines changed

landing_page/mainpage/models.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from django.db import models
22
from django.utils.timezone import now
3-
from mainpage.utils.typing import ensured
43

54

65
class Curators(models.Model):
@@ -67,8 +66,8 @@ class Enrollment(models.Model):
6766
late_price_date_from = models.DateField()
6867

6968
@staticmethod
70-
def get_enrollment_with_active_registration() -> "Enrollment":
71-
return ensured(Enrollment.objects.filter(end_registration_date__gte=now()).first())
69+
def get_enrollment_with_active_registration() -> "Enrollment | None":
70+
return Enrollment.objects.filter(end_registration_date__gte=now()).first()
7271

7372
def __str__(self) -> str:
7473
return f"Enrollment ({self.start_date} - {self.end_date})"

landing_page/mainpage/templates/mainpage/include/index_hero.html

Lines changed: 79 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -15,87 +15,95 @@ <h3 class="h3 col-12 col-md-10 col-xl-8">Ближайший набор прой
1515
Напишете собственный проект. Опытные питонисты, имеющие опыт «боевой» разработки, всю дорогу будут
1616
проверять ваш код и давать рекомендации.
1717
</p>
18-
<h4 class="curs-place col-12 col-md-8 col-xl-12 fadeInLeft animated-on-ready">
19-
С {{ enrollment.start_date | date:"j E" }} по {{ enrollment.end_date | date:"j E" }}
20-
</h4>
21-
<h4 class="curs-place col-12 col-md-8 col-xl-12 fadeInLeft animated-on-ready">
22-
Регистрация закроется {{ enrollment.end_registration_date | date:"j E" }}
23-
</h4>
24-
<div
25-
class="hero-time col-md-auto col-xl-4 d-flex justify-content-center counter-container"
26-
data-count-down="{{ registration_closes_date_formatted }}"
27-
>
28-
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">дней</span></div>
29-
<span class="delimeter">:</span>
30-
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">часов</span></div>
31-
<span class="delimeter">:</span>
32-
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">минут</span></div>
33-
<span class="delimeter">:</span>
34-
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">секунд</span></div>
35-
</div>
18+
{% if enrollment %}
19+
<h4 class="curs-place col-12 col-md-8 col-xl-12 fadeInLeft animated-on-ready">
20+
С {{ enrollment.start_date | date:"j E" }} по {{ enrollment.end_date | date:"j E" }}
21+
</h4>
22+
<h4 class="curs-place col-12 col-md-8 col-xl-12 fadeInLeft animated-on-ready">
23+
Регистрация закроется {{ enrollment.end_registration_date | date:"j E" }}
24+
</h4>
25+
<div
26+
class="hero-time col-md-auto col-xl-4 d-flex justify-content-center counter-container"
27+
data-count-down="{{ registration_closes_date_formatted }}"
28+
>
29+
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">дней</span></div>
30+
<span class="delimeter">:</span>
31+
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">часов</span></div>
32+
<span class="delimeter">:</span>
33+
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">минут</span></div>
34+
<span class="delimeter">:</span>
35+
<div class="row justify-content-center"><b class="d-block">00</b><span class="tm-name">секунд</span></div>
36+
</div>
37+
{% else %}
38+
<h4 class="curs-place col-12 col-md-8 col-xl-12">
39+
Сейчас регистрация закрыта, но мы скоро регистрацию на новый набор
40+
</h4>
41+
{% endif %}
3642
</div>
37-
<div class="ticket-block row ">
38-
<div class="col-md-12 col-lg-8">
39-
<div class="card slideInUp animated-on-ready">
40-
<div class="card-body d-flex flex-column justify-content-between">
41-
<h3 class="card-heading brackets brackets-yellow">Учитесь онлайн</h3>
42-
<div class="price-list">
43-
<div class="price-item payment-before">
44-
<div class="pt-lg-3">
45-
<div class="price-parent">
46-
<div class="price-date"><b>Ранняя регистрация</b></div>
47-
<div class="price-date">
48-
До {{ enrollment.early_price_date_to | date:"j E" }}
43+
{% if enrollment %}
44+
<div class="ticket-block row ">
45+
<div class="col-md-12 col-lg-8">
46+
<div class="card slideInUp animated-on-ready">
47+
<div class="card-body d-flex flex-column justify-content-between">
48+
<h3 class="card-heading brackets brackets-yellow">Учитесь онлайн</h3>
49+
<div class="price-list">
50+
<div class="price-item payment-before">
51+
<div class="pt-lg-3">
52+
<div class="price-parent">
53+
<div class="price-date"><b>Ранняя регистрация</b></div>
54+
<div class="price-date">
55+
До {{ enrollment.early_price_date_to | date:"j E" }}
56+
</div>
57+
<strong class="price">{{ enrollment.early_price_rub }} р.</strong>
58+
</div>
59+
<div class="decr-price-parent">
60+
<a href="#howToPay" class="decr-price d-none d-lg-block scroll-to">
61+
В рассрочку <strong>от 3500 р/мес</strong>
62+
</a>
63+
<a href="#howToPay" class="decr-price d-lg-none scroll-to" style="padding-top: 5px">
64+
Есть рассрочка
65+
</a>
4966
</div>
50-
<strong class="price">{{ enrollment.early_price_rub }} р.</strong>
51-
</div>
52-
<div class="decr-price-parent">
53-
<a href="#howToPay" class="decr-price d-none d-lg-block scroll-to">
54-
В рассрочку <strong>от 3500 р/мес</strong>
55-
</a>
56-
<a href="#howToPay" class="decr-price d-lg-none scroll-to" style="padding-top: 5px">
57-
Есть рассрочка
58-
</a>
5967
</div>
68+
{% if today <= enrollment.early_price_date_to %}
69+
<button class="yellow btn btn-warning btn-add btn-buy" data-toggle="modal" data-target="#overlay">
70+
Купить билет
71+
</button>
72+
{% else %}
73+
<button class="yellow btn btn-warning btn-add btn-buy" data-toggle="modal" disabled data-target="#overlay">
74+
Регистрация закрыта
75+
</button>
76+
{% endif %}
6077
</div>
61-
{% if today <= enrollment.early_price_date_to %}
62-
<button class="yellow btn btn-warning btn-add btn-buy" data-toggle="modal" data-target="#overlay">
63-
Купить билет
64-
</button>
65-
{% else %}
66-
<button class="yellow btn btn-warning btn-add btn-buy" data-toggle="modal" disabled data-target="#overlay">
67-
Регистрация закрыта
68-
</button>
69-
{% endif %}
70-
</div>
71-
<div class="price-item payment-after">
72-
<div class="pt-lg-3">
73-
<div class="price-parent">
74-
<div class="price-date"><b>Обычная регистрация</b></div>
75-
<div class="price-date"> С {{ enrollment.late_price_date_from | date:"j E" }}</div>
76-
<strong class="price">{{ enrollment.late_price_rub }} р.</strong>
77-
</div>
78-
<div class="decr-price-parent">
79-
<a href="#howToPay" class="decr-price d-none d-lg-block scroll-to">
80-
В рассрочку <strong>от 4000 р/мес</strong>
81-
</a>
82-
<a href="#howToPay" class="decr-price d-lg-none scroll-to" style="padding-top: 5px">Есть рассрочка</a>
78+
<div class="price-item payment-after">
79+
<div class="pt-lg-3">
80+
<div class="price-parent">
81+
<div class="price-date"><b>Обычная регистрация</b></div>
82+
<div class="price-date"> С {{ enrollment.late_price_date_from | date:"j E" }}</div>
83+
<strong class="price">{{ enrollment.late_price_rub }} р.</strong>
84+
</div>
85+
<div class="decr-price-parent">
86+
<a href="#howToPay" class="decr-price d-none d-lg-block scroll-to">
87+
В рассрочку <strong>от 4000 р/мес</strong>
88+
</a>
89+
<a href="#howToPay" class="decr-price d-lg-none scroll-to" style="padding-top: 5px">Есть рассрочка</a>
90+
</div>
8391
</div>
92+
{% if today >= enrollment.late_price_date_from %}
93+
<button class="btn btn-warning btn-add btn-buy" data-toggle="modal" data-target="#overlay">
94+
Купить билет
95+
</button>
96+
{% else %}
97+
<button class="btn btn-warning btn-add btn-buy" disabled data-toggle="modal" data-target="#overlay">
98+
Регистрация закрыта
99+
</button>
100+
{% endif %}
84101
</div>
85-
{% if today >= enrollment.late_price_date_from %}
86-
<button class="btn btn-warning btn-add btn-buy" data-toggle="modal" data-target="#overlay">
87-
Купить билет
88-
</button>
89-
{% else %}
90-
<button class="btn btn-warning btn-add btn-buy" disabled data-toggle="modal" data-target="#overlay">
91-
Регистрация закрыта
92-
</button>
93-
{% endif %}
94102
</div>
95103
</div>
96104
</div>
97105
</div>
98106
</div>
99-
</div>
107+
{% endif %}
100108
</div>
101109
</section>

landing_page/mainpage/templates/mainpage/include/index_menu.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,13 @@
6464
<li class="nav-item">
6565
<a class="nav-link scroll-to" href="#contact">Контакты</a>
6666
</li>
67+
{% if enrollment %}
6768
<li class="nav-item d-none d-lg-block">
6869
<a data-toggle="modal" data-target="#overlay" class="custom-btn btn" href="#counter">
6970
Записаться
7071
</a>
7172
</li>
73+
{% endif %}
7274
</ul>
7375
</nav>
7476

0 commit comments

Comments
 (0)