Add carrier field to Refund model and update Stripe views

Introduces a OneToOneField for carrier in the Refund model to support future integration and refactoring. Adds and updates TODO comments for email template usage, error handling in Stripe webhooks, and clarifies logic placement in Stripe models.
This commit is contained in:
David Bruno Vontor
2025-11-21 15:15:47 +01:00
parent 37f36b3466
commit ebab304b75
4 changed files with 12 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ from .models import CustomUser
logger = get_task_logger(__name__) logger = get_task_logger(__name__)
# TODO: předělat funkci ať funguje s base.html šablonou na emaily !!!
def send_email_with_context(recipients, subject, message=None, template_name=None, html_template_name=None, context=None): def send_email_with_context(recipients, subject, message=None, template_name=None, html_template_name=None, context=None):
""" """
General function to send emails with a specific context. General function to send emails with a specific context.

View File

@@ -546,7 +546,15 @@ class Refund(models.Model):
"return_reason": return_reason, "return_reason": return_reason,
} }
#TODO: přesunou zásilkovna field tady taky (ostranit z order několik balíku) #TODO: přesunou zásilkovna field tady taky (zkontrolovat jestli jsou views napojené a použít metodu send z carrier)
carrier = models.OneToOneField(
"Carrier",
on_delete=models.CASCADE,
related_name="refund",
null=True,
blank=True
)
html_string = render_to_string("refund/customer_in_package_returning_form.html", context) html_string = render_to_string("refund/customer_in_package_returning_form.html", context)
pdf_bytes = HTML(string=html_string).write_pdf() pdf_bytes = HTML(string=html_string).write_pdf()

View File

@@ -3,8 +3,6 @@ from django.apps import apps
# Create your models here. # Create your models here.
#TODO: logika a interakce bude na stripu (třeba aktualizovaní objednávky na zaplacenou apod.)
from .client import StripeClient from .client import StripeClient
class StripeModel(models.Model): class StripeModel(models.Model):

View File

@@ -26,12 +26,13 @@ class StripeWebhook(APIView):
sig_header = request.META['HTTP_STRIPE_SIGNATURE'] sig_header = request.META['HTTP_STRIPE_SIGNATURE']
try: try:
#build stripe event #build stripe event (api call)
event = stripe.Webhook.construct_event( event = stripe.Webhook.construct_event(
payload, sig_header, os.getenv("STRIPE_WEBHOOK_SECRET") payload, sig_header, os.getenv("STRIPE_WEBHOOK_SECRET")
) )
except ValueError as e: except ValueError as e:
# TODO: doupravit error handling, dodělat v modelu možnost pro uložení chyby a status ERROR
logger.error(f"Invalid payload: {e}") logger.error(f"Invalid payload: {e}")
return HttpResponse(status=400) return HttpResponse(status=400)