diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 76166ee92e0..aca8ac466c8 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -384,7 +384,7 @@ class ir_model_fields(osv.osv): # static table of properties model_props = [ # (our-name, fields.prop, set_fn) - ('field_description', 'string', str), + ('field_description', 'string', tools.ustr), ('required', 'required', bool), ('readonly', 'readonly', bool), ('domain', '_domain', eval), diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 091273561d9..3b9f84aeb28 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -99,7 +99,7 @@ class res_groups(osv.osv): } _sql_constraints = [ - ('name_uniq', 'unique (category_id, name)', 'The name of the group must be unique !') + ('name_uniq', 'unique (category_id, name)', 'The name of the group must be unique within an application!') ] def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py index 2f2dcb4a105..79a7f307072 100644 --- a/openerp/tools/convert.py +++ b/openerp/tools/convert.py @@ -305,12 +305,17 @@ form: module.record_id""" % (xml_id,) if d_search: idref = _get_idref(self, cr, self.uid, d_model, context={}, idref={}) - ids = self.pool[d_model].search(cr, self.uid, unsafe_eval(d_search, idref)) + try: + ids = self.pool[d_model].search(cr, self.uid, unsafe_eval(d_search, idref)) + except ValueError: + _logger.warning('Skipping deletion for failed search `%r`', d_search, exc_info=True) + pass if d_id: try: ids.append(self.id_get(cr, d_id)) - except: + except ValueError: # d_id cannot be found. doesn't matter in this case + _logger.warning('Skipping deletion for missing XML ID `%r`', d_id, exc_info=True) pass if ids: self.pool[d_model].unlink(cr, self.uid, ids) diff --git a/openerp/tools/safe_eval.py b/openerp/tools/safe_eval.py index 2f280685350..471827b098b 100644 --- a/openerp/tools/safe_eval.py +++ b/openerp/tools/safe_eval.py @@ -71,7 +71,8 @@ _SAFE_OPCODES = _EXPR_OPCODES.union(set(opmap[x] for x in [ 'CONTINUE_LOOP', 'RAISE_VARARGS', # New in Python 2.7 - http://bugs.python.org/issue4715 : 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'POP_JUMP_IF_FALSE', - 'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'END_FINALLY', 'LOAD_FAST', + 'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'END_FINALLY', + 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', 'LOAD_GLOBAL', # Only allows access to restricted globals ] if x in opmap))