From a0fae57e5ccf12566ea988b5c9eca473746ba552 Mon Sep 17 00:00:00 2001 From: William Braeckman Date: Tue, 29 Jun 2021 15:30:57 +0000 Subject: [PATCH] [IMP] hr: department views Moves a field from hr_holidays to hr (`total_employees` of hr.department) to display it in the department list view. Widen the department kanban view to display more information and allow clicking on the department name in the kanban view to edit it. Task ID: 2582448 --- addons/hr/models/hr_department.py | 7 +++++++ addons/hr/static/src/scss/hr.scss | 17 +++++++++++++++++ addons/hr/views/hr_department_views.xml | 5 +++-- addons/hr_holidays/models/hr_department.py | 8 -------- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/addons/hr/models/hr_department.py b/addons/hr/models/hr_department.py index d44f8bba221..774574ef7d8 100644 --- a/addons/hr/models/hr_department.py +++ b/addons/hr/models/hr_department.py @@ -20,6 +20,7 @@ class Department(models.Model): child_ids = fields.One2many('hr.department', 'parent_id', string='Child Departments') manager_id = fields.Many2one('hr.employee', string='Manager', tracking=True, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") member_ids = fields.One2many('hr.employee', 'department_id', string='Members', readonly=True) + total_employee = fields.Integer(compute='_compute_total_employee', string='Total Employee') jobs_ids = fields.One2many('hr.job', 'department_id', string='Jobs') note = fields.Text('Note') color = fields.Integer('Color Index') @@ -41,6 +42,12 @@ class Department(models.Model): else: department.complete_name = department.name + def _compute_total_employee(self): + emp_data = self.env['hr.employee'].read_group([('department_id', 'in', self.ids)], ['department_id'], ['department_id']) + result = dict((data['department_id'][0], data['department_id_count']) for data in emp_data) + for department in self: + department.total_employee = result.get(department.id, 0) + @api.constrains('parent_id') def _check_parent_id(self): if not self._check_recursion(): diff --git a/addons/hr/static/src/scss/hr.scss b/addons/hr/static/src/scss/hr.scss index b7a4e07778f..685edaa8713 100644 --- a/addons/hr/static/src/scss/hr.scss +++ b/addons/hr/static/src/scss/hr.scss @@ -29,3 +29,20 @@ } } + +.o_kanban_dashboard.o_hr_department_kanban { + &.o_kanban_ungrouped { + .o_kanban_record { + width: 350px; + } + } + .o_kanban_group { + &:not(.o_column_folded) { + width: 350px + 2*$o-kanban-group-padding; + + @include media-breakpoint-down(sm) { + width: 100%; + } + } + } +} diff --git a/addons/hr/views/hr_department_views.xml b/addons/hr/views/hr_department_views.xml index f9c7b891e4d..657788d19ed 100644 --- a/addons/hr/views/hr_department_views.xml +++ b/addons/hr/views/hr_department_views.xml @@ -32,6 +32,7 @@ + @@ -55,7 +56,7 @@ hr.department.kanban hr.department - + @@ -65,7 +66,7 @@
-
+
diff --git a/addons/hr_holidays/models/hr_department.py b/addons/hr_holidays/models/hr_department.py index d076113ec55..a6a818631cb 100644 --- a/addons/hr_holidays/models/hr_department.py +++ b/addons/hr_holidays/models/hr_department.py @@ -17,8 +17,6 @@ class Department(models.Model): compute='_compute_leave_count', string='Time Off to Approve') allocation_to_approve_count = fields.Integer( compute='_compute_leave_count', string='Allocation to Approve') - total_employee = fields.Integer( - compute='_compute_total_employee', string='Total Employee') def _compute_leave_count(self): Requests = self.env['hr.leave'] @@ -48,9 +46,3 @@ class Department(models.Model): department.leave_to_approve_count = res_leave.get(department.id, 0) department.allocation_to_approve_count = res_allocation.get(department.id, 0) department.absence_of_today = res_absence.get(department.id, 0) - - def _compute_total_employee(self): - emp_data = self.env['hr.employee'].read_group([('department_id', 'in', self.ids)], ['department_id'], ['department_id']) - result = dict((data['department_id'][0], data['department_id_count']) for data in emp_data) - for department in self: - department.total_employee = result.get(department.id, 0)