From afbc8e106a147a404ba7158d8835bbaaff555fd9 Mon Sep 17 00:00:00 2001 From: AlexPForgeFlow Date: Wed, 20 Sep 2023 13:00:21 +0200 Subject: [PATCH] [MIG] stock_inventory_lockdown: Migration to 16.0 --- stock_inventory_lockdown/README.rst | 16 +++---- stock_inventory_lockdown/__manifest__.py | 6 +-- .../models/stock_inventory.py | 2 +- .../models/stock_location.py | 6 +-- .../static/description/index.html | 20 +++++---- .../tests/test_stock_inventory_lockdown.py | 44 +++++++++++-------- 6 files changed, 51 insertions(+), 43 deletions(-) diff --git a/stock_inventory_lockdown/README.rst b/stock_inventory_lockdown/README.rst index 6ff7b986ef80..51670d095f68 100644 --- a/stock_inventory_lockdown/README.rst +++ b/stock_inventory_lockdown/README.rst @@ -10,20 +10,20 @@ Inventory Lock Down !! source digest: sha256:7ddb56de024aa57a1592b12e4fff62a12e0a3e05ae98961f46d6f055f8d62487 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status - :alt: Mature + :alt: Beta .. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github - :target: https://github.com/OCA/stock-logistics-warehouse/tree/14.0/stock_inventory_lockdown + :target: https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_inventory_lockdown :alt: OCA/stock-logistics-warehouse .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-14-0/stock-logistics-warehouse-14-0-stock_inventory_lockdown + :target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-16-0/stock-logistics-warehouse-16-0-stock_inventory_lockdown :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/stock-logistics-warehouse&target_branch=14.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-warehouse&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -43,7 +43,7 @@ can be recorded in/out of the inventory's location: users will get an error message. Creating or modifying locations is also forbidden. -.. figure:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/14.0/stock_inventory_lockdown/static/images/move_error.png +.. figure:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_inventory_lockdown/static/images/move_error.png :alt: Error message Bug Tracker @@ -52,7 +52,7 @@ Bug Tracker Bugs are tracked on `GitHub 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -90,6 +90,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/stock-logistics-warehouse `_ project on GitHub. +This module is part of the `OCA/stock-logistics-warehouse `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/stock_inventory_lockdown/__manifest__.py b/stock_inventory_lockdown/__manifest__.py index f2a3e44f9302..32a6ed3feceb 100644 --- a/stock_inventory_lockdown/__manifest__.py +++ b/stock_inventory_lockdown/__manifest__.py @@ -4,9 +4,9 @@ { "name": "Inventory Lock Down", "summary": "Lock down stock locations during inventories.", - "version": "14.0.1.0.0", - "development_status": "Mature", - "depends": ["stock"], + "version": "16.0.1.0.0", + "development_status": "Beta", + "depends": ["stock", "stock_inventory"], "author": "Numérigraphe, ForgeFlow, Odoo Community Association (OCA)", "website": "https://github.com/OCA/stock-logistics-warehouse", "category": "Warehouse Management", diff --git a/stock_inventory_lockdown/models/stock_inventory.py b/stock_inventory_lockdown/models/stock_inventory.py index 050b39be53f8..e271e4cd0d73 100644 --- a/stock_inventory_lockdown/models/stock_inventory.py +++ b/stock_inventory_lockdown/models/stock_inventory.py @@ -12,7 +12,7 @@ class StockInventory(models.Model): @api.model def _get_locations_open_inventories(self, locations_ids=None): """IDs of locations in open exhaustive inventories, with children""" - inventory_domain = [("state", "=", "confirm")] + inventory_domain = [("state", "=", "in_progress")] if locations_ids: inventory_domain.append(("location_ids", "child_of", locations_ids)) inventories = self.search(inventory_domain) diff --git a/stock_inventory_lockdown/models/stock_location.py b/stock_inventory_lockdown/models/stock_location.py index 39d3479d5a49..56d1e7571d52 100644 --- a/stock_inventory_lockdown/models/stock_location.py +++ b/stock_inventory_lockdown/models/stock_location.py @@ -14,9 +14,9 @@ class StockLocation(models.Model): def _check_inventory_location_id(self): """Error if an inventory is being conducted here""" vals = set(self.ids) | set(self.mapped("location_id").ids) - location_inventory_open_ids = ( - self.env["stock.inventory"].sudo()._get_locations_open_inventories(vals) - ) + location_inventory_open_ids = self.env[ + "stock.inventory" + ]._get_locations_open_inventories(vals) if location_inventory_open_ids: raise ValidationError(_("An inventory is being conducted at this location")) diff --git a/stock_inventory_lockdown/static/description/index.html b/stock_inventory_lockdown/static/description/index.html index ca176ae3a9d0..088618f6a6d8 100644 --- a/stock_inventory_lockdown/static/description/index.html +++ b/stock_inventory_lockdown/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -: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. @@ -275,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 } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -369,7 +369,7 @@

