changeset 7df5f88c1e60 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset&node=7df5f88c1e60
description:
Update rec_name of tree with on_change
issue11021
review403131002
diffstat:
trytond/model/tree.py | 10 ++++++++++
trytond/tests/test_tree.py | 13 +++++++++++++
2 files changed, 23 insertions(+), 0 deletions(-)
diffs (50 lines):
diff -r 373241e8cc54 -r 7df5f88c1e60 trytond/model/tree.py
--- a/trytond/model/tree.py Fri Apr 08 09:50:47 2022 +0200
+++ b/trytond/model/tree.py Fri Apr 08 09:55:23 2022 +0200
@@ -12,6 +12,8 @@
def tree(parent='parent', name='name', separator=None):
+ from . import fields
+
class TreeMixin(object):
__slots__ = ()
@@ -37,6 +39,14 @@
record = getattr(record, parent)
return separator.join(reversed(names))
+ @fields.depends(parent, '_parent_%s.rec_name' % parent, name)
+ def on_change_with_rec_name(self):
+ names = []
+ if self.parent and self.parent.rec_name:
+ names.append(self.parent.rec_name)
+ names.append(getattr(self, name) or '')
+ return separator.join(names)
+
@classmethod
def search_rec_name(cls, _, clause):
domain = []
diff -r 373241e8cc54 -r 7df5f88c1e60 trytond/tests/test_tree.py
--- a/trytond/tests/test_tree.py Fri Apr 08 09:50:47 2022 +0200
+++ b/trytond/tests/test_tree.py Fri Apr 08 09:55:23 2022 +0200
@@ -202,6 +202,19 @@
self.assertEqual(record.rec_name, "parent / record")
@with_transaction()
+ def test_on_change_with_rec_name(self):
+ "Test on_change_with_rec_name"
+ pool = Pool()
+ Tree = pool.get('test.tree')
+
+ parent = Tree(name="parent")
+ parent.save()
+ record = Tree(name="record", parent=parent)
+ record.save()
+
+ self.assertEqual(record.rec_name, record.on_change_with_rec_name())
+
+ @with_transaction()
def test_search_rec_name_equals(self):
"Test search_rec_name equals"
pool = Pool()