diff --git a/CHANGELOG b/CHANGELOG index d874d86235..fa365d2664 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Cache RPC call for class method selection + Version 6.6.0 - 2022-10-31 -------------------------- * Bug fixes (see mercurial logs for details) diff --git a/trytond/model/fields/multiselection.py b/trytond/model/fields/multiselection.py index 1142e31340..82a1260028 100644 --- a/trytond/model/fields/multiselection.py +++ b/trytond/model/fields/multiselection.py @@ -51,8 +51,9 @@ class MultiSelection(SelectionMixin, Field): assert hasattr(model, self.selection), \ 'Missing %s on model %s' % (self.selection, model.__name__) instantiate = 0 if self.selection_change_with else None + cache = dict(days=1) if instantiate is None else None model.__rpc__.setdefault( - self.selection, RPC(instantiate=instantiate)) + self.selection, RPC(instantiate=instantiate, cache=cache)) def get(self, ids, model, name, values=None): lists = {id: () for id in ids} diff --git a/trytond/model/fields/reference.py b/trytond/model/fields/reference.py index 2aa9c6a96e..2e31694166 100644 --- a/trytond/model/fields/reference.py +++ b/trytond/model/fields/reference.py @@ -110,8 +110,9 @@ class Reference(SelectionMixin, Field): assert hasattr(model, self.selection), \ 'Missing %s on model %s' % (self.selection, model.__name__) instantiate = 0 if self.selection_change_with else None + cache = dict(days=1) if instantiate is None else None model.__rpc__.setdefault( - self.selection, RPC(instantiate=instantiate)) + self.selection, RPC(instantiate=instantiate, cache=cache)) def get(self, ids, model, name, values=None): ''' diff --git a/trytond/model/fields/selection.py b/trytond/model/fields/selection.py index 498076e2b4..8230f77da8 100644 --- a/trytond/model/fields/selection.py +++ b/trytond/model/fields/selection.py @@ -116,8 +116,9 @@ class Selection(SelectionMixin, Field): assert hasattr(model, self.selection), \ 'Missing %s on model %s' % (self.selection, model.__name__) instantiate = 0 if self.selection_change_with else None + cache = dict(days=1) if instantiate is None else None model.__rpc__.setdefault( - self.selection, RPC(instantiate=instantiate)) + self.selection, RPC(instantiate=instantiate, cache=cache)) def convert_order(self, name, tables, Model): if getattr(Model, 'order_%s' % name, None):