odoo-addon-shopfloor 16.0.1.0.0.24__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/shopfloor/README.rst +160 -0
- odoo/addons/shopfloor/__init__.py +4 -0
- odoo/addons/shopfloor/__manifest__.py +65 -0
- odoo/addons/shopfloor/actions/__init__.py +15 -0
- odoo/addons/shopfloor/actions/change_package_lot.py +164 -0
- odoo/addons/shopfloor/actions/completion_info.py +42 -0
- odoo/addons/shopfloor/actions/data.py +329 -0
- odoo/addons/shopfloor/actions/data_detail.py +154 -0
- odoo/addons/shopfloor/actions/inventory.py +150 -0
- odoo/addons/shopfloor/actions/location_content_transfer_sorter.py +89 -0
- odoo/addons/shopfloor/actions/message.py +846 -0
- odoo/addons/shopfloor/actions/move_line_search.py +119 -0
- odoo/addons/shopfloor/actions/packaging.py +59 -0
- odoo/addons/shopfloor/actions/savepoint.py +44 -0
- odoo/addons/shopfloor/actions/schema.py +182 -0
- odoo/addons/shopfloor/actions/schema_detail.py +98 -0
- odoo/addons/shopfloor/actions/search.py +187 -0
- odoo/addons/shopfloor/actions/stock.py +239 -0
- odoo/addons/shopfloor/actions/stock_unreserve.py +66 -0
- odoo/addons/shopfloor/components/__init__.py +5 -0
- odoo/addons/shopfloor/components/scan_handler_location.py +26 -0
- odoo/addons/shopfloor/components/scan_handler_lot.py +26 -0
- odoo/addons/shopfloor/components/scan_handler_package.py +26 -0
- odoo/addons/shopfloor/components/scan_handler_product.py +26 -0
- odoo/addons/shopfloor/components/scan_handler_transfer.py +26 -0
- odoo/addons/shopfloor/data/shopfloor_scenario_data.xml +73 -0
- odoo/addons/shopfloor/demo/shopfloor_app_demo.xml +12 -0
- odoo/addons/shopfloor/demo/shopfloor_menu_demo.xml +64 -0
- odoo/addons/shopfloor/demo/shopfloor_profile_demo.xml +8 -0
- odoo/addons/shopfloor/demo/stock_picking_type_demo.xml +93 -0
- odoo/addons/shopfloor/docs/checkout_diag_seq.plantuml +61 -0
- odoo/addons/shopfloor/docs/checkout_diag_seq.png +0 -0
- odoo/addons/shopfloor/docs/cluster_picking_diag_seq.plantuml +112 -0
- odoo/addons/shopfloor/docs/cluster_picking_diag_seq.png +0 -0
- odoo/addons/shopfloor/docs/delivery_diag_seq.plantuml +56 -0
- odoo/addons/shopfloor/docs/delivery_diag_seq.png +0 -0
- odoo/addons/shopfloor/docs/location_content_transfer_diag_seq.plantuml +66 -0
- odoo/addons/shopfloor/docs/location_content_transfer_diag_seq.png +0 -0
- odoo/addons/shopfloor/docs/oca_logo.png +0 -0
- odoo/addons/shopfloor/docs/single_pack_transfer_diag_seq.plantuml +36 -0
- odoo/addons/shopfloor/docs/single_pack_transfer_diag_seq.png +0 -0
- odoo/addons/shopfloor/docs/zone_picking_diag_seq.plantuml +85 -0
- odoo/addons/shopfloor/docs/zone_picking_diag_seq.png +0 -0
- odoo/addons/shopfloor/exceptions.py +6 -0
- odoo/addons/shopfloor/i18n/ca.po +1802 -0
- odoo/addons/shopfloor/i18n/de.po +1791 -0
- odoo/addons/shopfloor/i18n/es_AR.po +2147 -0
- odoo/addons/shopfloor/i18n/pt_BR.po +1791 -0
- odoo/addons/shopfloor/i18n/shopfloor.pot +1877 -0
- odoo/addons/shopfloor/models/__init__.py +12 -0
- odoo/addons/shopfloor/models/priority_postpone_mixin.py +41 -0
- odoo/addons/shopfloor/models/shopfloor_app.py +9 -0
- odoo/addons/shopfloor/models/shopfloor_menu.py +436 -0
- odoo/addons/shopfloor/models/stock_location.py +76 -0
- odoo/addons/shopfloor/models/stock_move.py +119 -0
- odoo/addons/shopfloor/models/stock_move_line.py +307 -0
- odoo/addons/shopfloor/models/stock_package_level.py +50 -0
- odoo/addons/shopfloor/models/stock_picking.py +118 -0
- odoo/addons/shopfloor/models/stock_picking_batch.py +41 -0
- odoo/addons/shopfloor/models/stock_picking_type.py +26 -0
- odoo/addons/shopfloor/models/stock_quant.py +31 -0
- odoo/addons/shopfloor/models/stock_quant_package.py +101 -0
- odoo/addons/shopfloor/readme/CONTRIBUTORS.rst +18 -0
- odoo/addons/shopfloor/readme/CREDITS.rst +5 -0
- odoo/addons/shopfloor/readme/DESCRIPTION.rst +17 -0
- odoo/addons/shopfloor/readme/HISTORY.rst +4 -0
- odoo/addons/shopfloor/readme/ROADMAP.rst +4 -0
- odoo/addons/shopfloor/readme/USAGE.rst +6 -0
- odoo/addons/shopfloor/security/groups.xml +17 -0
- odoo/addons/shopfloor/services/__init__.py +16 -0
- odoo/addons/shopfloor/services/checkout.py +1763 -0
- odoo/addons/shopfloor/services/cluster_picking.py +1628 -0
- odoo/addons/shopfloor/services/delivery.py +828 -0
- odoo/addons/shopfloor/services/forms/__init__.py +1 -0
- odoo/addons/shopfloor/services/forms/picking_form.py +78 -0
- odoo/addons/shopfloor/services/location_content_transfer.py +1194 -0
- odoo/addons/shopfloor/services/menu.py +60 -0
- odoo/addons/shopfloor/services/picking_batch.py +126 -0
- odoo/addons/shopfloor/services/service.py +101 -0
- odoo/addons/shopfloor/services/single_pack_transfer.py +366 -0
- odoo/addons/shopfloor/services/zone_picking.py +1938 -0
- odoo/addons/shopfloor/static/description/icon.png +0 -0
- odoo/addons/shopfloor/static/description/index.html +500 -0
- odoo/addons/shopfloor/tests/__init__.py +83 -0
- odoo/addons/shopfloor/tests/common.py +324 -0
- odoo/addons/shopfloor/tests/models.py +29 -0
- odoo/addons/shopfloor/tests/test_actions_change_package_lot.py +1175 -0
- odoo/addons/shopfloor/tests/test_actions_data.py +376 -0
- odoo/addons/shopfloor/tests/test_actions_data_base.py +244 -0
- odoo/addons/shopfloor/tests/test_actions_data_detail.py +322 -0
- odoo/addons/shopfloor/tests/test_actions_search.py +248 -0
- odoo/addons/shopfloor/tests/test_actions_stock.py +48 -0
- odoo/addons/shopfloor/tests/test_checkout_auto_post.py +67 -0
- odoo/addons/shopfloor/tests/test_checkout_base.py +81 -0
- odoo/addons/shopfloor/tests/test_checkout_cancel_line.py +154 -0
- odoo/addons/shopfloor/tests/test_checkout_change_packaging.py +184 -0
- odoo/addons/shopfloor/tests/test_checkout_done.py +133 -0
- odoo/addons/shopfloor/tests/test_checkout_list_delivery_packaging.py +131 -0
- odoo/addons/shopfloor/tests/test_checkout_list_package.py +327 -0
- odoo/addons/shopfloor/tests/test_checkout_new_package.py +88 -0
- odoo/addons/shopfloor/tests/test_checkout_no_package.py +95 -0
- odoo/addons/shopfloor/tests/test_checkout_scan.py +174 -0
- odoo/addons/shopfloor/tests/test_checkout_scan_line.py +377 -0
- odoo/addons/shopfloor/tests/test_checkout_scan_line_base.py +25 -0
- odoo/addons/shopfloor/tests/test_checkout_scan_line_no_prefill_qty.py +91 -0
- odoo/addons/shopfloor/tests/test_checkout_scan_package_action.py +451 -0
- odoo/addons/shopfloor/tests/test_checkout_scan_package_action_no_prefill_qty.py +107 -0
- odoo/addons/shopfloor/tests/test_checkout_select.py +74 -0
- odoo/addons/shopfloor/tests/test_checkout_select_line.py +130 -0
- odoo/addons/shopfloor/tests/test_checkout_select_package_base.py +64 -0
- odoo/addons/shopfloor/tests/test_checkout_set_qty.py +257 -0
- odoo/addons/shopfloor/tests/test_checkout_summary.py +69 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_base.py +83 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_batch.py +109 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_change_pack_lot.py +111 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_is_zero.py +98 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination.py +376 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination_no_prefill_qty.py +115 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_line.py +402 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_location_or_pack_first.py +114 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_no_prefill_qty.py +70 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_select.py +387 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_skip.py +90 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_stock_issue.py +364 -0
- odoo/addons/shopfloor/tests/test_cluster_picking_unload.py +911 -0
- odoo/addons/shopfloor/tests/test_delivery_base.py +155 -0
- odoo/addons/shopfloor/tests/test_delivery_done.py +108 -0
- odoo/addons/shopfloor/tests/test_delivery_list_stock_picking.py +49 -0
- odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_line.py +119 -0
- odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_pack.py +107 -0
- odoo/addons/shopfloor/tests/test_delivery_scan_deliver.py +557 -0
- odoo/addons/shopfloor/tests/test_delivery_select.py +38 -0
- odoo/addons/shopfloor/tests/test_delivery_set_qty_done_line.py +91 -0
- odoo/addons/shopfloor/tests/test_delivery_set_qty_done_pack.py +135 -0
- odoo/addons/shopfloor/tests/test_delivery_sublocation.py +180 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_base.py +136 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_get_work.py +125 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_mix.py +509 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_putaway.py +143 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_scan_location.py +34 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_all.py +343 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_package_or_line.py +1074 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_single.py +748 -0
- odoo/addons/shopfloor/tests/test_location_content_transfer_start.py +359 -0
- odoo/addons/shopfloor/tests/test_menu_base.py +261 -0
- odoo/addons/shopfloor/tests/test_menu_counters.py +61 -0
- odoo/addons/shopfloor/tests/test_misc.py +25 -0
- odoo/addons/shopfloor/tests/test_move_action_assign.py +87 -0
- odoo/addons/shopfloor/tests/test_openapi.py +21 -0
- odoo/addons/shopfloor/tests/test_picking_form.py +62 -0
- odoo/addons/shopfloor/tests/test_scan_anything.py +49 -0
- odoo/addons/shopfloor/tests/test_single_pack_transfer.py +1121 -0
- odoo/addons/shopfloor/tests/test_single_pack_transfer_base.py +32 -0
- odoo/addons/shopfloor/tests/test_single_pack_transfer_putaway.py +104 -0
- odoo/addons/shopfloor/tests/test_stock_split.py +204 -0
- odoo/addons/shopfloor/tests/test_user.py +42 -0
- odoo/addons/shopfloor/tests/test_zone_picking_base.py +608 -0
- odoo/addons/shopfloor/tests/test_zone_picking_change_pack_lot.py +140 -0
- odoo/addons/shopfloor/tests/test_zone_picking_select_line.py +723 -0
- odoo/addons/shopfloor/tests/test_zone_picking_select_line_first_scan_location.py +207 -0
- odoo/addons/shopfloor/tests/test_zone_picking_select_line_first_scan_location.py.bak +202 -0
- odoo/addons/shopfloor/tests/test_zone_picking_select_line_no_prefill_qty.py +107 -0
- odoo/addons/shopfloor/tests/test_zone_picking_select_picking_type.py +26 -0
- odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination.py +643 -0
- odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination_no_prefill_qty.py +146 -0
- odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination_pick_pack.py +241 -0
- odoo/addons/shopfloor/tests/test_zone_picking_start.py +206 -0
- odoo/addons/shopfloor/tests/test_zone_picking_stock_issue.py +121 -0
- odoo/addons/shopfloor/tests/test_zone_picking_unload_all.py +353 -0
- odoo/addons/shopfloor/tests/test_zone_picking_unload_buffer_lines.py +113 -0
- odoo/addons/shopfloor/tests/test_zone_picking_unload_set_destination.py +374 -0
- odoo/addons/shopfloor/tests/test_zone_picking_unload_single.py +123 -0
- odoo/addons/shopfloor/tests/test_zone_picking_zero_check.py +43 -0
- odoo/addons/shopfloor/utils.py +13 -0
- odoo/addons/shopfloor/views/shopfloor_menu.xml +167 -0
- odoo/addons/shopfloor/views/stock_location.xml +20 -0
- odoo/addons/shopfloor/views/stock_move_line.xml +52 -0
- odoo/addons/shopfloor/views/stock_picking_type.xml +19 -0
- odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/METADATA +192 -0
- odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/RECORD +182 -0
- odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/WHEEL +5 -0
- odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/top_level.txt +1 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
# Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
|
2
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
3
|
+
from odoo import models
|
4
|
+
|
5
|
+
|
6
|
+
class StockQuant(models.Model):
|
7
|
+
_inherit = "stock.quant"
|
8
|
+
|
9
|
+
def user_has_groups(self, groups):
|
10
|
+
if self.env.context.get("_sf_inventory"):
|
11
|
+
allow_groups = groups.split(",")
|
12
|
+
# action_validate checks if the user is a manager, but
|
13
|
+
# in shopfloor, we want to programmatically create and
|
14
|
+
# validate inventories under the hood. sudo sets the su
|
15
|
+
# flag but not the group: allow to bypass the check when
|
16
|
+
# sudo is used.
|
17
|
+
if "stock.group_stock_manager" in allow_groups and self.env.su:
|
18
|
+
return True
|
19
|
+
return super().user_has_groups(groups)
|
20
|
+
|
21
|
+
def _is_inventory_mode(self):
|
22
|
+
"""Used to control whether a quant was written on or created during an
|
23
|
+
"inventory session", meaning a mode where we need to create the stock.move
|
24
|
+
record necessary to be consistent with the `inventory_quantity` field.
|
25
|
+
"""
|
26
|
+
# The default method check if we have the stock.group_stock_manager
|
27
|
+
# group, however, we want to force using this mode from shopfloor
|
28
|
+
# (cluster picking) when sudo is used and the user is a stock user.
|
29
|
+
if self.env.context.get("inventory_mode") is True and self.env.su:
|
30
|
+
return True
|
31
|
+
return super()._is_inventory_mode()
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
|
2
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
3
|
+
from odoo import _, api, exceptions, fields, models
|
4
|
+
|
5
|
+
|
6
|
+
class StockQuantPackage(models.Model):
|
7
|
+
_inherit = "stock.quant.package"
|
8
|
+
|
9
|
+
move_line_ids = fields.One2many(
|
10
|
+
comodel_name="stock.move.line",
|
11
|
+
inverse_name="package_id",
|
12
|
+
readonly=True,
|
13
|
+
help="Technical field. Move lines moving this package.",
|
14
|
+
)
|
15
|
+
planned_move_line_ids = fields.One2many(
|
16
|
+
comodel_name="stock.move.line",
|
17
|
+
inverse_name="result_package_id",
|
18
|
+
domain=[("state", "not in", ("done", "cancel"))],
|
19
|
+
readonly=True,
|
20
|
+
help="Technical field. Move lines for which destination is this package.",
|
21
|
+
)
|
22
|
+
# TODO: review other fields
|
23
|
+
reserved_move_line_ids = fields.One2many(
|
24
|
+
comodel_name="stock.move.line",
|
25
|
+
compute="_compute_reserved_move_lines",
|
26
|
+
)
|
27
|
+
shopfloor_weight = fields.Float(
|
28
|
+
"Shopfloor weight (kg)",
|
29
|
+
digits="Product Unit of Measure",
|
30
|
+
compute="_compute_shopfloor_weight",
|
31
|
+
help="Real pack weight or the estimated one.",
|
32
|
+
)
|
33
|
+
|
34
|
+
def _get_reserved_move_lines(self):
|
35
|
+
return self.env["stock.move.line"].search(
|
36
|
+
[("package_id", "=", self.id), ("state", "not in", ("done", "cancel"))]
|
37
|
+
)
|
38
|
+
|
39
|
+
@api.depends("move_line_ids.state")
|
40
|
+
def _compute_reserved_move_lines(self):
|
41
|
+
for rec in self:
|
42
|
+
rec.update({"reserved_move_line_ids": rec._get_reserved_move_lines()})
|
43
|
+
|
44
|
+
@api.depends("pack_weight", "estimated_pack_weight_kg")
|
45
|
+
@api.depends_context("picking_id")
|
46
|
+
def _compute_shopfloor_weight(self):
|
47
|
+
for rec in self:
|
48
|
+
rec.shopfloor_weight = rec.pack_weight or rec.estimated_pack_weight_kg
|
49
|
+
|
50
|
+
# TODO: we should refactor this like
|
51
|
+
|
52
|
+
# source_planned_move_line_ids
|
53
|
+
# destination_planned_move_line_ids
|
54
|
+
|
55
|
+
# filter out done/cancel lines
|
56
|
+
|
57
|
+
@api.constrains("name")
|
58
|
+
def _constrain_name_unique(self):
|
59
|
+
for rec in self:
|
60
|
+
if self.search_count([("name", "=", rec.name), ("id", "!=", rec.id)]):
|
61
|
+
raise exceptions.UserError(_("Package name must be unique!"))
|
62
|
+
|
63
|
+
def move_package_to_location(self, dest_location):
|
64
|
+
"""Create inventories to move a package to a different location
|
65
|
+
|
66
|
+
It should be called when the package is - in real life - already in
|
67
|
+
the destination. It creates an inventory to remove the package from
|
68
|
+
the source location and a second inventory to place the package
|
69
|
+
in the destination (to reflect the reality).
|
70
|
+
|
71
|
+
The source location is the current location of the package.
|
72
|
+
"""
|
73
|
+
quant_values = []
|
74
|
+
# sudo and the key in context activate is_inventory_mode on quants
|
75
|
+
quants = self.quant_ids.sudo().with_context(
|
76
|
+
inventory_mode=True, _sf_inventory=True
|
77
|
+
)
|
78
|
+
for quant in quants:
|
79
|
+
quantity = quant.quantity
|
80
|
+
quant.inventory_quantity_auto_apply = 0
|
81
|
+
quant_values.append(
|
82
|
+
self._move_package_quant_move_values(quant, dest_location, quantity)
|
83
|
+
)
|
84
|
+
|
85
|
+
quant_model = (
|
86
|
+
self.env["stock.quant"]
|
87
|
+
.sudo()
|
88
|
+
.with_context(inventory_mode=True, _sf_inventory=True)
|
89
|
+
)
|
90
|
+
quant_model.create(quant_values)
|
91
|
+
return
|
92
|
+
|
93
|
+
def _move_package_quant_move_values(self, quant, location, quantity):
|
94
|
+
return {
|
95
|
+
"product_id": quant.product_id.id,
|
96
|
+
"inventory_quantity_auto_apply": quantity,
|
97
|
+
"location_id": location.id,
|
98
|
+
"lot_id": quant.lot_id.id,
|
99
|
+
"package_id": quant.package_id.id,
|
100
|
+
"owner_id": quant.owner_id.id,
|
101
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
2
|
+
* Simone Orsi <simahawk@gmail.com>
|
3
|
+
* Sébastien Alix <sebastien.alix@camptocamp.com>
|
4
|
+
* Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
|
5
|
+
* Benoit Guillot <benoit.guillot@akretion.com>
|
6
|
+
* Thierry Ducrest <thierry.ducrest@camptocamp.com>
|
7
|
+
* Raphaël Reverdy <raphael.reverdy@akretion.com>
|
8
|
+
* Jacques-Etienne Baudoux <je@bcim.be>
|
9
|
+
* Juan Miguel Sánchez Arce <juan.sanchez@camptocamp.com>
|
10
|
+
* Michael Tietz (MT Software) <mtietz@mt-software.de>
|
11
|
+
* Souheil Bejaoui <souheil.bejaoui@acsone.eu>
|
12
|
+
* Laurent Mignon <laurent.mignon@acsone.eu>
|
13
|
+
|
14
|
+
Design
|
15
|
+
~~~~~~
|
16
|
+
|
17
|
+
* Joël Grand-Guillaume <joel.grandguillaume@camptocamp.com>
|
18
|
+
* Jacques-Etienne Baudoux <je@bcim.be>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Shopfloor is a barcode scanner application for internal warehouse operations.
|
2
|
+
|
3
|
+
The application supports scenarios, to relate to Operation Types:
|
4
|
+
|
5
|
+
* Cluster Picking
|
6
|
+
* Zone Picking
|
7
|
+
* Checkout/Packing
|
8
|
+
* Delivery
|
9
|
+
* Location Content Transfer
|
10
|
+
* Single Pack Transfer
|
11
|
+
|
12
|
+
This module provides REST APIs to support the scenarios. It needs a frontend
|
13
|
+
to consume the backend APIs and provide screens for users on barcode devices.
|
14
|
+
A default front-end application is provided by ``shopfloor_mobile``.
|
15
|
+
|
16
|
+
| Note: if you want to enable a new scenario on an existing application, you must trigger the registry sync on the shopfloor.app in a post_init_hook or a post-migrate script.
|
17
|
+
| See an example `here <https://github.com/OCA/wms/pull/520/commits/bccdfd445a9bc943998c4848f183a076e8459a98>`_.
|
@@ -0,0 +1,6 @@
|
|
1
|
+
An API key is created in the Demo data (for development), using
|
2
|
+
the Demo user. The key to use in the HTTP header ``API-KEY`` is: 72B044F7AC780DAC
|
3
|
+
|
4
|
+
Curl example::
|
5
|
+
|
6
|
+
curl -X POST "http://localhost:8069/shopfloor/user/menu" -H "accept: */*" -H "Content-Type: application/json" -H "API-KEY: 72B044F7AC780DAC"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<!-- Copyright 2021 ACSONE SA/NV
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
4
|
+
<odoo noupdate="1">
|
5
|
+
<record model="res.groups" id="stock.group_stock_user">
|
6
|
+
<field
|
7
|
+
name="implied_ids"
|
8
|
+
eval="[(4, ref('shopfloor_base.group_shopfloor_user'))]"
|
9
|
+
/>
|
10
|
+
</record>
|
11
|
+
<record model="res.groups" id="stock.group_stock_manager">
|
12
|
+
<field
|
13
|
+
name="implied_ids"
|
14
|
+
eval="[(4, ref('shopfloor_base.group_shopfloor_manager'))]"
|
15
|
+
/>
|
16
|
+
</record>
|
17
|
+
</odoo>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# core classes
|
2
|
+
from . import service
|
3
|
+
|
4
|
+
# generic services
|
5
|
+
from . import menu
|
6
|
+
|
7
|
+
# process services
|
8
|
+
from . import checkout
|
9
|
+
from . import zone_picking
|
10
|
+
from . import cluster_picking
|
11
|
+
from . import delivery
|
12
|
+
from . import location_content_transfer
|
13
|
+
from . import single_pack_transfer
|
14
|
+
|
15
|
+
# forms
|
16
|
+
from . import forms
|