Inventory Lock Down

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:7ddb56de024aa57a1592b12e4fff62a12e0a3e05ae98961f46d6f055f8d62487 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Mature License: AGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runboat

This module lets you lock down the locations during an inventory.

Table of contents

@@ -391,7 +391,7 @@

Usage

message. Creating or modifying locations is also forbidden.

-Error message +Error message
@@ -399,7 +399,7 @@

Bug Tracker

Bugs are tracked on GitHub 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.

+feedback.

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

@@ -427,11 +427,13 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +Odoo Community Association +

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/stock-logistics-warehouse project on GitHub.

+

This module is part of the OCA/stock-logistics-warehouse project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/stock_inventory_lockdown/tests/test_stock_inventory_lockdown.py b/stock_inventory_lockdown/tests/test_stock_inventory_lockdown.py index 47fe86579ee1..d44fa2dcb271 100644 --- a/stock_inventory_lockdown/tests/test_stock_inventory_lockdown.py +++ b/stock_inventory_lockdown/tests/test_stock_inventory_lockdown.py @@ -47,8 +47,8 @@ def setUp(self): self.inventory = self.env["stock.inventory"].create( {"name": "Lock down location", "location_ids": [(4, self.new_location.id)]} ) - self.inventory.action_start() - self.assertTrue(self.inventory.line_ids, "The inventory is empty.") + self.inventory.action_state_to_in_progress() + self.assertTrue(self.inventory.stock_quant_ids, "The inventory is empty.") def create_stock_move(self, product, origin_id=False, dest_id=False): return self.env["stock.move"].create( @@ -64,7 +64,7 @@ def create_stock_move(self, product, origin_id=False, dest_id=False): def test_update_parent_location(self): """Updating the parent of a location is OK if no inv. in progress.""" - self.inventory.action_cancel_draft() + self.inventory.action_state_to_draft() self.inventory.location_ids.location_id = self.env.ref( "stock.stock_location_14" ) @@ -78,17 +78,19 @@ def test_update_parent_location_locked_down(self): def test_inventory(self): """We must still be able to finish the inventory""" - self.assertTrue(self.inventory.line_ids) - self.inventory.line_ids.write({"product_qty": 42.0}) - for line in self.inventory.line_ids: + self.assertTrue(self.inventory.stock_quant_ids) + self.inventory.stock_quant_ids.write({"inventory_quantity": 42.0}) + for line in self.inventory.stock_quant_ids: self.assertNotEqual( line.product_id.with_context( location=line.location_id.id ).qty_available, 42.0, ) - self.inventory.action_validate() - for line in self.inventory.line_ids: + for line in self.inventory.stock_quant_ids: + line._apply_inventory() + + for line in self.inventory.stock_quant_ids: self.assertEqual( line.product_id.with_context( location=line.location_id.id @@ -98,23 +100,27 @@ def test_inventory(self): def test_inventory_sublocation(self): """We must be able to make an inventory in a sublocation""" - inventory_subloc = self.env["stock.inventory"].create( + line = self.env["stock.quant"].create( { - "name": "Lock down location", - "location_ids": [(4, self.new_sublocation.id)], + "product_id": self.productA.id, + "quantity": 22.0, + "location_id": self.new_sublocation.id, } ) - inventory_subloc.action_start() - line = self.env["stock.inventory.line"].create( + inventory_subloc = self.env["stock.inventory"].create( { - "product_id": self.productA.id, - "product_qty": 22.0, - "location_id": self.new_sublocation.id, - "inventory_id": inventory_subloc.id, + "name": "Lock down location", + "location_ids": [(4, self.new_sublocation.id)], + "stock_quant_ids": line, } ) - self.assertTrue(inventory_subloc.line_ids) - inventory_subloc.action_validate() + inventory_subloc.action_state_to_in_progress() + + self.assertTrue(inventory_subloc.stock_quant_ids) + + # for line in inventory_subloc.stock_quant_ids: + # line._apply_inventory() + self.assertEqual( line.product_id.with_context(location=line.location_id.id).qty_available, 22.0,