diff --git a/addons/website_hr/__openerp__.py b/addons/website_hr/__openerp__.py
index 5aa9c24d8fb..d0f938da4bb 100644
--- a/addons/website_hr/__openerp__.py
+++ b/addons/website_hr/__openerp__.py
@@ -11,6 +11,8 @@ OpenERP Blog
'depends': ['website', 'hr'],
'data': [
'views/website_hr.xml',
+ 'security/ir.model.access.csv',
+ 'security/website_hr.xml',
],
'qweb': ['static/src/xml/*.xml'],
'installable': True,
diff --git a/addons/website_hr/controllers/main.py b/addons/website_hr/controllers/main.py
index fb63bbcc7ed..cf5d33325bc 100644
--- a/addons/website_hr/controllers/main.py
+++ b/addons/website_hr/controllers/main.py
@@ -6,7 +6,7 @@ from openerp.addons.website import website
class website_hr(http.Controller):
- @http.route(['/team'], type='http', auth="public")
+ @http.route(['/hr'], type='http', auth="public")
def blog(self, **post):
hr_obj = request.registry['hr.employee']
@@ -15,5 +15,27 @@ class website_hr(http.Controller):
'employee_ids': hr_obj.browse(request.cr, request.uid, employee_ids),
}
- html = website.render(request.cr, request.uid, "website_hr.index", values)
+ html = website.render("website_hr.index", values)
return html
+
+ @http.route(['/hr/publish'], type='http', auth="public")
+ def publish(self, **post):
+ obj_id = int(post['id'])
+ data_obj = request.registry['hr.employee']
+
+ obj = data_obj.browse(request.cr, request.uid, obj_id)
+ data_obj.write(request.cr, request.uid, [obj_id], {'website_published': not obj.website_published})
+ obj = data_obj.browse(request.cr, request.uid, obj_id)
+
+ return obj.website_published and "1" or "0"
+
+ @http.route(['/hr/publish_contact'], type='http', auth="public")
+ def publish_contact(self, **post):
+ obj_id = int(post['id'])
+ data_obj = request.registry['hr.employee']
+
+ obj = data_obj.browse(request.cr, request.uid, obj_id)
+ data_obj.write(request.cr, request.uid, [obj_id], {'website_published_on_contact_form': not obj.website_published_on_contact_form})
+ obj = data_obj.browse(request.cr, request.uid, obj_id)
+
+ return obj.website_published_on_contact_form and "1" or "0"
diff --git a/addons/website_hr/hr.py b/addons/website_hr/hr.py
index 3a661f56389..542e03e2a1c 100644
--- a/addons/website_hr/hr.py
+++ b/addons/website_hr/hr.py
@@ -6,6 +6,7 @@ from openerp.osv import osv, fields
class hr(osv.osv):
_inherit = 'hr.employee'
_columns = {
- 'website_important': fields.boolean('Publish', help="Publish also on contact form"),
+ 'website_published': fields.boolean('Available in the website'),
+ 'website_published_on_contact_form': fields.boolean('Publish', help="Publish also on contact form"),
}
diff --git a/addons/website_hr/security/ir.model.access.csv b/addons/website_hr/security/ir.model.access.csv
new file mode 100644
index 00000000000..91c044e1964
--- /dev/null
+++ b/addons/website_hr/security/ir.model.access.csv
@@ -0,0 +1,2 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_hr_employee_public,hr.employee.public,hr.model_hr_employee,base.group_public,1,0,0,0
\ No newline at end of file
diff --git a/addons/website_hr/security/website_hr.xml b/addons/website_hr/security/website_hr.xml
new file mode 100644
index 00000000000..a5c544ba3ca
--- /dev/null
+++ b/addons/website_hr/security/website_hr.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ hr_employee: Public
+
+ ['|', ('visibility', '=', 'public'), ("website_published_on_contact_form", "=", True)]
+
+
+
+
+
+
+
+
diff --git a/addons/website_hr/static/src/js/hr.js b/addons/website_hr/static/src/js/hr.js
index c7a609b0105..1d8e8deac03 100644
--- a/addons/website_hr/static/src/js/hr.js
+++ b/addons/website_hr/static/src/js/hr.js
@@ -1,3 +1,34 @@
$(document).ready(function () {
-
+ $(document).on('click', '.js_publish, .js_unpublish', function (e) {
+ e.preventDefault();
+ var $link = $(this).parent();
+ $link.find('.js_publish, .js_unpublish').addClass("hidden");
+ var $unp = $link.find(".js_unpublish");
+ var $p = $link.find(".js_publish");
+ $.post('/hr/publish', {'id': $link.data('id')}, function (result) {
+ if (+result) {
+ $p.addClass("hidden");
+ $unp.removeClass("hidden");
+ } else {
+ $p.removeClass("hidden");
+ $unp.addClass("hidden");
+ }
+ });
+ });
+ $(document).on('click', '.js_publish_contact, .js_unpublish_contact', function (e) {
+ e.preventDefault();
+ var $link = $(this).parent();
+ $link.find('.js_publish_contact, .js_unpublish_contact').addClass("hidden");
+ var $unp = $link.find(".js_unpublish_contact");
+ var $p = $link.find(".js_publish_contact");
+ $.post('/hr/publish_contact', {'id': $link.data('id')}, function (result) {
+ if (+result) {
+ $p.addClass("hidden");
+ $unp.removeClass("hidden");
+ } else {
+ $p.removeClass("hidden");
+ $unp.addClass("hidden");
+ }
+ });
+ });
});
\ No newline at end of file
diff --git a/addons/website_hr/views/website_hr.xml b/addons/website_hr/views/website_hr.xml
index 356a9f2ba0d..f85d8ed1c0a 100644
--- a/addons/website_hr/views/website_hr.xml
+++ b/addons/website_hr/views/website_hr.xml
@@ -10,7 +10,7 @@
- Team
+ Team
@@ -21,27 +21,42 @@
-
-
+
Team
-