Skip to content

Commit 3b8b6e7

Browse files
authored
Merge pull request #47 from moscowpython/tech/simplify_index
refactor index template vars
2 parents 16bba35 + 325d235 commit 3b8b6e7

File tree

2 files changed

+52
-44
lines changed

2 files changed

+52
-44
lines changed

landing_page/mainpage/templates/mainpage/index.html

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,10 @@ <h3 class="h3 col-12 col-md-10 col-xl-8">Ближайший набор прой
183183
проверять
184184
ваш код и давать рекомендации.</p>
185185
<h4 class="curs-place col-12 col-md-8 col-xl-12 fadeInLeft animated-on-ready">
186-
С {{course.course_start_date | date:"j E" }} по {{course.course_end_date | date:"j E" }}
186+
С {{enrollment.start_date | date:"j E" }} по {{enrollment.end_date | date:"j E" }}
187187
</h4>
188188
<h4 class="curs-place col-12 col-md-8 col-xl-12 fadeInLeft animated-on-ready">
189-
Регистрация закроется {{course.end_registration_date | date:"j E" }}
189+
Регистрация закроется {{enrollment.end_registration_date | date:"j E" }}
190190
</h4>
191191
{% comment %} <div class="hero-time col-md-auto d-flex justify-content-center">
192192
<form method="POST"
@@ -215,7 +215,7 @@ <h6 class="curs-place col-12 col-md-8 col-xl-12">
215215
</div> {% endcomment %}
216216

