this._super(field_manager, node);
},
prepare_priority: function() {
- var data = [];
+ var self = this;
var selection = this.field.selection || [];
- _.map(selection, function(res) {
- value = {
- 'name': res[0],
- 'legend_name': res[1]
+ var init_value = selection && selection[0][0] || 0;
+ var data = _.map(selection.slice(1), function(element, index) {
+ var value = {
+ 'value': element[0],
+ 'name': element[1],
+ 'click_value': element[0],
}
- if (res[0] == '0') {
- value['legend']= '<span class="oe_e oe_star_off">7</span>';
- } else {
- value['legend']= '<span class="oe_e oe_star_on">7</span>';
+ if (index == 0 && self.get('value') == element[0]) {
+ value['click_value'] = init_value;
}
- data.push(value)
+ return value;
});
return data;
},
render_value: function() {
var self = this;
- var data = {'widget': self }
- self.record_id = self.view.datarecord.id;
- data['legends'] = self.prepare_priority();
- this.$el.html(QWeb.render("Priority", data));
+ this.record_id = self.view.datarecord.id;
+ this.priorities = self.prepare_priority();
+ this.$el.html(QWeb.render("Priority", {'widget': this}));
this.$el.find('.oe_legend').click(self.do_action.bind(self));
},
do_action: function(e) {
var li = $(e.target).closest( "li" );
if (li.length) {
var value = {};
- if (self.val == li.data('value') && self.check_star) {
- value[self.name] = String(li.data('value') - 1);
- self.check_star = false
- } else {
- value[self.name] = String(li.data('value'));
- self.check_star = true;
- }
- self.val = li.data('value')
+ value[self.name] = String(li.data('value'));
if (self.record_id) {
return self.view.dataset._model.call('write', [[self.record_id], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
} else {
<t t-foreach="widget.states" t-as="rec">
<a t-if="widget.get('value') === rec.name">
<a class="oe_legend dropdown-toggle" data-toggle="dropdown">
- <!-- <img height="16" width="16" t-att-src="'/web/static/src/img/icons/' + rec.icon_name"/> -->
<span t-att-class="rec.state_class" t-if="widget.get('value') === rec.name" t-att-title="rec.tooltip"/>
<span class="sr-only">Toggle Dropdown</span>
</a>
<t t-if="widget.get('value') !== rec.name">
<li class="oe_legend" t-att-data-value="rec.name" ><a href="#">
<span t-att-class="rec.state_class" t-att-title="rec.tooltip"/>
- <!-- <img height="16" width="16" t-att-src="'/web/static/src/img/icons/' + rec.icon_name"/> -->
<t t-raw="rec.state_name" /></a>
</li>
</t>
</t>
<t t-name="Priority">
<ul style="list-style: none; padding-left: 2px;">
- <t t-foreach="legends" t-as="rec" >
- <t t-if="widget.get('value') gte rec.name and !rec_first">
- <li t-att-data-value="rec.name" class="pull-left oe_legend"><a href="#" t-att-title="rec.legend_name"><t t-raw="rec.legend"/></a></li>
- </t>
- </t>
- <t t-foreach="legends" t-as="rec" >
- <t t-if="widget.get('value') lt rec.name">
- <li t-att-data-value="rec.name" class="pull-left oe_legend"><a href="#" t-att-title="rec.legend_name"><t t-raw="legends[0].legend"/></a></li>
- </t>
+ <t t-foreach="widget.priorities" t-as="rec" >
+ <li t-att-data-value="rec.click_value" class="pull-left oe_legend">
+ <a href="#" t-att-title="rec.name">
+ <span t-att-class="widget.get('value') gte rec.value and 'oe_e oe_star_on' or 'oe_e oe_star_off'">7</span>
+ </a>
+ </li>
</t>
</ul>
</t>
this.parent = parent;
},
prepare_priority: function() {
- var data = [];
+ var self = this;
var selection = this.field.selection || [];
- _.map(selection, function(res) {
- value = {
- 'name': res[0],
- 'legend_name': res[1]
+ var init_value = selection && selection[0][0] || 0;
+ var data = _.map(selection.slice(1), function(element, index) {
+ var value = {
+ 'value': element[0],
+ 'name': element[1],
+ 'click_value': element[0],
}
- if (res[0] == '0') {
- value['legend'] = '<span class="oe_e oe_star_off">7</span>';
- } else {
- value['legend'] = '<span class="oe_e oe_star_on">7</span>';
+ if (index == 0 && self.get('value') == element[0]) {
+ value['click_value'] = init_value;
}
- data.push(value)
+ return value;
});
return data;
},
renderElement: function() {
var self = this;
- self.record_id = self.parent.id;
- var data = {'widget': self }
- data['legends'] = self.prepare_priority();
- this.$el = $(QWeb.render("Priority", data));
+ this.record_id = self.parent.id;
+ this.priorities = self.prepare_priority();
+ this.$el = $(QWeb.render("Priority", {'widget': this}));
this.$el.find('.oe_legend').click(self.do_action.bind(self));
},
do_action: function(e) {
var li = $(e.target).closest( "li" );
if (li.length) {
var value = {};
- if (self.parent.val == li.data('value') && self.parent.check_star) {
- value[self.name] = String(li.data('value') - 1);
- self.parent.check_star = false
- } else {
- value[self.name] = String(li.data('value'));
- self.parent.check_star = true;
- }
- self.parent.val = li.data('value')
+ value[self.name] = String(li.data('value'));
return self.parent.view.dataset._model.call('write', [[self.record_id], value, self.parent.view.dataset.get_context()]).done(self.reload_record.bind(self.parent));
}
},