diff --git a/addons/hr_expense/data/hr_expense_data.xml b/addons/hr_expense/data/hr_expense_data.xml
index e378419120d..73f3599826b 100644
--- a/addons/hr_expense/data/hr_expense_data.xml
+++ b/addons/hr_expense/data/hr_expense_data.xml
@@ -54,7 +54,7 @@
Submitted
hr.expense.sheet
Expense report submitted, waiting approval
-
+
Paid
diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index 11fabccdb30..e9a3409a322 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -412,10 +412,15 @@ class HrExpenseSheet(models.Model):
@api.model
def create(self, vals):
+ # Add the followers at creation, so they can be notified
+ if vals.get('employee_id'):
+ employee = self.env['hr.employee'].browse(vals['employee_id'])
+ users = self._get_users_to_subscribe(employee=employee) - self.env.user
+ vals['message_follower_ids'] = []
+ for partner in users.mapped('partner_id'):
+ vals['message_follower_ids'] += self.env['mail.followers']._add_follower_command(self._name, [], {partner.id: None}, {})[0]
sheet = super(HrExpenseSheet, self).create(vals)
self.check_consistency()
- if vals.get('employee_id'):
- sheet._add_followers()
return sheet
@api.multi
@@ -450,16 +455,20 @@ class HrExpenseSheet(models.Model):
return 'hr_expense.mt_expense_paid'
return super(HrExpenseSheet, self)._track_subtype(init_values)
- def _add_followers(self):
- user_ids = []
- employee = self.employee_id
+ def _get_users_to_subscribe(self, employee=False):
+ users = self.env['res.users']
+ employee = employee or self.employee_id
if employee.user_id:
- user_ids.append(employee.user_id.id)
+ users |= employee.user_id
if employee.parent_id:
- user_ids.append(employee.parent_id.user_id.id)
+ users |= employee.parent_id.user_id
if employee.department_id and employee.department_id.manager_id and employee.parent_id != employee.department_id.manager_id:
- user_ids.append(employee.department_id.manager_id.user_id.id)
- self.message_subscribe_users(user_ids=user_ids)
+ users |= employee.department_id.manager_id.user_id
+ return users
+
+ def _add_followers(self):
+ users = self._get_users_to_subscribe()
+ self.message_subscribe_users(user_ids=users.ids)
@api.onchange('employee_id')
def _onchange_employee_id(self):