fix: docker build

This commit is contained in:
2026-03-23 12:17:50 +01:00
parent 421047aec2
commit d7df0d0e50
12 changed files with 170 additions and 125 deletions
+56 -13
View File
@@ -41,7 +41,11 @@ class Tag(models.Model):
class ProductCategory(models.Model):
name = models.CharField(max_length=32)
parent = models.ForeignKey(
'shop.ProductCategory', on_delete=models.SET_NULL, null=True, blank=True, verbose_name=_('categoría padre')
'shop.ProductCategory',
on_delete=models.SET_NULL,
null=True,
blank=True,
verbose_name=_('categoría padre'),
)
promoted = models.BooleanField(default=False, verbose_name=_('promocionada'))
hidden = models.BooleanField(default=False, verbose_name=_('oculta'))
@@ -101,7 +105,11 @@ class ProductPrice(TimestampedModel):
)
tax = models.ForeignKey('shop.Tax', on_delete=models.PROTECT, verbose_name=_('impuesto aplicable'))
price_with_tax = models.DecimalField(
max_digits=11, decimal_places=2, blank=True, null=True, verbose_name=_('precio con impuestos')
max_digits=11,
decimal_places=2,
blank=True,
null=True,
verbose_name=_('precio con impuestos'),
)
current = models.BooleanField(default=False, verbose_name=_('es el precio actual'))
@@ -329,7 +337,9 @@ class Order(TimestampedModel):
status = models.CharField(max_length=3, default=Statuses.STATUS_PENDING, verbose_name=_('estado'))
shipping_status = models.CharField(
max_length=3, default=ShippingStatuses.STATUS_NOT_READY, verbose_name=_('estado de envío')
max_length=3,
default=ShippingStatuses.STATUS_NOT_READY,
verbose_name=_('estado de envío'),
)
base_total = models.DecimalField(
@@ -357,15 +367,25 @@ class Order(TimestampedModel):
contact_phone = models.CharField(max_length=32, blank=True, verbose_name=_('teléfono de contacto'))
amount_paid = models.DecimalField(
default=Decimal('0.00'), max_digits=11, decimal_places=2, verbose_name=_('cantidad pagada')
default=Decimal('0.00'),
max_digits=11, decimal_places=2,
verbose_name=_('cantidad pagada'),
)
shipping_method = models.ForeignKey(
'shop.ShippingMethod', blank=True, null=True, on_delete=models.SET_NULL, verbose_name=_('método de envío')
'shop.ShippingMethod',
blank=True,
null=True,
on_delete=models.SET_NULL,
verbose_name=_('método de envío'),
)
from_cart = models.ForeignKey(
'shop.Cart', on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('carrito de origen de pedido')
'shop.Cart',
on_delete=models.SET_NULL,
blank=True,
null=True,
verbose_name=_('carrito de origen de pedido'),
)
def calculate_total_from_lines(self):
@@ -407,7 +427,11 @@ class CustomerAddress(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, verbose_name=_('usuario'))
vat_id = models.CharField(
max_length=16, blank=True, null=True, default='', verbose_name=_('número de identificación fiscal')
max_length=16,
blank=True,
null=True,
default='',
verbose_name=_('número de identificación fiscal'),
)
full_name = models.CharField(max_length=128, blank=False, null=False, verbose_name=_('dirección'))
address = models.CharField(max_length=128, blank=False, null=False, verbose_name=_('dirección'))
@@ -415,12 +439,19 @@ class CustomerAddress(models.Model):
address_zip = models.CharField(max_length=16, blank=False, null=False, verbose_name=_('código postal'))
address_state = models.CharField(max_length=64, blank=False, null=False, verbose_name=_('provincia'))
address_country = models.CharField(
max_length=64, default=settings.SHOP_COUNTRY, blank=False, null=False, verbose_name=_('país')
max_length=64,
default=settings.SHOP_COUNTRY,
blank=False,
null=False,
verbose_name=_('país'),
)
address_phone = models.CharField(max_length=16, blank=True, null=True, default='', verbose_name=_('teléfono'))
address_type = models.CharField(
max_length=4, choices=Types.choices, default=Types.SHIPPING, verbose_name=_('tipo de dirección')
max_length=4,
choices=Types.choices,
default=Types.SHIPPING,
verbose_name=_('tipo de dirección'),
)
email = models.EmailField(blank=False, null=False, verbose_name=_('e-mail'))
default = models.BooleanField(default=True, verbose_name=_('por defecto'))
@@ -463,13 +494,19 @@ class Payment(models.Model):
hash = models.UUIDField(verbose_name=_('Hash'), default=uuid4, primary_key=True)
amount = models.DecimalField(max_digits=8, decimal_places=2, default=Decimal('0'), verbose_name=_('Cantidad'))
order = models.ForeignKey(
'shop.Order', on_delete=models.PROTECT, verbose_name=_('pedido'), related_name='payments'
'shop.Order',
on_delete=models.PROTECT,
verbose_name=_('pedido'),
related_name='payments',
)
user = models.ForeignKey(User, blank=True, null=True, on_delete=models.PROTECT, verbose_name=_('cliente'))
creation_date = models.DateTimeField(auto_now_add=True, verbose_name=_('Fecha de creación'))
metadata = models.JSONField(default=dict, verbose_name=_('Metadata'))
method = models.CharField(
max_length=6, choices=MethodChoices.choices, default=MethodChoices.REDSYS, verbose_name=_('método de pago')
max_length=6,
choices=MethodChoices.choices,
default=MethodChoices.REDSYS,
verbose_name=_('método de pago'),
)
class Meta:
@@ -480,10 +517,16 @@ class Payment(models.Model):
class ShopSettings(SingletonModel):
debug = models.BooleanField(default=True, verbose_name=_('Modo depuración'))
merchant_code = models.CharField(
max_length=9, blank=False, null=False, verbose_name=_('Identificación de comercio')
max_length=9,
blank=False,
null=False,
verbose_name=_('Identificación de comercio'),
)
currency_code = models.CharField(
max_length=4, default='978', choices=CURRENCY_CODES, verbose_name=_('Código de moneda')
max_length=4,
default='978',
choices=CURRENCY_CODES,
verbose_name=_('Código de moneda'),
) # 978 == EURO
terminal = models.CharField(max_length=8, verbose_name=_('Terminal'))
shared_secret = models.CharField(max_length=100, verbose_name=_('Clave de Redsys'))