From de0e2ab31325e165081f62dd7acabc631f278726 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Fri, 2 Aug 2013 05:54:34 +0200 Subject: [PATCH] [IMP] website_hr bzr revid: chm@openerp.com-20130802035434-zynhb3ogkozn8ak1 --- addons/website_hr/__openerp__.py | 2 + addons/website_hr/controllers/main.py | 26 +++++++++- addons/website_hr/hr.py | 3 +- .../website_hr/security/ir.model.access.csv | 2 + addons/website_hr/security/website_hr.xml | 15 ++++++ addons/website_hr/static/src/js/hr.js | 33 ++++++++++++- addons/website_hr/views/website_hr.xml | 47 ++++++++++++------- 7 files changed, 108 insertions(+), 20 deletions(-) create mode 100644 addons/website_hr/security/ir.model.access.csv create mode 100644 addons/website_hr/security/website_hr.xml 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 @@