#51 feat: agregar descripcion, nombre alternativo y activo a categorias de productos
Issue #51: discriminacion y administracion de categorias de productos. - ProductCategory.description (TextField blank) - ProductCategory.alternative_name (CharField 100 nullable) - ProductCategory.active (Boolean default True) - Migracion 0056_productcategory_active_and_more - Tests de modelo (campo don confiao y active por defecto)
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
# Generated by Django 5.0.6 on 2026-10-10 21:26
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('don_confiao', '0055_productcategory_external_id'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='productcategory',
|
||||||
|
name='active',
|
||||||
|
field=models.BooleanField(default=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='productcategory',
|
||||||
|
name='alternative_name',
|
||||||
|
field=models.CharField(blank=True, max_length=100, null=True),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='productcategory',
|
||||||
|
name='description',
|
||||||
|
field=models.TextField(blank=True, default=''),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -9,6 +9,9 @@ class MeasuringUnits(models.TextChoices):
|
|||||||
class ProductCategory(models.Model):
|
class ProductCategory(models.Model):
|
||||||
name = models.CharField(max_length=100, unique=True)
|
name = models.CharField(max_length=100, unique=True)
|
||||||
external_id = models.CharField(max_length=100, null=True, blank=True)
|
external_id = models.CharField(max_length=100, null=True, blank=True)
|
||||||
|
description = models.TextField(blank=True, default="")
|
||||||
|
alternative_name = models.CharField(max_length=100, null=True, blank=True)
|
||||||
|
active = models.BooleanField(default=True)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|||||||
25
tienda_ilusion/don_confiao/tests/test_product_categories.py
Normal file
25
tienda_ilusion/don_confiao/tests/test_product_categories.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
from ..models.products import ProductCategory
|
||||||
|
|
||||||
|
|
||||||
|
class TestProductCategoryModel(TestCase):
|
||||||
|
def test_create_category_with_don_confiao_fields(self):
|
||||||
|
category = ProductCategory.objects.create(
|
||||||
|
name="Bebidas",
|
||||||
|
external_id="8",
|
||||||
|
description="Bebidas y jugos naturales",
|
||||||
|
alternative_name="Jugos",
|
||||||
|
active=False,
|
||||||
|
)
|
||||||
|
self.assertEqual(category.name, "Bebidas")
|
||||||
|
self.assertEqual(category.external_id, "8")
|
||||||
|
self.assertEqual(category.description, "Bebidas y jugos naturales")
|
||||||
|
self.assertEqual(category.alternative_name, "Jugos")
|
||||||
|
self.assertFalse(category.active)
|
||||||
|
|
||||||
|
def test_category_active_por_defecto(self):
|
||||||
|
category = ProductCategory.objects.create(name="Granos")
|
||||||
|
self.assertTrue(category.active)
|
||||||
|
self.assertEqual(category.description, "")
|
||||||
|
self.assertIsNone(category.alternative_name)
|
||||||
Reference in New Issue
Block a user