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
-
-
-
x
-
.
-
+
+
+
+
+
+
+
+
+
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 @@
-
-
+
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 @@
-
+
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')]
-