Skip to content

Commit

Permalink
[FIX] - unique ref on write
Browse files Browse the repository at this point in the history
  • Loading branch information
sbejaoui committed Jan 9, 2019
1 parent c72587b commit e59555f
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 4 deletions.
12 changes: 8 additions & 4 deletions base_partner_sequence/models/partner.py
Expand Up @@ -32,10 +32,14 @@ def copy(self, default=None):
@api.multi
def write(self, vals):
for partner in self:
if not vals.get('ref') and partner._needsRef(vals) and \
not partner.ref:
vals['ref'] = partner._get_next_ref(vals=vals)
super(ResPartner, partner).write(vals)
partner_vals = vals.copy()
if (
not partner_vals.get('ref')
and partner._needsRef(partner_vals)
and not partner.ref
):
partner_vals['ref'] = partner._get_next_ref(vals=partner_vals)
super(ResPartner, partner).write(partner_vals)
return True

@api.multi
Expand Down
13 changes: 13 additions & 0 deletions base_partner_sequence/tests/test_base_partner_sequence.py
Expand Up @@ -33,3 +33,16 @@ def test_ref_sequence_on_contact(self):
self.assertEqual(
self.partner.ref, contact.ref, "All it's ok as sequence doesn't "
"increase.")

def test_unique_ref_on_write(self):
"""Assert that create and write gives a different refs if we """
vals = [
{'name': "test1", 'email': "test@test.com"},
{'name': "test2", 'email': "test@test.com"},
]
partners = self.env['res.partner'].create(vals)
self.assertFalse(partners[0].ref == partners[1].ref)
partners.write({'ref': False})
self.assertFalse(partners[0].ref)
partners.write({})
self.assertFalse(partners[0].ref == partners[1].ref)

0 comments on commit e59555f

Please sign in to comment.