diff --git a/setup/stock_release_channel_plan/odoo/addons/stock_release_channel_plan b/setup/stock_release_channel_plan/odoo/addons/stock_release_channel_plan new file mode 120000 index 00000000000..40c2a1ce17f --- /dev/null +++ b/setup/stock_release_channel_plan/odoo/addons/stock_release_channel_plan @@ -0,0 +1 @@ +../../../../stock_release_channel_plan \ No newline at end of file diff --git a/setup/stock_release_channel_plan/setup.py b/setup/stock_release_channel_plan/setup.py new file mode 100644 index 00000000000..28c57bb6403 --- /dev/null +++ b/setup/stock_release_channel_plan/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/stock_release_channel_plan/README.rst b/stock_release_channel_plan/README.rst new file mode 100644 index 00000000000..29ab2d1458e --- /dev/null +++ b/stock_release_channel_plan/README.rst @@ -0,0 +1 @@ +wait 4 da boat diff --git a/stock_release_channel_plan/__init__.py b/stock_release_channel_plan/__init__.py new file mode 100644 index 00000000000..aee8895e7a3 --- /dev/null +++ b/stock_release_channel_plan/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/stock_release_channel_plan/__manifest__.py b/stock_release_channel_plan/__manifest__.py new file mode 100644 index 00000000000..c99342f1f09 --- /dev/null +++ b/stock_release_channel_plan/__manifest__.py @@ -0,0 +1,26 @@ +# Copyright 2023 ACSONE SA/NV +# Copyright 2023 Jacques-Etienne Baudoux (BCIM) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Stock Release Channel Preparation Plan", + "summary": "Manage release channel preparation plan", + "version": "16.0.1.0.0", + "development_status": "Beta", + "license": "AGPL-3", + "author": "ACSONE SA/NV,BCIM,Odoo Community Association (OCA)", + "maintainers": ["jbaudoux"], + "website": "https://github.com/OCA/wms", + "depends": ["stock_release_channel"], + "data": [ + "security/stock_release_channel_preparation_plan.xml", + "security/stock_release_channel_plan_launch.xml", + "wizards/launch_plan.xml", + "views/stock_release_channel_preparation_plan.xml", + "views/stock_release_channel.xml", + ], + "demo": [ + "demo/stock_release_channel.xml", + "demo/stock_release_channel_preparation_plan.xml", + ], +} diff --git a/stock_release_channel_plan/demo/stock_release_channel.xml b/stock_release_channel_plan/demo/stock_release_channel.xml new file mode 100644 index 00000000000..66965da37f1 --- /dev/null +++ b/stock_release_channel_plan/demo/stock_release_channel.xml @@ -0,0 +1,31 @@ + + + + + + Channel 1 (Mon/Thu) + [] + + + Channel 2 (Mon/Thu) + [] + + + Channel 1 (Tue/Fri) + [] + + + Channel 2 (Tue/Fri) + [] + + + Channel 1 (Wed) + [] + + + Channel 2 (Wed) + [] + + + diff --git a/stock_release_channel_plan/demo/stock_release_channel_preparation_plan.xml b/stock_release_channel_plan/demo/stock_release_channel_preparation_plan.xml new file mode 100644 index 00000000000..4f839a861b4 --- /dev/null +++ b/stock_release_channel_plan/demo/stock_release_channel_preparation_plan.xml @@ -0,0 +1,56 @@ + + + + + Monday + + + + + Tuesday + + + + Wednesday + + + + Thursday + + + + Friday + + + diff --git a/stock_release_channel_plan/i18n/fr.po b/stock_release_channel_plan/i18n/fr.po new file mode 100644 index 00000000000..2ce6fee4107 --- /dev/null +++ b/stock_release_channel_plan/i18n/fr.po @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_release_channel_plan +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-28 16:02+0000\n" +"PO-Revision-Date: 2023-07-28 16:02+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__active +msgid "Active" +msgstr "Actif" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_form_view +msgid "Archived" +msgstr "Archivé" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_plan_wizard_launch_form_view +msgid "Cancel" +msgstr "Annuler" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_plan_wizard_launch_form_view +msgid "Confirm" +msgstr "Confirmer" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__create_uid +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__create_uid +msgid "Created by" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__create_date +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__create_date +msgid "Created on" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__display_name +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__display_name +msgid "Display Name" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__id +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__id +msgid "ID" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch____last_update +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan____last_update +msgid "Last Modified on" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__write_uid +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__write_date +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__write_date +msgid "Last Updated on" +msgstr "" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_form_view +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_tree_view +msgid "Launch" +msgstr "Lancer" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__name +msgid "Name" +msgstr "Nom" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__preparation_plan_id +msgid "Preparation Plan" +msgstr "Plan de préparation" + +#. module: stock_release_channel_plan +#: model:ir.actions.act_window,name:stock_release_channel_plan.stock_release_channel_preparation_plan_act_window +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel__preparation_plan_ids +#: model:ir.ui.menu,name:stock_release_channel_plan.stock_release_channel_preparation_plan_menu +msgid "Preparation Plans" +msgstr "Plans de préparation" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_form_view +msgid "Preparation plan" +msgstr "Plan de préparation" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__release_channel_ids +msgid "Release channels" +msgstr "Canaux de livraisons" + +#. module: stock_release_channel_plan +#: model:ir.model,name:stock_release_channel_plan.model_stock_release_channel_plan_wizard_launch +msgid "Stock Release Channel Plan Launch Wizard" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model,name:stock_release_channel_plan.model_stock_release_channel_preparation_plan +msgid "Stock Release Channel Preparation Plan" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model,name:stock_release_channel_plan.model_stock_release_channel +msgid "Stock Release Channels" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.actions.act_window,name:stock_release_channel_plan.stock_release_channel_plan_wizard_launch_act_window +msgid "Wake-up Release Channels" +msgstr "Réveiller les canaux de préparation" diff --git a/stock_release_channel_plan/i18n/stock_release_channel_plan.pot b/stock_release_channel_plan/i18n/stock_release_channel_plan.pot new file mode 100644 index 00000000000..6cab1659b95 --- /dev/null +++ b/stock_release_channel_plan/i18n/stock_release_channel_plan.pot @@ -0,0 +1,131 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * stock_release_channel_plan +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-07-28 16:02+0000\n" +"PO-Revision-Date: 2023-07-28 16:02+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__active +msgid "Active" +msgstr "" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_form_view +msgid "Archived" +msgstr "" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_plan_wizard_launch_form_view +msgid "Cancel" +msgstr "" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_plan_wizard_launch_form_view +msgid "Confirm" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__create_uid +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__create_uid +msgid "Created by" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__create_date +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__create_date +msgid "Created on" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__display_name +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__display_name +msgid "Display Name" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__id +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__id +msgid "ID" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch____last_update +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan____last_update +msgid "Last Modified on" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__write_uid +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__write_date +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__write_date +msgid "Last Updated on" +msgstr "" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_form_view +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_tree_view +msgid "Launch" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__name +msgid "Name" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_plan_wizard_launch__preparation_plan_id +msgid "Preparation Plan" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.actions.act_window,name:stock_release_channel_plan.stock_release_channel_preparation_plan_act_window +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel__preparation_plan_ids +#: model:ir.ui.menu,name:stock_release_channel_plan.stock_release_channel_preparation_plan_menu +msgid "Preparation Plans" +msgstr "" + +#. module: stock_release_channel_plan +#: model_terms:ir.ui.view,arch_db:stock_release_channel_plan.stock_release_channel_preparation_plan_form_view +msgid "Preparation plan" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model.fields,field_description:stock_release_channel_plan.field_stock_release_channel_preparation_plan__release_channel_ids +msgid "Release channels" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model,name:stock_release_channel_plan.model_stock_release_channel_plan_wizard_launch +msgid "Stock Release Channel Plan Launch Wizard" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model,name:stock_release_channel_plan.model_stock_release_channel_preparation_plan +msgid "Stock Release Channel Preparation Plan" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.model,name:stock_release_channel_plan.model_stock_release_channel +msgid "Stock Release Channels" +msgstr "" + +#. module: stock_release_channel_plan +#: model:ir.actions.act_window,name:stock_release_channel_plan.stock_release_channel_plan_wizard_launch_act_window +msgid "Wake-up Release Channels" +msgstr "" diff --git a/stock_release_channel_plan/models/__init__.py b/stock_release_channel_plan/models/__init__.py new file mode 100644 index 00000000000..308228054cf --- /dev/null +++ b/stock_release_channel_plan/models/__init__.py @@ -0,0 +1,2 @@ +from . import stock_release_channel +from . import stock_release_channel_preparation_plan diff --git a/stock_release_channel_plan/models/stock_release_channel.py b/stock_release_channel_plan/models/stock_release_channel.py new file mode 100644 index 00000000000..f466b2434c2 --- /dev/null +++ b/stock_release_channel_plan/models/stock_release_channel.py @@ -0,0 +1,16 @@ +# Copyright 2023 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class StockReleaseChannel(models.Model): + _inherit = "stock.release.channel" + + preparation_plan_ids = fields.Many2many( + comodel_name="stock.release.channel.preparation.plan", + relation="stock_release_channel_preparation_plan_rel", + column1="channel_id", + column2="plan_id", + string="Preparation Plans", + ) diff --git a/stock_release_channel_plan/models/stock_release_channel_preparation_plan.py b/stock_release_channel_plan/models/stock_release_channel_preparation_plan.py new file mode 100644 index 00000000000..4f8d5a4d1d0 --- /dev/null +++ b/stock_release_channel_plan/models/stock_release_channel_preparation_plan.py @@ -0,0 +1,33 @@ +# Copyright 2023 ACSONE SA/NV +# Copyright 2023 Jacques-Etienne Baudoux (BCIM) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class StockReleaseChannelPreparationPlan(models.Model): + _name = "stock.release.channel.preparation.plan" + _description = "Stock Release Channel Preparation Plan" + _order = "sequence, id" + + sequence = fields.Integer() + name = fields.Char(required=True) + active = fields.Boolean(default=True) + release_channel_ids = fields.Many2many( + comodel_name="stock.release.channel", + relation="stock_release_channel_preparation_plan_rel", + column1="plan_id", + column2="channel_id", + string="Release channels", + ) + + def _get_channels_to_launch_domain(self): + self.ensure_one() + return [ + ("state", "in", ("locked", "asleep")), + ] + + def _get_channels_to_launch(self): + return self.release_channel_ids.filtered_domain( + self._get_channels_to_launch_domain() + ) diff --git a/stock_release_channel_plan/readme/CONFIGURE.rst b/stock_release_channel_plan/readme/CONFIGURE.rst new file mode 100644 index 00000000000..9bcfd5daa34 --- /dev/null +++ b/stock_release_channel_plan/readme/CONFIGURE.rst @@ -0,0 +1,3 @@ +In Inventory > Operations > Release Plans. + +Only Stock Managers have write permissions. diff --git a/stock_release_channel_plan/readme/CONTRIBUTORS.rst b/stock_release_channel_plan/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..9cfdcbd0ba0 --- /dev/null +++ b/stock_release_channel_plan/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Jacques-Etienne Baudoux +* Souheil Bejaoui diff --git a/stock_release_channel_plan/readme/CREDITS.rst b/stock_release_channel_plan/readme/CREDITS.rst new file mode 100644 index 00000000000..52c84528980 --- /dev/null +++ b/stock_release_channel_plan/readme/CREDITS.rst @@ -0,0 +1,3 @@ +**Financial support** + +* Alcyon Belux diff --git a/stock_release_channel_plan/readme/DESCRIPTION.rst b/stock_release_channel_plan/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..4b0eb2ca748 --- /dev/null +++ b/stock_release_channel_plan/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +Release channel plans allow you to organize your release channels inside a plan +to awake then all at once. diff --git a/stock_release_channel_plan/readme/USAGE.rst b/stock_release_channel_plan/readme/USAGE.rst new file mode 100644 index 00000000000..18ad4d3b29a --- /dev/null +++ b/stock_release_channel_plan/readme/USAGE.rst @@ -0,0 +1,2 @@ +A typical use case would be to have a plan for each day of the week and at the +begin of the day, launch the plan of the day. diff --git a/stock_release_channel_plan/security/stock_release_channel_plan_launch.xml b/stock_release_channel_plan/security/stock_release_channel_plan_launch.xml new file mode 100644 index 00000000000..a217c0a801e --- /dev/null +++ b/stock_release_channel_plan/security/stock_release_channel_plan_launch.xml @@ -0,0 +1,14 @@ + + + + + stock.release.channel.plan.wizard.launch access all + + + + + + + + + diff --git a/stock_release_channel_plan/security/stock_release_channel_preparation_plan.xml b/stock_release_channel_plan/security/stock_release_channel_preparation_plan.xml new file mode 100644 index 00000000000..136f1207cdc --- /dev/null +++ b/stock_release_channel_plan/security/stock_release_channel_preparation_plan.xml @@ -0,0 +1,31 @@ + + + + + + stock.release.channel.preparation.plan access all + + + + + + + + + stock.release.channel.preparation.plan access manager + + + + + + + + + diff --git a/stock_release_channel_plan/tests/__init__.py b/stock_release_channel_plan/tests/__init__.py new file mode 100644 index 00000000000..45df8e16e05 --- /dev/null +++ b/stock_release_channel_plan/tests/__init__.py @@ -0,0 +1 @@ +from . import test_stock_release_channel_plan diff --git a/stock_release_channel_plan/tests/test_stock_release_channel_plan.py b/stock_release_channel_plan/tests/test_stock_release_channel_plan.py new file mode 100644 index 00000000000..f092780f761 --- /dev/null +++ b/stock_release_channel_plan/tests/test_stock_release_channel_plan.py @@ -0,0 +1,56 @@ +# Copyright 2023 Jacques-Etienne Baudoux (BCIM) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase + + +class TestStockReleaseChannelPlan(TransactionCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.plan1 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_preparation_plan_demo_mon" + ) + cls.plan1_channel1 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_mon_thu1" + ) + cls.plan1_channel2 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_mon_thu2" + ) + cls.plan2_channel1 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_tue_fri1" + ) + cls.plan2_channel2 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_tue_fri2" + ) + cls.plan3_channel1 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_wed1" + ) + cls.plan3_channel2 = cls.env.ref( + "stock_release_channel_plan.stock_release_channel_wed2" + ) + + def _launch_channel(self, preparation_plan): + self.env["stock.release.channel.plan.wizard.launch"].create( + { + "preparation_plan_id": preparation_plan.id, + } + ).action_launch() + + def test_launch_plan(self): + """Test launching plan1""" + self.plan1_channel1.write({"state": "locked"}) + self.plan1_channel2.write({"state": "asleep"}) + self.plan2_channel1.write({"state": "locked"}) + self.plan2_channel2.write({"state": "asleep"}) + self.plan3_channel1.write({"state": "open"}) + self.plan3_channel2.write({"state": "open"}) + + self._launch_channel(self.plan1) + + self.assertEqual(self.plan1_channel1.state, "open") + self.assertEqual(self.plan1_channel2.state, "open") + self.assertEqual(self.plan2_channel1.state, "locked") + self.assertEqual(self.plan2_channel2.state, "asleep") + self.assertEqual(self.plan3_channel1.state, "open") + self.assertEqual(self.plan3_channel2.state, "open") diff --git a/stock_release_channel_plan/views/stock_release_channel.xml b/stock_release_channel_plan/views/stock_release_channel.xml new file mode 100644 index 00000000000..4a45a526b23 --- /dev/null +++ b/stock_release_channel_plan/views/stock_release_channel.xml @@ -0,0 +1,21 @@ + + + + + + stock.release.channel + + + + + + + + + + + diff --git a/stock_release_channel_plan/views/stock_release_channel_preparation_plan.xml b/stock_release_channel_plan/views/stock_release_channel_preparation_plan.xml new file mode 100644 index 00000000000..58d86079f21 --- /dev/null +++ b/stock_release_channel_plan/views/stock_release_channel_preparation_plan.xml @@ -0,0 +1,95 @@ + + + + + + stock.release.channel.preparation.plan + + + + + + + + + + + + stock.release.channel.preparation.plan + + + + + +