Skip to content

Commit

Permalink
[16.0][MIG] pricelist_cache: Migration to 16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinkhao committed Jan 9, 2025
1 parent 189615e commit b34dc69
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 27 deletions.
10 changes: 5 additions & 5 deletions pricelist_cache/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ Pricelist Cache
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/sale-workflow/tree/15.0/pricelist_cache
:target: https://github.com/OCA/sale-workflow/tree/16.0/pricelist_cache
:alt: OCA/sale-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/sale-workflow-15-0/sale-workflow-15-0-pricelist_cache
:target: https://translation.odoo-community.org/projects/sale-workflow-16-0/sale-workflow-16-0-pricelist_cache
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&target_branch=15.0
:target: https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&target_branch=16.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|
Expand Down Expand Up @@ -57,7 +57,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/sale-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/sale-workflow/issues/new?body=module:%20pricelist_cache%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/sale-workflow/issues/new?body=module:%20pricelist_cache%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Expand Down Expand Up @@ -101,6 +101,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/15.0/pricelist_cache>`_ project on GitHub.
This module is part of the `OCA/sale-workflow <https://github.com/OCA/sale-workflow/tree/16.0/pricelist_cache>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 1 addition & 1 deletion pricelist_cache/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Provide a new model to cache price lists and update it,
to make it easier to retrieve them.
""",
"version": "15.0.1.4.1",
"version": "16.0.1.0.0",
"category": "Hidden",
"author": "Camptocamp, Odoo Community Association (OCA)",
"license": "AGPL-3",
Expand Down
9 changes: 4 additions & 5 deletions pricelist_cache/models/product_pricelist.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def _get_parent_list_tree(self):
)
SELECT id FROM parent_pricelist;
"""
self.flush()
self.env.flush_all()
self.env.cr.execute(query, {"pricelist_id": self.id})
return self.search([("id", "in", [row[0] for row in self.env.cr.fetchall()])])

Expand All @@ -74,8 +74,7 @@ def _get_product_prices(self, product_ids):
# between the time where records have been created / modified
# and the time this method is executed.
products = self.env["product.product"].search([("id", "in", product_ids)])
products_qty_partner = [(p, 1, False) for p in products]
results = self._compute_price_rule(products_qty_partner, date.today())
results = self._compute_price_rule(products, 1, date=date.today())
product_prices = {prod: price[0] for prod, price in results.items()}
return product_prices

Expand All @@ -97,7 +96,7 @@ def _get_root_pricelist_ids(self):
)
AND active = TRUE;
"""
self.flush()
self.env.flush_all()
self.env.cr.execute(no_parent_query)
return [row[0] for row in self.env.cr.fetchall()]

Expand All @@ -124,7 +123,7 @@ def _get_factor_pricelist_ids(self):
)
AND active = TRUE;
"""
self.flush()
self.env.flush_all()
self.env.cr.execute(factor_pricelist_query)
return [row[0] for row in self.env.cr.fetchall()]

Expand Down
8 changes: 4 additions & 4 deletions pricelist_cache/models/product_pricelist_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ def _update_existing_records(self, product_prices):
c.id = pricelist_cache.id;
"""
).format(sql.SQL("), (").join(values))
self.flush()
self.env.flush_all()
self.env.cr.execute(query)
self.invalidate_cache(["price"])
self.recompute()
self.invalidate_model(["price"])
self.env.flush_all()

def _create_cache_records(self, pricelist_id, product_ids, product_prices):
"""Create price cache records for a given pricelist, applied to a list of
Expand All @@ -95,7 +95,7 @@ def _create_cache_records(self, pricelist_id, product_ids, product_prices):
VALUES ({});
"""
).format(sql.SQL("), (").join(values))
self.flush()
self.env.flush_all()
self.env.cr.execute(query)

def _update_pricelist_cache(self, pricelist_id, product_prices):
Expand Down
17 changes: 10 additions & 7 deletions pricelist_cache/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@

/*
:Author: David Goodger ([email protected])
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.

Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.

See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
Expand Down Expand Up @@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }

pre.code .ln { color: grey; } /* line numbers */
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
Expand All @@ -300,7 +301,7 @@
span.pre {
white-space: pre }

span.problematic {
span.problematic, pre.problematic {
color: red }

span.section-subtitle {
Expand Down Expand Up @@ -368,7 +369,7 @@ <h1 class="title">Pricelist Cache</h1>
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:bb3e40e5293be4f7cc3cd29f10f9cbad5c195b0a8c90483d8355b15a455ebf05
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/sale-workflow/tree/15.0/pricelist_cache"><img alt="OCA/sale-workflow" src="https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/sale-workflow-15-0/sale-workflow-15-0-pricelist_cache"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/sale-workflow/tree/16.0/pricelist_cache"><img alt="OCA/sale-workflow" src="https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/sale-workflow-16-0/sale-workflow-16-0-pricelist_cache"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/sale-workflow&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Provides a cron task who caches prices for all products and all pricelists.
The goal is to be able to generate a whole catalog of prices and products for a given customer in a decent time.</p>
<p>Everyday, the cron task will trash the previous day’s cache, and rebuild it from scratch.
Expand Down Expand Up @@ -405,7 +406,7 @@ <h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/sale-workflow/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/sale-workflow/issues/new?body=module:%20pricelist_cache%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<a class="reference external" href="https://github.com/OCA/sale-workflow/issues/new?body=module:%20pricelist_cache%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
Expand Down Expand Up @@ -445,11 +446,13 @@ <h2><a class="toc-backref" href="#toc-entry-6">Other credits</a></h2>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/sale-workflow/tree/15.0/pricelist_cache">OCA/sale-workflow</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/sale-workflow/tree/16.0/pricelist_cache">OCA/sale-workflow</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
Expand Down
10 changes: 5 additions & 5 deletions pricelist_cache/tests/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ class TestPricelistCacheCommon(TransactionCase):
@classmethod
def setUpClassBaseCache(cls):
cls.cache_model.cron_reset_pricelist_cache()
cls.env["product.pricelist"].invalidate_cache(["is_pricelist_cache_available"])
cls.env["product.pricelist"].invalidate_model(["is_pricelist_cache_available"])

@classmethod
def set_currency(cls):
Expand Down Expand Up @@ -136,15 +136,15 @@ def setUpClass(cls):

def _flush_cache(self):
self.cache_model.flush_pricelist_cache()
self.env["res.partner"].invalidate_cache(["is_pricelist_cache_available"])
self.env["product.pricelist"].invalidate_cache(["is_pricelist_cache_available"])
self.env["res.partner"].invalidate_model(["is_pricelist_cache_available"])
self.env["product.pricelist"].invalidate_model(["is_pricelist_cache_available"])

def _update_cache(self, pricelist_ids=None, product_ids=None):
self.cache_model.update_product_pricelist_cache(
product_ids=product_ids, pricelist_ids=pricelist_ids
)
self.env["res.partner"].invalidate_cache(["is_pricelist_cache_available"])
self.env["product.pricelist"].invalidate_cache(["is_pricelist_cache_available"])
self.env["res.partner"].invalidate_model(["is_pricelist_cache_available"])
self.env["product.pricelist"].invalidate_model(["is_pricelist_cache_available"])

def assert_cache_available(self, lists):
self.assertTrue(all(lists.mapped("is_pricelist_cache_available")))
Expand Down

0 comments on commit b34dc69

Please sign in to comment.