From 95564bcd2c7ee42f25e07b7319c28b22b41dc46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Tue, 30 Apr 2019 16:55:06 +0200 Subject: [PATCH 1/4] [IMP] hr: Direclty create user's employee --- addons/hr/models/res_users.py | 25 ++++++++----------------- addons/hr/views/res_users.xml | 30 +++++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/addons/hr/models/res_users.py b/addons/hr/models/res_users.py index e966a491894..65561a52480 100644 --- a/addons/hr/models/res_users.py +++ b/addons/hr/models/res_users.py @@ -51,16 +51,12 @@ class User(models.Model): certificate = fields.Selection(related='employee_id.certificate', readonly=False, related_sudo=False) study_field = fields.Char(related='employee_id.study_field', readonly=False, related_sudo=False) study_school = fields.Char(related='employee_id.study_school', readonly=False, related_sudo=False) - employee_warning = fields.Char("Missing employee warning", compute='_compute_employee_warning') + employee_count = fields.Integer(compute='_compute_employee_count') - @api.depends('groups_id', 'employee_ids', 'active') - def _compute_employee_warning(self): - """ Fill warning only for active internal user (employee) not linked to hr.employee """ + @api.depends('employee_ids') + def _compute_employee_count(self): for user in self: - if not user.employee_ids and not user.share and user.active: - user.employee_warning = _("Don't forget to create the linked employee.") - else: - user.employee_warning = False + user.employee_count = len(user.employee_ids) def __init__(self, pool, cr): """ Override of __init__ to add access rights. @@ -183,12 +179,7 @@ class User(models.Model): @api.multi def action_create_employee(self): self.ensure_one() - form_view = self.env.ref('hr.view_employee_form') - return { - 'name': _('Create Employee'), - 'type': 'ir.actions.act_window', - 'res_model': 'hr.employee', - 'views': [(form_view.id, 'form')], - 'target': 'new', - 'context': {'default_user_id': self.id} - } + self.env['hr.employee'].create(dict( + user_id=self.id, + **self.env['hr.employee']._sync_user(self) + )) diff --git a/addons/hr/views/res_users.xml b/addons/hr/views/res_users.xml index 675d495869b..d544fa568d0 100644 --- a/addons/hr/views/res_users.xml +++ b/addons/hr/views/res_users.xml @@ -165,16 +165,36 @@ + + Employees + hr.employee + form + kanban,tree,form + [('user_id', '=', active_id)] + + res.users.form.inherit res.users - - + + + + + From 22cd306b2c3b3a4d03f1aaae0fc8877500490cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Tue, 30 Apr 2019 17:24:33 +0200 Subject: [PATCH 2/4] [IMP] hr_holidays: Display leaves in calendar Purpose ======= When a leave is created and approved, it can also create a meeting in the calendar. In the leave type configuration a particular meeting type can be chosen. The purpose is to simplify this. Specification ============= Remove the choice of meeting type. The choice should be: Display Leaves in calendar: Yes/No (checkox) --- addons/hr_holidays/models/hr_leave.py | 4 +--- addons/hr_holidays/models/hr_leave_type.py | 4 +--- addons/hr_holidays/views/hr_leave_type_views.xml | 4 ++-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 5789bee8aba..add502f82fb 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -603,7 +603,7 @@ class HolidaysRequest(models.Model): by creating a calendar event and a resource time off. """ holidays = self.filtered(lambda request: request.holiday_type == 'employee') holidays._create_resource_leave() - for holiday in holidays: + for holiday in holidays.filtered(lambda l: l.holiday_status_id.create_calendar_meeting): meeting_values = holiday._prepare_holidays_meeting_values() meeting = self.env['calendar.event'].with_context(no_mail_to_attendees=True).create(meeting_values) holiday.write({'meeting_id': meeting.id}) @@ -614,8 +614,6 @@ class HolidaysRequest(models.Model): calendar = self.employee_id.resource_calendar_id or self.env.company.resource_calendar_id meeting_values = { 'name': self.display_name, - 'categ_ids': [(6, 0, [ - self.holiday_status_id.categ_id.id])] if self.holiday_status_id.categ_id else [], 'duration': self.number_of_days * (calendar.hours_per_day or HOURS_PER_DAY), 'description': self.notes, 'user_id': self.user_id.id, diff --git a/addons/hr_holidays/models/hr_leave_type.py b/addons/hr_holidays/models/hr_leave_type.py index 1fb529ff390..577c159d671 100644 --- a/addons/hr_holidays/models/hr_leave_type.py +++ b/addons/hr_holidays/models/hr_leave_type.py @@ -26,9 +26,7 @@ class HolidaysType(models.Model): code = fields.Char('Code') sequence = fields.Integer(default=100, help='The type with the smallest sequence is the default value in time off request') - categ_id = fields.Many2one( - 'calendar.event.type', string='Meeting Type', - help='Once a time off is validated, Odoo will create a corresponding meeting of this type in the calendar.') + create_calendar_meeting = fields.Boolean(string="Display Time Off in Calendar", default=True) color_name = fields.Selection([ ('red', 'Red'), ('blue', 'Blue'), diff --git a/addons/hr_holidays/views/hr_leave_type_views.xml b/addons/hr_holidays/views/hr_leave_type_views.xml index 1c0b02abd1b..8406c7561e1 100644 --- a/addons/hr_holidays/views/hr_leave_type_views.xml +++ b/addons/hr_holidays/views/hr_leave_type_views.xml @@ -8,7 +8,7 @@ - + @@ -70,7 +70,7 @@ - + From 55bfc0a97ebdd70f2b179ea8af2599f632c4421c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Mon, 6 May 2019 10:20:22 +0200 Subject: [PATCH 3/4] [REM] hr_contract: Remove social secretariat field Social secretariat is a Belgian concept. It does not make sense to have this in the standard contract app. Will be reintroduced in l10n_be_hr_payroll (or internal) if really needed. Move `job_id` in the right group to easily add fields on the right with view inheritance. --- addons/hr_contract/models/hr_contract.py | 2 -- addons/hr_contract/views/hr_contract_views.xml | 5 +---- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/addons/hr_contract/models/hr_contract.py b/addons/hr_contract/models/hr_contract.py index 97df03d45a2..366624ab8f4 100644 --- a/addons/hr_contract/models/hr_contract.py +++ b/addons/hr_contract/models/hr_contract.py @@ -45,8 +45,6 @@ class Contract(models.Model): permit_no = fields.Char('Work Permit No', related="employee_id.permit_no", readonly=False) visa_no = fields.Char('Visa No', related="employee_id.visa_no", readonly=False) visa_expire = fields.Date('Visa Expire Date', related="employee_id.visa_expire", readonly=False) - reported_to_secretariat = fields.Boolean('Social Secretariat', - help='Green this button when the contract information has been transfered to the social secretariat.') hr_responsible_id = fields.Many2one('res.users', 'HR Responsible', tracking=True, help='Person responsible for validating the employee\'s contracts.') diff --git a/addons/hr_contract/views/hr_contract_views.xml b/addons/hr_contract/views/hr_contract_views.xml index 2a58aa89861..86f4f2593da 100644 --- a/addons/hr_contract/views/hr_contract_views.xml +++ b/addons/hr_contract/views/hr_contract_views.xml @@ -75,8 +75,6 @@ - - @@ -113,10 +111,9 @@ - - + From eaa28efdf7f6a153a9812bdcfed0b52b8f1bc63b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Tue, 28 May 2019 12:12:15 +0200 Subject: [PATCH 4/4] [IMP] hr_holidays: Clean manager form refs Purpose ======= Ease modification/addition of views and actions (in particular when inheriting actions in hr_holidays_gantt) Specification ============= Use `form_view_ref` in the action context instead of the form xml id in all views. + Add tree view from "Time Off / My Team" --- addons/hr_holidays/views/hr_leave_views.xml | 27 ++++++++------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/addons/hr_holidays/views/hr_leave_views.xml b/addons/hr_holidays/views/hr_leave_views.xml index 1c083ba8b10..1208b7f4ab6 100644 --- a/addons/hr_holidays/views/hr_leave_views.xml +++ b/addons/hr_holidays/views/hr_leave_views.xml @@ -368,7 +368,7 @@ hr.leave.view.calendar hr.leave - + @@ -440,11 +440,16 @@ All Time Off hr.leave form - calendar - {'search_default_year': 1, 'search_default_group_employee': 1, 'search_default_managed_people': 1, 'search_default_managed_people': 1, 'search_default_my_team_leaves': 1} + calendar,tree + { + 'search_default_year': 1, + 'search_default_group_employee': 1, + 'search_default_managed_people': 1, + 'search_default_my_team_leaves': 1, + 'form_view_ref': 'hr_holidays.hr_leave_view_form_manager', + } [('holiday_type','=','employee'), ('state', '!=', 'refuse')] - hr.leave tree,kanban,form,calendar,activity - {} + {'form_view_ref': 'hr_holidays.hr_leave_view_form_manager'} []

@@ -602,18 +607,6 @@

- - 2 - tree - - - - - 10 - form - - - Department Time Off