Merge lp:~openerp-dev/openerp-web/trunk-stage-saas3-imp-tde into lp:openerp-web

Proposed by Thibault Delavallée (OpenERP)
Status: Merged
Merged at revision: 3889
Proposed branch: lp:~openerp-dev/openerp-web/trunk-stage-saas3-imp-tde
Merge into: lp:openerp-web
Diff against target: 56 lines (+18/-15)
1 file modified
addons/web/static/src/js/view_form.js (+18/-15)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/trunk-stage-saas3-imp-tde
Reviewer Review Type Date Requested Status
OpenERP R&D Web Team Pending
Review via email: mp+196844@code.launchpad.net

Description of the change

[IMP] form_view: statusbar widget: folded back as an option.

The widget option 'fold_field' allows to tell the widget to use this field on
the model used for stages to compute the folded selection.

If not set, no stage is folded.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/static/src/js/view_form.js'
2--- addons/web/static/src/js/view_form.js 2013-11-25 16:05:06 +0000
3+++ addons/web/static/src/js/view_form.js 2013-11-27 10:00:43 +0000
4@@ -5552,23 +5552,23 @@
5 var self = this;
6 var selection_unfolded = [];
7 var selection_folded = [];
8+ var fold_field = this.options.fold_field;
9
10 var calculation = _.bind(function() {
11 if (this.field.type == "many2one") {
12- /* :deprecated: fold feature will probably be removed */
13- // return self.get_distant_fields().then(function(fields) {
14- self.distant_fields = {};
15- return new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), self.get("evaluated_selection_domain"))
16- .read_slice(_.union(_.keys(self.distant_fields), ['id']), {}).then(function (records) {
17- var ids = _.pluck(records, 'id');
18- return self.dataset.name_get(ids).then(function (records_name) {
19- _.each(records, function (record) {
20- var name = _.find(records_name, function (val) {return val[0] == record.id;})[1];
21- if (record.fold && record.id != self.get('value')) {
22- selection_folded.push([record.id, name]);
23- } else {
24- selection_unfolded.push([record.id, name]);
25- }
26+ return self.get_distant_fields().then(function (fields) {
27+ return new instance.web.DataSetSearch(self, self.field.relation, self.build_context(), self.get("evaluated_selection_domain"))
28+ .read_slice(_.union(_.keys(self.distant_fields), ['id']), {}).then(function (records) {
29+ var ids = _.pluck(records, 'id');
30+ return self.dataset.name_get(ids).then(function (records_name) {
31+ _.each(records, function (record) {
32+ var name = _.find(records_name, function (val) {return val[0] == record.id;})[1];
33+ if (fold_field && record[fold_field] && record.id != self.get('value')) {
34+ selection_folded.push([record.id, name]);
35+ } else {
36+ selection_unfolded.push([record.id, name]);
37+ }
38+ });
39 });
40 });
41 });
42@@ -5598,10 +5598,13 @@
43 */
44 get_distant_fields: function() {
45 var self = this;
46+ if (! this.options.fold_field) {
47+ this.distant_fields = {}
48+ }
49 if (this.distant_fields) {
50 return $.when(this.distant_fields);
51 }
52- return new instance.web.Model(self.field.relation).call("fields_get", [["fold"]]).then(function(fields) {
53+ return new instance.web.Model(self.field.relation).call("fields_get", [[this.options.fold_field]]).then(function(fields) {
54 self.distant_fields = fields;
55 return fields;
56 });