From 17a4499ac7997e30afe5319ca784251c40fb56aa Mon Sep 17 00:00:00 2001 From: Frederik Jaeckel Date: Mon, 27 Feb 2023 20:46:41 +0100 Subject: [PATCH] book:caching for line, settings: cache clear --- assetsetting.py | 9 +++++++++ book.py | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/assetsetting.py b/assetsetting.py index f9846a8..c3e94a6 100644 --- a/assetsetting.py +++ b/assetsetting.py @@ -21,4 +21,13 @@ class AssetSetting(ModelSingleton, ModelSQL, ModelView): model_name='cashbook.book', ondelete='RESTRICT', help='Profit and loss on sale of assets are recorded in the cash book.') + @classmethod + def write(cls, *args): + """ clear cache-values + """ + MemCache = Pool().get('cashbook.memcache') + + MemCache._cashbook_value_cache.clear_all() + super(AssetSetting, cls).write(*args) + # end AssetSetting diff --git a/book.py b/book.py index 949c331..68139e1 100644 --- a/book.py +++ b/book.py @@ -15,7 +15,7 @@ from sql import Literal from sql.functions import CurrentDate from sql.aggregate import Sum from sql.conditionals import Case, Coalesce -from trytond.modules.cashbook.model import CACHEKEY_CURRENCY +from trytond.modules.cashbook.model import CACHEKEY_CURRENCY, CACHEKEY_CASHBOOK from .asset import CACHEKEY_ASSETRATE @@ -282,6 +282,7 @@ class Book(SymbolMixin, metaclass=PoolMeta): query = [{ 'model': 'cashbook.line', 'query': [('cashbook.parent', 'child_of', [x.id])], + 'cachekey': CACHEKEY_CASHBOOK % x.id, }, { 'model': 'currency.currency.rate', 'query': [('currency.id', '=', x.currency.id)], @@ -422,9 +423,11 @@ class Book(SymbolMixin, metaclass=PoolMeta): query = [{ 'model': 'cashbook.line', 'query': [('cashbook.parent', 'child_of', [x.id])], + 'cachekey': CACHEKEY_CASHBOOK % x.id, }, { 'model': 'currency.currency.rate', 'query': [('currency.id', '=', x.currency.id)], + 'cachekey': CACHEKEY_CURRENCY % x.currency.id, }, { 'model': 'investment.rate', 'query': [('asset.id', '=', x.asset.id)],