summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2017-01-27 15:15:46 +0100
committerChristophe Simonis <chs@odoo.com>2017-01-27 15:15:46 +0100
commit7c9ad40e0a015cf6a74764899e4e2d5dc9fcd757 (patch)
tree2f814d8f58eb7f910aea77d0a2368e003fc0c9ff
parent6edb7495346119e2ceb25f5b5b5568b4b890dd86 (diff)
parentf8b82bdd63a16373cf38ee498a042ef4687d1370 (diff)
[MERGE] forward port branch saas-6 up to f8b82bdd63a
-rw-r--r--addons/hw_escpos/escpos/printer.py2
-rw-r--r--addons/mass_mailing/wizard/test_mailing.py3
-rw-r--r--openerp/addons/test_inherit/tests/test_inherit.py6
-rw-r--r--openerp/osv/expression.py9
4 files changed, 17 insertions, 3 deletions
diff --git a/addons/hw_escpos/escpos/printer.py b/addons/hw_escpos/escpos/printer.py
index d52668b50f9..238a69e5fc8 100644
--- a/addons/hw_escpos/escpos/printer.py
+++ b/addons/hw_escpos/escpos/printer.py
@@ -82,7 +82,7 @@ class Usb(Escpos):
def _raw(self, msg):
""" Print any command sent in raw format """
- if len(msg) != self.device.write(self.out_ep, msg, self.interface):
+ if len(msg) != self.device.write(self.out_ep, msg, self.interface, timeout=5000):
self.device.write(self.out_ep, self.errorText, self.interface)
raise TicketNotPrinted()
diff --git a/addons/mass_mailing/wizard/test_mailing.py b/addons/mass_mailing/wizard/test_mailing.py
index b86f4ea32a0..14a87fa10bd 100644
--- a/addons/mass_mailing/wizard/test_mailing.py
+++ b/addons/mass_mailing/wizard/test_mailing.py
@@ -11,7 +11,8 @@ class TestMassMailing(osv.TransientModel):
_columns = {
'email_to': fields.char('Recipients', required=True,
help='Comma-separated list of email addresses.'),
- 'mass_mailing_id': fields.many2one('mail.mass_mailing', 'Mailing', required=True),
+ 'mass_mailing_id': fields.many2one(
+ 'mail.mass_mailing', 'Mailing', required=True, ondelete='cascade'),
}
_defaults = {
diff --git a/openerp/addons/test_inherit/tests/test_inherit.py b/openerp/addons/test_inherit/tests/test_inherit.py
index f6057817ee4..8e12b0b7e08 100644
--- a/openerp/addons/test_inherit/tests/test_inherit.py
+++ b/openerp/addons/test_inherit/tests/test_inherit.py
@@ -74,6 +74,12 @@ class test_inherits(common.TransactionCase):
self.assertIn(daughter, partner_demo.daughter_ids)
# search the partner from the daughter record
+ partners = self.env['res.partner'].search([('daughter_ids', 'like', 'not existing daugther')])
+ self.assertFalse(partners)
+ partners = self.env['res.partner'].search([('daughter_ids', 'not like', 'not existing daugther')])
+ self.assertIn(partner_demo, partners)
+ partners = self.env['res.partner'].search([('daughter_ids', '!=', False)])
+ self.assertIn(partner_demo, partners)
partners = self.env['res.partner'].search([('daughter_ids', 'in', daughter.ids)])
self.assertIn(partner_demo, partners)
diff --git a/openerp/osv/expression.py b/openerp/osv/expression.py
index 71d5c4303c8..50c6a80b761 100644
--- a/openerp/osv/expression.py
+++ b/openerp/osv/expression.py
@@ -999,7 +999,14 @@ class expression(object):
if call_null:
o2m_op = 'in' if operator in NEGATIVE_TERM_OPERATORS else 'not in'
- push(create_substitution_leaf(leaf, ('id', o2m_op, select_distinct_from_where_not_null(cr, column._fields_id, comodel._table)), model))
+ # determine ids from column._fields_id
+ if comodel._fields[column._fields_id].store:
+ ids1 = select_distinct_from_where_not_null(cr, column._fields_id, comodel._table)
+ else:
+ ids2 = comodel.search(cr, uid, [(column._fields_id, '!=', False)], context=context)
+ recs = comodel.browse(cr, SUPERUSER_ID, ids2, {'prefetch_fields': False})
+ ids1 = recs.mapped(column._fields_id).ids
+ push(create_substitution_leaf(leaf, ('id', o2m_op, ids1), model))
elif column._type == 'many2many':
rel_table, rel_id1, rel_id2 = column._sql_names(model)