diff options
| author | Christophe Simonis <chs@odoo.com> | 2017-09-15 18:09:39 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2017-09-15 18:09:39 +0200 |
| commit | 66ca68732431dd6bfc3c6df1fe17ef6fab98da40 (patch) | |
| tree | dc6ad0715b030fadddc5ed502aac9ba01a58a1b4 /addons/web/static/src | |
| parent | 6aebc800538b6fabd79c6cd1e819ef6d961e7589 (diff) | |
| parent | ed901bedcb7c8b840ae5cf4731b946e998b8b141 (diff) | |
[MERGE] forward port branch saas-17 up to ed901bedcb7
Diffstat (limited to 'addons/web/static/src')
6 files changed, 38 insertions, 13 deletions
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js index b5d779039d6..7df5b390a2c 100644 --- a/addons/web/static/src/js/fields/relational_fields.js +++ b/addons/web/static/src/js/fields/relational_fields.js @@ -94,8 +94,12 @@ var FieldMany2One = AbstractField.extend({ this._super.apply(this, arguments); this.limit = 7; this.orderer = new concurrency.DropMisordered(); - this.can_create = ('can_create' in this.attrs ? this.attrs.can_create : true) && !this.nodeOptions.no_create; - this.can_write = 'can_write' in this.attrs ? this.attrs.can_write : true; + + // should normally also be set, except in standalone M20 + this.can_create = ('can_create' in this.attrs ? JSON.parse(this.attrs.can_create) : true) && + !this.nodeOptions.no_create; + this.can_write = 'can_write' in this.attrs ? JSON.parse(this.attrs.can_write) : true; + this.nodeOptions = _.defaults(this.nodeOptions, { quick_create: true, }); diff --git a/addons/web/static/src/js/fields/upgrade_fields.js b/addons/web/static/src/js/fields/upgrade_fields.js index 4c3b26b9802..9d61036ab8b 100644 --- a/addons/web/static/src/js/fields/upgrade_fields.js +++ b/addons/web/static/src/js/fields/upgrade_fields.js @@ -52,9 +52,9 @@ var AbstractFieldUpgrade = { * * @abstract * @private - * @param {JQuery} the 'Enterprise' label to insert + * @param {jQuery} $enterpriseLabel the 'Enterprise' label to insert */ - _insertEnterpriseLabel: function ($enterprise_label) {}, + _insertEnterpriseLabel: function ($enterpriseLabel) {}, /** * Opens the Upgrade dialog. * @@ -127,6 +127,15 @@ var UpgradeBoolean = FieldBoolean.extend(AbstractFieldUpgrade, { events: _.extend({}, AbstractField.prototype.events, { 'click input': '_onInputClicked', }), + /** + * Re-renders the widget with the label + * + * @param {jQuery} $label + */ + renderWithLabel: function ($label) { + this.$label = $label; + this._render(); + }, //-------------------------------------------------------------------------- // Private @@ -136,8 +145,9 @@ var UpgradeBoolean = FieldBoolean.extend(AbstractFieldUpgrade, { * @override * @private */ - _insertEnterpriseLabel: function ($enterprise_label) { - this.$el.append(' ').append($enterprise_label); + _insertEnterpriseLabel: function ($enterpriseLabel) { + var $el = this.$label || this.$el; + $el.append(' ').append($enterpriseLabel); }, /** * @override @@ -170,8 +180,8 @@ var UpgradeRadio = FieldRadio.extend(AbstractFieldUpgrade, { * @override * @private */ - _insertEnterpriseLabel: function ($enterprise_label) { - this.$('label').last().append(' ').append($enterprise_label); + _insertEnterpriseLabel: function ($enterpriseLabel) { + this.$('label').last().append(' ').append($enterpriseLabel); }, /** * @override diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js index 7d962e223ce..8f1724c3e64 100644 --- a/addons/web/static/src/js/views/form/form_renderer.js +++ b/addons/web/static/src/js/views/form/form_renderer.js @@ -805,11 +805,16 @@ var FormRenderer = BasicRenderer.extend({ // Attach the tooltips on the fields' label _.each(this.allFieldWidgets[this.state.id], function (widget) { + var idForLabel = self.idsForLabels[widget.name]; + var $label = idForLabel ? self.$('label[for=' + idForLabel + ']') : $(); if (core.debug || widget.attrs.help || widget.field.help) { - var idForLabel = self.idsForLabels[widget.name]; - var $label = idForLabel ? self.$('label[for=' + idForLabel + ']') : $(); self._addFieldTooltip(widget, $label); } + if (widget.attrs.widget === 'upgrade_boolean') { + // this widget needs a reference to its $label to be correctly + // rendered + widget.renderWithLabel($label); + } }); }, /** diff --git a/addons/web/static/src/js/views/kanban/kanban_model.js b/addons/web/static/src/js/views/kanban/kanban_model.js index 400d73c0b7d..04ee7012bc4 100644 --- a/addons/web/static/src/js/views/kanban/kanban_model.js +++ b/addons/web/static/src/js/views/kanban/kanban_model.js @@ -157,6 +157,9 @@ var KanbanModel = BasicModel.extend({ id: new_group.res_id, display_name: new_group.value, }; + } else if (groupedField.type === 'selection') { + var value = _.findWhere(groupedField.selection, {1: new_group.value}); + changes[groupedFieldName] = value && value[0] || false; } else { changes[groupedFieldName] = new_group.value; } diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index 49752ca2678..b46d1f7c5fd 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -145,10 +145,10 @@ var KanbanRenderer = BasicRenderer.extend({ * @returns {Deferred} */ updateColumn: function (localID, columnState) { - var column = _.findWhere(this.widgets, {db_id: localID}); - this.widgets.splice(_.indexOf(this.widgets, column), 1); // remove column from widgets' list var newColumn = new KanbanColumn(this, columnState, this.columnOptions, this.recordOptions); - this.widgets.push(newColumn); + var index = _.findIndex(this.widgets, {db_id: localID}); + var column = this.widgets[index]; + this.widgets[index] = newColumn; return newColumn.insertAfter(column.$el).then(column.destroy.bind(column)); }, /** diff --git a/addons/web/static/src/js/views/list/list_editable_renderer.js b/addons/web/static/src/js/views/list/list_editable_renderer.js index 229c61733e5..7984ebf21e1 100644 --- a/addons/web/static/src/js/views/list/list_editable_renderer.js +++ b/addons/web/static/src/js/views/list/list_editable_renderer.js @@ -477,6 +477,9 @@ ListRenderer.include({ return this._selectRow(rowIndex).then(function () { var record = self.state.data[rowIndex]; var correctedIndex = colIndex - getNbButtonBefore(colIndex); + if (correctedIndex >= (self.allFieldWidgets[record.id] || []).length) { + return $.Deferred().reject(); + } var fieldIndex = self._activateFieldWidget(record, correctedIndex, { inc: 1, wrap: wrap, |
