#51 feat: categorias anidadas en el listado legacy de productos
Issue #51: discriminacion y administracion de categorias de productos. - Product.to_list() devuelve categorias como objetos (id, name, alternative_name, active) en vez de solo nombres
This commit is contained in:
@@ -49,7 +49,15 @@ class Product(models.Model):
|
|||||||
"price_list": product.price,
|
"price_list": product.price,
|
||||||
"uom": product.measuring_unit,
|
"uom": product.measuring_unit,
|
||||||
"external_id": product.external_id,
|
"external_id": product.external_id,
|
||||||
"categories": [c.name for c in product.categories.all()],
|
"categories": [
|
||||||
|
{
|
||||||
|
"id": c.id,
|
||||||
|
"name": c.name,
|
||||||
|
"alternative_name": c.alternative_name,
|
||||||
|
"active": c.active,
|
||||||
|
}
|
||||||
|
for c in product.categories.all()
|
||||||
|
],
|
||||||
}
|
}
|
||||||
products_list.append(rproduct)
|
products_list.append(rproduct)
|
||||||
return products_list
|
return products_list
|
||||||
|
|||||||
@@ -74,4 +74,29 @@ class TestProductCategorySerializers(TestCase):
|
|||||||
"active": True,
|
"active": True,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_product_to_list_incluye_categorias_anidadas(self):
|
||||||
|
category = ProductCategory.objects.create(
|
||||||
|
name="Bebidas", external_id="8", alternative_name="Jugos"
|
||||||
|
)
|
||||||
|
product = Product.objects.create(
|
||||||
|
name="Jugo de naranja",
|
||||||
|
price=2500,
|
||||||
|
measuring_unit="UNIT",
|
||||||
|
external_id="10",
|
||||||
|
)
|
||||||
|
product.categories.add(category)
|
||||||
|
|
||||||
|
data = Product.to_list()
|
||||||
|
self.assertEqual(
|
||||||
|
data[0]["categories"],
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id": category.pk,
|
||||||
|
"name": "Bebidas",
|
||||||
|
"alternative_name": "Jugos",
|
||||||
|
"active": True,
|
||||||
|
}
|
||||||
|
],
|
||||||
)
|
)
|
||||||
Reference in New Issue
Block a user