[IMP] website_sale_aplicoop: propagate consumer_group_id directly from group_order
- Add consumer_group_id to sale.order for tracking the consumer group - Fix stock.picking consumer_group_id to use sale_id.consumer_group_id - Add group_ids inverse relation in res.partner for bidirectional access - Remove auto-calculation of consumer_group_id, data comes directly from group_order.group_ids[0] - Add debug logging for consumer_group propagation - commitment_date propagates directly from group_order (no recalculation)
This commit is contained in:
parent
4141fc5ab1
commit
80539f3e36
8 changed files with 163 additions and 56 deletions
|
|
@ -9,11 +9,12 @@ class TestResPartnerExtension(TransactionCase):
|
|||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
# Crear grupos (res.partner with is_company=True)
|
||||
# Crear grupos (res.partner with is_group=True)
|
||||
self.group1 = self.env["res.partner"].create(
|
||||
{
|
||||
"name": "Grupo 1",
|
||||
"is_company": True,
|
||||
"is_group": True,
|
||||
"email": "grupo1@test.com",
|
||||
}
|
||||
)
|
||||
|
|
@ -22,6 +23,7 @@ class TestResPartnerExtension(TransactionCase):
|
|||
{
|
||||
"name": "Grupo 2",
|
||||
"is_company": True,
|
||||
"is_group": True,
|
||||
"email": "grupo2@test.com",
|
||||
}
|
||||
)
|
||||
|
|
@ -39,16 +41,16 @@ class TestResPartnerExtension(TransactionCase):
|
|||
"""Test que un partner (usuario) puede pertenecer a múltiples grupos."""
|
||||
partner = self.user.partner_id
|
||||
|
||||
# Agregar partner a grupos (usar campo member_ids)
|
||||
partner.member_ids = [(6, 0, [self.group1.id, self.group2.id])]
|
||||
# Agregar partner a grupos usando group_ids (desde el lado del miembro)
|
||||
partner.group_ids = [(6, 0, [self.group1.id, self.group2.id])]
|
||||
|
||||
# Verificar que pertenece a ambos grupos
|
||||
self.assertIn(self.group1, partner.member_ids)
|
||||
self.assertIn(self.group2, partner.member_ids)
|
||||
self.assertEqual(len(partner.member_ids), 2)
|
||||
self.assertIn(self.group1, partner.group_ids)
|
||||
self.assertIn(self.group2, partner.group_ids)
|
||||
self.assertEqual(len(partner.group_ids), 2)
|
||||
|
||||
def test_group_can_have_multiple_users(self):
|
||||
"""Test que un grupo puede tener múltiples usuarios."""
|
||||
def test_group_can_have_multiple_members(self):
|
||||
"""Test que un grupo puede tener múltiples miembros."""
|
||||
user2 = self.env["res.users"].create(
|
||||
{
|
||||
"name": "Test User 2",
|
||||
|
|
@ -57,24 +59,28 @@ class TestResPartnerExtension(TransactionCase):
|
|||
}
|
||||
)
|
||||
|
||||
# Agregar usuarios al grupo
|
||||
self.group1.user_ids = [(6, 0, [self.user.id, user2.id])]
|
||||
# Agregar miembros al grupo usando member_ids (desde el lado del grupo)
|
||||
self.group1.member_ids = [
|
||||
(6, 0, [self.user.partner_id.id, user2.partner_id.id])
|
||||
]
|
||||
|
||||
# Verificar que el grupo tiene ambos usuarios
|
||||
self.assertIn(self.user, self.group1.user_ids)
|
||||
self.assertIn(user2, self.group1.user_ids)
|
||||
self.assertEqual(len(self.group1.user_ids), 2)
|
||||
# Verificar que el grupo tiene ambos miembros
|
||||
self.assertIn(self.user.partner_id, self.group1.member_ids)
|
||||
self.assertIn(user2.partner_id, self.group1.member_ids)
|
||||
self.assertEqual(len(self.group1.member_ids), 2)
|
||||
|
||||
def test_user_group_relationship_is_bidirectional(self):
|
||||
"""Test que se puede modificar la relación desde el lado del partner o el grupo."""
|
||||
partner = self.user.partner_id
|
||||
|
||||
# Opción 1: Agregar grupo al usuario (desde el lado del usuario/partner)
|
||||
partner.member_ids = [(6, 0, [self.group1.id])]
|
||||
self.assertIn(self.group1, partner.member_ids)
|
||||
# Opción 1: Agregar grupo al usuario (desde el lado del miembro/partner)
|
||||
partner.group_ids = [(6, 0, [self.group1.id])]
|
||||
self.assertIn(self.group1, partner.group_ids)
|
||||
|
||||
# Opción 2: Agregar usuario al grupo (desde el lado del grupo)
|
||||
# Nota: Esto es una relación Many2many independiente
|
||||
# Verificar que la relación inversa también funciona
|
||||
self.assertIn(partner, self.group1.member_ids)
|
||||
|
||||
# Opción 2: Agregar partner al grupo (desde el lado del grupo)
|
||||
user2 = self.env["res.users"].create(
|
||||
{
|
||||
"name": "Test User 2",
|
||||
|
|
@ -82,12 +88,14 @@ class TestResPartnerExtension(TransactionCase):
|
|||
"email": "testuser2@test.com",
|
||||
}
|
||||
)
|
||||
self.group2.user_ids = [(6, 0, [user2.id])]
|
||||
self.assertIn(user2, self.group2.user_ids)
|
||||
self.group2.member_ids = [(4, user2.partner_id.id)]
|
||||
self.assertIn(user2.partner_id, self.group2.member_ids)
|
||||
# Verificar relación inversa
|
||||
self.assertIn(self.group2, user2.partner_id.group_ids)
|
||||
|
||||
def test_empty_group_ids(self):
|
||||
"""Test que un partner sin grupos tiene group_ids vacío."""
|
||||
partner = self.user.partner_id
|
||||
|
||||
# Sin agregar a ningún grupo
|
||||
self.assertEqual(len(partner.member_ids), 0)
|
||||
self.assertEqual(len(partner.group_ids), 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue