diff options
Diffstat (limited to 'addons/web/static/src/js/fields')
| -rw-r--r-- | addons/web/static/src/js/fields/abstract_field.js | 1 | ||||
| -rw-r--r-- | addons/web/static/src/js/fields/relational_fields.js | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/abstract_field.js b/addons/web/static/src/js/fields/abstract_field.js index 2ea40a2602b..37d2f22ef55 100644 --- a/addons/web/static/src/js/fields/abstract_field.js +++ b/addons/web/static/src/js/fields/abstract_field.js @@ -496,6 +496,7 @@ var AbstractField = Widget.extend({ viewType: this.viewType, doNotSetDirty: options && options.doNotSetDirty, notifyChange: !options || options.notifyChange !== false, + allowWarning: options && options.allowWarning, onSuccess: def.resolve.bind(def), onFailure: def.reject.bind(def), }); diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js index 7a428923608..3f64c0249cb 100644 --- a/addons/web/static/src/js/fields/relational_fields.js +++ b/addons/web/static/src/js/fields/relational_fields.js @@ -1461,7 +1461,7 @@ var FieldOne2Many = FieldX2Many.extend({ // we don't want interference with the components upstream. ev.stopPropagation(); - if (this.editable) { + if (this.editable || data.forceEditable) { if (!this.activeActions.create) { if (data.onFail) { data.onFail(); @@ -1471,10 +1471,16 @@ var FieldOne2Many = FieldX2Many.extend({ this.trigger_up('edited_list', { id: this.value.id }); this._setValue({ operation: 'CREATE', - position: this.editable, + position: this.editable || data.forceEditable, context: data.context, + }, { + allowWarning: data.allowWarning }).always(function () { self.creatingRecord = false; + }).done(function(){ + if(data.onSuccess){ + data.onSuccess(); + } }); } } else { |
