Metadata-Version: 2.1
Name: odoo-addon-stock_putaway_hook
Version: 18.0.1.0.0.2
Requires-Python: >=3.10
Requires-Dist: odoo==18.0.*
Summary: Add hooks allowing modules to add more putaway strategies
Home-page: https://github.com/OCA/stock-logistics-putaway
License: AGPL-3
Author: Camptocamp, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 18.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3

===================
Stock Putaway Hooks
===================

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:094ce480960d213e3fda309d307ea8819f54e00a86bd76e8aa1fb92939a089de
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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--putaway-lightgray.png?logo=github
    :target: https://github.com/OCA/stock-logistics-putaway/tree/18.0/stock_putaway_hook
    :alt: OCA/stock-logistics-putaway
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/stock-logistics-putaway-18-0/stock-logistics-putaway-18-0-stock_putaway_hook
    :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-putaway&target_branch=18.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Technical module. It adds hooks to the core putaway method
``StockLocation._get_putaway_strategy()`` allowing to plug other
strategies and makes the selector fields in the tree views dynamic
(required/readonly). See the usage section for details.

An example of implementation is the module ``stock_putaway_by_route``.

**Table of contents**

.. contents::
   :local:

Usage
=====

The modules that implement a new strategy have to follow the following
steps. The module ``stock_putaway_by_route`` should be used as
reference.

Add the field to match on ``stock.putaway.rule`` in the model and in the
view. In the view, the field must have
``options="{'exclusive_selection': True}"``, which will allow this
module to dynamically build dynamic attrs, restricting the selection of
more than one field. (defining the readonly and required attrs in the
view is therefore useless).

Add the strategy key, named after the new field name, in
``StockLocation._putaway_strategies``. Example:

::

   class StockLocation(models.Model):
       _inherit = "stock.location"

       @property
       def _putaway_strategies(self):
           strategies = super()._putaway_strategies
           return strategies + ["route_id"]

Pass the value to match with the putaway rule field in the context, in
every method calling ``StockLocation._get_putaway_strategy``. The name
of the key in the context is:``_putaway_<KEY>``, where KEY is the name
of the new field on the putaway rule. The value can be a unit, a
recordset of any length or a list/tuple. In latter cases, the putaway
rule is selected if its field match any value in the list/recordset.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-putaway/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-putaway/issues/new?body=module:%20stock_putaway_hook%0Aversion:%2018.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
-------

* Camptocamp

Contributors
------------

- Guewen Baconnier <guewen.baconnier@camptocamp.com>
- Fernando La Chica <fernandolachica@gmail.com>
- Denis Roussel <denis.roussel@acsone.eu>

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.

This module is part of the `OCA/stock-logistics-putaway <https://github.com/OCA/stock-logistics-putaway/tree/18.0/stock_putaway_hook>`_ project on GitHub.

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