From 470fb905a9d77370f1c90ea6a2ad4e2bd7df5abf Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 15 Jul 2020 06:44:30 +0000 Subject: [PATCH] [FIX] base, mail: properly annotate Partner.find_or_create In 6e25a510b3b44cbdd5844b224cc90eb6108853fb `find_or_create` was modified to return a recordset rather than just an id. This made it incompatible with the RPC protocol and it was not annotated to downgrade the return value back to an id. Fixes odoo/odoo#54466 closes odoo/odoo#54476 X-original-commit: a7e3894e20207b714cebefa908be090967866791 Signed-off-by: Xavier Morel (xmo) --- addons/mail/models/res_partner.py | 1 + odoo/addons/base/models/res_partner.py | 1 + 2 files changed, 2 insertions(+) diff --git a/addons/mail/models/res_partner.py b/addons/mail/models/res_partner.py index 02deb2e0e64..b81565a33c1 100644 --- a/addons/mail/models/res_partner.py +++ b/addons/mail/models/res_partner.py @@ -39,6 +39,7 @@ class Partner(models.Model): for r in self} @api.model + @api.returns('self', lambda value: value.id) def find_or_create(self, email, assert_valid_email=False): """ Override to use the email_normalized field. """ if not email: diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index 6e76e9b0295..975a4006265 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -806,6 +806,7 @@ class Partner(models.Model): return super(Partner, self)._name_search(name, args, operator=operator, limit=limit, name_get_uid=name_get_uid) @api.model + @api.returns('self', lambda value: value.id) def find_or_create(self, email, assert_valid_email=False): """ Find a partner with the given ``email`` or use :py:method:`~.name_create` to create a new one.