summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-02-11 17:25:33 +0100
committerChristophe Simonis <chs@odoo.com>2015-02-11 17:25:33 +0100
commit7f2de623788f2ae02ba75997f156d141a92cff34 (patch)
treeee919a3553d41a493c976d35563af7a1aa6c2cd3 /addons/web/static/src/js
parentd9d885badbfdaaf5452947e37699c5ae36990dc6 (diff)
parent33a8989d77f44b093214550b8f23cb386a990981 (diff)
[MERGE] forward port of branch 8.0 up to 33a8989
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/formats.js2
-rw-r--r--addons/web/static/src/js/openerpframework.js2
-rw-r--r--addons/web/static/src/js/view_form.js6
-rw-r--r--addons/web/static/src/js/view_list.js10
-rw-r--r--addons/web/static/src/js/views.js3
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();
});