changeset b2ef0f79bfe2 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=b2ef0f79bfe2
description:
        Fill ModelView.__change_buttons in __post_setup__

        Since the refactoring from a57cd35eec06, we loop only on fields in 
__setup__
        so button_change are not processed. And __change_buttons is not filled.
        We fill it in the __post_setup__ when the _buttons dict is filled when 
values.

        issue8329
diffstat:

 trytond/model/modelview.py |  7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diffs (17 lines):

diff -r 895f64a7a918 -r b2ef0f79bfe2 trytond/model/modelview.py
--- a/trytond/model/modelview.py        Wed May 01 18:05:27 2019 +0200
+++ b/trytond/model/modelview.py        Mon May 06 11:34:11 2019 +0200
@@ -215,6 +215,13 @@
                 cls.__rpc__.setdefault(button,
                     RPC(instantiate=0, result=on_change_result))
 
+            for parent_cls in cls.__mro__:
+                parent_meth = getattr(parent_cls, button, None)
+                if not parent_meth:
+                    continue
+                cls.__change_buttons[button] |= getattr(
+                    parent_meth, 'change', set())
+
     @classmethod
     def fields_view_get(cls, view_id=None, view_type='form'):
         '''

Reply via email to