From 962f13a2e0073d13e5982e63e89c4435270ba2d9 Mon Sep 17 00:00:00 2001 From: Krina Oza Date: Fri, 19 Mar 2021 12:49:54 +0000 Subject: [PATCH] [IMP] base,hr: imporve the language settings and access to it Currently, in My Profile all the users have access to language settings even when the user does not have the rights to activate/deactivate languages. Also, the language setting list is not user friendly which needs to be imporved. so in this commit hide "More Languages" button in My Profile for users that does not have the rights and the language settings list is improved by adding seperate buttons to "activate", "disable" and "update" a language. PS: groups does not work on My profile so added the compute field based on group. closes odoo/odoo#69292 Taskid: 2466771 Signed-off-by: Yannick Tivisse (yti) --- addons/hr/models/res_users.py | 6 ++++++ addons/hr/views/res_users.xml | 6 ++++++ odoo/addons/base/models/res_lang.py | 4 ++++ odoo/addons/base/views/res_lang_views.xml | 15 +++++++++++++-- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/addons/hr/models/res_users.py b/addons/hr/models/res_users.py index 7cefd8b634d..05e262acc74 100644 --- a/addons/hr/models/res_users.py +++ b/addons/hr/models/res_users.py @@ -16,6 +16,7 @@ HR_READABLE_FIELDS = [ 'last_activity', 'last_activity_time', 'can_edit', + 'is_system', ] HR_WRITABLE_FIELDS = [ @@ -132,6 +133,11 @@ class User(models.Model): employee_type = fields.Selection(related='employee_id.employee_type', readonly=False, related_sudo=False) can_edit = fields.Boolean(compute='_compute_can_edit') + is_system = fields.Boolean(compute="_compute_is_system") + + @api.depends_context('uid') + def _compute_is_system(self): + self.write({'is_system': self.env.user._is_system()}) def _compute_can_edit(self): can_edit = self.env['ir.config_parameter'].sudo().get_param('hr.hr_employee_self_edit') or self.env.user.has_group('hr.group_hr_user') diff --git a/addons/hr/views/res_users.xml b/addons/hr/views/res_users.xml index a3651c6d713..c68d4e6028c 100644 --- a/addons/hr/views/res_users.xml +++ b/addons/hr/views/res_users.xml @@ -29,6 +29,12 @@ 1 + + + + + {'invisible': [('is_system', '=', False)]} + diff --git a/odoo/addons/base/models/res_lang.py b/odoo/addons/base/models/res_lang.py index 5590f3a004d..efce8bece9e 100644 --- a/odoo/addons/base/models/res_lang.py +++ b/odoo/addons/base/models/res_lang.py @@ -257,6 +257,10 @@ class Lang(models.Model): langs = self.with_context(active_test=True).search([]) return sorted([(lang.code, lang.name) for lang in langs], key=itemgetter(1)) + def action_archive(self): + self.ensure_one() + self.active = False + def toggle_active(self): super().toggle_active() # Automatically load translation diff --git a/odoo/addons/base/views/res_lang_views.xml b/odoo/addons/base/views/res_lang_views.xml index 486817104a4..c12b179f004 100644 --- a/odoo/addons/base/views/res_lang_views.xml +++ b/odoo/addons/base/views/res_lang_views.xml @@ -13,9 +13,20 @@