bzr revid: mba@tinyerp.com-20140107125832-fzt8cceyj3et7hgy
This commit is contained in:
Mahendra Barad (OpenERP) 2014-01-07 18:28:32 +05:30
parent 54346578c8
commit d7e09b669c
3 changed files with 57 additions and 34 deletions

View File

@ -2338,11 +2338,42 @@ instance.web.Legend = instance.web.Widget.extend({
this.dataset = dataset;
this.options = options;
},
prepare_data: function() {
var self =this;
var def = $.Deferred();
if (this.parent.name == 'kanban_state'){
var datas = [{ 'name': 'normal', 'legend_name': ' Normal', 'legend': '<img src="/web/static/src/img/icons/gtk-normal.png"/>' },
{ 'name': 'blocked', 'legend_name': ' Blocked', 'legend': '<img src="/web/static/src/img/icons/gtk-no.png"/>' },
{ 'name': 'done', 'legend_name': ' Done', 'legend': '<img src="/web/static/src/img/icons/gtk-yes.png"/>' }]
return def.resolve(datas);
}
if (this.parent.name == 'priority'){
var data = [];
var selection = this.parent.field.selection || [];
for (var index in selection) {
value = {
'name': selection[index][0],
'legend_name': selection[index][1]
}
if (selection[index][0] == '0'){
value['legend']= '<img src="/web/static/src/img/icons/star-off.png"/>';
value['legend_name'] = 'Set the Priority';
}else{
value['legend']= '<img src="/web/static/src/img/icons/star-on.png"/>';
}
data.push(value)
}
return def.resolve(data);
}
},
render_value: function(record_id, data) {
var self = this;
var content;
self.record_id = record_id;
var content = QWeb.render("Legend."+ self.parent.name, data);
this.prepare_data().then(function (res){
data['res'] = res;
content = QWeb.render("Legend."+ self.parent.name, data);
});
if (data.view_mode === 'form')
this.parent.$el.html(content);
else
@ -2366,19 +2397,15 @@ instance.web.form.Legend = instance.web.form.FieldChar.extend({
this._super(field_manager, node);
this.legend = new instance.web.Legend(this, this.view.dataset, py.eval(node.attrs.options));
},
reload_record: function(){
this.view.reload();
},
render_value: function() {
var self = this;
var legend_field = this.options.legend_field;
var legend_value = this.field_manager.fields[legend_field].get_value();
self.legend.render_value(this.view.datarecord.id, {
'widget': self,
'legend_value': legend_value,
'view_mode':'form'
});
});
},
});
instance.web.form.FieldID = instance.web.form.FieldChar.extend({

View File

@ -1032,35 +1032,34 @@
</span>
</t>
<t t-name="Legend.kanban_state_legend">
<t t-name="Legend.kanban_state">
<span class="btn-group">
<t t-foreach="widget.get('value')" t-as="rec">
<a class="dropdown-toggle oe_legend" data-toggle="dropdown" href="#" t-if="legend_value === rec.name" t-att-title="rec.description or rec.legend_name" >
<t t-raw="rec.body" />
<t t-foreach="res" t-as="rec">
<a class="dropdown-toggle oe_legend" data-toggle="dropdown" href="#" t-if="widget.get('value') === rec.name" t-att-title="rec.legend_name" >
<t t-raw="rec.legend" />
</a>
</t>
<ul class="dropdown-menu with-arrow">
<t t-foreach="widget.get('value')" t-as="rec">
<t t-if="legend_value !== rec.name">
<li class="oe_legend" t-att-data-value="rec.name"><a href="#"><t t-raw="rec.body" /><t t-raw="rec.legend_name" /></a></li>
</t>
</t>
</ul>
<ul class="dropdown-menu with-arrow">
<t t-foreach="res" t-as="rec">
<t t-if="widget.get('value') !== rec.name">
<li class="oe_legend" t-att-data-value="rec.name" ><a href="#"><t t-raw="rec.legend" /><t t-raw="rec.legend_name" /></a></li>
</t>
</t>
</ul>
</span>
</t>
<t t-name="Legend.priority_legend">
<ul style="list-style: none; padding-left: 5px;">
<t t-foreach="widget.get('value')" t-as="test" >
<t t-if="legend_value gte test.name and !test_first">
<li t-att-data-value="test.name - 1" class="oe_left oe_legend"><a href="#" t-att-title="test.description or test.legend_name"><t t-raw="test.body"/></a></li>
<t t-name="Legend.priority">
<ul style="list-style: none; padding-left: 2px;">
<t t-foreach="res" t-as="test" >
<t t-if="widget.get('value') gte test.name and !test_first">
<li t-att-data-value="test.name - 1" class="oe_left oe_legend"><a href="#" t-att-title="test.legend_name"><t t-raw="test.legend"/></a></li>
</t>
</t>
</t>
<t t-foreach="widget.get('value')" t-as="test" >
<t t-if="legend_value lt test.name">
<li t-att-data-value="test.name" class="oe_left oe_legend"><a href="#" t-att-title="widget.get('value')[0].description or widget.get('value')[0].legend_name"><t t-raw="widget.get('value')[0].body"/></a></li>
<t t-foreach="res" t-as="test" >
<t t-if="widget.get('value') lt test.name">
<li t-att-data-value="test.name" class="oe_left oe_legend"><a href="#" t-att-title="res[0].legend_name"><t t-raw="res[0].legend"/></a></li>
</t>
</t>
</t>
</ul>
</t>
<t t-name="FieldEmail">

View File

@ -1242,12 +1242,9 @@ instance.web_kanban.Legend = instance.web_kanban.AbstractField.extend({
},
renderElement: function() {
var self = this;
var legend_field = this.options.legend_field;
var legend_field_value = this.parent.record[legend_field].raw_value
self.legend.render_value(this.parent.id, {
self.legend.render_value(self.parent.id, {
'widget': self,
'legend_value': legend_field_value,
});
});
},
});