var website = openerp.website;
var _t = openerp._t;
+ website.no_editor = !!$(document.documentElement).data('editable-no-editor');
website.add_template_file('/website/static/src/xml/website.editor.xml');
website.dom_ready.done(function () {
this.$('#website-top-edit').hide();
this.$('#website-top-view').show();
+ if (website.no_editor) {
+ var help_text = $(document.documentElement).data('editable-no-editor');
+ this.$('button[data-action=edit]')
+ .prop('disabled', website.no_editor)
+ .parent()
+ // help must be set on form above button because it does
+ // not appear on disabled button
+ .attr('title', help_text);
+ }
+
+
$('.dropdown-toggle').dropdown();
this.customize_setup();
<span class="icon-bar"></span>
</button>
<form class="navbar-form navbar-left">
- <button type="button" data-action="edit" class="btn btn-primary hidden">Edit</button>
+ <button type="button" data-action="edit"
+ class="btn btn-primary hidden">Edit</button>
</form>
</div>
<div class="collapse navbar-collapse navbar-edit-collapse">
<html t-att-lang="lang and lang.replace('_', '-')"
t-att-data-website-id="website.id if editable else None"
t-att-data-editable="'1' if editable else None"
+ t-att-data-editable-no-editor="editable_no_editor or None"
t-att-data-translatable="'1' if translatable else None"
t-att-data-view-xmlid="xmlid if editable else None"
t-att-data-main-object="repr(main_object) if editable else None"
<xpath expr="//body" position="inside">
<div id="website-top-navbar-placeholder" class="navbar navbar-inverse navbar-fixed-top hidden-xs">
<div class="navbar-header">
- <form class="navbar-form navbar-left">
- <button type="button" class="btn btn-primary">Edit</button>
+ <form class="navbar-form navbar-left" title="editable_no_editor or None">
+ <button type="button" class="btn btn-primary"
+ disabled="'disabled' if editable_no_editor else None"
+ >Edit</button>
</form>
</div>
<div class="collapse navbar-collapse navbar-edit-collapse">
cr = qwebcontext.get('request') and qwebcontext['request'].cr or None
uid = qwebcontext.get('request') and qwebcontext['request'].uid or None
can_see = self.user_has_groups(cr, uid, groups=attribute_value) if cr and uid else False
- if not can_see:
- return ''
- continue
+ if can_see:
+ continue
+ if qwebcontext.get('editable') and not qwebcontext.get('editable_no_editor'):
+ errmsg = _("Editor disabled because some content can not be seen by a user who does not belong to the groups %s")
+ raise openerp.http.Retry(
+ _("User does not belong to groups %s") % attribute_value, {
+ 'editable_no_editor': errmsg % attribute_value
+ })
+ return ''
if isinstance(attribute_value, unicode):
attribute_value = attribute_value.encode("utf8")
for current_node in element.childNodes:
try:
g_inner.append(self.render_node(current_node, qwebcontext))
- except QWebException:
+ except (QWebException, openerp.http.Retry):
raise
except Exception:
template = qwebcontext.get('__template__')