changeset 9f7cab2d5c3a in sao:default
details: https://hg.tryton.org/sao?cmd=changeset;node=9f7cab2d5c3a
description:
Ensure dependencies of fields are also loaded on Form display
issue9630
review298641002
diffstat:
src/view/form.js | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diffs (42 lines):
diff -r 8b4f7a8fced0 -r 9f7cab2d5c3a src/view/form.js
--- a/src/view/form.js Thu Mar 11 19:14:07 2021 +0100
+++ b/src/view/form.js Thu Mar 11 23:34:44 2021 +0100
@@ -261,20 +261,34 @@
display: function() {
var record = this.record;
var field;
+ var depends;
var name;
var promesses = [];
if (record) {
// Force to set fields in record
// Get first the lazy one from the view to reduce number of
requests
- var fields = [];
+ var field_names = new Set();
for (name in this.widgets) {
- field = record.model.fields[name];
+ depends = (
+ record.model.fields[name].description.depends || []);
+ field_names.add(name);
+ for (var i = 0; i < depends.length; i++) {
+ var depend = depends[i];
+ if (!depend.startsWith('_parent') &&
+ depend in record.model.fields) {
+ field_names.add(depend);
+ }
+ }
+ }
+ var fields = [];
+ field_names.forEach(function(fname) {
+ field = record.model.fields[fname];
fields.push([
- name,
+ fname,
field.description.loading || 'eager' == 'eager',
field.views.size,
]);
- }
+ });
fields.sort(function(a, b) {
if (!a[1] && b[1]) {
return -1;