From 539cd5cccd6c26bb948e07e5e99e0ec88635ef78 Mon Sep 17 00:00:00 2001 From: snt Date: Wed, 25 Feb 2026 19:34:49 +0100 Subject: [PATCH] feat(website_sale_aplicoop): ordenar productos por website_sequence y nombre MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Ordena productos primero por website_sequence y luego alfabéticamente por nombre (case-insensitive) - Fix test: cambiar tipo de producto de 'product' a 'consu' (Odoo 18 compatibility) --- website_sale_aplicoop/models/group_order.py | 5 ++++- .../tests/test_portal_sale_order_creation.py | 6 ++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/website_sale_aplicoop/models/group_order.py b/website_sale_aplicoop/models/group_order.py index f9e00de..4016eaf 100644 --- a/website_sale_aplicoop/models/group_order.py +++ b/website_sale_aplicoop/models/group_order.py @@ -477,7 +477,10 @@ class GroupOrder(models.Model): len(products), ) - return products + # Sort products by website_sequence (primary) and name (secondary, case-insensitive) + return products.sorted( + lambda p: (p.product_tmpl_id.website_sequence, (p.name or "").lower()) + ) def _get_products_paginated(self, order_id, page=1, per_page=20): """Get paginated products for a group order. diff --git a/website_sale_aplicoop/tests/test_portal_sale_order_creation.py b/website_sale_aplicoop/tests/test_portal_sale_order_creation.py index 1fadb52..d172291 100644 --- a/website_sale_aplicoop/tests/test_portal_sale_order_creation.py +++ b/website_sale_aplicoop/tests/test_portal_sale_order_creation.py @@ -62,7 +62,7 @@ class TestPortalSaleOrderCreation(TransactionCase): { "name": "Test Product", "list_price": 100.0, - "type": "product", + "type": "consu", } ) @@ -117,9 +117,7 @@ class TestPortalSaleOrderCreation(TransactionCase): ) # Child should fallback to commercial partner's salesperson - self.assertEqual( - child_partner.commercial_partner_id.user_id, self.salesperson - ) + self.assertEqual(child_partner.commercial_partner_id.user_id, self.salesperson) def test_portal_user_can_update_order_lines(self): """Test that portal users can update existing order lines with sudo()."""