diff --git a/sale_template_operating_unit/README.rst b/sale_template_operating_unit/README.rst new file mode 100644 index 0000000000..3f6856d53b --- /dev/null +++ b/sale_template_operating_unit/README.rst @@ -0,0 +1,88 @@ +================================ +Operating Unit in Sale Templates +================================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:82ffb02fd3393c6f845f5554197753cb8c0e6b9b78226d639fbf6d10b5246e46 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/15.0/sale_template_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-15-0/operating-unit-15-0-sale_template_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=15.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module introduces the following features: + +* Adds the Operating Unit (OU) to the Sale Order Templates. +* The user’s default Operating Unit (OU) is proposed at the time of creating the Sale Order Template. +* Security rules are defined to ensure that users can only see the Sale Order Template of that Operating Units in which they are allowed access to. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Follow these steps: + +#. Create a Sale Order Template. +#. The Default Operating Unit of the User is assigned to the Sale Order Template. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Pavlov Media + +Contributors +~~~~~~~~~~~~ + +* Patrick Wilson + +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 `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/sale_template_operating_unit/__init__.py b/sale_template_operating_unit/__init__.py new file mode 100644 index 0000000000..07e65fef82 --- /dev/null +++ b/sale_template_operating_unit/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2021 Pavlov Media +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). + +from . import models diff --git a/sale_template_operating_unit/__manifest__.py b/sale_template_operating_unit/__manifest__.py new file mode 100644 index 0000000000..2119d3f2bc --- /dev/null +++ b/sale_template_operating_unit/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright (C) 2021 Pavlov Media +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). +{ + "name": "Operating Unit in Sale Templates", + "version": "15.0.1.0.0", + "summary": "An operating unit (OU) is an organizational entity part of a " + "company", + "author": "Pavlov Media, Odoo Community Association (OCA)", + "license": "LGPL-3", + "website": "https://github.com/OCA/operating-unit", + "category": "Sales Management", + "depends": [ + "operating_unit", + "sale_management", + ], + "data": [ + "security/sale_template_security.xml", + "views/sale_template_view.xml", + ], + "installable": True, +} diff --git a/sale_template_operating_unit/i18n/it.po b/sale_template_operating_unit/i18n/it.po new file mode 100644 index 0000000000..91ec84cbb4 --- /dev/null +++ b/sale_template_operating_unit/i18n/it.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_template_operating_unit +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-07-23 17:25+0000\n" +"Last-Translator: mymage \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: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template__id +msgid "ID" +msgstr "ID" + +#. module: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template__operating_unit_id +msgid "Operating Unit" +msgstr "Unità operativa" + +#. module: sale_template_operating_unit +#: model:ir.model,name:sale_template_operating_unit.model_sale_order_template +msgid "Quotation Template" +msgstr "Modello preventivo" diff --git a/sale_template_operating_unit/i18n/sale_template_operating_unit.pot b/sale_template_operating_unit/i18n/sale_template_operating_unit.pot new file mode 100644 index 0000000000..8b97d99145 --- /dev/null +++ b/sale_template_operating_unit/i18n/sale_template_operating_unit.pot @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * sale_template_operating_unit +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template__display_name +msgid "Display Name" +msgstr "" + +#. module: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template__id +msgid "ID" +msgstr "" + +#. module: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template____last_update +msgid "Last Modified on" +msgstr "" + +#. module: sale_template_operating_unit +#: model:ir.model.fields,field_description:sale_template_operating_unit.field_sale_order_template__operating_unit_id +msgid "Operating Unit" +msgstr "" + +#. module: sale_template_operating_unit +#: model:ir.model,name:sale_template_operating_unit.model_sale_order_template +msgid "Quotation Template" +msgstr "" diff --git a/sale_template_operating_unit/models/__init__.py b/sale_template_operating_unit/models/__init__.py new file mode 100644 index 0000000000..a6ba2ac2f9 --- /dev/null +++ b/sale_template_operating_unit/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright (C) 2021 Pavlov Media +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). + +from . import sale_order_template diff --git a/sale_template_operating_unit/models/sale_order_template.py b/sale_template_operating_unit/models/sale_order_template.py new file mode 100644 index 0000000000..33894d29da --- /dev/null +++ b/sale_template_operating_unit/models/sale_order_template.py @@ -0,0 +1,16 @@ +# Copyright (C) 2021 Pavlov Media +# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). + +from odoo import fields, models + + +class SaleOrderTemplate(models.Model): + _inherit = "sale.order.template" + + operating_unit_id = fields.Many2one( + comodel_name="operating.unit", + string="Operating Unit", + default=lambda self: self.env["res.users"].operating_unit_default_get( + self.env.user.id + ), + ) diff --git a/sale_template_operating_unit/readme/CONTRIBUTORS.rst b/sale_template_operating_unit/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..4f895601b0 --- /dev/null +++ b/sale_template_operating_unit/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Patrick Wilson diff --git a/sale_template_operating_unit/readme/DESCRIPTION.rst b/sale_template_operating_unit/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..56b1800116 --- /dev/null +++ b/sale_template_operating_unit/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module introduces the following features: + +* Adds the Operating Unit (OU) to the Sale Order Templates. +* The user’s default Operating Unit (OU) is proposed at the time of creating the Sale Order Template. +* Security rules are defined to ensure that users can only see the Sale Order Template of that Operating Units in which they are allowed access to. diff --git a/sale_template_operating_unit/readme/USAGE.rst b/sale_template_operating_unit/readme/USAGE.rst new file mode 100644 index 0000000000..981e955706 --- /dev/null +++ b/sale_template_operating_unit/readme/USAGE.rst @@ -0,0 +1,4 @@ +Follow these steps: + +#. Create a Sale Order Template. +#. The Default Operating Unit of the User is assigned to the Sale Order Template. diff --git a/sale_template_operating_unit/security/sale_template_security.xml b/sale_template_operating_unit/security/sale_template_security.xml new file mode 100644 index 0000000000..e7145a49a7 --- /dev/null +++ b/sale_template_operating_unit/security/sale_template_security.xml @@ -0,0 +1,16 @@ + + + + + ['|',('operating_unit_id','=',False),('operating_unit_id','in', user.operating_unit_ids.ids)] + Sales Order Templates from allowed operating units + + + + + + + diff --git a/sale_template_operating_unit/static/description/icon.png b/sale_template_operating_unit/static/description/icon.png new file mode 100644 index 0000000000..3a0328b516 Binary files /dev/null and b/sale_template_operating_unit/static/description/icon.png differ diff --git a/sale_template_operating_unit/static/description/index.html b/sale_template_operating_unit/static/description/index.html new file mode 100644 index 0000000000..07f5047f27 --- /dev/null +++ b/sale_template_operating_unit/static/description/index.html @@ -0,0 +1,437 @@ + + + + + +Operating Unit in Sale Templates + + + +
+

