[MIG] stock_location_package_restriction: Migration to 16.0

This commit is contained in:
Jacques-Etienne Baudoux
2024-06-11 13:06:34 +02:00
parent e7d794530a
commit ae595b0798
8 changed files with 39 additions and 55 deletions

View File

@@ -17,13 +17,13 @@ Stock Location Package Restriction
: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_location_package_restriction
:target: https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_location_package_restriction
: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_location_package_restriction
:target: https://translation.odoo-community.org/projects/stock-logistics-warehouse-16-0/stock-logistics-warehouse-16-0-stock_location_package_restriction
: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|
@@ -38,17 +38,20 @@ This module adds the option to set restrictions for the packages that can be put
Usage
=====
Configure on the location if the contained products must be part of a package
and if you allow multiple package. When the module is installed, by default
there is no restriction on the locations.
Configure on the location the package restriction.
The options are:
* False (not set): No restriction, the location can contain products with and
without package
* Forbidden: The location cannot have products part of a package
* Mandatory and unique: The location cannot have products not part of a
package and you cannot have more than 1 package on the location
* Mandatory and not unique: The location cannot have products not part of a
package and you may have store multiple packages on the location
* Not mandatory: The location can contain products not part of a package
* Mandatory and not unique: The location cannot have products not part of a
package and you may store multiple packages on the location
When the module is installed, by default there is no restriction on the locations.
Bug Tracker
===========
@@ -56,7 +59,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-warehouse/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/stock-logistics-warehouse/issues/new?body=module:%20stock_location_package_restriction%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
`feedback <https://github.com/OCA/stock-logistics-warehouse/issues/new?body=module:%20stock_location_package_restriction%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.
@@ -73,7 +76,7 @@ Contributors
~~~~~~~~~~~~
* Raumschmiede <Raumschmiede.de>
* Jacques-Etienne Baudoux <je@bcim.be>
* Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
* Juan Miguel Sánchez Arce <juan.sanchez@camptocamp.com>
Maintainers
@@ -89,6 +92,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 <https://github.com/OCA/stock-logistics-warehouse/tree/14.0/stock_location_package_restriction>`_ project on GitHub.
This module is part of the `OCA/stock-logistics-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_location_package_restriction>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -1,2 +1 @@
from . import models
from . import tests

View File

@@ -6,7 +6,7 @@
"name": "Stock Location Package Restriction",
"summary": """
Control if the location can contain products in a package""",
"version": "14.0.1.2.1",
"version": "16.0.1.0.0",
"category": "Warehouse Management",
"author": "Raumschmiede.de, BCIM, Odoo Community Association (OCA)",
"maintainters": ["jbaudoux"],

View File

@@ -1,22 +0,0 @@
# Copyright 2023 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
def migrate(cr, installed_version):
if not installed_version:
return
# Replace the norestriction value to null for the package_restriction field
queries = [
"""
ALTER TABLE stock_location
ALTER COLUMN package_restriction
drop not null;
""",
"""
UPDATE stock_location
SET package_restriction = null
WHERE package_restriction = 'norestriction'
""",
]
for query in queries:
cr.execute(query)

View File

@@ -50,7 +50,8 @@ class StockLocation(models.Model):
)
def _has_package_restriction_violation_query(self):
self.flush()
self.flush_model()
self.quant_ids.flush_model()
query = """
SELECT stock_quant.location_id,
(count(distinct(stock_quant.package_id)) > 1)::bool as has_multiple_packages,

View File

@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
@@ -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 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
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.option {
span.pre {
white-space: pre }
span.problematic {
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
@@ -369,7 +369,7 @@ ul.auto-toc {
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:58e74c552f6de90b52c40ae4050660aa90098a8c05856fb239802ff9c0913ccc
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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/stock-logistics-warehouse/tree/14.0/stock_location_package_restriction"><img alt="OCA/stock-logistics-warehouse" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-logistics-warehouse-14-0/stock-logistics-warehouse-14-0-stock_location_package_restriction"><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/stock-logistics-warehouse&amp;target_branch=14.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/stock-logistics-warehouse/tree/16.0/stock_location_package_restriction"><img alt="OCA/stock-logistics-warehouse" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-logistics-warehouse-16-0/stock-logistics-warehouse-16-0-stock_location_package_restriction"><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/stock-logistics-warehouse&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>This module adds the option to set restrictions for the packages that can be put in a location.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
@@ -386,26 +386,27 @@ ul.auto-toc {
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<p>Configure on the location if the contained products must be part of a package
and if you allow multiple package. When the module is installed, by default
there is no restriction on the locations.</p>
<p>Configure on the location the package restriction.</p>
<p>The options are:</p>
<blockquote>
<ul class="simple">
<li>False (not set): No restriction, the location can contain products with and
without package</li>
<li>Forbidden: The location cannot have products part of a package</li>
<li>Mandatory and unique: The location cannot have products not part of a
package and you cannot have more than 1 package on the location</li>
<li>Mandatory and not unique: The location cannot have products not part of a
package and you may have store multiple packages on the location</li>
<li>Not mandatory: The location can contain products not part of a package</li>
<li>Mandatory and not unique: The location cannot have products not part of a
package and you may store multiple packages on the location</li>
</ul>
</blockquote>
<p>When the module is installed, by default there is no restriction on the locations.</p>
</div>
<div class="section" id="bug-tracker">
<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/stock-logistics-warehouse/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/stock-logistics-warehouse/issues/new?body=module:%20stock_location_package_restriction%0Aversion:%2014.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/stock-logistics-warehouse/issues/new?body=module:%20stock_location_package_restriction%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">
@@ -421,18 +422,20 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li>Raumschmiede &lt;Raumschmiede.de&gt;</li>
<li>Jacques-Etienne Baudoux &lt;<a class="reference external" href="mailto:je&#64;bcim.be">je&#64;bcim.be</a>&gt;</li>
<li>Jacques-Etienne Baudoux (BCIM) &lt;<a class="reference external" href="mailto:je&#64;bcim.be">je&#64;bcim.be</a>&gt;</li>
<li>Juan Miguel Sánchez Arce &lt;<a class="reference external" href="mailto:juan.sanchez&#64;camptocamp.com">juan.sanchez&#64;camptocamp.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">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/stock-logistics-warehouse/tree/14.0/stock_location_package_restriction">OCA/stock-logistics-warehouse</a> project on GitHub.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_location_package_restriction">OCA/stock-logistics-warehouse</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>

View File

@@ -88,7 +88,7 @@ class TestLocationPackageRestrictionCommon(SavepointCase):
{
"product_id": product.id,
"package_id": package and package.id,
"inventory_quantity": qty,
"inventory_quantity_auto_apply": qty,
"location_id": location.id,
}
)
@@ -138,5 +138,5 @@ class TestLocationPackageRestrictionCommon(SavepointCase):
def _process_picking(cls, picking):
picking.action_assign()
for line in picking.move_line_ids:
line.qty_done = line.product_qty
line.qty_done = line.reserved_qty
picking.button_validate()

View File

@@ -161,7 +161,7 @@ class TestStockMove(TestLocationPackageRestrictionCommon):
picking.action_assign()
# Processing only one move out of two
line_to_process = picking.move_line_ids[0]
line_to_process.qty_done = line_to_process.product_qty
line_to_process.qty_done = line_to_process.reserved_qty
wizard_action = picking.button_validate()
wizard_context = wizard_action.get("context", {})
wizard = (