changeset cc04ece478f1 in tryton:5.2
details: https://hg.tryton.org/tryton?cmd=changeset;node=cc04ece478f1
description:
Update display logs for new related read API
Since issue7888, the result of related fields are stored in nested
dictionaries.
issue8426
review259841002
(grafted from 450b5322f9eee7ced86f0491c942034931a23aa2)
diffstat:
tryton/gui/window/form.py | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diffs (45 lines):
diff -r 31f6b330b0d1 -r cc04ece478f1 tryton/gui/window/form.py
--- a/tryton/gui/window/form.py Wed Jul 17 22:43:14 2019 +0200
+++ b/tryton/gui/window/form.py Sat Jul 20 21:45:28 2019 +0200
@@ -2,6 +2,7 @@
# this repository contains the full copyright notices and license terms.
"Form"
import csv
+import datetime
import gettext
import locale
import os
@@ -207,21 +208,23 @@
]
try:
- res = RPCExecute('model', self.model, 'read', [current_record.id],
- [x[0] for x in fields], context=self.screen.context)
+ data = RPCExecute('model', self.model, 'read', [current_record.id],
+ [x[0] for x in fields], context=self.screen.context)[0]
except RPCException:
return
date_format = self.screen.context.get('date_format', '%x')
datetime_format = date_format + ' %H:%M:%S.%f'
message_str = ''
- for line in res:
- for (key, val) in fields:
- value = str(line.get(key, False) or '/')
- if line.get(key, False) \
- and key in ('create_date', 'write_date'):
- date = timezoned_date(line[key])
- value = date.strftime(datetime_format)
- message_str += val + ' ' + value + '\n'
+ for (key, label) in fields:
+ value = data
+ keys = key.split('.')
+ name = keys.pop(-1)
+ for key in keys:
+ value = value.get(key + '.', {})
+ value = (value or {}).get(name, '/')
+ if isinstance(value, datetime.datetime):
+ value = timezoned_date(value).strftime(datetime_format)
+ message_str += '%s %s\n' % (label, value)
message_str += _('Model:') + ' ' + self.model
message(message_str)
return True