diff --git a/alkator/settings.py b/alkator/settings.py index a8bb519..b70a608 100644 --- a/alkator/settings.py +++ b/alkator/settings.py @@ -71,6 +71,7 @@ TEMPLATES = [ WSGI_APPLICATION = 'alkator.wsgi.application' +SESSION_COOKIE_SECURE = True # Database # https://docs.djangoproject.com/en/4.2/ref/settings/#databases diff --git a/alkatorapi/views.py b/alkatorapi/views.py index 51cc62e..60682bd 100644 --- a/alkatorapi/views.py +++ b/alkatorapi/views.py @@ -3,7 +3,7 @@ from django.http import HttpResponse from django.template.response import TemplateResponse from django.views.decorators.csrf import csrf_exempt 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 urllib.parse import parse_qs import requests @@ -36,6 +36,8 @@ def register(request): 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): 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: dat = datetime.strptime(request.POST['date_of_birth'], "%Y-%m-%d").date() if dat > date(2006, 10, 5): @@ -65,7 +67,7 @@ def register(request): address=request.POST['address'], phone=request.POST['phone'], alkator_class=ALKATOR_CLASS, - invoice_id=invoice_id + invoice_id=invoice_id, ) user.save() @@ -76,8 +78,8 @@ def register(request): 'curr': 'CZK', 'method': 'ALL', 'label': 'Startovné', - 'email': request.POST['email'], - 'fullName': f"{request.POST['first_name']} {request.POST['last_name']}", + 'email': user.email, + 'fullName': f"{user.first_name} {user.last_name}", 'refId': f'{user.invoice_id}', 'secret': COMGATE_SECRET, 'prepareOnly': 'true', @@ -105,18 +107,41 @@ def payment_result(request): test = result['test'][0] != 'false' if not secret_match or test != COMGATE_TEST: 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': user.paid = True user.save() send_mail( "ú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", [user.email], ) 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) @@ -128,7 +153,7 @@ def payment_state(request): else: 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: - 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): diff --git a/frontend/src/index.html b/frontend/src/index.html index 4a212b8..8d3b50f 100644 --- a/frontend/src/index.html +++ b/frontend/src/index.html @@ -4,6 +4,8 @@ Alkátor Race + +
diff --git a/frontend/src/scripts/index.js b/frontend/src/scripts/index.js index 0056a51..ca0d59e 100644 --- a/frontend/src/scripts/index.js +++ b/frontend/src/scripts/index.js @@ -312,7 +312,7 @@ class Main extends Component {
- +