#10 Dodat je dummy za payment page, mailovi za payment i link za dokument

This commit is contained in:
2025-02-14 20:50:54 +01:00
parent 65716ff842
commit a097590b62
6 changed files with 64 additions and 5 deletions

View File

@@ -4,6 +4,8 @@ from .models import EmailConfirmation
import uuid import uuid
from django.conf import settings from django.conf import settings
from django.utils.timezone import now from django.utils.timezone import now
from backend.core.models import Document, Organization
def send_confirmation_email(email): def send_confirmation_email(email):
@@ -21,4 +23,28 @@ def send_confirmation_email(email):
message=f"Please click on the link to confirm your e-mail address: {confirmation_link}", message=f"Please click on the link to confirm your e-mail address: {confirmation_link}",
from_email= settings.EMAIL_HOST_USER, from_email= settings.EMAIL_HOST_USER,
recipient_list=[email] recipient_list=[email]
) )
def send_payment_email(email):
organization = Organization.objects.get(email=email)
document = Document.objects.get(organization=organization)
payment_link = f"http://127.0.0.1:8000{reverse('core:payment_page')}?email={email}"
send_mail(
subject="Complete your payment",
message=f"Click the link to proceed with payment: {payment_link}",
from_email=settings.EMAIL_HOST_USER,
recipient_list=[email],
fail_silently=False,
)
def send_document_email(email, document_link):
send_mail(
subject="Your Document is Ready",
message=f"You can access your document at any time here: {document_link}",
from_email=settings.EMAIL_HOST_USER,
recipient_list=[email],
fail_silently=False,
)

View File

@@ -4,7 +4,7 @@ from backend.accounts.forms import SignupForm
from .models import EmailConfirmation from .models import EmailConfirmation
from django.shortcuts import get_object_or_404, render from django.shortcuts import get_object_or_404, render
from django.http import HttpResponse from django.http import HttpResponse
from backend.accounts.utils import send_confirmation_email from backend.accounts.utils import send_confirmation_email, send_payment_email
from .tasks import create_document_for_organization from .tasks import create_document_for_organization
class SignUpView(CreateView): class SignUpView(CreateView):
@@ -20,7 +20,7 @@ def confirm_email(request, uuid):
return render(request, 'confirmation_expired.html', {'email': confirmation.email}) return render(request, 'confirmation_expired.html', {'email': confirmation.email})
task = create_document_for_organization.delay(confirmation.email) task = create_document_for_organization.delay(confirmation.email)
print(f"Task ID: {task.id}") send_payment_email(confirmation.email)
return HttpResponse("Email is confirmed") return HttpResponse("Email is confirmed")

View File

@@ -0,0 +1,11 @@
{% extends 'base.html' %}
{% block content %}
<h2>Payment</h2>
<p>Click the button below to pay and access your document.</p>
<form method="post">
{% csrf_token %}
<button type="submit">Pay</button>
</form>
{% endblock %}

View File

@@ -11,4 +11,6 @@ urlpatterns = [
# url document/ recieves a parameter named 'uuid' and passes it to the view # url document/ recieves a parameter named 'uuid' and passes it to the view
path('document/<uuid:document_id>/', v.document, name='document'), path('document/<uuid:document_id>/', v.document, name='document'),
path('preview/<str:name>/', v.template_preview, name='template_preview'), path('preview/<str:name>/', v.template_preview, name='template_preview'),
path("payment/", v.payment_page, name="payment_page"),
] ]

View File

@@ -5,7 +5,7 @@ from .forms import OrganizationForm
from .models import Organization,Document,Risk, DocumentTemplate from .models import Organization,Document,Risk, DocumentTemplate
from backend.core.utils import get_top_risk from backend.core.utils import get_top_risk
from django.urls import reverse from django.urls import reverse
from backend.accounts.utils import send_confirmation_email from backend.accounts.utils import send_confirmation_email,send_document_email
from django.contrib.admin.views.decorators import staff_member_required from django.contrib.admin.views.decorators import staff_member_required
# @login_required # @login_required
@@ -56,4 +56,16 @@ def document(request, document_id):
def template_preview(request, name): def template_preview(request, name):
template = get_object_or_404(DocumentTemplate, name=name) template = get_object_or_404(DocumentTemplate, name=name)
parsed_template = template.to_dict() parsed_template = template.to_dict()
return render(request, 'template_preview.html', {'template': parsed_template}) return render(request, 'template_preview.html', {'template': parsed_template})
def payment_page(request):
email = request.GET.get("email")
organization = Organization.objects.get(email=email)
document = Document.objects.get(organization=organization)
document_link = f"http://127.0.0.1:8000/document/{document.id}/"
if request.method == "POST":
send_document_email(email, document_link)
return redirect(document_link)
return render(request, "payment.html", {"email": email})

View File

@@ -9,3 +9,11 @@ Faker==33.0.0
isort==5.13.2 isort==5.13.2
python-decouple==3.8 python-decouple==3.8
psycopg2-binary==2.9.10 psycopg2-binary==2.9.10
openai==1.63.0
python-dotenv==1.0.1
PyYAML==6.0.2
celery==5.4.0
django-celery-results==2.5.1
redis==5.2.1