[IMP] add stage mode widget
bzr revid: rgaopenerp-20131216125602-r10t3se7hgvoy73w
This commit is contained in:
parent
0fd50c4750
commit
8d509498b6
|
@ -2330,7 +2330,44 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(instance.we
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
instance.web.form.StageMode = instance.web.form.FieldChar.extend({
|
||||||
|
init: function (field_manager, node) {
|
||||||
|
this._super(field_manager, node);
|
||||||
|
this.options = py.eval(node.attrs.options)
|
||||||
|
this.stage_dataset = new instance.web.DataSetStatic(this, this.options.stage_model, this.build_context());
|
||||||
|
this.stage_field = this.options.stage_field;
|
||||||
|
},
|
||||||
|
|
||||||
|
get_stage_value: function(){
|
||||||
|
var def = $.Deferred();
|
||||||
|
var stage_id = this.field_manager.fields[this.stage_field].get_value()
|
||||||
|
this.stage_dataset.call('search_read', [[[this.stage_field,'=', stage_id],['type','=',this.name]]]).then(function (res){
|
||||||
|
def.resolve(res);
|
||||||
|
})
|
||||||
|
return def
|
||||||
|
},
|
||||||
|
|
||||||
|
render_value: function() {
|
||||||
|
var self = this;
|
||||||
|
self.get_stage_value().then(function (res){
|
||||||
|
var content = QWeb.render("StageMode."+self.name, {
|
||||||
|
'widget': self,
|
||||||
|
'res': res,
|
||||||
|
});
|
||||||
|
self.$el.html(content);
|
||||||
|
self.$el.find("li").click(self.execute_action.bind(self));
|
||||||
|
})
|
||||||
|
},
|
||||||
|
execute_action: function(e){
|
||||||
|
e.preventDefault();
|
||||||
|
var self = this;
|
||||||
|
$this = $(e.target)
|
||||||
|
var value = $this.data('value') || $this.parent().data('value');
|
||||||
|
return this.view.dataset.call_button(self.options.action, [this.view.datarecord.id, value, this.view.dataset.get_context()]).done(function(r) {
|
||||||
|
self.view.reload();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
instance.web.form.FieldID = instance.web.form.FieldChar.extend({
|
instance.web.form.FieldID = instance.web.form.FieldChar.extend({
|
||||||
process_modifiers: function () {
|
process_modifiers: function () {
|
||||||
this._super();
|
this._super();
|
||||||
|
@ -5853,6 +5890,7 @@ instance.web.form.widgets = new instance.web.Registry({
|
||||||
'monetary': 'instance.web.form.FieldMonetary',
|
'monetary': 'instance.web.form.FieldMonetary',
|
||||||
'many2many_checkboxes': 'instance.web.form.FieldMany2ManyCheckBoxes',
|
'many2many_checkboxes': 'instance.web.form.FieldMany2ManyCheckBoxes',
|
||||||
'x2many_counter': 'instance.web.form.X2ManyCounter',
|
'x2many_counter': 'instance.web.form.X2ManyCounter',
|
||||||
|
'stage_mode':'instance.web.form.StageMode'
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1031,6 +1031,31 @@
|
||||||
</t>
|
</t>
|
||||||
</span>
|
</span>
|
||||||
</t>
|
</t>
|
||||||
|
|
||||||
|
|
||||||
|
<t t-name="StageMode.kanban_state">
|
||||||
|
<div class="btn-group">
|
||||||
|
<t t-foreach="res" t-as="rec">
|
||||||
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#" t-if="widget.get('value') === rec.name" t-att-title="rec.description" >
|
||||||
|
<t t-raw="rec.body" />
|
||||||
|
</a>
|
||||||
|
</t>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<t t-foreach="res" t-as="rec">
|
||||||
|
<t t-if="widget.get('value') !== rec.name">
|
||||||
|
<li><a t-att-data-value="rec.name" href="#"><t t-raw="rec.body" /></a></li>
|
||||||
|
</t>
|
||||||
|
</t>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
<t t-name="StageMode.priority">
|
||||||
|
<t t-foreach="res" t-as="rec">
|
||||||
|
<a t-if="widget.get('value') === rec.name" t-att-data="rec.name" t-att-title="rec.description" >
|
||||||
|
<t t-raw="rec.body" />
|
||||||
|
</a>
|
||||||
|
</t>
|
||||||
|
</t>
|
||||||
<t t-name="FieldEmail">
|
<t t-name="FieldEmail">
|
||||||
<span class="oe_form_field oe_form_field_email" t-att-style="widget.node.attrs.style">
|
<span class="oe_form_field oe_form_field_email" t-att-style="widget.node.attrs.style">
|
||||||
<a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri" target="_blank"/>
|
<a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri" target="_blank"/>
|
||||||
|
|
Loading…
Reference in New Issue