[IMP] website: change editable and use groups

bzr revid: chm@openerp.com-20131211145930-r0izxh9t0efjwhxh
This commit is contained in:
Christophe Matthieu 2013-12-11 15:59:30 +01:00
parent 5217c8ebe8
commit 2257e8d431
6 changed files with 16 additions and 21 deletions

View File

@ -201,20 +201,15 @@ class website(osv.osv):
return self.pool['website'].browse(cr, uid, 1, context=context)
def preprocess_request(self, cr, uid, ids, request, context=None):
# TODO FP: is_website_publisher and editable in context should be removed
# for performance reasons (1 query per image to load) but also to be cleaner
# I propose to replace this by a group 'base.group_website_publisher' on the
# view that requires it.
Access = request.registry['ir.model.access']
is_website_publisher = Access.check(cr, uid, 'ir.ui.view', 'write', False, context)
lang = request.context['lang']
is_master_lang = lang == request.website.default_lang_code
request.redirect = lambda url: werkzeug.utils.redirect(url_for(url))
request.context.update(
is_master_lang=is_master_lang,
editable=is_website_publisher,
translatable=not is_master_lang,
)
@ -250,7 +245,7 @@ class website(osv.osv):
)
context.update(
inherit_branding=qweb_context.setdefault('editable', False),
inherit_branding=qweb_context,
)
view = self.get_template(cr, uid, ids, template)

View File

@ -8,7 +8,7 @@
<template id="website.themes" name="Themes">
<t t-call="website.layout">
<div id="wrap" t-if="editable">
<div id="wrap" groups="base.group_website_publisher">
<div class="container">
<div class="alert alert-info mt32" t-if="theme_changed">

View File

@ -54,13 +54,8 @@
<!-- Load stylesheets before scripts to avoid blocking -->
<link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/>
<t t-if="editable">
<link rel='stylesheet' href='/website/static/src/css/snippets.css'/>
<link rel='stylesheet' href='/website/static/src/css/editor.css'/>
<link rel='stylesheet' href='/website/static/lib/bootstrap-tour/bootstrap-tour.css'/>
</t>
<t t-call="website.theme"/>
<t t-call="website.theme"/>
<script type="text/javascript" src="/web/static/lib/es5-shim/es5-shim.min.js"></script>
<script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
@ -170,7 +165,7 @@
<t t-esc="lg[1].split('/').pop()"/>
</a>
</li>
<li t-if="editable">
<li groups="base.group_website_publisher">
<t t-set="url_return" t-value="url_for(request.httprequest.path, '[lang]', keep_query='*')"/>
<a t-attf-href="/web#action=base.action_view_base_language_install&amp;website_id=#{website.id}&amp;url_return=#{url_return}">
<i class="fa fa-plus-circle"/>
@ -196,8 +191,13 @@
</html>
</template>
<template id="editor_head" inherit_id="website.layout" name="Editor" groups="base.group_website_designer">
<template id="editor_head" inherit_id="website.layout" name="Editor" groups="base.group_website_publisher">
<xpath expr="//head" position="inside">
<link rel='stylesheet' href='/website/static/src/css/snippets.css'/>
<link rel='stylesheet' href='/website/static/src/css/editor.css'/>
<link rel='stylesheet' href='/website/static/lib/bootstrap-tour/bootstrap-tour.css'/>
<link rel="stylesheet" href="/select2/static/lib/select2/select2.css"/>
<link rel="stylesheet" href="/website/static/lib/select2-bootstrap-css/select2-bootstrap.css"/>
<link rel='stylesheet' href="/web/static/lib/jquery.ui/css/smoothness/jquery-ui-1.9.1.custom.css"/>
@ -273,7 +273,7 @@
</template>
<template id="publish_management">
<div t-if="editable" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''">
<div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''">
<div t-attf-class="btn-group js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
<button class="btn btn-danger js_publish_btn">Not Published</button>
<button class="btn btn-success js_publish_btn">Published</button>
@ -298,7 +298,7 @@
</template>
<template id="publish_short">
<t t-if="editable" t-ignore="true">
<t groups="base.group_website_publisher" t-ignore="true">
<div t-attf-class="btn-group pull-right js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
<button t-attf-class="btn btn-sm btn-#{object.website_published and 'success' or 'danger'} js_publish_btn">
<span class="css_publish">Not Published</span>

View File

@ -20,7 +20,7 @@
<t t-call="website.layout">
<div id="wrap">
<div class="oe_structure"/>
<section t-if="editable">
<section groups="base.group_website_publisher">
<div class="container text-center mt16">
<div class="alert alert-warning alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&amp;times;</button>
@ -100,7 +100,7 @@
<h1>
No blog post yet!
</h1>
<p t-if="editable">
<p groups="base.group_website_publisher">
To create a new blog post, use the top-right menu <em>Content</em>
and select the menuitem <em>New Blog Post</em>.
</p>

View File

@ -54,7 +54,7 @@
<div class="col-md-8 mt32">
<t t-if="partner">
<div t-field="partner.website_description"/>
<t t-if="editable">
<t groups="base.group_website_publisher">
<h2 class="css_non_editable_mode_hidden">Short Description for List View</h2>
<div class="css_non_editable_mode_hidden" t-field="partner.website_short_description"/>
</t>

View File

@ -119,7 +119,7 @@
<div class="oe_product_cart" t-att-data-publish="product.website_published and 'on' or 'off'">
<div class="css_options" t-ignore="true" t-if="editable">
<div class="css_options" t-ignore="true" groups="base.group_website_publisher">
<div t-attf-class="dropdown js_options" t-att-data-id="product.id">
<a class="btn btn-default" t-att-id="'dopprod-%s' % product.id" role="button" data-toggle="dropdown">Options <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" t-att-aria-labelledby="'dopprod-%s' % product.id">