diff --git a/stock_average_daily_sale/models/stock_average_daily_sale.py b/stock_average_daily_sale/models/stock_average_daily_sale.py index 46e934a..57b18e8 100644 --- a/stock_average_daily_sale/models/stock_average_daily_sale.py +++ b/stock_average_daily_sale/models/stock_average_daily_sale.py @@ -101,7 +101,8 @@ class StockAverageDailySale(models.Model): @api.model def _check_view(self): try: - self.env.cr.execute("SELECT COUNT(1) FROM %s", (AsIs(self._table),)) + with self.env.cr.savepoint(): + self.env.cr.execute("SELECT COUNT(1) FROM %s", (AsIs(self._table),)) return True except ObjectNotInPrerequisiteState: _logger.warning( @@ -113,18 +114,11 @@ class StockAverageDailySale(models.Model): # pylint: disable=redefined-outer-name @api.model - def search_read( - self, domain=None, fields=None, offset=0, limit=None, order=None, **read_kwargs - ): + def search(self, domain, offset=0, limit=None, order=None, count=False): if not self._check_view(): return self.browse() - return super().search_read( - domain=domain, - fields=fields, - offset=offset, - limit=limit, - order=order, - **read_kwargs + return super().search( + domain=domain, offset=offset, limit=limit, order=order, count=count ) @api.model diff --git a/stock_average_daily_sale/tests/test_average_daily_sale.py b/stock_average_daily_sale/tests/test_average_daily_sale.py index 97c0857..2b9128b 100644 --- a/stock_average_daily_sale/tests/test_average_daily_sale.py +++ b/stock_average_daily_sale/tests/test_average_daily_sale.py @@ -1,5 +1,6 @@ # Copyright 2022 ACSONE SA/NV # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from dateutil.relativedelta import relativedelta from freezegun import freeze_time @@ -204,3 +205,16 @@ class TestAverageSale(CommonAverageSaleTest, TransactionCase): self.env["stock.average.daily.sale"].search_read( [("product_id", "=", self.product_1.id)] ) + + def test_view_not_refreshed(self): + with self.assertLogs( + "odoo.addons.stock_average_daily_sale.models.stock_average_daily_sale", + level="WARNING", + ) as logger: + self.env["stock.average.daily.sale"].search( + [("product_id", "=", self.product_1.id)] + ) + self.assertIn( + str("The materialized view has not been populated. Launch the cron."), + str(logger.output), + )