
diff --git a/addons/website_blog/controllers/main.py b/addons/website_blog/controllers/main.py
index 21bdcda9553..feb0544ce31 100644
--- a/addons/website_blog/controllers/main.py
+++ b/addons/website_blog/controllers/main.py
@@ -76,8 +76,6 @@ class WebsiteBlog(http.Controller):
tag_obj = request.registry['blog.tag']
category_obj = request.registry['blog.category']
- current_user = request.registry['res.users'].browse(cr, uid, uid, context=context)
-
tag = None
category = None
blog_post = None
@@ -147,7 +145,6 @@ class WebsiteBlog(http.Controller):
'blog_posts': blog_posts,
'pager': pager,
'nav_list': nav,
- 'current_user': current_user,
'unable_editor': post.get('unable_editor')
}
diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index 2c81dea4644..50108875887 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -214,7 +214,7 @@
Be notified of new blog posts in
-
+
diff --git a/addons/website_hr_recruitment/__init__.py b/addons/website_hr_recruitment/__init__.py
new file mode 100644
index 00000000000..df7b1cd985d
--- /dev/null
+++ b/addons/website_hr_recruitment/__init__.py
@@ -0,0 +1,2 @@
+import controllers
+import recruitment
diff --git a/addons/website_hr_recruitment/__openerp__.py b/addons/website_hr_recruitment/__openerp__.py
new file mode 100644
index 00000000000..6107e903c55
--- /dev/null
+++ b/addons/website_hr_recruitment/__openerp__.py
@@ -0,0 +1,24 @@
+{
+ 'name': 'Career Form',
+ 'category': 'Website',
+ 'version': '1.0',
+ 'summary': 'Job Position',
+ 'description': """
+OpenERP Contact Form
+====================
+
+ """,
+ 'author': 'OpenERP SA',
+ 'depends': ['website', 'hr', 'hr_recruitment', 'website_mail'],
+ 'data': [
+ 'website_hr_recruitment_demo.xml',
+ 'website_hr_recruitment_data.xml',
+ 'views/website_hr_recruitment.xml',
+ 'security/ir.model.access.csv',
+ 'security/website_hr_recruitment_security.xml',
+ ],
+ 'css':[
+ 'static/src/css/*.css'
+ ],
+ 'installable': True,
+}
diff --git a/addons/website_hr_recruitment/controllers/__init__.py b/addons/website_hr_recruitment/controllers/__init__.py
new file mode 100644
index 00000000000..e11f9ba81bb
--- /dev/null
+++ b/addons/website_hr_recruitment/controllers/__init__.py
@@ -0,0 +1,3 @@
+import main
+
+# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/website_hr_recruitment/controllers/main.py b/addons/website_hr_recruitment/controllers/main.py
new file mode 100644
index 00000000000..0cae26fb3cf
--- /dev/null
+++ b/addons/website_hr_recruitment/controllers/main.py
@@ -0,0 +1,104 @@
+# -*- coding: utf-8 -*-
+from openerp.addons.web import http
+from openerp.addons.web.http import request
+from openerp.addons.website.models import website
+import base64
+
+
+class website_hr_recruitment(http.Controller):
+
+ @website.route(['/jobs', '/jobs/page/
/', '/department//', '/department//page//'], type='http', auth="public")
+ def jobs(self, id=0, page=1, **post):
+ id = id and int(id) or 0
+ hr_job_obj = request.registry['hr.job']
+ hr_department_obj = request.registry['hr.department']
+
+ domain = [("state", 'in', ['recruit', 'open'])]
+ if id != 0:
+ domain += [('department_id','=', id)]
+ jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain)
+ request.cr.execute("SELECT DISTINCT(hr_job.company_id) FROM hr_job WHERE hr_job.company_id IS NOT NULL")
+ ids = []
+ for i in request.cr.fetchall():
+ ids.append(i[0])
+ companies = request.registry['res.company'].browse(request.cr, request.uid, ids)
+
+ vals = {}
+ for rec in hr_job_obj.browse(request.cr, request.uid, jobpost_ids):
+ vals[rec.id] = {'count': int(rec.no_of_recruitment), 'date_recruitment': rec.write_date.split(' ')[0]}
+
+ department_ids = []
+ request.cr.execute("SELECT * FROM hr_department")
+ for i in request.cr.fetchall():
+ department_ids.append(i[0])
+ active = id
+
+ step = 10
+ pager = request.website.pager(url="/jobs/", total=len(jobpost_ids), page=page, step=step, scope=5)
+ jobpost_ids = hr_job_obj.search(request.cr, request.uid, domain, limit=step, offset=pager['offset'])
+
+ values = {
+ 'active': active,
+ 'companies': companies,
+ 'res_job': hr_job_obj.browse(request.cr, request.uid, jobpost_ids),
+ 'departments': hr_department_obj.browse(request.cr, request.uid, department_ids),
+ 'vals': vals,
+ 'pager': pager
+ }
+ return request.website.render("website_hr_recruitment.index", values)
+
+ @website.route(['/job/detail/'], type='http', auth="public")
+ def detail(self, id=0):
+ id = id and int(id) or 0
+ values = {
+ 'job': request.registry['hr.job'].browse(request.cr, request.uid, id),
+ 'vals_date': request.registry['hr.job'].browse(request.cr, request.uid, id).write_date.split(' ')[0]
+ }
+ return request.website.render("website_hr_recruitment.detail", values)
+
+ @website.route(['/job/success'], type='http', auth="admin")
+ def success(self, **post):
+ id = request.registry['hr.applicant'].create(request.cr, request.uid, post)
+ if post['ufile']:
+ attachment_values = {
+ 'name': post['ufile'].filename,
+ 'datas': base64.encodestring(post['ufile'].read()),
+ 'datas_fname': post['ufile'].filename,
+ 'res_model': 'hr.applicant',
+ 'res_name': post['name'],
+ 'res_id': id
+ }
+ request.registry['ir.attachment'].create(request.cr, request.uid, attachment_values)
+ website = request.registry['website']
+ values = {
+ 'jobid': post['job_id']
+ }
+ return request.website.render("website_hr_recruitment.thankyou", values)
+
+ @website.route(['/apply/'], type='http', auth="public")
+ def applyjobpost(self, id=0):
+ id = id and int(id) or 0
+ job = request.registry['hr.job'].browse(request.cr, request.uid, id)
+ values = {
+ 'job': job
+ }
+ return request.website.render("website_hr_recruitment.applyjobpost", values)
+
+ @website.route('/recruitment/published', type='json', auth="admin")
+ def published (self, id, **post):
+ hr_job = request.registry['hr.job']
+ id = int(id)
+ rec = hr_job.browse(request.cr, request.uid, id)
+ vals = {}
+
+ if rec.website_published:
+ vals['state'] = 'recruit'
+ if not rec.no_of_recruitment:
+ vals ['no_of_recruitment'] = 1.0
+ else:
+ vals['state'] = 'open'
+ hr_job.write(request.cr, request.uid, [rec.id], vals, context=request.context)
+
+ obj = hr_job.browse(request.cr, request.uid, id, context=request.context)
+ return { 'count': obj.no_of_recruitment, 'state': obj.state, 'published': obj.website_published }
+# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/website_hr_recruitment/recruitment.py b/addons/website_hr_recruitment/recruitment.py
new file mode 100644
index 00000000000..c5865f9d22e
--- /dev/null
+++ b/addons/website_hr_recruitment/recruitment.py
@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+
+from openerp.osv import osv, fields
+
+# defined for access rules
+class hr_job(osv.osv):
+ _inherit = "hr.job"
+ _columns = {
+ 'write_date': fields.datetime('Update Date', readonly=True),
+ 'website_published': fields.boolean('Available in the website'),
+ 'website_description': fields.html('Description for the website'),
+ }
diff --git a/addons/website_hr_recruitment/security/ir.model.access.csv b/addons/website_hr_recruitment/security/ir.model.access.csv
new file mode 100644
index 00000000000..99250dc248f
--- /dev/null
+++ b/addons/website_hr_recruitment/security/ir.model.access.csv
@@ -0,0 +1,4 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_job_public,hr.job.public,hr.model_hr_job,base.group_public,1,0,0,0
+access_hr_department_public,hr.department.public,hr.model_hr_department,base.group_public,1,0,0,0
+access_hr_applicant_public,hr.applicant.public,hr_recruitment.model_hr_applicant,base.group_public,1,0,0,0
diff --git a/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml b/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml
new file mode 100644
index 00000000000..42b2b987578
--- /dev/null
+++ b/addons/website_hr_recruitment/security/website_hr_recruitment_security.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ Job Positions: Public
+
+ [('website_published', '=', True)]
+
+
+
+
+
+
+
+
diff --git a/addons/website_hr_recruitment/static/src/img/1010054_10151543538268963_186969588_n.jpg b/addons/website_hr_recruitment/static/src/img/1010054_10151543538268963_186969588_n.jpg
new file mode 100644
index 00000000000..3267c63cb62
Binary files /dev/null and b/addons/website_hr_recruitment/static/src/img/1010054_10151543538268963_186969588_n.jpg differ
diff --git a/addons/website_hr_recruitment/static/src/img/1017407_10151536656083963_857938319_n.jpg b/addons/website_hr_recruitment/static/src/img/1017407_10151536656083963_857938319_n.jpg
new file mode 100644
index 00000000000..84f904bf5b8
Binary files /dev/null and b/addons/website_hr_recruitment/static/src/img/1017407_10151536656083963_857938319_n.jpg differ
diff --git a/addons/website_hr_recruitment/static/src/img/1044326_10151536655788963_587131144_n.jpg b/addons/website_hr_recruitment/static/src/img/1044326_10151536655788963_587131144_n.jpg
new file mode 100644
index 00000000000..932214258fa
Binary files /dev/null and b/addons/website_hr_recruitment/static/src/img/1044326_10151536655788963_587131144_n.jpg differ
diff --git a/addons/website_hr_recruitment/static/src/img/882207_10151545507603963_1381082528_o.jpg b/addons/website_hr_recruitment/static/src/img/882207_10151545507603963_1381082528_o.jpg
new file mode 100644
index 00000000000..e0a4c12220c
Binary files /dev/null and b/addons/website_hr_recruitment/static/src/img/882207_10151545507603963_1381082528_o.jpg differ
diff --git a/addons/website_hr_recruitment/static/src/js/recruitment.js b/addons/website_hr_recruitment/static/src/js/recruitment.js
new file mode 100644
index 00000000000..b402d777e02
--- /dev/null
+++ b/addons/website_hr_recruitment/static/src/js/recruitment.js
@@ -0,0 +1,11 @@
+$(function () {
+ $(this).ajaxComplete(function(event, xhr, settings) {
+ var data = JSON.parse(settings.data).params;
+ if (settings.url == "/website/publish") {
+ var $data = $(".oe_website_hr_recruitment .js_publish_management[data-id='" + data.id + "'][data-object='" + data.object + "']");
+ if ($data.length) {
+ settings.jsonpCallback = openerp.jsonRpc('/recruitment/published', 'call', data);
+ }
+ }
+ });
+});
diff --git a/addons/website_hr_recruitment/views/website_hr_recruitment.xml b/addons/website_hr_recruitment/views/website_hr_recruitment.xml
new file mode 100644
index 00000000000..420bed6609b
--- /dev/null
+++ b/addons/website_hr_recruitment/views/website_hr_recruitment.xml
@@ -0,0 +1,192 @@
+
+
+
+
+ Jobs
+ public
+ Job Posts on your website
+
+
+
+
+
+
+
+
+
+ Jobs
+
+
+
+
+
+
+
+
+
+
+ Job Detail
+
+
+
+
+
+
+ Apply Job
+
+
+
+
+
+ Thank You!
+
+
+
You have successfully applied for job.
+
+
+
+
+
+
+
+
+
+ col-md-9
+
+
+
+
Departments
+
+
+
+
+
diff --git a/addons/website_hr_recruitment/website_hr_recruitment_data.xml b/addons/website_hr_recruitment/website_hr_recruitment_data.xml
new file mode 100644
index 00000000000..58a6130830f
--- /dev/null
+++ b/addons/website_hr_recruitment/website_hr_recruitment_data.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ Website Recruitment Form
+ self
+ /jobs
+
+
+
+
+
diff --git a/addons/website_hr_recruitment/website_hr_recruitment_demo.xml b/addons/website_hr_recruitment/website_hr_recruitment_demo.xml
new file mode 100644
index 00000000000..214cf6c4d74
--- /dev/null
+++ b/addons/website_hr_recruitment/website_hr_recruitment_demo.xml
@@ -0,0 +1,930 @@
+
+
+
+
+
+ True
+ 5
+
+
+
+
+
+
You will be responsible for developing and improving product communication. You will work autonomously as well as coordinate and supervise small distributed development teams for specific projects. You will become a techinical expert of the product.
+
We are looking for a passionated marketer manager to help us make products people love to use. We need someone who is ambitious, passionated, and ..... not afraid to start new things, a lot of new things and scale them.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+ - Hire a team of great marketing people
+ - Increase the visibility of the product
+ - Increase opportunities
+ - Improve our communication to customers
+ - Transform our product into a suite of well positioned business Apps
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - Write attractive content
+ - Define a clear communication strategy
+ - Scale our events organization all around the world
+ - Launch new marketing campaigns and offers
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - You are creative
+ - You have an affinity with the product
+ - You are ready to work in a dynamic company
+ - You are approachable, honest and fun team player
+ - You have an affinity with the IT world
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic developers. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+ True
+ 5
+
+
+
+
+
+ You will be responsible for developing and improving applications, such as the You will work autonomously as well as coordinate and supervise small distributed development teams for specific projects. You will become a technical expert of the product.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+ - You will work closely with all developers
+ - You will report to the head of R&D
+ - You will initially be coached by senior developers
+ - You will become a technical expert of the product.
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - Master or engineer in computer science
+ - Preferably 1 year of experience
+ - Good knowledge of object oriented programming
+ - Good knowledge of web design
+ - Good knowledge of HTML and Javascript
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - Good knowledge of the programming language
+ - Good knowledge of the latest web technologies
+ - Good language skills in an other langages
+ - Contributions to open source projects
+ - Passion for the Internet and its culture
+ - Quick and autonomous learner
+ - Team spirit and good communication
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic developers. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+ True
+ 5
+
+
+
+
+
+ We are looking for a motivated and results-driven Functional Consultant! You will take part in the consulting services we provide to our partners and customers, on the functional side. Your job start from the quotation to the customer to the delivery to the customer. You listen the customer and try to give him the best service. You report to the head of consulting service and will be coached by a senior consultant.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+ - Take part in the consulting services
+ - Analyse needs, write specification documents and quotation
+ - Quantify and negotiate the resources required
+ - Follow and check the development part
+ - Help with the configuration of the software
+ - Deliver generic OpenERP functional training sessions
+ - Will report to the Head of Professional Services
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - You have a Master degree in Business Management
+ - You have 2 or 3 years of experience
+ - You speak fluently French and English
+ - You are an excellent communicator and negotiator
+ - You have an affinity with the IT world
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - You have good knowledge in accounting
+ - You are available immediately
+ - You speak a third language
+ - You are a quick and autonomous learner
+ - You are ready to travel in US
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+ A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic developers. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
You will be responsible for developing and improving product communication. You will work autonomously as well as coordinate and supervise small distributed development teams for specific projects. You will become a techinical expert of the product.
+
We are looking for a passionated executive manager to help us make products people love to use. We need someone who is ambitious, passionated, and ..... not afraid to start new things, a lot of new things and scale them.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+ - Hire a team of great executive people
+ - Increase the visibility of the product
+ - Increase opportunities
+ - Improve our communication to customers
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - Write attractive content and build up executive materials
+ - Define a clear communication strategy
+ - Scale our events organization all around the world
+ - Launch new products, marketing campaigns and offers
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - You are creative
+ - You have an affinity with the product
+ - You are ready to work in a dynamic company
+ - You are approachable, honest and fun team player
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+ A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic developers. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ You will be responsible for developing and improving applications, such as the You will work autonomously as well as coordinate and supervise small distributed development teams for specific projects. You will become a technical expert of the product.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+
+ - You will work closely with all technical officer
+ - You will report to the head of R&D
+ - You will initially be coached by senior technical officer
+ - You will become a technical expert of the product.
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - Master or engineer in computer science
+ - Preferably 1 year of experience
+ - Good knowledge of object oriented programming
+ - Good knowledge of web design
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - Good knowledge of the programming language
+ - Good knowledge of the latest web technologies
+ - Good language skills in an other langages
+ - Contributions to open source projects
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+ A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic chief technical officer. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ You will be responsible for developing and improving applications, such as the You will work autonomously as well as coordinate and supervise small distributed development teams for specific projects. You will become a technical expert of the product.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+
+ - You will work closely with all trainees
+ - You will report to the head of R&D
+ - You will initially be coached by senior trainees
+ - You will become a technical expert of the product.
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - Master or engineer in computer science
+ - Preferably 1 year of experience
+ - Good knowledge of object oriented programming
+ - Good knowledge of web design
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - Good knowledge of the programming language
+ - Good knowledge of the latest web technologies
+ - Good language skills in an other langages
+ - Contributions to open source projects
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+ A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic trainees. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
You will be responsible for developing and improving product communication. You will work autonomously as well as coordinate and supervise small distributed development teams for specific projects. You will become a techinical expert of the product.
+
We are looking for a passionated Human Resources Manager to help us make products people love to use. We need someone who is ambitious, passionated, and ..... not afraid to start new things, a lot of new things and scale them.
+
+
+
+
+
+
+
+
+
+
+
+
Responsibilities
+
+ What you will do ...
+
+
+
+
+ - Hire a team of great Human Resources people
+ - Increase the visibility of the product
+ - Increase opportunities
+ - Improve our communication to customers
+
+
+
+
+
+
+
+
+
Skills
+
+ Must have ...
+
+
+
+
+ - Write attractive content and build up Human Resources materials
+ - Define a clear communication strategy
+ - Scale our events organization all around the world
+ - Launch new products, Human Resources campaigns and offers
+
+
+
+
+
+
+
+
+
Nice to have
+
+ Close to the perfection ...
+
+
+
+
+ - You are creative
+ - You have an affinity with the product
+ - You are ready to work in a dynamic company
+ - You are approachable, honest and fun team player
+
+
+
+
+
+
+
+
+
+
+
+
What we offer
+ A good job in a young and dynamic team
+
+
+
+ A full time job, with an attractive salary package in a small team of smart people. You will start contract with a full technical and functional training. If you are passionate, motivate and flexible apply for this job, you will certainly join the best company ever.
+
With our product, which is a suite of 3000 business apps. It is fully open source, full featured and it’s online offer is 3 times cheaper than traditional competitors. We have 2.000.000 users, and we're growing fast.
+
Because of our constant growth, we're now looking for people to reinforce our team of enthusiastic developers. So if working on an open source project in a friendly and cooperative atmosphere sounds like fun to you, read on...
+
+
+
+
+
+
+
+
+
Our staff at work
+ Pictures of smart and enthusiastic people
+
+
+
+

+
+
+

+
+
+

+
+
+

+
+
+
+
+
+
+
+
+
diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py
index 64c627df007..f9a7f0718dc 100644
--- a/addons/website_mail/controllers/main.py
+++ b/addons/website_mail/controllers/main.py
@@ -40,12 +40,12 @@ class WebsiteMail(http.Controller):
partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id]
return partner_ids
- @website.route(['/website_mail/follow/'], type='http', auth="public")
- def website_message_subscribe(self, **post):
- _id = int(post['id'])
- _message_is_follower = post['message_is_follower'] == 'on'
- _object = request.registry[post['object']]
- partner_ids = self._find_or_create_partner(post.get('email'), request.context)
+ @website.route(['/website_mail/follow/'], type='json', auth="public")
+ def website_message_subscribe(self, id=0, object=None, message_is_follower="on", email=False, **post):
+ _id = int(id)
+ _message_is_follower = message_is_follower == 'on'
+ _object = request.registry[object]
+ partner_ids = self._find_or_create_partner(email, request.context)
if _message_is_follower:
_object.check_access_rule(request.cr, request.uid, [_id], 'read', request.context)
@@ -55,4 +55,4 @@ class WebsiteMail(http.Controller):
_object.message_subscribe(request.cr, SUPERUSER_ID, [_id], partner_ids, context=request.context)
obj = _object.browse(request.cr, request.uid, _id)
- return obj.message_is_follower and "1" or "0"
+ return obj.message_is_follower and 1 or 0
diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail/static/src/js/website_mail.js
index 91cb63fab5b..d0ce8276308 100644
--- a/addons/website_mail/static/src/js/website_mail.js
+++ b/addons/website_mail/static/src/js/website_mail.js
@@ -15,12 +15,12 @@ $(document).ready(function () {
var $email = $data.first().siblings(".js_follow_email");
var message_is_follower = $data.first().attr("data-follow");
$data.attr("data-follow", message_is_follower == 'off' ? 'on' : 'off');
- $.post('/website_mail/follow', {
+ openerp.jsonRpc('/website_mail/follow', 'call', {
'id': $(this).data('id'),
'object': $(this).data('object'),
'message_is_follower': message_is_follower,
'email': $email && $email.val() || false,
- }, function (result) {
+ }).then(function (result) {
$data.attr("data-follow", + result ? 'on' : 'off');
});
});