Skip to content

Commit 34dcc1d

Browse files
moacirmodarenzon
authored andcommitted
allowing user to define date by url and automatically calculate next wed in TPPs landing page
1 parent ee15498 commit 34dcc1d

4 files changed

Lines changed: 46 additions & 1 deletion

File tree

pythonpro/pages/templates/pages/tpp_webiorico_landing_page.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ <h4 class='' id="topo">
3232
</h4>
3333

3434
<h4 class='mb-5'>
35-
<b class='text-uppercase'>Dia 14/10 às 21h, Horário de Brasília</b>
35+
<b class='text-uppercase'>Dia {{ date }} às 21h, Horário de Brasília</b>
3636
</h4>
3737

3838
<span class='' style='font-size: 16pt'>Preencha o formulário:</span>

pythonpro/pages/tests/test_tpp_webiorico_landing_page.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
from datetime import datetime
2+
13
from unittest import mock
24

35
import pytest
46
from django.urls import reverse
7+
from django.utils import timezone
58

69
from pythonpro.django_assertions import dj_assert_contains
710

@@ -62,3 +65,20 @@ def test_should_inform_form_error(create_or_update_with_no_role, client, cohort)
6265

6366
assert resp.status_code == 200
6467
dj_assert_contains(resp, 'is-invalid')
68+
69+
70+
def test_should_get_next_wed(mocker, client):
71+
fake_today = timezone.make_aware(datetime(2020, 10, 8))
72+
mocker.patch('pythonpro.pages.views.timezone.now', return_value=fake_today)
73+
74+
resp = client.get(reverse('pages:tpp_webiorico_landing_page'))
75+
76+
assert resp.status_code == 200
77+
dj_assert_contains(resp, '14/10')
78+
79+
80+
def test_should_set_date_by_url(client):
81+
resp = client.get(reverse('pages:tpp_webiorico_landing_page_date_var', args=['13-10']))
82+
83+
assert resp.status_code == 200
84+
dj_assert_contains(resp, '13/10')

pythonpro/pages/urls.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@
4040
views.BootcampVipThankYouPage.as_view(),
4141
name='bootcamp_vip_thank_you_page'
4242
),
43+
path(
44+
'rumo-a-primeira-vaga/inscricao-<slug:date>',
45+
views.TppWebioricoLandingPage.as_view(),
46+
name='tpp_webiorico_landing_page_date_var'
47+
),
4348
path(
4449
'rumo-a-primeira-vaga/inscricao',
4550
views.TppWebioricoLandingPage.as_view(),

pythonpro/pages/views.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
from datetime import timedelta
12
from inflection import underscore
23

34
from django.views.generic import FormView, TemplateView
45
from django.urls import reverse_lazy
6+
from django.utils import timezone
57

68
from pythonpro.cohorts.facade import find_most_recent_cohort
79
from pythonpro.pages.forms import NameEmailForm, NameEmailPhoneForm
@@ -90,3 +92,21 @@ class BootcampVipThankYouPage(BaseThankYouView):
9092
class TppWebioricoLandingPage(BaseLandingPageView):
9193
success_url = 'https://www.python.pro.br/r/grupo-rumo-a-primeira-vaga'
9294
email_marketing_tag = 'tpp-webiorico'
95+
96+
def get_next_wed(self):
97+
if self.kwargs.get('date') is not None:
98+
return self.kwargs.get('date').replace('-', '/')
99+
100+
now = timezone.now()
101+
days_ahead = 2 - now.weekday()
102+
103+
if days_ahead - 2 <= 0:
104+
days_ahead += 7
105+
106+
final_date = now + timedelta(days=days_ahead)
107+
return final_date.strftime("%d/%m")
108+
109+
def get_context_data(self, *args, **kwargs):
110+
context = super().get_context_data(*args, **kwargs)
111+
context['date'] = self.get_next_wed()
112+
return context

0 commit comments

Comments
 (0)