diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index c893755c7c0..d07236341dd 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -549,10 +549,25 @@ class hr_applicant(base_stage, osv.Model): class hr_job(osv.osv): _inherit = "hr.job" _name = "hr.job" + _inherits = {'mail.alias': 'alias_id'} _columns = { 'survey_id': fields.many2one('survey', 'Interview Form', help="Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job"), + 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True), } + def create(self, cr, uid, vals, context=None): + model_pool = self.pool.get('ir.model.data') + alias_pool = self.pool.get('mail.alias') + res_id = model_pool.get_object( cr, uid, "hr_recruitment", "model_hr_applicant") + vals.update({'alias_name': "job", + 'alias_model_id': res_id.id}) + name = alias_pool.create_unique_alias(cr, uid, vals, context=context) + res = super( hr_job, self).create(cr, uid, vals, context) + record = self.read(cr, uid, res, context) + alias_pool.write(cr, uid, [record['alias_id']], {"alias_defaults": {'job_id': record['id']}}, context) + return res + + def action_print_survey(self, cr, uid, ids, context=None): if context is None: context = {} diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index 13436bef45a..edb769c5314 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -449,5 +449,13 @@ + + + Jobs@openerp.my.openerp.com + + + {} + + diff --git a/addons/hr_recruitment/hr_recruitment_demo.yml b/addons/hr_recruitment/hr_recruitment_demo.yml index 59508b83c28..aeade8b672d 100644 --- a/addons/hr_recruitment/hr_recruitment_demo.yml +++ b/addons/hr_recruitment/hr_recruitment_demo.yml @@ -1,3 +1,12 @@ +- + !record {model: mail.alias, id: alias_id_1, view: False}: + alias_name: 'Developer@openerp.my.openerp.com' + alias_model_id: model_hr_applicant + alias_user_id: base.user_root + alias_defaults: '{}' +- + !record {model: hr.job, id: hr.job_developer, view: False}: + alias_id: alias_id_1 - !record {model: hr.applicant, id: hr_case_salesman0}: date: !eval time.strftime('%Y-%m-01 10:35:50') diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index 63263d78c9d..d53bf922db7 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -352,6 +352,9 @@ attrs="{'invisible':[('survey_id','=',False)]}"/> + + + diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index ce6094879c3..7cb1e2bda2f 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -473,7 +473,7 @@ class mail_thread(osv.osv): """ alias_pool = self.pool.get('mail.alias') - user_pool = self.pool.get('res.user') + user_pool = self.pool.get('res.users') mail_compose_pool = self.pool.get('mail.compose.message') mail_message_pool = self.pool.get('mail.message') if isinstance(message, xmlrpclib.Binary): @@ -486,10 +486,11 @@ class mail_thread(osv.osv): msg_txt = email.message_from_string(message) msg = mail_message_pool.parse_message(msg_txt) alias_name = msg.get('to') - alias_ids = alias_pool.search(cr, uid, [('alias_name','=',alias_name)],context) - alias_id = alias_pool.browse(cr, uid, alias_ids[0], context) + alias_ids = alias_pool.search(cr, uid, [('alias_name','=',alias_name)]) + #if alias found then call message_process method. - if alias_id: + if alias_ids: + alias_id = alias_pool.browse(cr, uid, alias_ids[0], context) user_id = self._get_user( cr, uid, alias_id, context) self.message_process(cr, user_id, alias_id.alias_model_id.model, message, custom_values = alias_id.alias_defaults or {}, @@ -500,7 +501,7 @@ class mail_thread(osv.osv): #_logger.warning("This mailbox does not exist so mail gate will reject this mail.") from_email = user_pool.browse(cr, uid, uid, context).user_email sub = "Mail Rejection" + msg.get('subject') - message = "Respective mailbox does not exist so your mail have been rejected" + msg + message = "Respective mailbox does not exist so your mail have been rejected" + msg.get('body') mail_compose_pool.send_mail(cr, uid, {'email_from': from_email,'email_to': msg.get('from'),'subject': sub, 'body_text': message}, context) return True