[RMV] revert the changes of making uniqe alias for all jobs
bzr revid: tpa@tinyerp.com-20130528090638-jh8u0l8od0zdixe8
This commit is contained in:
parent
bb5d789032
commit
fc295aad77
|
@ -482,6 +482,7 @@ class hr_applicant(base_stage, osv.Model):
|
|||
|
||||
def get_empty_list_help(self, cr, uid, help, context=None):
|
||||
context['empty_list_help_model'] = 'hr.job'
|
||||
context['empty_list_help_id'] = context.get('default_job_id', None)
|
||||
context['empty_list_help_document_name'] = _("job applicants")
|
||||
return super(hr_applicant, self).get_empty_list_help(cr, uid, help, context=context)
|
||||
|
||||
|
@ -489,6 +490,7 @@ class hr_applicant(base_stage, osv.Model):
|
|||
class hr_job(osv.osv):
|
||||
_inherit = "hr.job"
|
||||
_name = "hr.job"
|
||||
_inherits = {'mail.alias': 'alias_id'}
|
||||
|
||||
def _application_count(self, cr, uid, ids, field_name, arg, context=None):
|
||||
"""Calculate total Applications per job"""
|
||||
|
@ -499,22 +501,47 @@ class hr_job(osv.osv):
|
|||
res[applicant.job_id.id] += 1
|
||||
return res
|
||||
|
||||
def _job_alias(self, cr, uid, ids, field_name, arg, context=None):
|
||||
res = dict.fromkeys(ids, False)
|
||||
mail_alias = self.pool.get('mail.alias')
|
||||
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])], context=context)
|
||||
if alias_ids:
|
||||
for id in ids:
|
||||
res[id] = alias_ids[0]
|
||||
return res
|
||||
|
||||
_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', 'Alias', ondelete="cascade", required=True,
|
||||
help="Email alias for this job position. New emails will automatically "
|
||||
"create new applicants for this job position."),
|
||||
'application_count': fields.function(_application_count, type='integer', string="Total Applications"),
|
||||
'manager_id': fields.related('department_id', 'manager_id', type='many2one', string='Department Manager', relation='hr.employee', readonly=True, store=True),
|
||||
'job_alias': fields.function(_job_alias, type='many2one', relation='mail.alias', string='Mail Alias'),
|
||||
}
|
||||
}
|
||||
_defaults = {
|
||||
'alias_domain': False, # always hide alias during creation
|
||||
}
|
||||
|
||||
def _auto_init(self, cr, context=None):
|
||||
"""Installation hook to create aliases for all jobs and avoid constraint errors."""
|
||||
res = self.pool.get('mail.alias').migrate_to_alias(cr, self._name, self._table, super(hr_job,self)._auto_init,
|
||||
self._columns['alias_id'], 'name', alias_prefix='job+', alias_defaults={'job_id': 'id'}, context=context)
|
||||
return res
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
mail_alias = self.pool.get('mail.alias')
|
||||
if not vals.get('alias_id'):
|
||||
vals.pop('alias_name', None) # prevent errors during copy()
|
||||
alias_id = mail_alias.create_unique_alias(cr, uid,
|
||||
# Using '+' allows using subaddressing for those who don't
|
||||
# have a catchall domain setup.
|
||||
{'alias_name': 'jobs+'+vals['name']},
|
||||
model_name="hr.applicant",
|
||||
context=context)
|
||||
vals['alias_id'] = alias_id
|
||||
res = super(hr_job, self).create(cr, uid, vals, context)
|
||||
mail_alias.write(cr, uid, [vals['alias_id']], {"alias_defaults": {'job_id': res}}, context)
|
||||
return res
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
# Cascade-delete mail aliases as well, as they should not exist without the job position.
|
||||
mail_alias = self.pool.get('mail.alias')
|
||||
alias_ids = [job.alias_id.id for job in self.browse(cr, uid, ids, context=context) if job.alias_id]
|
||||
res = super(hr_job, self).unlink(cr, uid, ids, context=context)
|
||||
mail_alias.unlink(cr, uid, alias_ids, context=context)
|
||||
return res
|
||||
|
||||
def action_print_survey(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
|
|
|
@ -312,6 +312,19 @@
|
|||
attrs="{'invisible':[('survey_id','=',False)]}"/>
|
||||
</div>
|
||||
</field>
|
||||
<xpath expr="//div[@class='oe_title']//h1" position="after">
|
||||
<div name="group_alias"
|
||||
attrs="{'invisible': [('alias_domain', '=', False)]}">
|
||||
<label for="alias_id" string="Email Alias"/>
|
||||
<field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
|
||||
<span name="edit_alias" class="oe_edit_only">
|
||||
<field name="alias_name" class="oe_inline"
|
||||
attrs="{'required': [('alias_id', '!=', False)]}"/>
|
||||
@
|
||||
<field name="alias_domain" class="oe_inline" readonly="1"/>
|
||||
</span>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
Loading…
Reference in New Issue