diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-02-11 17:25:33 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-02-11 17:25:33 +0100 |
| commit | 7f2de623788f2ae02ba75997f156d141a92cff34 (patch) | |
| tree | ee919a3553d41a493c976d35563af7a1aa6c2cd3 /addons/web/static/src | |
| parent | d9d885badbfdaaf5452947e37699c5ae36990dc6 (diff) | |
| parent | 33a8989d77f44b093214550b8f23cb386a990981 (diff) | |
[MERGE] forward port of branch 8.0 up to 33a8989
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/formats.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/openerpframework.js | 2 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 6 | ||||
| -rw-r--r-- | addons/web/static/src/js/view_list.js | 10 | ||||
| -rw-r--r-- | addons/web/static/src/js/views.js | 3 |
5 files changed, 16 insertions, 7 deletions
diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 9c35d66c20e..9fd9ff86b02 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -177,7 +177,7 @@ instance.web.format_value = function (value, descriptor, value_if_empty) { return value.format(date_format + ' ' + time_format); case 'date': if (typeof(value) == "string") - value = moment(instance.web.str_to_date(value.substring(0,10))); + value = moment(instance.web.auto_str_to_date(value)); else { value = moment(value); } diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js index eba992e328f..cedaab65632 100644 --- a/addons/web/static/src/js/openerpframework.js +++ b/addons/web/static/src/js/openerpframework.js @@ -478,7 +478,7 @@ openerp.PropertiesMixin = _.extend({}, openerp.EventDispatcherMixin, { var tmp = self.__getterSetterInternalMap[key]; if (tmp === val) return; - if (self.field && self.field.type === 'float' && tmp && val){ + if (key === 'value' && self.field && self.field.type === 'float' && tmp && val){ var precision = self.field.digits ? self.field.digits[1] : 2; if (openerp.web.float_is_zero(tmp - val, precision)) return; diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index cc3bdc25990..214dbc0a56a 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -448,8 +448,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM return ""; }; + self._onchange_fields = []; self._onchange_specs = {}; _.each(this.fields, function(field, name) { + self._onchange_fields.push(name); self._onchange_specs[name] = find(name, field.node); _.each(field.field.views, function(view) { _.each(view.fields, function(_, subname) { @@ -486,7 +488,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var change_spec = widget ? onchange_specs[widget.name] : null; if (!widget || (!_.isEmpty(change_spec) && change_spec !== "0")) { var ids = [], - trigger_field_name = widget ? widget.name : false, + trigger_field_name = widget ? widget.name : self._onchange_fields, values = self._get_onchange_values(), context = new instance.web.CompoundContext(self.dataset.get_context()); @@ -1157,7 +1159,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM }, build_eval_context: function() { var a_dataset = this.dataset; - return new instance.web.CompoundContext(this._build_view_fields_values(), a_dataset.get_context()); + return new instance.web.CompoundContext(a_dataset.get_context(), this._build_view_fields_values()); }, }); diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 135f73d2ce2..d42d8ecb099 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -356,7 +356,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi //Sort var default_order = this.fields_view.arch.attrs.default_order, unsorted = !this.dataset._sort.length; - if (unsorted && default_order) { + if (unsorted && default_order && !this.grouped) { this.dataset.set_sort(default_order.split(',')); } @@ -2230,7 +2230,7 @@ instance.web.list.Column = instance.web.Class.extend({ } if (attrs.invisible) { return ''; } - if (!(row_data[this.id] && row_data[this.id].value)) { + if (!row_data[this.id]) { return options.value_if_empty === undefined ? '' : options.value_if_empty; @@ -2299,8 +2299,12 @@ instance.web.list.Binary = instance.web.list.Column.extend({ _format: function (row_data, options) { var text = _t("Download"); var value = row_data[this.id].value; + if (!value) { + return options.value_if_empty || ''; + } + var download_url; - if (value && value.substr(0, 10).indexOf(' ') == -1) { + if (value.substr(0, 10).indexOf(' ') == -1) { download_url = "data:application/octet-stream;base64," + value; } else { download_url = instance.session.url('/web/binary/saveas', {model: options.model, field: this.id, id: options.id}); diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index f5f16b201bc..e374350397d 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -841,6 +841,9 @@ instance.web.ViewManager = instance.web.Widget.extend({ if (_.isString(groupby)) { groupby = [groupby]; } + if (!controller.grouped && !_.isEmpty(groupby)){ + self.dataset.set_sort([]); + } $.when(controller.do_search(results.domain, results.context, groupby || [])).then(function() { self.active_search.resolve(); }); |
