Merge branch 'master' of https://github.com/odoo/odoo
[odoo/odoo.git] / addons / hr_recruitment / res_config.py
1 # -*- coding: utf-8 -*-
2 ##############################################################################
3 #
4 #    OpenERP, Open Source Business Applications
5 #    Copyright (C) 2004-Today OpenERP S.A. (<http://openerp.com>).
6 #
7 #    This program is free software: you can redistribute it and/or modify
8 #    it under the terms of the GNU Affero General Public License as
9 #    published by the Free Software Foundation, either version 3 of the
10 #    License, or (at your option) any later version.
11 #
12 #    This program is distributed in the hope that it will be useful,
13 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #    GNU Affero General Public License for more details.
16 #
17 #    You should have received a copy of the GNU Affero General Public License
18 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 #
20 ##############################################################################
21
22 from openerp import SUPERUSER_ID
23 from openerp.osv import fields, osv
24
25
26 class hr_applicant_settings(osv.TransientModel):
27     _name = 'hr.config.settings'
28     _inherit = ['hr.config.settings', 'fetchmail.config.settings']
29
30     _columns = {
31         'module_document': fields.boolean('Allow the automatic indexation of resumes',
32             help='Manage your CV\'s and motivation letter related to all applicants.\n'
33                  '-This installs the module document_ftp. This will install the knowledge management  module in order to allow you to search using specific keywords through  the content of all documents (PDF, .DOCx...)'),
34         'alias_prefix': fields.char('Default Alias Name for Jobs'),
35         'alias_domain': fields.char('Alias Domain'),
36     }
37
38     _defaults = {
39         'alias_domain': lambda self, cr, uid, context: self.pool['mail.alias']._get_alias_domain(cr, SUPERUSER_ID, [1], None, None)[1],
40     }
41
42     def _find_default_job_alias_id(self, cr, uid, context=None):
43         alias_id = self.pool['ir.model.data'].xmlid_to_res_id(cr, uid, 'hr_recruitment.mail_alias_jobs')
44         if not alias_id:
45             alias_ids = self.pool['mail.alias'].search(
46                 cr, uid, [
47                     ('alias_model_id.model', '=', 'hr.applicant'),
48                     ('alias_force_thread_id', '=', False),
49                     ('alias_parent_model_id.model', '=', 'hr.job'),
50                     ('alias_parent_thread_id', '=', False),
51                     ('alias_defaults', '=', '{}')
52                 ], context=context)
53             alias_id = alias_ids and alias_ids[0] or False
54         return alias_id
55
56     def get_default_alias_prefix(self, cr, uid, ids, context=None):
57         alias_name = False
58         alias_id = self._find_default_job_alias_id(cr, uid, context=context)
59         if alias_id:
60             alias_name = self.pool['mail.alias'].browse(cr, uid, alias_id, context=context).alias_name
61         return {'alias_prefix': alias_name}
62
63     def set_default_alias_prefix(self, cr, uid, ids, context=None):
64         mail_alias = self.pool.get('mail.alias')
65         for record in self.browse(cr, uid, ids, context=context):
66             alias_id = self._find_default_job_alias_id(cr, uid, context=context)
67             if not alias_id:
68                 create_ctx = dict(context, alias_model_name='hr.applicant', alias_parent_model_name='hr.job')
69                 alias_id = self.pool['mail.alias'].create(cr, uid, {'alias_name': record.alias_prefix}, context=create_ctx)
70             else:
71                 mail_alias.write(cr, uid, alias_id, {'alias_name': record.alias_prefix}, context=context)
72         return True