From 49351f6edb6af9d07449a2315f9df012a739c354 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Wed, 12 Feb 2014 16:42:38 +0530 Subject: [PATCH] [IMP] create new method to broadcast message to employess in hr. bzr revid: tpa@tinyerp.com-20140212111238-3b3ddlwl3062fjef --- addons/hr/hr.py | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 3c629378084..45a6a82e411 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -248,30 +248,34 @@ class hr_employee(osv.osv): 'color': 0, } + def mail_broadcast(self, cr, uid, employee_id, context=None): + employee = self.browse(cr, uid, employee_id, context=context) + partner_ids = [] + if employee.user_id: + res_users = self.pool['res.users'] + # send a copy to every user of the company + # TODO: post to the `Whole Company` mail.group when we'll be able to link to the employee record + _model, group_id = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_user') + user_ids = res_users.search(cr, uid, [('company_id', '=', employee.user_id.company_id.id), + ('groups_id', 'in', group_id)], context=context) + partner_ids = list(set(u.partner_id.id for u in res_users.browse(cr, uid, user_ids, context=context))) + self.message_post(cr, uid, [employee_id], + body=_('Welcome to %s! Please help him/her take the first steps with OpenERP!') % (employee.name), + partner_ids=partner_ids, + subtype='mail.mt_comment', context=context + ) + return True + def create(self, cr, uid, data, context=None): if context is None: context = {} if context.get("mail_broadcast"): - create_ctx = dict(context, mail_create_nolog=True) - employee_id = super(hr_employee, self).create(cr, uid, data, context=create_ctx) - employee = self.browse(cr, uid, employee_id, context=context) - if employee.user_id: - res_users = self.pool['res.users'] - # send a copy to every user of the company - # TODO: post to the `Whole Company` mail.group when we'll be able to link to the employee record - _model, group_id = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_user') - user_ids = res_users.search(cr, uid, [('company_id', '=', employee.user_id.company_id.id), - ('groups_id', 'in', group_id)], context=context) - partner_ids = list(set(u.partner_id.id for u in res_users.browse(cr, uid, user_ids, context=context))) - else: - partner_ids = [] - self.message_post(cr, uid, [employee_id], - body=_('Welcome to %s! Please help him/her take the first steps with OpenERP!') % (employee.name), - partner_ids=partner_ids, - subtype='mail.mt_comment', context=context - ) - else: - employee_id = super(hr_employee, self).create(cr, uid, data, context=context) + context.update({'mail_create_nolog': True}) + + employee_id = super(hr_employee, self).create(cr, uid, data, context=context) + + if context.get("mail_broadcast"): + self.mail_broadcast(cr, uid, employee_id, context=context) return employee_id def unlink(self, cr, uid, ids, context=None):