diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-06-28 18:05:25 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-06-28 18:05:25 +0200 |
| commit | 93e6316029e237d41540bcf7ac594cc34b692d3a (patch) | |
| tree | edbb9fa9a400855d1089d8e612e98c83eb9d3904 /addons/web/static/src/js/views | |
| parent | 8eb2be4668b5677b82d581023161d31acd8abab1 (diff) | |
| parent | 71530771ea42c5bf620115e38afeaa6112f720cf (diff) | |
[MERGE] forward port of branch saas-11 up to 7153077
Diffstat (limited to 'addons/web/static/src/js/views')
| -rw-r--r-- | addons/web/static/src/js/views/form_relational_widgets.js | 24 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/list_view.js | 14 |
2 files changed, 29 insertions, 9 deletions
diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js index 624a2fa17a4..8e65677a8b3 100644 --- a/addons/web/static/src/js/views/form_relational_widgets.js +++ b/addons/web/static/src/js/views/form_relational_widgets.js @@ -320,7 +320,8 @@ var FieldMany2One = common.AbstractField.extend(common.CompletionFieldMixin, com var dataset = new data.DataSetStatic(this, this.field.relation, self.build_context()); var def = this.alive(dataset.name_get([self.get("value")])).done(function(data) { if (!data[0]) { - self.do_warn(_t("Render"), _t("No value found for the field "+self.field.string+" for value "+self.get("value"))); + self.do_warn(_t("Render"), + _.str.sprintf(_t("No value found for the field %s for value %s"), self.field.string, self.get("value"))); return; } self.display_value["" + self.get("value")] = data[0][1]; @@ -819,6 +820,7 @@ var FieldX2Many = AbstractManyField.extend({ self.is_loaded = self.is_loaded.then(function() { var view = self.get_active_view(); if (view.type === "list") { + view.controller.page = 0; return view.controller.reload_content(); } else if (view.controller.do_search) { return view.controller.do_search(self.build_domain(), self.dataset.get_context(), []); @@ -863,6 +865,9 @@ var FieldX2Many = AbstractManyField.extend({ } return true; }, + is_false: function() { + return _(this.dataset.ids).isEmpty(); + }, }); var X2ManyDataSet = data.BufferedDataSet.extend({ @@ -1259,13 +1264,16 @@ var FieldOne2Many = FieldX2Many.extend({ return this._super.apply(this, arguments); }, commit_value: function() { - var view = this.viewmanager.active_view; - if(view.type === "list" && view.controller.editable()) { - return this.mutex.def.then(function () { - return view.controller.save_edition(); - }); - } - return this.mutex.def; + var self = this; + return this.is_loaded.then(function() { + var view = self.viewmanager.active_view; + if(view.type === "list" && view.controller.editable()) { + return self.mutex.def.then(function () { + return view.controller.save_edition(); + }); + } + return self.mutex.def; + }); }, }); diff --git a/addons/web/static/src/js/views/list_view.js b/addons/web/static/src/js/views/list_view.js index d905dfdadfd..9a87b7fd6b3 100644 --- a/addons/web/static/src/js/views/list_view.js +++ b/addons/web/static/src/js/views/list_view.js @@ -4,6 +4,7 @@ odoo.define('web.ListView', function (require) { var core = require('web.core'); var data = require('web.data'); +var data_manager = require('web.data_manager'); var DataExport = require('web.DataExport'); var formats = require('web.formats'); var common = require('web.list_common'); @@ -36,6 +37,7 @@ var row_decoration = [ var ListView = View.extend({ _template: 'ListView', accesskey: "l", + require_fields: true, defaults: _.extend({}, View.prototype.defaults, { // records can be selected one by one selectable: true, @@ -151,6 +153,7 @@ var ListView = View.extend({ } }, willStart: function() { + var self = this; // Retrieve the decoration defined on the model's list view this.decoration = _.pick(this.fields_view.arch.attrs, function(value, key) { return row_decoration.indexOf(key) >= 0; @@ -158,7 +161,10 @@ var ListView = View.extend({ this.decoration = _.mapObject(this.decoration, function(value) { return py.parse(py.tokenize(value)); }); - return this._super(); + var fields_def = data_manager.load_fields(this.dataset).then(function(fields_get) { + self.fields_get = fields_get; + }); + return $.when(this._super(), fields_def); }, /** * Set a custom Group construct as the root of the List View. @@ -1379,6 +1385,12 @@ ListView.Groups = Class.extend({ } } else { group_label = group.value; + var grouped_on_field = self.view.fields_get[group.grouped_on]; + if (grouped_on_field.type === 'selection') { + group_label = _.find(grouped_on_field.selection, function(selection) { + return selection[0] === group.value; + }); + } if (group_label instanceof Array) { group_label = group_label[1]; } |
