diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-11-03 11:40:01 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-11-03 11:40:01 +0100 |
| commit | 2e9b33b79322e7e9c99a69ea99f60e73e87d0e4e (patch) | |
| tree | 7efb6d9cb3e5a038ba94f065bc574f7561b33095 | |
| parent | a6b11a151e687b616035014cf7980f9f485c8e0e (diff) | |
| parent | 80c7209d2e7d80f85e1598e06352ff8d73939d6a (diff) | |
[MERGE] forward port of branch 7.0 up to 80c7209
| -rw-r--r-- | openerp/addons/base/res/res_lang.py | 4 | ||||
| -rw-r--r-- | openerp/osv/orm.py | 2 | ||||
| -rw-r--r-- | openerp/workflow/instance.py | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/openerp/addons/base/res/res_lang.py b/openerp/addons/base/res/res_lang.py index 3fb58e901f6..3dfc6a5d954 100644 --- a/openerp/addons/base/res/res_lang.py +++ b/openerp/addons/base/res/res_lang.py @@ -185,6 +185,10 @@ class lang(osv.osv): return grouping, thousands_sep, decimal_point def write(self, cr, uid, ids, vals, context=None): + if 'code' in vals: + for rec in self.browse(cr, uid, ids, context): + if rec.code != vals['code']: + raise osv.except_osv(_('User Error'), _("Language code cannot be modified.")) for lang_id in ids : self._lang_data_get.clear_cache(self) return super(lang, self).write(cr, uid, ids, vals, context) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 36e1150c521..71b1103c328 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -2527,7 +2527,7 @@ class BaseModel(object): # if val is a many2one, just write the ID if type(val) == tuple: val = val[0] - if val is not False: + if f._type == 'boolean' or val is not False: cr.execute(update_query, (ss[1](val), key)) def _check_selection_field_value(self, cr, uid, field, value, context=None): diff --git a/openerp/workflow/instance.py b/openerp/workflow/instance.py index fd15eee6243..61ad8765124 100644 --- a/openerp/workflow/instance.py +++ b/openerp/workflow/instance.py @@ -70,7 +70,12 @@ class WorkflowInstance(object): cr = self.session.cr cr.execute("select * from wkf_workitem where inst_id=%s", (self.instance['id'],)) stack = [] - for work_item_values in cr.dictfetchall(): + for i, work_item_values in enumerate(cr.dictfetchall()): + if i > 0: + # test if previous workitem has already processed this one + cr.execute("select id from wkf_workitem where id=%s", (work_item_values['id'],)) + if not cr.fetchone(): + continue wi = WorkflowItem(self.session, self.record, work_item_values) wi.process(signal=signal, force_running=force_running, stack=stack) # An action is returned |
