From 8451eabb67ebe32b2f3480ce8cbc3440713b3ade Mon Sep 17 00:00:00 2001 From: dasz Date: Tue, 31 Jan 2023 10:08:28 +0000 Subject: [PATCH] [IMP] hr: focus employee smart button on main flow The current smartbutton is Employee(s) and it redirects to kanban view by default, no matter how many employees a user / partner has. 9 out of 10 times a user / partner only has one linked employee, this change renames the label to 'Employee' and redirects to the form view if there is only one employee if there are more, the previous action is called linked upgrade: odoo/upgrade#4363 this closes odoo/odoo#111439 Signed-off-by: Kevin Baptiste --- addons/hr/models/res_partner.py | 14 +++++++++++--- addons/hr/models/res_users.py | 19 +++++++++++++++++++ addons/hr/views/res_partner_views.xml | 2 +- addons/hr/views/res_users.xml | 13 +++---------- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/addons/hr/models/res_partner.py b/addons/hr/models/res_partner.py index b0329927416..6b3ef53787d 100644 --- a/addons/hr/models/res_partner.py +++ b/addons/hr/models/res_partner.py @@ -32,10 +32,18 @@ class Partner(models.Model): def action_open_employees(self): self.ensure_one() + if len(self.employee_ids) > 1: + return { + 'name': _('Related Employees'), + 'type': 'ir.actions.act_window', + 'res_model': 'hr.employee', + 'view_mode': 'form', + 'domain': [('id', 'in', self.employee_ids.ids)], + } return { - 'name': _('Related Employees'), + 'name': _('Employee'), 'type': 'ir.actions.act_window', 'res_model': 'hr.employee', - 'view_mode': 'kanban,tree,form', - 'domain': [('id', 'in', self.employee_ids.ids)], + 'res_id': self.employee_ids.id, + 'view_mode': 'form', } diff --git a/addons/hr/models/res_users.py b/addons/hr/models/res_users.py index 962c8d85efc..d25dbb3c1e9 100644 --- a/addons/hr/models/res_users.py +++ b/addons/hr/models/res_users.py @@ -311,3 +311,22 @@ class User(models.Model): company_id=self.env.company.id, **self.env['hr.employee']._sync_user(self) )) + + def action_open_employees(self): + self.ensure_one() + employees = self.employee_ids + if len(employees) > 1: + return { + 'name': _('Related Employees'), + 'type': 'ir.actions.act_window', + 'res_model': 'hr.employee', + 'view_mode': 'kanban,tree,form', + 'domain': [('id', 'in', employees.ids)], + } + return { + 'name': _('Employee'), + 'type': 'ir.actions.act_window', + 'res_model': 'hr.employee', + 'res_id': employees.id, + 'view_mode': 'form', + } diff --git a/addons/hr/views/res_partner_views.xml b/addons/hr/views/res_partner_views.xml index cf8062b32c2..f379caa8425 100644 --- a/addons/hr/views/res_partner_views.xml +++ b/addons/hr/views/res_partner_views.xml @@ -9,7 +9,7 @@ diff --git a/addons/hr/views/res_users.xml b/addons/hr/views/res_users.xml index 842c3760959..d829907634b 100644 --- a/addons/hr/views/res_users.xml +++ b/addons/hr/views/res_users.xml @@ -234,13 +234,6 @@ - - Employees - hr.employee - kanban,tree,form - [('user_id', '=', active_id)] - - res.users.form.inherit res.users @@ -257,13 +250,13 @@ -