1 # -*- coding: utf-8 -*-
2 from openerp.addons.web import http
3 from openerp import SUPERUSER_ID
4 from openerp.addons.web.http import request
5 from openerp.addons.website import website
9 from urllib import quote_plus
11 class website_hr_recruitment(http.Controller):
13 @website.route(['/jobs'], type='http', auth="public")
14 def jobs(self, **post):
15 website = request.registry['website']
16 hr_job_obj = request.registry['hr.job']
18 domain = [(1, '=', 1)] or [('website_published', '=', True)]
19 search = [("state", 'in', ['recruit', 'open'])]
22 jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain)
23 request.cr.execute("select distinct(com.id) from hr_job job, res_company com where com.id=job.company_id")
25 for i in request.cr.fetchall():
27 companies = request.registry['res.company'].browse(request.cr, request.uid, ids)
29 for rec in hr_job_obj.browse(request.cr, request.uid, jobpost_ids):
30 vals[rec.id] = {'count': int(rec.no_of_recruitment), 'date_recruitment': rec.write_date.split(' ')[0]}
32 'companies': companies,
33 'res_job': hr_job_obj.browse(request.cr, request.uid, jobpost_ids),
35 'no_of_jobs': len(hr_job_obj.browse(request.cr, request.uid, jobpost_ids)),
37 return request.webcontext.render("website_hr_recruitment.index", values)
39 @website.route(['/job/detail/<id>'], type='http', auth="public")
40 def detail(self, id=0):
41 id = id and int(id) or 0
42 website = request.registry['website']
44 'job': request.registry['hr.job'].browse(request.cr, request.uid, id)
46 return request.webcontext.render("website_hr_recruitment.detail", values)
48 @website.route(['/job/success'], type='http', auth="admin")
49 def success(self, **post):
50 id = request.registry['hr.applicant'].create(request.cr, request.uid, post)
53 'name': post['ufile'].filename,
54 'datas': base64.encodestring(post['ufile'].read()),
55 'datas_fname': post['ufile'].filename,
56 'res_model': 'hr.applicant',
57 'res_name': post['name'],
60 request.registry['ir.attachment'].create(request.cr, request.uid, attachment_values)
61 website = request.registry['website']
63 'jobid': post['job_id']
65 return request.webcontext.render("website_hr_recruitment.thankyou", values)
67 @website.route('/recruitment/message_get_subscribed', type='json', auth="admin")
68 def message_get_subscribed(self, email, id, mail_group_id):
70 mail_group_id = int(mail_group_id)
71 group_obj = request.registry['mail.group']
72 partner_obj = request.registry['res.partner']
73 partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", email)])
75 partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": email, "name": "Subscribe: %s" % email})]
76 group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read')
77 group_obj.message_subscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids)
80 @website.route('/recruitment/message_get_unsubscribed', type='json', auth="admin")
81 def message_get_unsubscribed(self, email, id, mail_group_id):
82 mail_group_id = int(mail_group_id)
84 partner_obj = request.registry['res.partner']
85 group_obj = request.registry['mail.group']
86 partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", email)])
87 group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read')
88 group_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids)
91 @website.route('/recruitment/published', type='json', auth="admin")
92 def published (self, **post):
93 hr_job = request.registry['hr.job']
95 rec = hr_job.browse(request.cr, request.uid, id)
98 if rec.website_published:
99 vals['state'] = 'recruit'
100 if rec.no_of_recruitment == 0.0:
101 vals ['no_of_recruitment'] = 1.0
103 vals['state'] = 'open'
104 vals ['no_of_recruitment'] = 0.0
106 res = hr_job.write(request.cr, request.uid, [rec.id], vals)
107 obj = hr_job.browse(request.cr, request.uid, id)
108 return { 'count': obj.no_of_recruitment, 'state': obj.state, 'published': obj.website_published }
109 # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: