From a0857f13eb8cfa7f6aaeb8d5bf7926ff5e692bba Mon Sep 17 00:00:00 2001 From: Joren Van Onder Date: Wed, 29 Jul 2015 14:05:31 +0200 Subject: [PATCH] [IMP] res_lang: don't allow unactivating of a used language Unactivating the preferred language of a user will prevent him from logging in. --- openerp/addons/base/res/res_lang.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/openerp/addons/base/res/res_lang.py b/openerp/addons/base/res/res_lang.py index 53338a18419..92a8e0e8652 100644 --- a/openerp/addons/base/res/res_lang.py +++ b/openerp/addons/base/res/res_lang.py @@ -176,6 +176,17 @@ class lang(osv.osv): return grouping, thousands_sep, decimal_point def write(self, cr, uid, ids, vals, context=None): + if isinstance(ids, (int, long)): + ids = [ids] + + if vals.get('active') == False: + users = self.pool.get('res.users') + + for current_id in ids: + current_language = self.browse(cr, uid, current_id, context=context) + if users.search(cr, uid, [('lang', '=', current_language.code)], context=context): + raise UserError(_("Cannot unactivate a language that is currently used by users.")) + self._lang_get.clear_cache(self) self._lang_data_get.clear_cache(self) return super(lang, self).write(cr, uid, ids, vals, context)