diff --git a/shopfloor/tests/test_single_pack_transfer.py b/shopfloor/tests/test_single_pack_transfer.py index 3146c08afd5..688d05f6a6f 100644 --- a/shopfloor/tests/test_single_pack_transfer.py +++ b/shopfloor/tests/test_single_pack_transfer.py @@ -1,5 +1,6 @@ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com) # Copyright 2020 Akretion (http://www.akretion.com) +# Copyright 2026 Michael Tietz (MT Software) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo.tests.common import Form @@ -875,6 +876,7 @@ def test_cancel_transfer_not_created_by_user(self): package_level = self._simulate_started(self.pack_a) self.menu.sudo().allow_move_create = True self.env.user = self.shopfloor_manager + self.env.uid = self.shopfloor_manager.id self.assertTrue(package_level.is_done) # keep references for later checks diff --git a/shopfloor/tests/test_single_pack_transfer_base.py b/shopfloor/tests/test_single_pack_transfer_base.py index 3b1fb8fd41d..a704bf3bc6c 100644 --- a/shopfloor/tests/test_single_pack_transfer_base.py +++ b/shopfloor/tests/test_single_pack_transfer_base.py @@ -1,5 +1,6 @@ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com) # Copyright 2020 Akretion (http://www.akretion.com) +# Copyright 2026 Michael Tietz (MT Software) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from .common import CommonCase @@ -25,6 +26,12 @@ def setUpClassBaseData(cls, *args, **kwargs): # to check the behavior of this screen cls.picking_type.sudo().display_completion_info = False + @classmethod + def _shopfloor_manager_values(cls): + vals = super()._shopfloor_manager_values() + vals["groups_id"] = [(6, 0, [cls.env.ref("stock.group_stock_user").id])] + return vals + def setUp(self): super().setUp() self.service = self.get_service( diff --git a/shopfloor_base/services/service.py b/shopfloor_base/services/service.py index d537e323b01..a84bbf48b8f 100644 --- a/shopfloor_base/services/service.py +++ b/shopfloor_base/services/service.py @@ -1,5 +1,6 @@ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com) # Copyright 2020 Akretion (http://www.akretion.com) +# Copyright 2026 Michael Tietz (MT Software) # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). from werkzeug.exceptions import BadRequest @@ -295,3 +296,23 @@ class BaseShopfloorProcess(AbstractComponent): _requires_header_menu = True _requires_header_profile = True + + @property + def env(self): + env = super().env() + if ( + not hasattr(self, "work") + or not hasattr(self.work, "menu") + or not hasattr(self.work.menu, "picking_type_ids") + ): + return env + company = self.work.menu.picking_type_ids.company_id + if not company: + return env + context = dict(self.collection.env.context) + context.update( + { + "allowed_company_ids": company.ids, + } + ) + return env(context=context)