From 2024e2f90cd5e55ff53e409d3a291f8a39013aa1 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 26 May 2026 10:29:06 +0200 Subject: [PATCH] fix: update session_key fields in Cart, Order, and StockReservation models for consistency --- ...on_key_alter_order_session_key_and_more.py | 28 +++++++++++++++++++ tienda/models.py | 7 +++-- tienda/pdf.py | 7 +++-- 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 tienda/migrations/0010_alter_cart_session_key_alter_order_session_key_and_more.py diff --git a/tienda/migrations/0010_alter_cart_session_key_alter_order_session_key_and_more.py b/tienda/migrations/0010_alter_cart_session_key_alter_order_session_key_and_more.py new file mode 100644 index 0000000..fa3eee4 --- /dev/null +++ b/tienda/migrations/0010_alter_cart_session_key_alter_order_session_key_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 6.0.5 on 2026-05-26 08:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tienda', '0009_alter_cartitem_quantity_alter_orderitem_quantity_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='cart', + name='session_key', + field=models.CharField(blank=True, default='', max_length=40), + ), + migrations.AlterField( + model_name='order', + name='session_key', + field=models.CharField(blank=True, default='', max_length=40), + ), + migrations.AlterField( + model_name='stockreservation', + name='session_key', + field=models.CharField(blank=True, default='', max_length=40), + ), + ] diff --git a/tienda/models.py b/tienda/models.py index 052a594..ad54d3d 100644 --- a/tienda/models.py +++ b/tienda/models.py @@ -48,6 +48,7 @@ class VerificationCode(models.Model): default = VerificationModes.VERIFY_ACCOUNT ) + @staticmethod def generate(user: User, code_mode: str) -> VerificationCode: while True: code = "".join(random.choices(string.ascii_letters+string.digits, k=64)) @@ -163,7 +164,7 @@ class StockReservation(models.Model): ] user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True, related_name="stock_reservations") - session_key = models.CharField(max_length=40, null=True, blank=True) + session_key = models.CharField(max_length=40, default="", blank=True) status = models.CharField(max_length=20, choices=STATUS_CHOICES, default=STATUS_ACTIVE) payment_method = models.CharField(max_length=20, choices=PAYMENT_CHOICES) expires_at = models.DateTimeField(db_index=True) @@ -193,7 +194,7 @@ class StockReservationItem(models.Model): class Cart(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) - session_key = models.CharField(max_length=40, null=True, blank=True) + session_key = models.CharField(max_length=40, default="", blank=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) @@ -258,7 +259,7 @@ class Order(models.Model): buyer = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name='orders') shipping_address = models.ForeignKey('ShippingAddress', on_delete=models.SET_NULL, null=True, blank=True, related_name='orders') - session_key = models.CharField(max_length=40, null=True, blank=True) + session_key = models.CharField(max_length=40, default="", blank=True) total = models.FloatField(default=0) status = models.CharField(max_length=20, choices=STATUS_CHOICES, default=STATUS_PAID) payment_method = models.CharField(max_length=20, choices=PAYMENT_CHOICES, default=PAYMENT_MANUAL) diff --git a/tienda/pdf.py b/tienda/pdf.py index c805a78..6988ba0 100644 --- a/tienda/pdf.py +++ b/tienda/pdf.py @@ -17,15 +17,18 @@ class Recibo(FPDF): def generar_recibo(cliente: str, total: float, objetos: list, metodo_pago: str, transaction_code: str): pdf = Recibo() - font_path = "/fonts/Roboto-Regular.ttf" pdf.add_font('Roboto', '', '/fonts/Roboto-Regular.ttf') pdf.add_font('Roboto', 'B', '/fonts/Roboto-Bold.ttf') pdf.add_page() pdf.set_font('Roboto', size=12) + METODOS_MAP = {"stripe": "Stripe", "paypal": "PayPal", "manual": "Manual"} + metodo_mostrar = METODOS_MAP.get(metodo_pago, metodo_pago) + pdf.cell(0, 10, f"Cliente: {cliente}", ln=True) pdf.cell(0, 10, f"ID de transaccion: {transaction_code}", ln=True) - pdf.cell(0, 10, f"") + pdf.cell(0, 10, f"Metodo de pago: {metodo_mostrar}", ln=True) + pdf.cell(0, 10, "") DATA = [] DATA.append(