new email text
This commit is contained in:
parent
b0ecfc00bb
commit
6521cbd658
@ -71,6 +71,7 @@ TEMPLATES = [
|
|||||||
|
|
||||||
WSGI_APPLICATION = 'alkator.wsgi.application'
|
WSGI_APPLICATION = 'alkator.wsgi.application'
|
||||||
|
|
||||||
|
SESSION_COOKIE_SECURE = True
|
||||||
|
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
|
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
|
||||||
|
@ -3,7 +3,7 @@ from django.http import HttpResponse
|
|||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.contrib.admin.views.decorators import staff_member_required
|
from django.contrib.admin.views.decorators import staff_member_required
|
||||||
from django.core.mail import send_mail
|
from django.core.mail import send_mail, mail_admins
|
||||||
from datetime import date, datetime, timedelta
|
from datetime import date, datetime, timedelta
|
||||||
from urllib.parse import parse_qs
|
from urllib.parse import parse_qs
|
||||||
import requests
|
import requests
|
||||||
@ -36,6 +36,8 @@ def register(request):
|
|||||||
return HttpResponse('{"reason":"Telefoní číslo je povinný!"}', status=400, content_type='application/json')
|
return HttpResponse('{"reason":"Telefoní číslo je povinný!"}', status=400, content_type='application/json')
|
||||||
if User.objects.filter(email=request.POST['email'], alkator_class=ALKATOR_CLASS):
|
if User.objects.filter(email=request.POST['email'], alkator_class=ALKATOR_CLASS):
|
||||||
return HttpResponse('{"reason":"Email je již registrován!"}', status=400, content_type='application/json')
|
return HttpResponse('{"reason":"Email je již registrován!"}', status=400, content_type='application/json')
|
||||||
|
if User.objects.filter(alkator_class=ALKATOR_CLASS, paid=True).count() >= 50:
|
||||||
|
return HttpResponse('{"reason":"Kapacita závodu byla naplněna!"}', status=400, content_type='application/json')
|
||||||
try:
|
try:
|
||||||
dat = datetime.strptime(request.POST['date_of_birth'], "%Y-%m-%d").date()
|
dat = datetime.strptime(request.POST['date_of_birth'], "%Y-%m-%d").date()
|
||||||
if dat > date(2006, 10, 5):
|
if dat > date(2006, 10, 5):
|
||||||
@ -65,7 +67,7 @@ def register(request):
|
|||||||
address=request.POST['address'],
|
address=request.POST['address'],
|
||||||
phone=request.POST['phone'],
|
phone=request.POST['phone'],
|
||||||
alkator_class=ALKATOR_CLASS,
|
alkator_class=ALKATOR_CLASS,
|
||||||
invoice_id=invoice_id
|
invoice_id=invoice_id,
|
||||||
)
|
)
|
||||||
user.save()
|
user.save()
|
||||||
|
|
||||||
@ -76,8 +78,8 @@ def register(request):
|
|||||||
'curr': 'CZK',
|
'curr': 'CZK',
|
||||||
'method': 'ALL',
|
'method': 'ALL',
|
||||||
'label': 'Startovné',
|
'label': 'Startovné',
|
||||||
'email': request.POST['email'],
|
'email': user.email,
|
||||||
'fullName': f"{request.POST['first_name']} {request.POST['last_name']}",
|
'fullName': f"{user.first_name} {user.last_name}",
|
||||||
'refId': f'{user.invoice_id}',
|
'refId': f'{user.invoice_id}',
|
||||||
'secret': COMGATE_SECRET,
|
'secret': COMGATE_SECRET,
|
||||||
'prepareOnly': 'true',
|
'prepareOnly': 'true',
|
||||||
@ -105,18 +107,41 @@ def payment_result(request):
|
|||||||
test = result['test'][0] != 'false'
|
test = result['test'][0] != 'false'
|
||||||
if not secret_match or test != COMGATE_TEST:
|
if not secret_match or test != COMGATE_TEST:
|
||||||
return HttpResponse(status=400)
|
return HttpResponse(status=400)
|
||||||
user = User.objects.get(invoice_id=ref_id)
|
try:
|
||||||
|
user = User.objects.get(invoice_id=ref_id)
|
||||||
|
except User.DoesNotExist:
|
||||||
|
mail_admins('Chyba s platbou!', f'invoice_id={ref_id}&paid={paid}')
|
||||||
if paid == 'PAID':
|
if paid == 'PAID':
|
||||||
user.paid = True
|
user.paid = True
|
||||||
user.save()
|
user.save()
|
||||||
send_mail(
|
send_mail(
|
||||||
"úspěšná registrace do závodu Alkátor race Studené",
|
"úspěšná registrace do závodu Alkátor race Studené",
|
||||||
f"body",
|
f"""Zdravím tě Alkátore,
|
||||||
|
toto je potvrzovací email o tvé účasti v nezapomenutelném závodě Alkátor-race.
|
||||||
|
Prosíme kontrolujete si své hromadné schránky a spamy.
|
||||||
|
|
||||||
|
Závod se koná 5.10.2024 na Studeném v Orlických horách, hned u Podskaláku.
|
||||||
|
Zajištěno je stanování, občerstvení a také večerní after párty.
|
||||||
|
|
||||||
|
Připrav na zkoušku své tělo, játra a tvé mozkové buňky.
|
||||||
|
Budou tě čekat nevídané překážky.
|
||||||
|
|
||||||
|
O podrobnostech tě budeme informovat emailem.
|
||||||
|
Nezapomeň nás sledovat na Facebooku, Instagramu, YouTube a TikToku.
|
||||||
|
|
||||||
|
Na tento email není třeba odpovídat, prootže je generován automaticky s přijatou platbou. V případě potřeby psát na info@alkator.cz .
|
||||||
|
|
||||||
|
ALKÁTOR TEAM
|
||||||
|
email: info@alkator.cz
|
||||||
|
tel: + 420 728 018 088
|
||||||
|
web: alkator.cz""",
|
||||||
"info@alkator.cz",
|
"info@alkator.cz",
|
||||||
[user.email],
|
[user.email],
|
||||||
)
|
)
|
||||||
elif paid == 'CANCELLED' and not user.paid:
|
elif paid == 'CANCELLED' and not user.paid:
|
||||||
user.delete()
|
#effectively disabling email adress as email address cannot contain ' '
|
||||||
|
user.email = '<!> '+user.email
|
||||||
|
user.save()
|
||||||
return HttpResponse(status=200)
|
return HttpResponse(status=200)
|
||||||
|
|
||||||
|
|
||||||
@ -128,7 +153,7 @@ def payment_state(request):
|
|||||||
else:
|
else:
|
||||||
return HttpResponse('{"status":"failed", "reason":"Zatím nemáme informace o provedené platbě. Zkuste reload nebo zkontrolujte email."}', content_type='application/json')
|
return HttpResponse('{"status":"failed", "reason":"Zatím nemáme informace o provedené platbě. Zkuste reload nebo zkontrolujte email."}', content_type='application/json')
|
||||||
except User.DoesNotExist as e:
|
except User.DoesNotExist as e:
|
||||||
return HttpResponse('{"status":"failed", "reason":"Uživatel neexistuje, prosím registraci opakujte."}', content_type='application/json')
|
return HttpResponse('{"status":"failed", "reason":"Uživatel neexistuje, registraci prosím opakujte."}', content_type='application/json')
|
||||||
|
|
||||||
|
|
||||||
def results(request):
|
def results(request):
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>Alkátor Race</title>
|
<title>Alkátor Race</title>
|
||||||
|
<meta name="description" content="Jedná se o překážkový závod u nás v Orlických horách s pivem a panáky." />
|
||||||
|
<meta name="author" content="Martin Quarda" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="root"></div>
|
<div id="root"></div>
|
||||||
|
@ -312,7 +312,7 @@ class Main extends Component {
|
|||||||
</div>
|
</div>
|
||||||
<div class="mb-3 form-check">
|
<div class="mb-3 form-check">
|
||||||
<input type="checkbox" class="form-check-input" id="agreement" name="agreement" />
|
<input type="checkbox" class="form-check-input" id="agreement" name="agreement" />
|
||||||
<label class="form-check-label" for="agreement">Souhlas se <a href="/public/ochrana_osobnich_udaju.pdf">zpracováním osobních údajů</a> a <a href="/public/reverz.pdf">podmínkami závodu</a>.</label>
|
<label class="form-check-label" for="agreement">Souhlas se <a href="/public/ochrana_osobnich_udaju.pdf">zpracováním osobních údajů</a>, <a href="/public/reverz.pdf">podmínkami závodu</a> a <a href="/public/obchodni_podminky_alkator.pdf">obchodníma podmínkami závodu</a>.</label>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-primary">Odeslat a zaplatit</button>
|
<button type="submit" class="btn btn-primary">Odeslat a zaplatit</button>
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user