Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
59dc71e
Add shopfloor_reception_packaging_dimension
TDu Jun 8, 2023
3411841
sh_reception_packaging_dimension: refactor to allow module to extend
TDu Jul 11, 2023
af57961
[UPD] Update shopfloor_reception_packaging_dimension.pot
Nov 7, 2023
861bb81
Added translation using Weblate (Italian)
mymage Nov 7, 2023
a97cbb0
sf_reception_packaging_dimension: fix test confirmation
TDu Nov 22, 2023
ddbcfed
[BOT] post-merge updates
OCA-git-bot Nov 22, 2023
8516993
[IMP] shopfloor_reception_packaging_dimension: pre-commit auto fixes
grindtildeath Aug 4, 2025
044a823
[MIG] shopfloor_reception_packaging_dimension: Migration to 18.0
grindtildeath Aug 5, 2025
724d0b0
shopfloor_reception_packaging_dimension: fix missing response validator
simahawk Aug 19, 2025
172b681
shopfloor_reception_packaging_dimension: fix init of class var
simahawk Aug 19, 2025
37b2425
shopfloor_reception_packaging_dimension: fix typo
simahawk Aug 19, 2025
b2568af
shopfloor_reception_packaging_dimension: add hooks for packaging data
simahawk Aug 19, 2025
a58e4c0
[UPD] Update shopfloor_reception_packaging_dimension.pot
Aug 19, 2025
b61bae6
[BOT] post-merge updates
OCA-git-bot Aug 19, 2025
959bfad
[IMP] shopfloor_reception_packaging_dimension: collect only needed di…
grindtildeath Aug 20, 2025
74e1a94
[UPD] Update shopfloor_reception_packaging_dimension.pot
Aug 29, 2025
5bf699c
[BOT] post-merge updates
OCA-git-bot Aug 29, 2025
b05eec0
Update translation files
weblate Aug 29, 2025
2a69118
Translated using Weblate (Italian)
mymage Sep 1, 2025
b46fcdc
[IMP] shopfloor_reception_packaging_dimension: pre-commit autofixes
rousseldenis Sep 5, 2025
18735a0
[MIG] shopfloor_reception_packaging_dimension: Migration to 16.0 (fro…
rousseldenis Sep 5, 2025
e3af113
Add shopfloor_reception_packaging_dimension_mobile
TDu Jun 7, 2023
bd97e3a
sh_reception_packaging_dimension_mobile: refactor for extensibility
TDu Jul 11, 2023
5ba6349
[UPD] Update shopfloor_reception_packaging_dimension_mobile.pot
Nov 7, 2023
befd37b
[BOT] post-merge updates
OCA-git-bot Nov 7, 2023
1cc816d
Added translation using Weblate (Italian)
mymage Nov 7, 2023
441a5e9
[IMP] shopfloor_reception_packaging_dimension_mobile: pre-commit auto…
rousseldenis Sep 5, 2025
69a1afc
[MIG] shopfloor_reception_packaging_dimension_mobile: Migration to 16.0
rousseldenis Sep 5, 2025
95a3463
[FIX] shopfloor_reception_packaging_dimension_mobile: Use correct fie…
rousseldenis Oct 13, 2025
fb6c095
shopfloor_reception_packaging_dimension: Collect dimension optional w…
mmequignon Sep 23, 2025
8e56fd8
[IMP] shopfloor_reception_packaging_dimension: format readme and inde…
nicolas-delbovier-acsone Feb 26, 2026
9b26d3f
[FIX] shopfloor_reception_packaging_dimension: prevent session recove…
nicolas-delbovier-acsone Feb 26, 2026
1ae9026
[IMP] shopfloor_reception_packaging_dimension: use custom packaging p…
nicolas-delbovier-acsone Feb 19, 2026
4bb5561
[IMP] shopfloor_reception_packaging_dimension_mobile: show selected p…
nicolas-delbovier-acsone Feb 19, 2026
f231b68
[REF] shopfloor_reception_packaging_dimension: localize and refine up…
nicolas-delbovier-acsone Feb 19, 2026
57d7870
[REF] shopfloor_reception_packaging_dimension: general code improvements
nicolas-delbovier-acsone Feb 20, 2026
7920329
[REF] shopfloor_reception_packaging_dimension: rename 'cancel' to 'skip'
nicolas-delbovier-acsone Feb 20, 2026
d87f3aa
[IMP] shopfloor_reception_packaging_dimension_mobile: use input buffe…
nicolas-delbovier-acsone Feb 20, 2026
bf46036
[REF] shopfloor_reception_packaging_dimension/mobile: align UI keys w…
nicolas-delbovier-acsone Feb 23, 2026
59d9d43
[REF] shopfloor_reception_packaging_dimension: avoid redundant writes
nicolas-delbovier-acsone Feb 23, 2026
a3b245c
[IMP] shopfloor_reception_packaging_dimension: add test case for skip…
nicolas-delbovier-acsone Feb 23, 2026
1ac4125
[IMP] shopfloor_reception_packaging_dimension_mobile: pre-fill form i…
nicolas-delbovier-acsone Mar 30, 2026
eb8e365
[REF] shopfloor_reception_packaging_dimension_mobile: refactor method…
nicolas-delbovier-acsone Apr 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions setup/shopfloor_reception_packaging_dimension/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
6 changes: 6 additions & 0 deletions setup/shopfloor_reception_packaging_dimension_mobile/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
6 changes: 0 additions & 6 deletions shopfloor/actions/message.py
Original file line number Diff line number Diff line change
Expand Up @@ -526,12 +526,6 @@ def packaging_not_found_in_picking(self):
"body": _("Packaging not found in the current transfer."),
}

