diff --git a/addons/website_hr_recruitment/controllers/main.py b/addons/website_hr_recruitment/controllers/main.py index 40a412a50d6..cf97b3332a1 100644 --- a/addons/website_hr_recruitment/controllers/main.py +++ b/addons/website_hr_recruitment/controllers/main.py @@ -8,21 +8,72 @@ from urllib import quote_plus class website_hr_recruitment(http.Controller): @http.route(['/jobs'], type='http', auth="public") - def career(self, **post): + def jobs(self, mail_group_id=None, job_id=None, **post): website = request.registry['website'] - jobpost_ids = request.registry['hr.job'].search(request.cr, request.uid, [("state", "=", 'recruit')]) + hr_job_obj = request.registry['hr.job'] + group_obj = request.registry['mail.group'] + user_obj = request.registry['res.users'] + + jobpost_ids = hr_job_obj.search(request.cr, request.uid, [("state", 'in', ['recruit', 'open'])]) request.cr.execute("select distinct(com.id) from hr_job job, res_company com where com.id=job.company_id") - ids = [] + ids = [] for i in request.cr.fetchall(): ids.append(i[0]) companies = request.registry['res.company'].browse(request.cr, request.uid, ids) values = website.get_rendering_context({ 'companies': companies, - 'res_job': request.registry['hr.job'].browse(request.cr, request.uid, jobpost_ids) + 'res_job': hr_job_obj.browse(request.cr, request.uid, jobpost_ids), + 'subscribe': post.get('subscribe'), + 'job_id': None, + 'no_of_jobs': len(hr_job_obj.browse(request.cr, request.uid, jobpost_ids)), }) + if request.uid != website.get_public_user().id and mail_group_id: + message_follower_ids = group_obj.read(request.cr, request.uid, [mail_group_id], ['message_follower_ids'])[0]['message_follower_ids'] + parent_id = user_obj.browse(request.cr, SUPERUSER_ID, request.uid).partner_id.id + values['subscribe'] = parent_id in message_follower_ids + + if job_id: + values['job_id'] = hr_job_obj.browse(request.cr, request.uid, job_id) + html = website.render("website_hr_recruitment.jobs", values) return html + @http.route(['/jobs/subscribe'], type='http', auth="public") + def subscribe(self, mail_group_id=None, **post): + website = request.registry['website'] + partner_obj = request.registry['res.partner'] + group_obj = request.registry['mail.group'] + user_obj = request.registry['res.users'] + + if mail_group_id and 'subscribe' in post and (post.get('email') or request.uid != website.get_public_user().id): + if request.uid == website.get_public_user().id: + partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))]) + if not partner_ids: + partner_ids = [partner_obj.create(request.cr, SUPERUSER_ID, {"email": post.get('email'), "name": "Subscribe: %s" % post.get('email')})] + else: + partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id] + group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read') + group_obj.message_subscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids) + + return self.jobs(mail_group_id=mail_group_id, subscribe=post.get('email')) + + @http.route(['/jobs/unsubscribe'], type='http', auth="public") + def unsubscribe(self, mail_group_id=None, **post): + website = request.registry['website'] + partner_obj = request.registry['res.partner'] + group_obj = request.registry['mail.group'] + user_obj = request.registry['res.users'] + + if mail_group_id and 'unsubscribe' in post and (post.get('email') or request.uid != website.get_public_user().id): + if request.uid == website.get_public_user().id: + partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", post.get('email'))]) + else: + partner_ids = [user_obj.browse(request.cr, request.uid, request.uid).partner_id.id] + group_obj.check_access_rule(request.cr, request.uid, [mail_group_id], 'read') + group_obj.message_unsubscribe(request.cr, SUPERUSER_ID, [mail_group_id], partner_ids) + + return self.jobs(mail_group_id=mail_group_id, subscribe=None) + @http.route(['/job/detail/'], type='http', auth="public") def detail(self, id=0): id = id and int(id) or 0 diff --git a/addons/website_hr_recruitment/views/website_hr_recruitment.xml b/addons/website_hr_recruitment/views/website_hr_recruitment.xml index acaf0cfa68f..0a02ecba2c8 100644 --- a/addons/website_hr_recruitment/views/website_hr_recruitment.xml +++ b/addons/website_hr_recruitment/views/website_hr_recruitment.xml @@ -20,33 +20,57 @@ - - - - - - - - - - - - - + + + +
Post Name
-
-
- No of Position:
- -
- Location:
- ✆ -
+ + + - - -

Post Name

+ + + + + +
+
+ No of Position: Right now no recruitment is going on.

+ + Location:
+ ✆
+ +
+ You may also be interested in our others job positions, for which we don't have availabilities right now.
+ Follow the positions that interests you and we will send you an email when the position is available.


+
+ + +
+
+
+ + Oh great! You are successfully subscribed email notifications for a job. +
+ + +
+
+ + + + + + +
+ + +
+ + +

"Thank you for your interest, but right now there is no job openings available in our company. Please check back after some time."

@@ -67,7 +91,7 @@

Description

-

+

@@ -113,7 +137,7 @@ Thank You!