Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f4cfed9
New module product_operating_unit to introduce the operating unit to …
Mar 28, 2019
1583579
[ADD] Added a product_operating_unit v12
nikul-serpentcs Dec 30, 2019
7a8a44d
[FIX] Uncomment rule
nikul-serpentcs Jan 20, 2020
5e3557b
[FIX] Default Get + Show OU on Small Form
osi-scampbell Jan 30, 2020
e2805ce
[IMP] Create Product Access Error
osi-scampbell Feb 11, 2020
082c44b
Update product_operating_unit/views/product_template_view.xml
nikul-serpentcs Mar 25, 2020
e7920d6
[IMP] Improved code
murtuzasaleh Apr 20, 2020
bffbe1c
New module product_operating_unit to introduce the operating unit to …
Mar 28, 2019
ea76b71
[ADD] Added a product_operating_unit v12
nikul-serpentcs Dec 30, 2019
125ed24
[FIX] Uncomment rule
nikul-serpentcs Jan 20, 2020
6ff745c
[FIX] Default Get + Show OU on Small Form
osi-scampbell Jan 30, 2020
84ced00
[IMP] Create Product Access Error
osi-scampbell Feb 11, 2020
e6632f7
[IMP] Improved code
murtuzasaleh Apr 20, 2020
d4e6417
[IMP] product_operating_unit
max3903 Apr 21, 2020
479c016
Added translation using Weblate (Portuguese)
pedrocs-exo Mar 2, 2021
3e4a998
[IMP] product_operating_unit: black, isort, prettier
jesus01x Jul 5, 2021
67af1d3
[MIG] product_operating_unit: Migration to 14.0
jesus01x Jul 5, 2021
5b6d068
[FIX] Fixed OU constrains with product
nikul-serpentcs Oct 27, 2021
c0c46b3
[MIG] product_operating_unit: Migration to 16.0
May 25, 2023
0e3438a
[UPD] Update product_operating_unit.pot
Aug 15, 2023
8bd9bd6
[UPD] README.rst
OCA-git-bot Aug 15, 2023
e864278
Update translation files
weblate Aug 15, 2023
6cecc81
Added translation using Weblate (Spanish)
Ivorra78 Aug 23, 2023
cc5cd7b
Translated using Weblate (Spanish)
Ivorra78 Aug 23, 2023
6033449
[UPD] README.rst
OCA-git-bot Sep 3, 2023
08a0588
Update translation files
weblate Oct 9, 2023
d596d33
Added translation using Weblate (Japanese)
yostashiro Oct 26, 2023
f0581b0
Translated using Weblate (Japanese)
yostashiro Oct 26, 2023
f688946
[FIX] operating_unit: default operating unit more multi-company friendly
HekkiMelody Jan 4, 2024
6ba8050
[BOT] post-merge updates
OCA-git-bot Jan 10, 2024
e15d053
Added translation using Weblate (Italian)
mymage Jan 18, 2024
3d18526
Translated using Weblate (Italian)
mymage Jan 19, 2024
9eb0ace
[IMP] product_operating_unit: pre-commit execution
May 27, 2024
b0b8b2d
[MIG] product_operating_unit: Migration to 17.0
May 27, 2024
d221ba9
[UPD] Update product_operating_unit.pot
Jul 19, 2024
972a76e
[BOT] post-merge updates
OCA-git-bot Jul 19, 2024
debccb7
Update translation files
weblate Jul 19, 2024
b1c7c40
[IMP] product_operating_unit: pre-commit auto fixes
huynh-ch Jul 15, 2025
1e8a2d8
[MIG] product_operating_unit: Migration to 18.0
huynh-ch Jul 15, 2025
703482a
Merge branch 'OCA:18.0' into 18.0-mig-product_operating_unit
hieulucky111 Feb 4, 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
106 changes: 106 additions & 0 deletions product_operating_unit/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
==========================
Operating Unit in Products
==========================

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

.. |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-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foperating--unit-lightgray.png?logo=github
:target: https://github.com/OCA/operating-unit/tree/18.0/product_operating_unit
:alt: OCA/operating-unit
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/operating-unit-18-0/operating-unit-18-0-product_operating_unit
: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/operating-unit&target_branch=18.0
:alt: Try me on Runboat

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

This module introduces the following features:

- It introduces the operating unit to the product template.
- The operating unit from the user is assigned by default when creating
a new product template.
- In case of multi-company, no operating unit from another company to
that assigned to the product can be set for it
- It implements user's security rules.

**Table of contents**

.. contents::
:local:

Usage
=====

1. Create a Product: the Default Operating Unit of the user is assigned
to it. If you want, you can change to another Operating Unit.
2. Assignment of an operating unit of another company to the one set in
the product raises an error for a multi-company setting.
3. Access rules allow to just show those products having the same
operating units as the user

Known issues / Roadmap
======================



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

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

* brain-tec AG
* Open Source Integrators
* Serpent Consulting Services Pvt. Ltd.

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

- Raul Martin Felez <raul.martin@braintec-group.com>
- Nikul Chaudhary <nikul.chaudhary.serpentcs@gmail.com>
- Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
- Jesus Alcala <jesus.alcala@jarsa.com.mx>
- `Komit <https://komit-consulting.com>`__:

