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 @@
+ icon="fa-check"
+ attrs="{'invisible': [('active', '=', True)]}"/>
+
+