from odoo import api, fields, models, _ class SignupError(Exception): pass class ck_res_parter(models.Model): _name = "res.partner" _inherit = "res.partner" _description = "Partner" @api.model def _signup_retrieve_partner(self, token, check_validity=False, raise_exception=False): if self.search(['&', '&', ('signup_token', '=', token), ('signup_expiration', '=', False), ('active', '=', False)]): partner = self.search(['&', ('signup_token', '=', token), ('active', '=', False)], limit=1) else: partner = self.search([('signup_token', '=', token)], limit=1) if not partner: if raise_exception: raise SignupError("Signup token '%s' is not valid" % token) return False if check_validity and not partner.signup_valid: if raise_exception: raise SignupError("Signup token '%s' is no longer valid" % token) return False return partner