From e9587bf1309dcaa45f816a1dd603ed01b8f6faaf Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Wed, 15 Oct 2014 12:29:33 +0200 Subject: [PATCH] [IMP] expression.py: add a check to forbid records in domains Records in domains cause a "maximum recursion depth exceeded" error when converted to SQL. Simply add a test to show a better error message. --- addons/crm/crm_lead.py | 2 +- openerp/osv/expression.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index cb21f7a..c5aa47f 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -957,7 +957,7 @@ class crm_lead(format_address, osv.osv): lead = self.browse(cr, uid, id, context=context) local_context = dict(context) local_context.setdefault('default_type', lead.type) - local_context.setdefault('default_section_id', lead.section_id) + local_context.setdefault('default_section_id', lead.section_id.id) if lead.type == 'opportunity': default['date_open'] = fields.datetime.now() else: diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py index 8515c65..9bf4083 100644 --- a/openerp/osv/expression.py +++ b/openerp/osv/expression.py @@ -1108,6 +1108,8 @@ class expression(object): "Invalid operator %r in domain term %r" % (operator, leaf) assert leaf in (TRUE_LEAF, FALSE_LEAF) or left in model._all_columns \ or left in MAGIC_COLUMNS, "Invalid field %r in domain term %r" % (left, leaf) + assert not isinstance(right, BaseModel), \ + "Invalid value %r in domain term %r" % (right, leaf) table_alias = '"%s"' % (eleaf.generate_alias()) -- 1.7.10.4