summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields/relational_fields.js
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2017-03-31 16:32:09 +0200
committerDavid Monjoie <dmo@odoo.com>2017-06-02 15:12:55 +0200
commit2d26ed05a7630be98a8e2a465f0578414ed5f936 (patch)
tree76a5099e309bf55d3ae037f0fb61c45436c03aa5 /addons/web/static/src/js/fields/relational_fields.js
parent31f581972451a99b93baa230ff8ba60b763ed280 (diff)
[FIX] web: fix handle widget functionality
Also added tests for handle in list view and inside an x2many.
Diffstat (limited to 'addons/web/static/src/js/fields/relational_fields.js')
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index d825f46b62b..e13c3d29004 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -565,6 +565,7 @@ var FieldX2Many = AbstractField.extend({
list_record_delete: '_onDeleteRecord',
open_record: '_onOpenRecord',
save_line: '_onSaveLine',
+ resequence: '_onResequence',
toggle_column_order: '_onToggleColumnOrder',
}),
@@ -637,7 +638,7 @@ var FieldX2Many = AbstractField.extend({
* @returns {Deferred}
*/
reset: function (record, ev) {
- if (ev && ev.target === this && ev.data.changes && this.view.arch.tag === 'tree' && this.editable) {
+ if (ev && ev.target === this && ev.data.changes && this.view.arch.tag === 'tree') {
var command = ev.data.changes[this.name];
if (command.operation === 'UPDATE') {
var state = record.data[this.name];
@@ -903,6 +904,24 @@ var FieldX2Many = AbstractField.extend({
});
},
/**
+ * Forces a resequencing of the records.
+ *
+ * @private
+ * @param {OdooEvent} event
+ */
+ _onResequence: function (event) {
+ var self = this;
+ _.each(event.data.rowIDs, function (rowID, index) {
+ var data = {};
+ data[event.data.handleField] = event.data.offset + index;
+ self._setValue({
+ operation: 'UPDATE',
+ id: rowID,
+ data: data,
+ });
+ })
+ },
+ /**
* Adds field name information to the event, so that the view upstream is
* aware of which widgets it has to redraw.
*