[IMP] Hr_recruitment:improved code for mail alias.
bzr revid: tpa@tinyerp.com-20120625113133-47zigv9xc4uf7dlv
This commit is contained in:
parent
e557594b4a
commit
8939177334
|
@ -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 = {}
|
||||
|
|
|
@ -449,5 +449,13 @@
|
|||
<field name="question_id" ref="survey_question_job_1"/>
|
||||
<field eval="13" name="sequence"/>
|
||||
</record>
|
||||
|
||||
<record id="mail_alias_jobs" model="mail.alias">
|
||||
<field name="alias_name">Jobs@openerp.my.openerp.com</field>
|
||||
<field name="alias_model_id" ref="model_hr_applicant"/>
|
||||
<field name="alias_user_id" ref="base.user_root"/>
|
||||
<field name="alias_defaults">{}</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -352,6 +352,9 @@
|
|||
attrs="{'invisible':[('survey_id','=',False)]}"/>
|
||||
</div>
|
||||
</field>
|
||||
<field name="company_id" version="7.0" position="after">
|
||||
<field name="alias_id" required="0"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue