[WIP] website: add website_button widget in backend to publish and go back to the website. (need bootstrap 3 for layout)
bzr revid: chm@openerp.com-20131202124504-78zvm5t0p1hpsn53
This commit is contained in:
parent
b51daf482b
commit
c1f306dd96
|
@ -58,11 +58,11 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="Events" version="7.0">
|
||||
<header>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight" groups="base.group_user"/>
|
||||
<button string="Finish Event" name="button_done" states="confirm" type="object" class="oe_highlight" groups="base.group_user"/>
|
||||
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object" groups="base.group_user"/>
|
||||
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object" groups="base.group_user"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_right oe_button_box" groups="base.group_user">
|
||||
|
|
|
@ -22,5 +22,8 @@ OpenERP Website CMS
|
|||
],
|
||||
'demo': [
|
||||
'data/website_demo.xml',
|
||||
]
|
||||
],
|
||||
'js': ['static/src/js/website.backend.js'],
|
||||
'qweb' : ['static/src/xml/website.backend.xml'],
|
||||
'css': ['static/src/css/website.backend.css'],
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.oe_WidgetWebsiteButton .btn-danger .oe_publish {
|
||||
display: none;
|
||||
}
|
||||
.oe_WidgetWebsiteButton .btn-success .oe_unpublish {
|
||||
display: none;
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
openerp.website = function(instance) {
|
||||
var _t = instance.web._t;
|
||||
|
||||
instance.web.form.WidgetWebsiteButton = instance.web.form.AbstractField.extend({
|
||||
template: 'WidgetWebsiteButton',
|
||||
render_value: function() {
|
||||
this._super();
|
||||
this.$("button:first")
|
||||
.toggleClass("btn-success", this.get_value())
|
||||
.toggleClass("btn-danger", !this.get_value());
|
||||
this.$("a:first").attr("href", this.view.datarecord.website_url || "/" );
|
||||
if (this.node.attrs.class) {
|
||||
this.$el.addClass(this.node.attrs.class);
|
||||
}
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
this._super.apply(this, arguments);
|
||||
|
||||
this.$("button:first").on("click", function () {
|
||||
console.log("click", !!$(this).hasClass("btn-danger"));
|
||||
self.set_value(!!$(this).hasClass("btn-danger"));
|
||||
return self.view.recursive_save();
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.form.widgets = instance.web.form.widgets.extend({
|
||||
'website_button': 'instance.web.form.WidgetWebsiteButton',
|
||||
});
|
||||
|
||||
};
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- vim:fdl=1:
|
||||
-->
|
||||
<templates id="template" xml:space="preserve">
|
||||
|
||||
<t t-name="WidgetWebsiteButton">
|
||||
|
||||
<div class="btn-group oe_WidgetWebsiteButton">
|
||||
<button class="btn btn-success">
|
||||
<span class="oe_unpublish">Not Published</span>
|
||||
<span class="oe_publish">Published</span>
|
||||
</button>
|
||||
<button id="dopprod-6" data-toggle="dropdown" type="button" class="btn btn-default dropdown-toggle">
|
||||
<span class="caret"></span>
|
||||
</button>
|
||||
<ul role="menu" class="dropdown-menu" aria-labelledby="dopprod-6">
|
||||
<li>
|
||||
<a href="#" title="View in frontend">Website</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</t>
|
||||
|
||||
</templates>
|
|
@ -106,7 +106,7 @@ class event(osv.osv):
|
|||
string='Website Messages',
|
||||
help="Website communication history",
|
||||
),
|
||||
'website_url': fields.function(_website_url, string="Website url"),
|
||||
'website_url': fields.function(_website_url, string="Website url", type="char"),
|
||||
'show_menu': fields.function(_get_show_menu, fnct_inv=_set_show_menu, type='boolean', string='Dedicated Menu'),
|
||||
'menu_id': fields.many2one('website.menu', 'Event Menu'),
|
||||
}
|
||||
|
|
|
@ -8,19 +8,11 @@
|
|||
<field name="inherit_id" ref="event.view_event_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- add state field in header -->
|
||||
<xpath expr="//sheet" position="before">
|
||||
<div class="oe_form_box_info oe_text_center">
|
||||
<p attrs="{'invisible': [('website_published', '=', True)]}">
|
||||
This event is <b>not available</b> for public user in your website.
|
||||
</p>
|
||||
<p attrs="{'invisible': [('website_published', '=', False)]}">
|
||||
This event is <b>available</b> for public user in your website.
|
||||
</p>
|
||||
<p>Website view: <field class="oe_inline" name="website_url" widget="url"/></p>
|
||||
</div>
|
||||
<xpath expr="//sheet/div" position="before">
|
||||
<field name="website_url" invisible="1"/>
|
||||
<field name="website_published" class="pull-right" widget="website_button"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='organizer_id']" position="after">
|
||||
<field name="website_published"/>
|
||||
<field name="twitter_hashtag"/>
|
||||
</xpath>
|
||||
</field>
|
||||
|
|
|
@ -57,7 +57,7 @@ class product_template(osv.Model):
|
|||
'website_size_y': fields.integer('Size Y'),
|
||||
'website_style_ids': fields.many2many('website.product.style', 'product_website_style_rel', 'product_id', 'style_id', 'Styles'),
|
||||
'website_sequence': fields.integer('Sequence', help="Determine the display order in the Website E-commerce"),
|
||||
'website_url': fields.function(_website_url, string="Website url"),
|
||||
'website_url': fields.function(_website_url, string="Website url", type="char"),
|
||||
}
|
||||
_defaults = {
|
||||
'website_size_x': 1,
|
||||
|
|
|
@ -9,21 +9,13 @@
|
|||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- add state field in header -->
|
||||
<xpath expr="//sheet" position="before">
|
||||
<div class="oe_form_box_info oe_text_center" attrs="{'invisible': [('sale_ok', '=', False)]}">
|
||||
<p attrs="{'invisible': [('website_published', '=', True)]}">
|
||||
This product is <b>not available</b> for public user in your ecommerce.
|
||||
</p>
|
||||
<p attrs="{'invisible': [('website_published', '=', False)]}">
|
||||
This product is <b>available</b> for public user in your ecommerce.
|
||||
</p>
|
||||
<p>Website view: <field class="oe_inline" name="website_url" widget="url"/></p>
|
||||
</div>
|
||||
<xpath expr="//sheet/div" position="before">
|
||||
<field name="website_url" invisible="1"/>
|
||||
<field name="website_published" class="pull-right" widget="website_button"/>
|
||||
</xpath>
|
||||
|
||||
<group name="sale" position="inside">
|
||||
<group name="website" string="Website">
|
||||
<field name="website_published"/>
|
||||
<field name="suggested_product_ids" widget="many2many_tags"/>
|
||||
<field name="website_style_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
|
@ -48,20 +40,9 @@
|
|||
<field name="inherit_id" ref="product.product_template_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- add state field in header -->
|
||||
<xpath expr="//sheet" position="before">
|
||||
<div class="oe_form_box_info oe_text_center" attrs="{'invisible': [('sale_ok', '=', False)]}">
|
||||
<p attrs="{'invisible': [('website_published', '=', True)]}">
|
||||
This product is <b>not available</b> for public user in your ecommerce.
|
||||
</p>
|
||||
<p attrs="{'invisible': [('website_published', '=', False)]}">
|
||||
This product is <b>available</b> for public user in your ecommerce.
|
||||
</p>
|
||||
<p>Website view: <field class="oe_inline" name="website_url" widget="url"/></p>
|
||||
</div>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//group[@string='Product Type']" position="inside">
|
||||
<field name="website_published"/>
|
||||
<xpath expr="//sheet/div" position="before">
|
||||
<field name="website_url" invisible="1"/>
|
||||
<field name="website_published" class="pull-right" widget="website_button"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@string='Information']" position="inside">
|
||||
<group colspan="4" string="Website Options">
|
||||
|
|
Loading…
Reference in New Issue