Merge PR #2200 into 16.0

Signed-off-by jbaudoux
This commit is contained in:
OCA-git-bot
2024-12-31 12:09:26 +00:00
19 changed files with 861 additions and 0 deletions

View File

@@ -0,0 +1 @@
../../../../stock_location_pending_move

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)

View File

@@ -0,0 +1,139 @@
===========================
Stock Location Pending Move
===========================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:13932439c6430c16f223accefd5f51924e3f1839546e1d47376881d21d6147d7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
: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/16.0/stock_location_pending_move
: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-16-0/stock-logistics-warehouse-16-0-stock_location_pending_move
: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=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows to access incoming and ougoing pending moves from a
stock location.
- Stock Location view:
|Pending Moves|
- Detail grouped per origin location:
|Detailed view|
.. |Pending Moves| image:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_location_pending_move/static/description/pending_moves.png
.. |Detailed view| image:: https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_location_pending_move/static/description/pending_moves_detail.png
**Table of contents**
.. contents::
:local:
Use Cases / Context
===================
When user wants to make a diagnostic on a particular stock location, it
is useful to have pending stock moves that will go in or go out (you can
also go to 'Moves History' but you need to use a filter on stock
location).
Configuration
=============
[ This file is not always required; it should explain **how to configure
the module before using it**; it is aimed at users with administration
privileges.
Please be detailed on the path to configuration (eg: do you need to
activate developer mode?), describe step by step configurations and the
use of screenshots is strongly recommended.]
To configure this module, you need to:
- Go to *App* > Menu > Menu item
- Activate boolean… > save
-
Usage
=====
- Storage Locations should have been enabled.
- Go to Inventory > Configuration > Warehouse Management > Locations
- Click on 'Pending Move' to see stock moves.
- Click on 'Pending Operations' to see detailed operations.
- By default, the moves are displayed grouped by source location in
order to easy review if there are plenty of moves.
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_pending_move%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.
Credits
=======
Authors
-------
* ACSONE SA/NV
* BCIM
* Camptocamp
Contributors
------------
- Denis Roussel denis.roussel@acsone.eu
- Guewen Baconnier
- Akim Juillerat akim.juillerat@camptocamp.com
- Alexandre Fayolle alexandre.faoylle@camptocamp.com
Maintainers
-----------
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
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.
.. |maintainer-rousseldenis| image:: https://github.com/rousseldenis.png?size=40px
:target: https://github.com/rousseldenis
:alt: rousseldenis
.. |maintainer-jbaudoux| image:: https://github.com/jbaudoux.png?size=40px
:target: https://github.com/jbaudoux
:alt: jbaudoux
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-rousseldenis| |maintainer-jbaudoux|
This module is part of the `OCA/stock-logistics-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_location_pending_move>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,16 @@
# Copyright 2024 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Stock Location Pending Move",
"summary": """
This module allows to show pending stock moves (outgoing and incoming)
on a stock location""",
"version": "16.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,BCIM,Camptocamp,Odoo Community Association (OCA)",
"maintainers": ["rousseldenis", "jbaudoux"],
"website": "https://github.com/OCA/stock-logistics-warehouse",
"depends": ["stock"],
"data": ["views/stock_location.xml"],
}

View File

@@ -0,0 +1 @@
from . import stock_location

View File

@@ -0,0 +1,106 @@
# Copyright 2019 Camptocamp SA
# Copyright 2024 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import fields, models
from odoo.tools.safe_eval import safe_eval
PENDING_MOVE_DOMAIN = [
("state", "in", ("waiting", "confirmed", "partially_available", "assigned"))
]
class StockLocation(models.Model):
_inherit = "stock.location"
pending_in_move_ids = fields.One2many(
"stock.move",
"location_dest_id",
domain=PENDING_MOVE_DOMAIN,
help="Technical field: the pending incoming stock moves for the location",
)
pending_in_move_line_ids = fields.One2many(
"stock.move.line",
"location_dest_id",
domain=PENDING_MOVE_DOMAIN,
help="Technical field: the pending incoming "
"stock move lines for the location",
)
pending_out_move_ids = fields.One2many(
"stock.move",
"location_id",
domain=PENDING_MOVE_DOMAIN,
help="Technical field: the pending outgoing stock moves for the location",
)
pending_out_move_line_ids = fields.One2many(
"stock.move.line",
"location_id",
domain=PENDING_MOVE_DOMAIN,
help="Technical field: the pending outgoing "
"stock move lines for the location",
)
def action_show_pending_stock_move_lines(self):
"""
Display all pending stock move lines (outgoing and incoming)
for the location.
"""
self.ensure_one()
action = self.env["ir.actions.act_window"]._for_xml_id(
"stock.stock_move_line_action"
)
# Remove default searches from stock module
context = action.get("context", "{}")
context_dict = safe_eval(context)
if "search_default_done" in context_dict:
context_dict.pop("search_default_done")
context_dict["search_default_todo"] = "1"
context_dict["search_default_by_location"] = True
action["context"] = str(context_dict)
action.update(
{
"domain": [
(
"id",
"in",
(self.pending_out_move_line_ids | self.pending_in_move_line_ids)
.sorted()
.ids,
)
],
}
)
return action
def action_show_pending_stock_moves(self):
"""
Display all pending stock moves (outgoing and incoming)
for the location.
"""
self.ensure_one()
action = self.env["ir.actions.act_window"]._for_xml_id(
"stock.stock_move_action"
)
# Remove default searches from stock module
context = action.get("context", "{}")
context_dict = safe_eval(context)
if "search_default_done" in context_dict:
context_dict.pop("search_default_done")
context_dict["search_default_todo"] = "1"
context_dict["search_default_groupby_location_id"] = True
action["context"] = str(context_dict)
action.update(
{
"domain": [
(
"id",
"in",
(self.pending_in_move_ids | self.pending_out_move_ids)
.sorted()
.ids,
)
],
}
)
return action

View File

@@ -0,0 +1,10 @@
[ This file is not always required; it should explain **how to configure the module before using it**; it is aimed at users with administration privileges.
Please be detailed on the path to configuration (eg: do you need to activate developer mode?), describe step by step configurations and the use of screenshots is strongly recommended.]
To configure this module, you need to:
- Go to *App* > Menu > Menu item
- Activate boolean… > save
-

View File

@@ -0,0 +1,3 @@
When user wants to make a diagnostic on a particular stock location, it is
useful to have pending stock moves that will go in or go out (you can also
go to 'Moves History' but you need to use a filter on stock location).

View File

@@ -0,0 +1,4 @@
- Denis Roussel <denis.roussel@acsone.eu>
- Guewen Baconnier
- Akim Juillerat <akim.juillerat@camptocamp.com>
- Alexandre Fayolle <alexandre.faoylle@camptocamp.com>

View File

@@ -0,0 +1,10 @@
This module allows to access incoming and ougoing pending moves from
a stock location.
- Stock Location view:
![Pending Moves](../static/description/pending_moves.png)
- Detail grouped per origin location:
![Detailed view](../static/description/pending_moves_detail.png)

View File

@@ -0,0 +1,6 @@
- Storage Locations should have been enabled.
- Go to Inventory > Configuration > Warehouse Management > Locations
- Click on 'Pending Move' to see stock moves.
- Click on 'Pending Operations' to see detailed operations.
- By default, the moves are displayed grouped by source location in order
to easy review if there are plenty of moves.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,475 @@
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Stock Location Pending Move</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
: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.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
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 }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="stock-location-pending-move">
<h1 class="title">Stock Location Pending Move</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:13932439c6430c16f223accefd5f51924e3f1839546e1d47376881d21d6147d7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<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_pending_move"><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_pending_move"><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 allows to access incoming and ougoing pending moves from a
stock location.</p>
<ul class="simple">
<li>Stock Location view:</li>
</ul>
<p><img alt="Pending Moves" src="https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_location_pending_move/static/description/pending_moves.png" /></p>
<ul class="simple">
<li>Detail grouped per origin location:</li>
</ul>
<p><img alt="Detailed view" src="https://raw.githubusercontent.com/OCA/stock-logistics-warehouse/16.0/stock_location_pending_move/static/description/pending_moves_detail.png" /></p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#use-cases-context" id="toc-entry-1">Use Cases / Context</a></li>
<li><a class="reference internal" href="#configuration" id="toc-entry-2">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-3">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="use-cases-context">
<h1><a class="toc-backref" href="#toc-entry-1">Use Cases / Context</a></h1>
<p>When user wants to make a diagnostic on a particular stock location, it
is useful to have pending stock moves that will go in or go out (you can
also go to Moves History but you need to use a filter on stock
location).</p>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-2">Configuration</a></h1>
<p>[ This file is not always required; it should explain <strong>how to configure
the module before using it</strong>; it is aimed at users with administration
privileges.</p>
<p>Please be detailed on the path to configuration (eg: do you need to
activate developer mode?), describe step by step configurations and the
use of screenshots is strongly recommended.]</p>
<p>To configure this module, you need to:</p>
<ul class="simple">
<li>Go to <em>App</em> &gt; Menu &gt; Menu item</li>
<li>Activate boolean… &gt; save</li>
<li></li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-3">Usage</a></h1>
<ul class="simple">
<li>Storage Locations should have been enabled.</li>
<li>Go to Inventory &gt; Configuration &gt; Warehouse Management &gt; Locations</li>
<li>Click on Pending Move to see stock moves.</li>
<li>Click on Pending Operations to see detailed operations.</li>
<li>By default, the moves are displayed grouped by source location in
order to easy review if there are plenty of moves.</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-4">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_pending_move%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">
<h1><a class="toc-backref" href="#toc-entry-5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-6">Authors</a></h2>
<ul class="simple">
<li>ACSONE SA/NV</li>
<li>BCIM</li>
<li>Camptocamp</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-7">Contributors</a></h2>
<ul class="simple">
<li>Denis Roussel <a class="reference external" href="mailto:denis.roussel&#64;acsone.eu">denis.roussel&#64;acsone.eu</a></li>
<li>Guewen Baconnier</li>
<li>Akim Juillerat <a class="reference external" href="mailto:akim.juillerat&#64;camptocamp.com">akim.juillerat&#64;camptocamp.com</a></li>
<li>Alexandre Fayolle <a class="reference external" href="mailto:alexandre.faoylle&#64;camptocamp.com">alexandre.faoylle&#64;camptocamp.com</a></li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-8">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>
<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>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainers</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/rousseldenis"><img alt="rousseldenis" src="https://github.com/rousseldenis.png?size=40px" /></a> <a class="reference external image-reference" href="https://github.com/jbaudoux"><img alt="jbaudoux" src="https://github.com/jbaudoux.png?size=40px" /></a></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_pending_move">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>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

View File

@@ -0,0 +1 @@
from . import test_location_pending_move

View File

@@ -0,0 +1,48 @@
# Copyright 2024 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.osv.expression import AND
from odoo.addons.base.tests.common import BaseCommon
from ..models.stock_location import PENDING_MOVE_DOMAIN
class TestLocationPendingMove(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.stock = cls.env.ref("stock.stock_location_stock")
def test_location_pending_move(self):
# Check that the action domain is well filled with pending moves ids.
domain = AND(
[
[
"|",
("location_id", "=", self.stock.id),
("location_dest_id", "=", self.stock.id),
],
PENDING_MOVE_DOMAIN,
]
)
moves = self.env["stock.move"].search(domain)
action = self.stock.action_show_pending_stock_moves()
self.assertDictContainsSubset({"domain": [("id", "in", moves.ids)]}, action)
def test_location_pending_move_line(self):
# Check that the action domain is well filled with pending move lines ids.
domain = AND(
[
[
"|",
("location_id", "=", self.stock.id),
("location_dest_id", "=", self.stock.id),
],
PENDING_MOVE_DOMAIN,
]
)
move_lines = self.env["stock.move.line"].search(domain)
action = self.stock.action_show_pending_stock_move_lines()
self.assertDictContainsSubset(
{"domain": [("id", "in", move_lines.ids)]}, action
)

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2024 ACSONE SA/NV
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="stock_location_form_view">
<field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form" />
<field name="arch" type="xml">
<div name="button_box" position="inside">
<button
string="Pending Moves"
help="These are the pending stock moves."
class="oe_stat_button"
icon="fa-exchange"
name="action_show_pending_stock_moves"
type="object"
groups="stock.group_stock_multi_locations"
/>
<button
string="Pending Operations"
help="These are the pending stock operations."
class="oe_stat_button"
icon="fa-exchange"
name="action_show_pending_stock_move_lines"
type="object"
groups="stock.group_stock_multi_locations"
/>
</div>
</field>
</record>
</odoo>