diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index c9f25272648..420366862bd 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -2,14 +2,12 @@ import base64 import json import logging -import urllib import cStringIO -from PIL import Image, ImageOps +from PIL import Image import openerp from openerp.addons.web import http -from openerp.addons.web.controllers.main import manifest_list from openerp.addons.web.http import request import werkzeug import werkzeug.exceptions @@ -17,6 +15,16 @@ import werkzeug.wrappers logger = logging.getLogger(__name__) + +def auth_method_public(): + registry = openerp.modules.registry.RegistryManager.get(request.db) + if not request.session.uid: + request.uid = registry['website'].get_public_user().id + else: + request.uid = request.session.uid +http.auth_methods['public'] = auth_method_public + + class Website(openerp.addons.web.controllers.main.Home): @http.route('/', type='http', auth="admin") def index(self, **kw): @@ -146,4 +154,15 @@ class Website(openerp.addons.web.controllers.main.Home): return response + @http.route(['/website/publish/'], type='http', auth="public") + def publish(self, **post): + _id = int(post['id']) + _object = request.registry[post['object']] + + obj = _object.browse(request.cr, request.uid, _id) + _object.write(request.cr, request.uid, [_id], {'website_published': not obj.website_published}) + obj = _object.browse(request.cr, request.uid, _id) + + return obj.website_published and "1" or "0" + # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index 0deb98a8b20..c83cc5cc1be 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -389,15 +389,7 @@ $(function () { $link.find('.js_publish, .js_unpublish').addClass("hidden"); var $unp = $link.find(".js_unpublish"); var $p = $link.find(".js_publish"); - - var paths = document.location.pathname.split('/'); - var url = '/' + paths[1]; - if (paths[1] === 'page') { - url += '/' + paths[2]; - } - url += '/publish'; - - $.post(url, {'id': $link.data('id')}, function (result) { + $.post('/website/publish', {'id': $link.data('id'), 'object': $link.data('object')}, function (result) { if (+result) { $p.addClass("hidden"); $unp.removeClass("hidden"); diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml index 95341002dc0..e6414f2e5f2 100644 --- a/addons/website/views/views.xml +++ b/addons/website/views/views.xml @@ -455,7 +455,7 @@