def packaging_dimension_updated(self, packaging):
return {
"message_type": "success",
"body": _("Packaging {} dimension updated.").format(packaging.name),
}

def expiration_date_missing(self):
return {
"message_type": "error",
Expand Down
93 changes: 93 additions & 0 deletions shopfloor_reception_packaging_dimension/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=======================================
Shopfloor Reception Packaging Dimension
=======================================

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

.. |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/license-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%2Fwms-lightgray.png?logo=github
:target: https://github.com/OCA/wms/tree/16.0/shopfloor_reception_packaging_dimension
:alt: OCA/wms
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/wms-16-0/wms-16-0-shopfloor_reception_packaging_dimension
: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/wms&target_branch=16.0
:alt: Try me on Runboat

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

This module adds an option to the reception scenario. When activated.
Before setting the quantity for the reception, if there is product
packaging related to the product received with missing information, the
user will be presented with a screen (for each packaging) proposing to
update the missing information.

**Table of contents**

.. contents::
:local:

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/wms/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/wms/issues/new?body=module:%20shopfloor_reception_packaging_dimension%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
-------

* Camptocamp

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

- Thierry Ducrest <thierry.ducrest@camptocamp.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.

.. |maintainer-TDu| image:: https://github.com/TDu.png?size=40px
:target: https://github.com/TDu
:alt: TDu

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-TDu|

This module is part of the `OCA/wms <https://github.com/OCA/wms/tree/16.0/shopfloor_reception_packaging_dimension>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions shopfloor_reception_packaging_dimension/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from .hooks import post_init_hook, uninstall_hook
from . import models
from . import services
from . import actions
21 changes: 21 additions & 0 deletions shopfloor_reception_packaging_dimension/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Copyright 2023 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
{
"name": "Shopfloor Reception Packaging Dimension",
"summary": "Collect Packaging Dimension from the Reception scenario",
"version": "16.0.1.0.0",
"development_status": "Beta",
"category": "Inventory",
"website": "https://github.com/OCA/wms",
"author": "Camptocamp, Odoo Community Association (OCA)",
"maintainers": ["TDu"],
"license": "AGPL-3",
"installable": True,
"depends": ["shopfloor_reception", "product_packaging_level"],
"data": [
"views/product_packaging_level.xml",
"views/shopfloor_menu.xml",
],
"post_init_hook": "post_init_hook",
"uninstall_hook": "uninstall_hook",
}
3 changes: 3 additions & 0 deletions shopfloor_reception_packaging_dimension/actions/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import data
from . import schema
from . import message
25 changes: 25 additions & 0 deletions shopfloor_reception_packaging_dimension/actions/data.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from odoo.addons.component.core import Component
from odoo.addons.shopfloor_base.utils import ensure_model


class DataAction(Component):
_inherit = "shopfloor.data.action"

@property
def _packaging_dimension_detail_parser(self):
return [
"id",
"name",
"qty",
"packaging_length",
"width",
"height",
"weight",
"length_uom_name",
"weight_uom_name",
"barcode",
]

@ensure_model("product.packaging")
def packaging_dimensions(self, record, **kw):
return self._jsonify(record, self._packaging_dimension_detail_parser, **kw)
17 changes: 17 additions & 0 deletions shopfloor_reception_packaging_dimension/actions/message.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import logging

from odoo import _

from odoo.addons.component.core import Component

_logger = logging.getLogger(__name__)


class MessageAction(Component):
_inherit = "shopfloor.message.action"

def packaging_updated(self, packaging):
return {
"message_type": "success",
"body": _("Packaging '{}' updated.").format(packaging.name),
}
27 changes: 27 additions & 0 deletions shopfloor_reception_packaging_dimension/actions/schema.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from odoo.addons.component.core import Component


class ShopfloorSchemaAction(Component):
_inherit = "shopfloor.schema.action"

def packaging_dimensions(self):
return {
"id": {"required": True, "type": "integer"},
"name": {"type": "string", "nullable": False, "required": True},
"qty": {"type": "float", "required": True},
"packaging_length": {"type": "float", "nullable": True, "required": False},
"width": {"type": "float", "nullable": True, "required": False},
"height": {"type": "float", "nullable": True, "required": False},
"weight": {"type": "float", "nullable": True, "required": False},
"length_uom_name": {
"type": "string",
"nullable": True,
"required": False,
},
"weight_uom_name": {
"type": "string",
"nullable": True,
"required": False,
},
"barcode": {"type": "string", "nullable": True, "required": False},
}
40 changes: 40 additions & 0 deletions shopfloor_reception_packaging_dimension/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Copyright 2023 Camptocamp SA (http://www.camptocamp.com)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import json
import logging

from odoo import SUPERUSER_ID, api

from odoo.addons.shopfloor_base.utils import purge_endpoints, register_new_services

from .services.reception import Reception as Service

_logger = logging.getLogger(__file__)


def post_init_hook(cr, registry):
env = api.Environment(cr, SUPERUSER_ID, {})
_logger.info("Add set packaging dimension option on reception scenario")
scenario = env.ref("shopfloor_reception.scenario_reception")
options = scenario.options
options.update({"set_packaging_dimension": True})
scenario.options_edit = json.dumps(options)
# The service imported is extending an existing component
# As it is a simple python import the odoo inheritance is not working
# So it needs to be fix
Service._usage = "reception"
Service._name = "shopfloor.reception"
register_new_services(env, Service)


def uninstall_hook(cr, registry):
env = api.Environment(cr, SUPERUSER_ID, {})
_logger.info("Remove set packaging dimension option on reception scenario")
scenario = env.ref("shopfloor_reception.scenario_reception")
options = scenario.options
if "set_packaging_dimension" in options.keys():
options.pop("set_packaging_dimension")
scenario.options_edit = json.dumps(options)
Service._usage = "reception"
purge_endpoints(env, Service._usage, endpoint="set_packaging_dimension")
92 changes: 92 additions & 0 deletions shopfloor_reception_packaging_dimension/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * shopfloor_reception_packaging_dimension
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-09-01 09:42+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,field_description:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_height
msgid "Collect height"
msgstr "Raccogli altezza"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,field_description:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_length
msgid "Collect length"
msgstr "Raccogli lunghezza"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,field_description:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_weight
msgid "Collect weight"
msgstr "Raccogli peso"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,field_description:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_width
msgid "Collect width"
msgstr "Raccogli larghezza"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,help:shopfloor_reception_packaging_dimension.field_shopfloor_menu__set_packaging_dimension
msgid ""
"If for the product being processed, its related packaging dimension are not "
"set, ask to fill them up."
msgstr ""
"Se per il prodotto che deve essere lavorato, non è impostata la dimensione "
"dell'imballo, chiede di compilarla."

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model,name:shopfloor_reception_packaging_dimension.model_product_packaging_level
msgid "Level management for product.packaging"
msgstr "Gestione livello per product.packaging"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model,name:shopfloor_reception_packaging_dimension.model_shopfloor_menu
msgid "Menu displayed in the scanner application"
msgstr "Menu visualizzato nell'applicazione di scansione"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,field_description:shopfloor_reception_packaging_dimension.field_shopfloor_menu__set_packaging_dimension_is_possible
msgid "Set Packaging Dimension Is Possible"
msgstr "È possibile impostare la dimensione dell'imballo"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,field_description:shopfloor_reception_packaging_dimension.field_shopfloor_menu__set_packaging_dimension
msgid "Set packaging dimension"
msgstr "Imposta dimensione imballo"

#. module: shopfloor_reception_packaging_dimension
#: model_terms:ir.ui.view,arch_db:shopfloor_reception_packaging_dimension.view_product_packaging_level_form
msgid "Shopfloor"
msgstr "Reparto"

#. module: shopfloor_reception_packaging_dimension
#: model:ir.model.fields,help:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_height
#: model:ir.model.fields,help:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_length
#: model:ir.model.fields,help:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_weight
#: model:ir.model.fields,help:shopfloor_reception_packaging_dimension.field_product_packaging_level__shopfloor_collect_width
msgid ""
"When marked, shopfloor will require to set this dimension during reception "
"if undefined on the packaging"
msgstr ""
"Una volta contrassegnata, il reparto dovrà impostare questa dimensione "
"durante la ricezione se non definita sulla confezione"

#~ msgid "Display Name"
#~ msgstr "Nome visualizzato"

#~ msgid "ID"
#~ msgstr "ID"

#~ msgid "Last Modified on"
#~ msgstr "Ultima modifica il"
Loading
Loading