Operating Unit in Sale Templates

+ + +

Beta License: LGPL-3 OCA/operating-unit Translate me on Weblate Try me on Runboat

+

This module introduces the following features:

+
    +
  • Adds the Operating Unit (OU) to the Sale Order Templates.
  • +
  • The user’s default Operating Unit (OU) is proposed at the time of creating the Sale Order Template.
  • +
  • Security rules are defined to ensure that users can only see the Sale Order Template of that Operating Units in which they are allowed access to.
  • +
+

Table of contents

+ +
+

Usage

+

Follow these steps:

+
    +
  1. Create a Sale Order Template.
  2. +
  3. The Default Operating Unit of the User is assigned to the Sale Order Template.
  4. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Pavlov Media
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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 project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/sale_template_operating_unit/views/sale_template_view.xml b/sale_template_operating_unit/views/sale_template_view.xml new file mode 100644 index 0000000000..19a1f8fe8f --- /dev/null +++ b/sale_template_operating_unit/views/sale_template_view.xml @@ -0,0 +1,34 @@ + + + + Sale Order Template Form + sale.order.template + + + + + + + + + + + + Sale Order Templates + sale.order.template + + + + + + + + diff --git a/setup/sale_template_operating_unit/odoo/addons/sale_template_operating_unit b/setup/sale_template_operating_unit/odoo/addons/sale_template_operating_unit new file mode 120000 index 0000000000..b280c4d659 --- /dev/null +++ b/setup/sale_template_operating_unit/odoo/addons/sale_template_operating_unit @@ -0,0 +1 @@ +../../../../sale_template_operating_unit \ No newline at end of file diff --git a/setup/sale_template_operating_unit/setup.py b/setup/sale_template_operating_unit/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/sale_template_operating_unit/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)