From 9f77e42e7909b44f73ea4f41ddc2d89eb555e7be Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Wed, 29 May 2013 12:59:32 +0530 Subject: [PATCH] [IMP] improved code for default mail alias of job,add try and execept logic if anyone delete our default alias. bzr revid: tpa@tinyerp.com-20130529072932-ame7ec1wrmets8nb --- addons/hr_recruitment/res_config.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/addons/hr_recruitment/res_config.py b/addons/hr_recruitment/res_config.py index 25bb15646f1..6548db47515 100644 --- a/addons/hr_recruitment/res_config.py +++ b/addons/hr_recruitment/res_config.py @@ -40,20 +40,31 @@ class hr_applicant_settings(osv.osv_memory): def get_default_alias_prefix(self, cr, uid, ids, context=None): alias_name = '' mail_alias = self.pool.get('mail.alias') - alias = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'mail_alias_jobs') - if alias: - alias_name = alias.alias_name + try: + alias_name = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'mail_alias_jobss').alias_name + except Exception: + model_ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'hr.applicant')], context=context) + alias_ids = mail_alias.search(cr, uid, [('alias_model_id', '=', model_ids[0]),('alias_defaults', '=', '{}')], context=context) + if alias_ids: + alias_name = mail_alias.browse(cr, uid, alias_ids[0], context=context).alias_name return {'alias_prefix': alias_name} def set_default_alias_prefix(self, cr, uid, ids, context=None): mail_alias = self.pool.get('mail.alias') record = self.browse(cr, uid, ids[0], context=context) if record.alias_prefix: - alias = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'mail_alias_jobs') - if alias: - alias.write({'alias_name': record.alias_prefix}) - else: - mail_alias.create_unique_alias(cr, uid, {'alias_name': record.alias_prefix}, model_name="hr.applicant", context=context) + try: + alias = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_recruitment', 'mail_alias_jobs') + if alias: + alias.write({'alias_name': record.alias_prefix}) + except Exception: + model_ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'hr.applicant')], context=context) + alias_ids = mail_alias.search(cr, uid, [('alias_model_id', '=', model_ids[0]),('alias_defaults', '=', '{}')], context=context) + if alias_ids: + mail_alias.write(cr, uid, alias_ids[0], {'alias_name': record.alias_prefix}, context=context) + else: + mail_alias.create_unique_alias(cr, uid, {'alias_name': record.alias_prefix}, model_name="hr.applicant", context=context) + return True def get_default_alias_domain(self, cr, uid, ids, context=None): alias_domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context)