From ff1d3849af246f3468eb510891e9a4f99c77fa7d Mon Sep 17 00:00:00 2001 From: Bhumi Patel Date: Mon, 24 Nov 2014 10:59:32 +0530 Subject: [PATCH] [IMP] hr_expense/hr_holiday: make user follower expenses/holidays about him/her but encoded by someone else --- addons/hr_expense/hr_expense.py | 21 +++++++++++++++++++++ addons/hr_holidays/hr_holidays.py | 17 +++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index 39dc9f74b96..b82cc2d2c4d 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -105,6 +105,27 @@ class hr_expense_expense(osv.osv): 'currency_id': _get_currency, } + def add_follower(self, cr, uid, ids, employee_id, context=None): + employee = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context) + if employee and employee.user_id: + self.message_subscribe_users(cr, uid, ids, user_ids=[employee.user_id.id], context=context) + + def create(self, cr, uid, vals, context=None): + if context is None: + context = {} + employee_id = vals.get('employee_id', False) + hr_expense_id = super(hr_expense_expense, self).create(cr, uid, vals, context=context) + self.add_follower(cr, uid, [hr_expense_id], employee_id, context=context) + return hr_expense_id + + def write(self, cr, uid, ids, vals, context=None): + if context is None: + context = {} + employee_id = vals.get('employee_id', False) + hr_expense_id = super(hr_expense_expense, self).write(cr, uid, ids, vals, context=context) + self.add_follower(cr, uid, ids, employee_id, context=context) + return hr_expense_id + def unlink(self, cr, uid, ids, context=None): for rec in self.browse(cr, uid, ids, context=context): if rec.state != 'draft': diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 9850281f895..2c134054a63 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -352,19 +352,32 @@ class hr_holidays(osv.osv): result['value']['number_of_days_temp'] = 0 return result + def add_follower(self, cr, uid, ids, employee_id, context=None): + employee = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context) + if employee and employee.user_id: + self.message_subscribe_users(cr, uid, ids, user_ids=[employee.user_id.id], context=context) + def create(self, cr, uid, values, context=None): """ Override to avoid automatic logging of creation """ if context is None: context = {} + employee_id = values.get('employee_id', False) context = dict(context, mail_create_nolog=True) if values.get('state') and values['state'] not in ['draft', 'confirm', 'cancel'] and not self.pool['res.users'].has_group(cr, uid, 'base.group_hr_user'): raise AccessError(_('You cannot set a leave request as \'%s\'. Contact a human resource manager.') % values.get('state')) - return super(hr_holidays, self).create(cr, uid, values, context=context) + hr_holiday_id = super(hr_holidays, self).create(cr, uid, values, context=context) + self.add_follower(cr, uid, [hr_holiday_id], employee_id, context=context) + return hr_holiday_id def write(self, cr, uid, ids, vals, context=None): + if context is None: + context = {} + employee_id = vals.get('employee_id', False) if vals.get('state') and vals['state'] not in ['draft', 'confirm', 'cancel'] and not self.pool['res.users'].has_group(cr, uid, 'base.group_hr_user'): raise AccessError(_('You cannot set a leave request as \'%s\'. Contact a human resource manager.') % vals.get('state')) - return super(hr_holidays, self).write(cr, uid, ids, vals, context=context) + hr_holiday_id = super(hr_holidays, self).write(cr, uid, ids, vals, context=context) + self.add_follower(cr, uid, ids, employee_id, context=context) + return hr_holiday_id def holidays_reset(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {