Skip to content

Commit

Permalink
Merge PR #505 into 10.0
Browse files Browse the repository at this point in the history
Signed-off-by simahawk
  • Loading branch information
shopinvader-git-bot committed Dec 22, 2019
2 parents b0b2881 + 85c8657 commit 14f2270
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
21 changes: 18 additions & 3 deletions shopinvader/models/shopinvader_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,24 @@ def _is_same_partner_value(self, partner, vals):
""" we check if one of the given value is different than values
of the given partner
"""
data = partner._convert_to_write(partner._cache)
for key in data:
if key not in vals:
skip_keys = self._is_same_partner_value_skip_keys(partner)
keys_to_check = []
for key in vals.keys():
if key in skip_keys or key not in partner:
continue
keys_to_check.append(key)
# pylint: disable=pointless-statement
partner[key] # make sure key is cached
data = partner._convert_to_write(partner._cache)
for key in keys_to_check:
if data[key] != vals[key]:
return False
return True

def _is_same_partner_value_skip_keys(self, partner):
"""Take control of keys to ignore for the match."""
return ("backend_id", "partner_email")

@api.model
def _create_child_partner(self, parent, vals):
vals = self._prepare_create_child_params(parent, vals)
Expand All @@ -106,4 +116,9 @@ def _prepare_create_child_params(self, parent, vals):
if not v.get("type"):
v["type"] = "other"
v.pop("email")
# Remove field who doesn't exist in res.partner (partner_email,...)
partner_fields = self.env["res.partner"]._fields.keys()
for key in vals:
if key not in partner_fields:
v.pop(key)
return v
4 changes: 2 additions & 2 deletions shopinvader/tests/test_customer.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,14 @@ def test_update_address_type(self):
data = {
"email": "[email protected]",
"name": "Address",
"country": {"id": self.env.ref("base.fr").id},
"country_id": self.env.ref("base.fr").id,
}
partner = self.env["res.partner"].create(data)
self.assertEqual(partner.address_type, "profile")
data = {
"email": "[email protected]",
"name": "Parent",
"country": {"id": self.env.ref("base.fr").id},
"country_id": self.env.ref("base.fr").id,
}
parent = self.env["res.partner"].create(data)
partner.parent_id = parent.id
Expand Down

0 comments on commit 14f2270

Please sign in to comment.