- Cai Hoang Huynh

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/operating-unit <https://github.com/OCA/operating-unit/tree/18.0/product_operating_unit>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions product_operating_unit/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from . import models
22 changes: 22 additions & 0 deletions product_operating_unit/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright (c) 2019 brain-tec AG (http://www.braintec-group.com)
# Copyright (C) 2019 Open Source Integrators
# Copyright (C) 2019 Serpent Consulting Services
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
{
"name": "Operating Unit in Products",
"summary": "Adds the concept of operating unit (OU) in products",
"version": "18.0.1.0.0",
"author": "brain-tec AG, "
"Open Source Integrators, "
"Serpent Consulting Services Pvt. Ltd.,"
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/operating-unit",
"category": "Product",
"depends": ["product", "operating_unit"],
"license": "LGPL-3",
"data": [
"security/product_template_security.xml",
"views/product_template_view.xml",
"views/product_category_view.xml",
],
}
64 changes: 64 additions & 0 deletions product_operating_unit/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_operating_unit
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-09-02 20:36+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\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 4.17\n"

#. module: product_operating_unit
#: model:ir.model.fields,field_description:product_operating_unit.field_product_category__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__operating_unit_ids
msgid "Operating Units"
msgstr "Unidades operativas"

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_template
msgid "Product"
msgstr "Producto"

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_category
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__categ_id
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__categ_id
msgid "Product Category"
msgstr "Categoria de producto"

#. module: product_operating_unit
#. odoo-python
#: code:addons/product_operating_unit/models/product_template.py:0
#, python-format
msgid ""
"The operating units of the product must include the ones from the category."
msgstr ""
"Las unidades operativas del producto deben incluir las de la categoría."

#, python-format
#~ msgid "Go to Product Categories"
#~ msgstr "Ir a las categorías del producto"

#~ msgid "Select category for the current product"
#~ msgstr "Seleccione la categoría para el producto actual"

#, python-format
#~ msgid ""
#~ "You must define at least one product category "
#~ "within your Operating Unit in order to be able to "
#~ "create products."
#~ msgstr ""
#~ "Debe definir al menos una categoría de "
#~ "producto dentro "
#~ "de su Unidad Operativa para "
#~ "poder crear "
#~ "productos."
62 changes: 62 additions & 0 deletions product_operating_unit/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_operating_unit
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-01-19 07:35+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 4.17\n"

#. module: product_operating_unit
#: model:ir.model.fields,field_description:product_operating_unit.field_product_category__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__operating_unit_ids
msgid "Operating Units"
msgstr "Unità operative"

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_template
msgid "Product"
msgstr "Prodotto"

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_category
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__categ_id
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__categ_id
msgid "Product Category"
msgstr "Categoria prodotto"

#. module: product_operating_unit
#. odoo-python
#: code:addons/product_operating_unit/models/product_template.py:0
#, python-format
msgid ""
"The operating units of the product must include the ones from the category."
msgstr ""
"Le unità operative del prodotto devono includere quelle della categoria."

#, python-format
#~ msgid "Go to Product Categories"
#~ msgstr "Vai alle categorie prodotto"

#~ msgid "Select category for the current product"
#~ msgstr "Selezionare una categoria per il prodotto corrente"

#, python-format
#~ msgid ""
#~ "You must define at least one product category "
#~ "within your Operating Unit in order to be able to "
#~ "create products."
#~ msgstr ""
#~ "Bisogna indicare almeno una categoria prodotto "
#~ "all'interno della tua unità operativa per poter "
#~ "creare nuovi prodotti."
48 changes: 48 additions & 0 deletions product_operating_unit/i18n/ja.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_operating_unit
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-10-28 12:57+0000\n"
"Last-Translator: Yoshi Tashiro <tashiro@roomsfor.hk>\n"
"Language-Team: none\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.17\n"

#. module: product_operating_unit
#: model:ir.model.fields,field_description:product_operating_unit.field_product_category__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__operating_unit_ids
msgid "Operating Units"
msgstr ""

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_template
msgid "Product"
msgstr ""

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_category
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__categ_id
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__categ_id
msgid "Product Category"
msgstr ""

#. module: product_operating_unit
#. odoo-python
#: code:addons/product_operating_unit/models/product_template.py:0
#, python-format
msgid ""
"The operating units of the product must include the ones from the category."
msgstr ""

#, python-format
#~ msgid "Go to Product Categories"
#~ msgstr "プロダクトカテゴリに移動"
41 changes: 41 additions & 0 deletions product_operating_unit/i18n/product_operating_unit.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_operating_unit
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \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: product_operating_unit
#: model:ir.model.fields,field_description:product_operating_unit.field_product_category__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__operating_unit_ids
msgid "Operating Units"
msgstr ""

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_template
msgid "Product"
msgstr ""

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_category
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__categ_id
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__categ_id
msgid "Product Category"
msgstr ""

#. module: product_operating_unit
#. odoo-python
#: code:addons/product_operating_unit/models/product_template.py:0
#, python-format
msgid ""
"The operating units of the product must include the ones from the category."
msgstr ""
42 changes: 42 additions & 0 deletions product_operating_unit/i18n/pt.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * product_operating_unit
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: pt\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"

#. module: product_operating_unit
#: model:ir.model.fields,field_description:product_operating_unit.field_product_category__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__operating_unit_ids
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__operating_unit_ids
msgid "Operating Units"
msgstr ""

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_template
msgid "Product"
msgstr ""

#. module: product_operating_unit
#: model:ir.model,name:product_operating_unit.model_product_category
#: model:ir.model.fields,field_description:product_operating_unit.field_product_product__categ_id
#: model:ir.model.fields,field_description:product_operating_unit.field_product_template__categ_id
msgid "Product Category"
msgstr ""

#. module: product_operating_unit
#. odoo-python
#: code:addons/product_operating_unit/models/product_template.py:0
#, python-format
msgid ""
"The operating units of the product must include the ones from the category."
msgstr ""
3 changes: 3 additions & 0 deletions product_operating_unit/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
from . import product_template
from . import product_category
Loading