[FIX] hr_expense: mail to manager
When an employee submits an expense, no mail is sent to the manager. This should be the case, since it works this way on holidays. The trick, however, is that the expense is created as submitted, but the followers are only added afterwards. We need to make sure to add the followers at creation. opw-751085
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
<field name="name">Submitted</field>
|
||||
<field name="res_model">hr.expense.sheet</field>
|
||||
<field name="description">Expense report submitted, waiting approval</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="default" eval="True"/>
|
||||
</record>
|
||||
<record id="mt_expense_paid" model="mail.message.subtype">
|
||||
<field name="name">Paid</field>
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user