[IMP] website: refact. python for website publish button

bzr revid: chm@openerp.com-20130814084505-5ynbrmfvbu48v7kx
This commit is contained in:
Christophe Matthieu 2013-08-14 10:45:05 +02:00
parent 39d5bced7f
commit ddf32f4f9e
7 changed files with 24 additions and 58 deletions

View File

@ -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:

View File

@ -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");

View File

@ -455,7 +455,7 @@
</template>
<template id="publish">
<a href="#" t-att-data-id="object.id" class="pull-right" t-if="editable">
<a href="#" t-att-data-id="object.id" t-att-data-object="object._name" class="pull-right" t-if="editable" t-ignore="true">
<span t-att-class="'label label-success js_unpublish %%s' %% (not object.website_published and 'hidden' or '')">Unpublish</span>
<span t-att-class="'label label-important js_publish %%s' %% (object.website_published and 'hidden' or '')">Publish</span>
</a>

View File

@ -149,15 +149,3 @@ class website_event(http.Controller):
if not _values:
return werkzeug.utils.redirect("/event/%s/" % event_id)
return werkzeug.utils.redirect("/shop/checkout")
@http.route(['/event/publish'], type='http', auth="public")
def publish(self, **post):
obj_id = int(post['id'])
data_obj = request.registry['event.event']
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"

View File

@ -14,14 +14,3 @@ class website_hr(http.Controller):
'employee_ids': hr_obj.browse(request.cr, request.uid, employee_ids)
})
return website.render("website.aboutus", values)
@http.route(['/page/website.aboutus/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"

View File

@ -67,17 +67,6 @@ class website_mail(http.Controller):
comment_ids = request.registry['mail.group'].get_public_message_ids(request.cr, request.uid, domain=safe_eval(post.get('domain')), order="create_date asc", limit=None)
return simplejson.dumps(request.registry['mail.message'].read(request.cr, request.uid, comment_ids, ['website_published', 'subject', 'res_id']))
@http.route(['/blog/publish'], type='http', auth="public")
def publish(self, **post):
message_id = int(post['id'])
message_obj = request.registry['mail.message']
blog = message_obj.browse(request.cr, request.uid, message_id)
message_obj.write(request.cr, request.uid, [message_id], {'website_published': not blog.website_published})
blog = message_obj.browse(request.cr, request.uid, message_id)
return blog.website_published and "1" or "0"
@http.route(['/blog/<int:mail_group_id>/<int:blog_id>/post'], type='http', auth="public")
def blog_post(self, mail_group_id=None, blog_id=None, **post):
website = request.registry['website']

View File

@ -327,15 +327,4 @@ class Ecommerce(http.Controller):
return website.render("website_sale.payment", values)
@http.route(['/shop/publish/'], type='http', auth="public")
def publish(self, **post):
product_id = int(post['id'])
product_obj = request.registry['product.product']
product = product_obj.browse(request.cr, request.uid, product_id)
product_obj.write(request.cr, request.uid, [product_id], {'website_published': not product.website_published})
product = product_obj.browse(request.cr, request.uid, product_id)
return product.website_published and "1" or "0"
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: