},
render_value: function() {
var self = this;
- this.record_id = self.view.datarecord.id;
- this.states = self.prepare_dropdown_selection();;
+ this.record_id = this.view.datarecord.id;
+ this.states = this.prepare_dropdown_selection();;
this.$el.html(QWeb.render("KanbanSelection", {'widget': self}));
- this.$el.find('.oe_legend').click(self.do_action.bind(self));
+ this.$el.find('li').on('click', this.set_kanban_selection.bind(this));
},
- do_action: function(e) {
+ /* setting the value: in view mode, perform an asynchronous call and reload
+ the form view; in edit mode, use set_value to save the new value that will
+ be written when saving the record. */
+ set_kanban_selection: function (ev) {
var self = this;
- var li = $(e.target).closest( "li" );
+ var li = $(ev.target).closest('li');
if (li.length) {
- var value = {};
- value[self.name] = String(li.data('value'));
- self.record_id = self.view.datarecord.id;
- 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 {
- return self.view.on_button_save().done(function(result) {
- if (result) {
- self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
- }
- });
+ var value = String(li.data('value'));
+ if (this.view.get('actual_mode') == 'view') {
+ var write_values = {}
+ write_values[self.name] = value;
+ return this.view.dataset._model.call(
+ 'write', [
+ [self.record_id],
+ write_values,
+ self.view.dataset.get_context()
+ ]).done(self.reload_record.bind(self));
+ }
+ else {
+ return this.set_value(value);
}
}
},
},
render_value: function() {
var self = this;
- this.record_id = self.view.datarecord.id;
- this.priorities = self.prepare_priority();
+ this.record_id = this.view.datarecord.id;
+ this.priorities = this.prepare_priority();
this.$el.html(QWeb.render("Priority", {'widget': this}));
- this.$el.find('.oe_legend').click(self.do_action.bind(self));
+ this.$el.find('li').on('click', this.set_priority.bind(this));
},
- do_action: function(e) {
+ /* setting the value: in view mode, perform an asynchronous call and reload
+ the form view; in edit mode, use set_value to save the new value that will
+ be written when saving the record. */
+ set_priority: function (ev) {
var self = this;
- var li = $(e.target).closest( "li" );
+ var li = $(ev.target).closest('li');
if (li.length) {
- var 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 {
- return self.view.on_button_save().done(function(result) {
- if (result) {
- self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
- }
- });
+ var value = String(li.data('value'));
+ if (this.view.get('actual_mode') == 'view') {
+ var write_values = {}
+ write_values[self.name] = value;
+ return this.view.dataset._model.call(
+ 'write', [
+ [self.record_id],
+ write_values,
+ self.view.dataset.get_context()
+ ]).done(self.reload_record.bind(self));
+ }
+ else {
+ return this.set_value(value);
}
}
+
},
reload_record: function() {
this.view.reload();