dodata validacija koda na payment page, 10 second delay za ispisivanje provere

This commit is contained in:
2025-06-20 14:56:28 +02:00
parent a8d6e3067f
commit 93aff86f87
4 changed files with 81 additions and 14 deletions

View File

@@ -1,5 +1,8 @@
import logging
import yaml
import os
import json
import time
from django.shortcuts import render, redirect , get_object_or_404
from .forms import OrganizationForm
@@ -9,15 +12,14 @@ from django.contrib.admin.views.decorators import staff_member_required
from .utils import generate_pdf, generate_risk_graph, generate_residual_risk_graph
from .tables import risk_matrix_table ,get_risk_table, get_safeguard_summary_table
from django.conf import settings
site_domain = settings.SITE_DOMAIN
from .processors import render_template
from django.http import JsonResponse, FileResponse, Http404, HttpResponse
from django.core.exceptions import ValidationError
from django.core.validators import validate_email
import os
from django.utils import timezone
from weasyprint import HTML
from django.template.loader import render_to_string
from django.views.decorators.csrf import csrf_exempt
# @login_required
@@ -25,6 +27,7 @@ from django.template.loader import render_to_string
# return HttpResponse('<h1>Django</h1><p>Página simples.</p>')
logger = logging.getLogger(__name__)
site_domain = settings.SITE_DOMAIN
# @login_required
def index(request):
@@ -134,7 +137,7 @@ def payment_page(request):
send_document_email(email, url, document)
return redirect(url)
except PaymentCode.DoesNotExist:
error = "CODE INVALID"
error = "❌ Invalid code"
return render(request, 'payment.html', {'error': error})
def no_confidential_data(request):
@@ -161,4 +164,18 @@ def payment_codes_pdf_view(request):
pdf_content = HTML(string=html_string, base_url=request.build_absolute_uri('/')).write_pdf()
response = HttpResponse(pdf_content, content_type='application/pdf')
response['Content-Disposition'] = f'inline; filename=payment_codes_{timezone.now().strftime("%Y%m%d_%H%M%S")}.pdf'
return response
return response
@csrf_exempt
def validate_code(request):
if request.method == "POST":
try:
data = json.loads(request.body)
code = data.get("code", "").strip().upper()
from .models import PaymentCode
valid = PaymentCode.objects.filter(code=code, used=False).exists()
time.sleep(10)
return JsonResponse({"valid": valid})
except Exception:
return JsonResponse({"valid": False})
return JsonResponse({"valid": False})