From f2fa5b5e6204d8fda81fa372226d1286353a8bf7 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 25 Nov 2013 14:52:11 +0100 Subject: [PATCH] [IMP] website_hr_recruitment: only iterate once on jobs to get addresses and departments, extract browsing bzr revid: xmo@openerp.com-20131125135211-mwuoj4g0474r4byn --- .../controllers/main.py | 31 ++++++++++--------- .../src/js/website_hr_recruitment.editor.js | 4 +-- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/addons/website_hr_recruitment/controllers/main.py b/addons/website_hr_recruitment/controllers/main.py index 67eeeb34461..4572f828238 100644 --- a/addons/website_hr_recruitment/controllers/main.py +++ b/addons/website_hr_recruitment/controllers/main.py @@ -16,29 +16,24 @@ class website_hr_recruitment(http.Controller): '/jobs/department/', '/jobs/office/' ], type='http', auth="public", multilang=True) - def jobs(self, department=None, office=None, page=0): - hr_job_obj = request.registry['hr.job'] - domain = [] - jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain, order="website_published desc,no_of_recruitment desc", context=request.context) - jobs = hr_job_obj.browse(request.cr, request.uid, jobpost_ids, request.context) + def jobs(self, department=None, office=None): + jobs = self._browse_jobs([]) departments = set() + offices = set() for job in jobs: if job.department_id: departments.add(job.department_id) - - offices = set() - for job in jobs: if job.address_id: offices.add(job.address_id) if department or office: - if office: - domain += [('address_id','=', office.id)] + domain = [] if department: - domain += [('department_id','=', department.id)] - jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain, order="website_published desc,no_of_recruitment desc", context=request.context) - jobs = hr_job_obj.browse(request.cr, request.uid, jobpost_ids, request.context) + domain.append(('department_id','=', department.id)) + if office: + domain.append(('address_id','=', office.id)) + jobs = self._browse_jobs(domain) return request.website.render("website_hr_recruitment.index", { 'jobs': jobs, @@ -69,7 +64,7 @@ class website_hr_recruitment(http.Controller): try: model, source_id = imd.get_object_reference(request.cr, request.uid, 'hr_recruitment', 'source_website_company') data['source_id'] = source_id - except ValueError, e: + except ValueError: pass jobid = request.registry['hr.applicant'].create(request.cr, request.uid, data, context=request.context) @@ -107,3 +102,11 @@ class website_hr_recruitment(http.Controller): }, context=request.context) return request.redirect("/job/detail/%s/?enable_editor=1" % job_id) + + def _browse_jobs(self, domain): + Jobs = request.registry['hr.job'] + jobpost_ids = Jobs.search(request.cr, request.uid, domain, + order="website_published desc,no_of_recruitment desc", + context=request.context) + jobs = Jobs.browse(request.cr, request.uid, jobpost_ids, context=request.context) + return jobs diff --git a/addons/website_hr_recruitment/static/src/js/website_hr_recruitment.editor.js b/addons/website_hr_recruitment/static/src/js/website_hr_recruitment.editor.js index 873a6e60901..aaa39bb16fd 100644 --- a/addons/website_hr_recruitment/static/src/js/website_hr_recruitment.editor.js +++ b/addons/website_hr_recruitment/static/src/js/website_hr_recruitment.editor.js @@ -1,6 +1,6 @@ (function() { "use strict"; - var website = openerp.website; - website.add_template_file('/website_hr_recruitment/static/src/xml/website_hr_recruitment.xml'); + openerp.website.add_template_file( + '/website_hr_recruitment/static/src/xml/website_hr_recruitment.xml'); })();