217217
<div class="hero-time col-md-auto col-xl-4 d-flex justify-content-center counter-container"
218-
data-count-down="{{ registration_closes_date }}">
218+
data-count-down="{{ registration_closes_date_formatted }}">
219219
<div class="row justify-content-center"><b class="d-block">00</b><span
220220
class="tm-name">дней</span>
221221
</div>
@@ -254,20 +254,19 @@ <h3 class="card-heading brackets brackets-yellow">Учитесь онлайн</h
254254
<div class="price-parent">
255255
<div class="price-date"><b>Ранняя регистрация</b></div>
256256
<div class="price-date"> До
257-
{{ online_price_ranges.0.price_range_end_date | date:"j E" }}</div>
258-
<strong class="price">{{ online_price_ranges.0.price_range_price}}
257+
{{ enrollment.early_price.date_to | date:"j E" }}</div>
258+
<strong class="price">{{ enrollment.early_price.price_rub }}
259259
р.</strong>
260260
</div>
261261
<div class="decr-price-parent">
262262
<a href="#howToPay" class="decr-price d-none d-lg-block scroll-to">В
263263
рассрочку
264264
<strong>от 3500 р/мес</strong></a>
265265
<a href="#howToPay" class="decr-price d-lg-none scroll-to"
266-
style="padding-top: 5px">Есть
267-
рассрочка</a>
266+
style="padding-top: 5px">Есть рассрочка</a>
268267
</div>
269268
</div>
270-
{% if today <= online_price_ranges.0.price_range_end_date %}
269+
{% if today <= enrollment.early_price.date_to %}
271270
<button class="yellow btn btn-warning btn-add btn-buy" data-toggle="modal"
272271
data-target="#overlay">
273272
Купить билет
@@ -286,8 +285,8 @@ <h3 class="card-heading brackets brackets-yellow">Учитесь онлайн</h
286285
<div class="price-parent">
287286
<div class="price-date"><b>Обычная регистрация</b></div>
288287
<div class="price-date"> С
289-
{{ online_price_ranges.1.price_range_start_date | date:"j E" }}</div>
290-
<strong class="price">{{ online_price_ranges.1.price_range_price}}
288+
{{ enrollment.late_price.date_from | date:"j E" }}</div>
289+
<strong class="price">{{ enrollment.late_price.price_rub }}
291290
р.</strong>
292291
</div>
293292
<div class="decr-price-parent">
@@ -299,7 +298,7 @@ <h3 class="card-heading brackets brackets-yellow">Учитесь онлайн</h
299298
рассрочка</a>
300299
</div>
301300
</div>
302-
{% if today >= online_price_ranges.1.price_range_start_date %}
301+
{% if today >= enrollment.late_price.date_from %}
303302
<button class="btn btn-warning btn-add btn-buy"
304303
data-toggle="modal"
305304
data-target="#overlay">
@@ -310,7 +309,7 @@ <h3 class="card-heading brackets brackets-yellow">Учитесь онлайн</h
310309
disabled
311310
data-toggle="modal"
312311
data-target="#overlay">
313-
С {{ online_price_ranges.1.price_range_start_date | date:"j E Y" }} года
312+
Регистрация закрыта
314313
</button>
315314
{%endif%}
316315
</div>
@@ -1224,8 +1223,8 @@ <h3 class="text-center d-none d-lg-block">онлайн курс</h3>
12241223
<div class="price-parent">
12251224
<div class="price-date"><b>Ранняя регистрация</b></div>
12261225
<div class="price-date"> До
1227-
{{ online_price_ranges.0.price_range_end_date | date:"j E" }}</div>
1228-
<strong class="price">{{ online_price_ranges.0.price_range_price}}
1226+
{{ enrollment.early_price.date_to | date:"j E" }}</div>
1227+
<strong class="price">{{ enrollment.early_price.price_rub }}
12291228
р.</strong>
12301229
</div>
12311230
<div class="decr-price-parent">
@@ -1237,7 +1236,7 @@ <h3 class="text-center d-none d-lg-block">онлайн курс</h3>
12371236
рассрочка</a>
12381237
</div>
12391238
</div>
1240-
{% if today <= online_price_ranges.0.price_range_end_date %}
1239+
{% if today <= enrollment.early_price.date_to %}
12411240
<button class="yellow btn btn-warning btn-add btn-buy" data-toggle="modal"
12421241
data-target="#overlay">
12431242
Купить билет
@@ -1257,8 +1256,8 @@ <h3 class="text-center d-none d-lg-block">онлайн курс</h3>
12571256
<div class="price-parent">
12581257
<div class="price-date"><b>Обычная регистрация</b></div>
12591258
<div class="price-date"> С
1260-
{{ online_price_ranges.1.price_range_start_date | date:"j E" }}</div>
1261-
<strong class="price">{{ online_price_ranges.1.price_range_price}}
1259+
{{ enrollment.late_price.date_from | date:"j E" }}</div>
1260+
<strong class="price">{{ enrollment.late_price.price_rub }}
12621261
р.</strong>
12631262
</div>
12641263
<div class="decr-price-parent">
@@ -1270,7 +1269,7 @@ <h3 class="text-center d-none d-lg-block">онлайн курс</h3>
12701269
рассрочка</a>
12711270
</div>
12721271
</div>
1273-
{% if today >= online_price_ranges.1.price_range_start_date %}
1272+
{% if today >= enrollment.late_price.date_from %}
12741273
<button class="btn btn-warning btn-add btn-buy"
12751274
data-toggle="modal"
12761275
data-target="#overlay">
@@ -1281,7 +1280,7 @@ <h3 class="text-center d-none d-lg-block">онлайн курс</h3>
12811280
disabled
12821281
data-toggle="modal"
12831282
data-target="#overlay">
1284-
С {{ online_price_ranges.1.price_range_start_date | date:"j E Y" }} года
1283+
Регистрация закрыта
12851284
</button>
12861285
{%endif%}
12871286
</div>
@@ -1975,7 +1974,7 @@ <h2 class="text-lg-center col-12">записаться на курс</h2>
19751974
<div class="px-0 col-12 col-lg-6 register-test">
19761975
<script type="text/javascript" async="async" defer="defer" charset="UTF-8"
19771976
src="https://timepad.ru/js/tpwf/loader/min/loader.js"
1978-
data-timepad-customized="12675" data-twf2s-event--id={{ course.timepad_event_id }}
1977+
data-timepad-customized="12675" data-twf2s-event--id={{ enrollment.timepad_event_id }}
19791978
data-timepad-widget-v2="event_register">
19801979
(function () {
19811980
return {

landing_page/mainpage/views.py

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,50 @@
1+
import dataclasses
2+
import datetime
3+
from typing import Optional
4+
15
from django.http import HttpResponse
26
from django.template import loader
37
from .models import (LearnPythonCourse, GraduateProjects,
4-
LearnPythonCoursePrices,
58
Feedback, Curators, GraduateProjectsVideos
69
)
710
from datetime import date
811

912

10-
def index(request):
11-
template = loader.get_template('mainpage/index.html')
13+
@dataclasses.dataclass
14+
class CoursePrice:
15+
price_rub: int
16+
date_from: Optional[datetime.date] = None
17+
date_to: Optional[datetime.date] = None
1218

13-
try:
14-
current_course = LearnPythonCourse.objects.latest('course_index')
15-
except LearnPythonCourse.DoesNotExist:
16-
current_course = LearnPythonCourse()
1719

18-
online_prices = LearnPythonCoursePrices.objects.filter(
19-
course_type='Online').order_by('price_range_price')
20+
@dataclasses.dataclass
21+
class Enrollment:
22+
timepad_event_id: str
23+
start_date: datetime.date
24+
end_date: datetime.date
25+
end_registration_date: datetime.date
26+
early_price: CoursePrice
27+
late_price: CoursePrice
2028

21-
# Student projects data
22-
student_projects = list(GraduateProjects.objects.all())
2329

24-
# Curators data
25-
curators_list = Curators.objects.filter(curator_status=True)
30+
def index(request):
31+
template = loader.get_template('mainpage/index.html')
2632

27-
# Feedback data
28-
student_feedback = list(Feedback.objects.all())
33+
enrollment = Enrollment(
34+
timepad_event_id='2441413',
35+
start_date=datetime.date(2023, 9, 2),
36+
end_date=datetime.date(2023, 11, 4),
37+
end_registration_date=datetime.date(2023, 8, 31),
38+
early_price=CoursePrice(price_rub=30000, date_to=datetime.date(2023, 6, 30)),
39+
late_price=CoursePrice(price_rub=35000, date_from=datetime.date(2023, 7, 1)),
40+
)
2941

3042
context = {
31-
'course': current_course,
32-
'projects': student_projects,
33-
'online_price_ranges': online_prices,
34-
'registration_closes_date': current_course.end_registration_date
35-
.strftime(
36-
'%b %d, %Y %H:%M:%S'
37-
),
38-
'student_feedback': student_feedback,
43+
'enrollment': enrollment,
44+
'projects': GraduateProjects.objects.all(),
45+
46+
'registration_closes_date_formatted': enrollment.end_registration_date.strftime('%b %d, %Y %H:%M:%S'),
47+
'student_feedback': Feedback.objects.all(),
3948
'student_videos': [
4049
{
4150
'title': 'Как войти в разработку за считанные месяцы',
@@ -50,7 +59,7 @@ def index(request):
5059
'youtube_id': 's_ZNqjIW3ZA'
5160
}
5261
],
53-
'curators_list': curators_list,
62+
'curators_list': Curators.objects.filter(curator_status=True),
5463
'today': date.today(),
5564
}
5665
return HttpResponse(template.render(context, request))

0 commit comments

Comments
 (0)