Files
2025-06-09 18:03:51 +02:00

39 lines
1.6 KiB
Python

from django.urls import reverse_lazy
from django.views.generic import CreateView
from backend.accounts.forms import SignupForm
from .models import EmailConfirmation
from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse
from backend.accounts.utils import send_confirmation_email
from .tasks import create_document_for_organization
from backend.core.models import Organization, Document
class SignUpView(CreateView):
form_class = SignupForm
success_url = reverse_lazy('login')
template_name = 'accounts/signup.html'
def confirm_email(request, uuid):
confirmation = get_object_or_404(EmailConfirmation, uuid=uuid)
if confirmation.is_expired():
return render(request, 'accounts/confirmation_expired.html', {'email': confirmation.email})
if confirmation.confirmed:
return render(request, 'accounts/confirmation_success.html', {'email': confirmation.email})
confirmation.confirmed = True
confirmation.save()
org = Organization.objects.filter(email=confirmation.email).first()
if org and Document.objects.filter(organization=org).exists():
return render(request, 'accounts/confirmation_success.html', {'email': confirmation.email})
else:
task = create_document_for_organization.delay(confirmation.email)
return render(request, 'accounts/confirmation_success.html', {'email': confirmation.email})
def resend_confirmation(request,email):
if request.method == 'POST':
send_confirmation_email(email)
return HttpResponse("Confirmation email resent")