From 6f742de5ce9522a7862bf8bdd77a4cdff7cc962b Mon Sep 17 00:00:00 2001 From: JordiMForgeFlow Date: Tue, 24 Oct 2023 11:42:38 +0200 Subject: [PATCH 01/11] [ADD] partner_category_type --- partner_category_type/README.rst | 85 ++++ partner_category_type/__init__.py | 3 + partner_category_type/__manifest__.py | 16 + .../i18n/partner_category_type.pot | 39 ++ partner_category_type/models/__init__.py | 3 + .../models/res_partner_category.py | 52 +++ partner_category_type/readme/CONTRIBUTORS.rst | 1 + partner_category_type/readme/DESCRIPTION.rst | 2 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 424 ++++++++++++++++++ .../views/res_partner_category_views.xml | 27 ++ 11 files changed, 652 insertions(+) create mode 100644 partner_category_type/README.rst create mode 100644 partner_category_type/__init__.py create mode 100644 partner_category_type/__manifest__.py create mode 100644 partner_category_type/i18n/partner_category_type.pot create mode 100644 partner_category_type/models/__init__.py create mode 100644 partner_category_type/models/res_partner_category.py create mode 100644 partner_category_type/readme/CONTRIBUTORS.rst create mode 100644 partner_category_type/readme/DESCRIPTION.rst create mode 100644 partner_category_type/static/description/icon.png create mode 100644 partner_category_type/static/description/index.html create mode 100644 partner_category_type/views/res_partner_category_views.xml diff --git a/partner_category_type/README.rst b/partner_category_type/README.rst new file mode 100644 index 00000000000..31277da0f48 --- /dev/null +++ b/partner_category_type/README.rst @@ -0,0 +1,85 @@ +===================== +Partner Category Type +===================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:7beb12f6a5f637e76108f0d154e0eb5e9a7ef743c26eb50119032b8675705fff + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpartner--contact-lightgray.png?logo=github + :target: https://github.com/OCA/partner-contact/tree/16.0/partner_category_type + :alt: OCA/partner-contact +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/partner-contact-16-0/partner-contact-16-0-partner_category_type + :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/partner-contact&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds a selection field 'Type' in Contact Tags to be inherited and +used in other modules. + +**Table of contents** + +.. contents:: + :local: + +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 +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* Jordi Masvidal + +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. + +.. |maintainer-JordiMForgeFlow| image:: https://github.com/JordiMForgeFlow.png?size=40px + :target: https://github.com/JordiMForgeFlow + :alt: JordiMForgeFlow + +Current `maintainer `__: + +|maintainer-JordiMForgeFlow| + +This module is part of the `OCA/partner-contact `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/partner_category_type/__init__.py b/partner_category_type/__init__.py new file mode 100644 index 00000000000..4b76c7b2d5c --- /dev/null +++ b/partner_category_type/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/partner_category_type/__manifest__.py b/partner_category_type/__manifest__.py new file mode 100644 index 00000000000..b6fea5b50e6 --- /dev/null +++ b/partner_category_type/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2023 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Partner Category Type", + "summary": "Add a selection field 'Type' to classify Contact Tags.", + "version": "16.0.1.0.0", + "category": "Partner Management", + "website": "https://github.com/OCA/partner-contact", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "maintainers": ["JordiMForgeFlow"], + "depends": ["contacts"], + "data": ["views/res_partner_category_views.xml"], +} diff --git a/partner_category_type/i18n/partner_category_type.pot b/partner_category_type/i18n/partner_category_type.pot new file mode 100644 index 00000000000..9bcf7cc5d72 --- /dev/null +++ b/partner_category_type/i18n/partner_category_type.pot @@ -0,0 +1,39 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_category_type +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: partner_category_type +#. odoo-python +#: code:addons/partner_category_type/models/res_partner_category.py:0 +#, python-format +msgid "" +"Contact Tag '%(tag_name)s' has different type than parent '%(parent_name)s'." +msgstr "" + +#. module: partner_category_type +#. odoo-python +#: code:addons/partner_category_type/models/res_partner_category.py:0 +#, python-format +msgid "Generic" +msgstr "" + +#. module: partner_category_type +#: model:ir.model,name:partner_category_type.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: partner_category_type +#: model:ir.model.fields,field_description:partner_category_type.field_res_partner_category__category_type +msgid "Type" +msgstr "" diff --git a/partner_category_type/models/__init__.py b/partner_category_type/models/__init__.py new file mode 100644 index 00000000000..36e14ba4704 --- /dev/null +++ b/partner_category_type/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import res_partner_category diff --git a/partner_category_type/models/res_partner_category.py b/partner_category_type/models/res_partner_category.py new file mode 100644 index 00000000000..903af855bc3 --- /dev/null +++ b/partner_category_type/models/res_partner_category.py @@ -0,0 +1,52 @@ +# Copyright 2023 ForgeFlow, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + + +class ResPartnerCategory(models.Model): + _inherit = "res.partner.category" + + def _get_category_type_selection(self): + return [("generic", _("Generic"))] + + def _get_default_category_type(self): + return "generic" + + category_type = fields.Selection( + string="Type", + selection="_get_category_type_selection", + required=True, + default=_get_default_category_type, + compute="_compute_category_type", + inverse="_inverse_category_type", + store=True, + ) + + @api.constrains("parent_id", "category_type") + def _check_parent_type(self): + for rec in self: + if rec.parent_id and rec.parent_id.category_type != rec.category_type: + raise ValidationError( + _( + "Contact Tag '%(tag_name)s' has different type than " + "parent '%(parent_name)s'.", + tag_name=rec.name, + parent_name=rec.parent_id.name, + ) + ) + + @api.depends("parent_id") + def _compute_category_type(self): + default_category = self._get_default_category_type() + for rec in self: + if rec.parent_id: + rec.category_type = rec.parent_id.category_type + else: + rec.category_type = default_category + + def _inverse_category_type(self): + for rec in self: + if rec.child_ids: + rec.child_ids.write({"category_type": rec.category_type}) diff --git a/partner_category_type/readme/CONTRIBUTORS.rst b/partner_category_type/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..e4263e418aa --- /dev/null +++ b/partner_category_type/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Jordi Masvidal diff --git a/partner_category_type/readme/DESCRIPTION.rst b/partner_category_type/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..216e522e826 --- /dev/null +++ b/partner_category_type/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module adds a selection field 'Type' in Contact Tags to be inherited and +used in other modules. diff --git a/partner_category_type/static/description/icon.png b/partner_category_type/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/partner_category_type/static/description/index.html b/partner_category_type/static/description/index.html new file mode 100644 index 00000000000..dff4ab847ad --- /dev/null +++ b/partner_category_type/static/description/index.html @@ -0,0 +1,424 @@ + + + + + + +Partner Category Type + + + +
+

Partner Category Type

+ + +

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

+

This module adds a selection field ‘Type’ in Contact Tags to be inherited and +used in other modules.

+

Table of contents

+ +
+

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

+
    +
  • ForgeFlow
  • +
+
+
+

Contributors

+ +
+
+

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.

+

Current maintainer:

+

JordiMForgeFlow

+

This module is part of the OCA/partner-contact project on GitHub.

+

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

+
+
+
+ + diff --git a/partner_category_type/views/res_partner_category_views.xml b/partner_category_type/views/res_partner_category_views.xml new file mode 100644 index 00000000000..20cf26e52d9 --- /dev/null +++ b/partner_category_type/views/res_partner_category_views.xml @@ -0,0 +1,27 @@ + + + + res.partner.category.tree - partner_category_type + res.partner.category + + + + + + + + + + res.partner.category.form - partner_category_type + res.partner.category + + + + + + + + From c88580852d165784844229d4aa646da08d366f12 Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 27 Dec 2023 10:54:42 +0000 Subject: [PATCH 02/11] Added translation using Weblate (Italian) --- partner_category_type/i18n/it.po | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 partner_category_type/i18n/it.po diff --git a/partner_category_type/i18n/it.po b/partner_category_type/i18n/it.po new file mode 100644 index 00000000000..5b7e7aa3006 --- /dev/null +++ b/partner_category_type/i18n/it.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_category_type +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: partner_category_type +#. odoo-python +#: code:addons/partner_category_type/models/res_partner_category.py:0 +#, python-format +msgid "" +"Contact Tag '%(tag_name)s' has different type than parent '%(parent_name)s'." +msgstr "" + +#. module: partner_category_type +#. odoo-python +#: code:addons/partner_category_type/models/res_partner_category.py:0 +#, python-format +msgid "Generic" +msgstr "" + +#. module: partner_category_type +#: model:ir.model,name:partner_category_type.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: partner_category_type +#: model:ir.model.fields,field_description:partner_category_type.field_res_partner_category__category_type +msgid "Type" +msgstr "" From 8bf5fc2ca6ff748133b9379498ca6e1fa4002723 Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 27 Dec 2023 10:55:31 +0000 Subject: [PATCH 03/11] Translated using Weblate (Italian) Currently translated at 100.0% (4 of 4 strings) Translation: partner-contact-16.0/partner-contact-16.0-partner_category_type Translate-URL: https://translation.odoo-community.org/projects/partner-contact-16-0/partner-contact-16-0-partner_category_type/it/ --- partner_category_type/i18n/it.po | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/partner_category_type/i18n/it.po b/partner_category_type/i18n/it.po index 5b7e7aa3006..1d2fd0a10bc 100644 --- a/partner_category_type/i18n/it.po +++ b/partner_category_type/i18n/it.po @@ -6,13 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-12-27 11:42+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 4.17\n" #. module: partner_category_type #. odoo-python @@ -21,20 +23,22 @@ msgstr "" msgid "" "Contact Tag '%(tag_name)s' has different type than parent '%(parent_name)s'." msgstr "" +"Il contatto etichetta '%(tag_name)s' ha un tipo diverso dal parent " +"'%(parent_name)s'." #. module: partner_category_type #. odoo-python #: code:addons/partner_category_type/models/res_partner_category.py:0 #, python-format msgid "Generic" -msgstr "" +msgstr "Generico" #. module: partner_category_type #: model:ir.model,name:partner_category_type.model_res_partner_category msgid "Partner Tags" -msgstr "" +msgstr "Etichette partner" #. module: partner_category_type #: model:ir.model.fields,field_description:partner_category_type.field_res_partner_category__category_type msgid "Type" -msgstr "" +msgstr "Tipo" From 40c86c9a847233a5aec5df077852ce666de035b6 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Tue, 25 Feb 2025 15:03:04 +0530 Subject: [PATCH 04/11] [IMP] partner_category_type: pre-commit auto fixes --- partner_category_type/README.rst | 22 +++++++++---------- partner_category_type/pyproject.toml | 3 +++ partner_category_type/readme/CONTRIBUTORS.md | 1 + partner_category_type/readme/CONTRIBUTORS.rst | 1 - partner_category_type/readme/DESCRIPTION.md | 2 ++ partner_category_type/readme/DESCRIPTION.rst | 2 -- .../static/description/index.html | 22 ++++++++++--------- 7 files changed, 29 insertions(+), 24 deletions(-) create mode 100644 partner_category_type/pyproject.toml create mode 100644 partner_category_type/readme/CONTRIBUTORS.md delete mode 100644 partner_category_type/readme/CONTRIBUTORS.rst create mode 100644 partner_category_type/readme/DESCRIPTION.md delete mode 100644 partner_category_type/readme/DESCRIPTION.rst diff --git a/partner_category_type/README.rst b/partner_category_type/README.rst index 31277da0f48..8ce462f260b 100644 --- a/partner_category_type/README.rst +++ b/partner_category_type/README.rst @@ -17,19 +17,19 @@ Partner Category Type :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpartner--contact-lightgray.png?logo=github - :target: https://github.com/OCA/partner-contact/tree/16.0/partner_category_type + :target: https://github.com/OCA/partner-contact/tree/18.0/partner_category_type :alt: OCA/partner-contact .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/partner-contact-16-0/partner-contact-16-0-partner_category_type + :target: https://translation.odoo-community.org/projects/partner-contact-18-0/partner-contact-18-0-partner_category_type :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/partner-contact&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/partner-contact&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module adds a selection field 'Type' in Contact Tags to be inherited and -used in other modules. +This module adds a selection field 'Type' in Contact Tags to be +inherited and used in other modules. **Table of contents** @@ -42,7 +42,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -50,17 +50,17 @@ Credits ======= Authors -~~~~~~~ +------- * ForgeFlow Contributors -~~~~~~~~~~~~ +------------ -* Jordi Masvidal +- Jordi Masvidal Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -80,6 +80,6 @@ Current `maintainer `__: |maintainer-JordiMForgeFlow| -This module is part of the `OCA/partner-contact `_ project on GitHub. +This module is part of the `OCA/partner-contact `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/partner_category_type/pyproject.toml b/partner_category_type/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/partner_category_type/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/partner_category_type/readme/CONTRIBUTORS.md b/partner_category_type/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..6fd442f34fa --- /dev/null +++ b/partner_category_type/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Jordi Masvidal \<\> diff --git a/partner_category_type/readme/CONTRIBUTORS.rst b/partner_category_type/readme/CONTRIBUTORS.rst deleted file mode 100644 index e4263e418aa..00000000000 --- a/partner_category_type/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* Jordi Masvidal diff --git a/partner_category_type/readme/DESCRIPTION.md b/partner_category_type/readme/DESCRIPTION.md new file mode 100644 index 00000000000..de2af48b589 --- /dev/null +++ b/partner_category_type/readme/DESCRIPTION.md @@ -0,0 +1,2 @@ +This module adds a selection field 'Type' in Contact Tags to be +inherited and used in other modules. diff --git a/partner_category_type/readme/DESCRIPTION.rst b/partner_category_type/readme/DESCRIPTION.rst deleted file mode 100644 index 216e522e826..00000000000 --- a/partner_category_type/readme/DESCRIPTION.rst +++ /dev/null @@ -1,2 +0,0 @@ -This module adds a selection field 'Type' in Contact Tags to be inherited and -used in other modules. diff --git a/partner_category_type/static/description/index.html b/partner_category_type/static/description/index.html index dff4ab847ad..d2233b516d0 100644 --- a/partner_category_type/static/description/index.html +++ b/partner_category_type/static/description/index.html @@ -1,4 +1,3 @@ - @@ -9,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -369,9 +369,9 @@

Partner Category Type

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:7beb12f6a5f637e76108f0d154e0eb5e9a7ef743c26eb50119032b8675705fff !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

-

This module adds a selection field ‘Type’ in Contact Tags to be inherited and -used in other modules.

+

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

+

This module adds a selection field ‘Type’ in Contact Tags to be +inherited and used in other modules.

Table of contents

    @@ -389,7 +389,7 @@

    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.

    +feedback.

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

@@ -409,13 +409,15 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

Current maintainer:

JordiMForgeFlow

-

This module is part of the OCA/partner-contact project on GitHub.

+

This module is part of the OCA/partner-contact project on GitHub.

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

From 8a867ee7f5d50eb06a85c1bc0f5a01d60ca46049 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Tue, 25 Feb 2025 15:04:38 +0530 Subject: [PATCH 05/11] [MIG] partner_category_type: Migration to 18.0 --- partner_category_type/README.rst | 3 + partner_category_type/__manifest__.py | 2 +- .../models/res_partner_category.py | 6 +- partner_category_type/readme/CONTRIBUTORS.md | 2 + .../static/description/index.html | 4 + partner_category_type/tests/__init__.py | 4 + .../tests/test_partner_category_type.py | 117 ++++++++++++++++++ .../views/res_partner_category_views.xml | 9 +- 8 files changed, 137 insertions(+), 10 deletions(-) create mode 100644 partner_category_type/tests/__init__.py create mode 100644 partner_category_type/tests/test_partner_category_type.py diff --git a/partner_category_type/README.rst b/partner_category_type/README.rst index 8ce462f260b..b6966851737 100644 --- a/partner_category_type/README.rst +++ b/partner_category_type/README.rst @@ -58,6 +58,9 @@ Contributors ------------ - Jordi Masvidal +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia Maintainers ----------- diff --git a/partner_category_type/__manifest__.py b/partner_category_type/__manifest__.py index b6fea5b50e6..b8f1ccade7c 100644 --- a/partner_category_type/__manifest__.py +++ b/partner_category_type/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Partner Category Type", "summary": "Add a selection field 'Type' to classify Contact Tags.", - "version": "16.0.1.0.0", + "version": "18.0.1.0.0", "category": "Partner Management", "website": "https://github.com/OCA/partner-contact", "author": "ForgeFlow, Odoo Community Association (OCA)", diff --git a/partner_category_type/models/res_partner_category.py b/partner_category_type/models/res_partner_category.py index 903af855bc3..0a785e2ea03 100644 --- a/partner_category_type/models/res_partner_category.py +++ b/partner_category_type/models/res_partner_category.py @@ -1,7 +1,7 @@ # Copyright 2023 ForgeFlow, S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo import _, api, fields, models +from odoo import api, fields, models from odoo.exceptions import ValidationError @@ -9,7 +9,7 @@ class ResPartnerCategory(models.Model): _inherit = "res.partner.category" def _get_category_type_selection(self): - return [("generic", _("Generic"))] + return [("generic", self.env._("Generic"))] def _get_default_category_type(self): return "generic" @@ -29,7 +29,7 @@ def _check_parent_type(self): for rec in self: if rec.parent_id and rec.parent_id.category_type != rec.category_type: raise ValidationError( - _( + self.env._( "Contact Tag '%(tag_name)s' has different type than " "parent '%(parent_name)s'.", tag_name=rec.name, diff --git a/partner_category_type/readme/CONTRIBUTORS.md b/partner_category_type/readme/CONTRIBUTORS.md index 6fd442f34fa..40813239e5b 100644 --- a/partner_category_type/readme/CONTRIBUTORS.md +++ b/partner_category_type/readme/CONTRIBUTORS.md @@ -1 +1,3 @@ - Jordi Masvidal \<\> +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/partner_category_type/static/description/index.html b/partner_category_type/static/description/index.html index d2233b516d0..cfe625b0623 100644 --- a/partner_category_type/static/description/index.html +++ b/partner_category_type/static/description/index.html @@ -404,6 +404,10 @@

Authors

Contributors

diff --git a/partner_category_type/tests/__init__.py b/partner_category_type/tests/__init__.py new file mode 100644 index 00000000000..9eda560c2a5 --- /dev/null +++ b/partner_category_type/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2023 ForgeFlow, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import test_partner_category_type diff --git a/partner_category_type/tests/test_partner_category_type.py b/partner_category_type/tests/test_partner_category_type.py new file mode 100644 index 00000000000..3c1a8831680 --- /dev/null +++ b/partner_category_type/tests/test_partner_category_type.py @@ -0,0 +1,117 @@ +# Copyright 2023 ForgeFlow, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo.exceptions import ValidationError + +from odoo.addons.base.tests.common import BaseCommon + + +class TestResPartnerCategory(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + # Create base test categories + cls.category_parent = cls.env["res.partner.category"].create( + { + "name": "Parent Category", + } + ) + cls.category_child = cls.env["res.partner.category"].create( + { + "name": "Child Category", + "parent_id": cls.category_parent.id, + } + ) + + def test_01_default_category_type(self): + """Test that new categories get the default generic type""" + category_model = self.env["res.partner.category"] + default_type = category_model._get_default_category_type() + self.assertEqual(default_type, "generic") + + new_category = category_model.create( + { + "name": "Test Category", + } + ) + self.assertEqual(new_category.category_type, "generic") + + def test_02_parent_child_category_type(self): + """Test that child categories inherit parent's type""" + # Change parent category type + self.category_parent.category_type = "generic" + # Check that child category inherits the type + self.assertEqual(self.category_child.category_type, "generic") + + def test_03_category_type_constraint(self): + """Test constraint preventing different types between parent and child""" + with self.assertRaises(ValidationError): + self.category_parent.category_type = "generic" + self.env["res.partner.category"].create( + { + "name": "Invalid Child Category", + "parent_id": self.category_parent.id, + "category_type": "test", # Different from parent's 'generic' type + } + ) + + def test_04_change_parent_category_type(self): + """Test that changing parent category type updates all children""" + parent = self.env["res.partner.category"].create({"name": "Parent"}) + child1 = self.env["res.partner.category"].create( + {"name": "Child 1", "parent_id": parent.id} + ) + child2 = self.env["res.partner.category"].create( + {"name": "Child 2", "parent_id": child1.id} + ) + + def extended_selection(self): + return [("generic", "Generic"), ("test", "Test")] + + original_selection = type(parent)._get_category_type_selection + + try: + type(parent)._get_category_type_selection = extended_selection + parent.category_type = "test" + self.assertEqual(child1.category_type, "test") + self.assertEqual(child2.category_type, "test") + finally: + type( + parent + )._get_category_type_selection = ( + original_selection # Ensure this always runs + ) + + def test_05_compute_category_type(self): + """Test computation of category type based on parent""" + # Create standalone category + standalone = self.env["res.partner.category"].create( + { + "name": "Standalone", + } + ) + + # Verify it gets default type + self.assertEqual(standalone.category_type, "generic") + + # Set as child of existing category + standalone.parent_id = self.category_parent.id + + # Verify type is inherited from parent + self.assertEqual(standalone.category_type, self.category_parent.category_type) + + # Remove parent to test default category assignment + standalone.parent_id = False + + # Force recompute of category_type + standalone.invalidate_recordset(["category_type"]) + standalone._compute_category_type() + + # Verify it returns to default category type + self.assertEqual(standalone.category_type, "generic") + + def test_06_get_category_type_selection(self): + """Test _get_category_type_selection method""" + category_model = self.env["res.partner.category"] + selection = category_model._get_category_type_selection() + self.assertIn(("generic", "Generic"), selection) diff --git a/partner_category_type/views/res_partner_category_views.xml b/partner_category_type/views/res_partner_category_views.xml index 20cf26e52d9..ea5d60cad75 100644 --- a/partner_category_type/views/res_partner_category_views.xml +++ b/partner_category_type/views/res_partner_category_views.xml @@ -5,8 +5,8 @@ res.partner.category - - + + @@ -17,10 +17,7 @@ - + From 469a4908e1c881be41df2e5c177244324a497f64 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 17 Sep 2025 13:12:27 +0000 Subject: [PATCH 06/11] [UPD] Update partner_category_type.pot --- partner_category_type/i18n/partner_category_type.pot | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/partner_category_type/i18n/partner_category_type.pot b/partner_category_type/i18n/partner_category_type.pot index 9bcf7cc5d72..d2e6cf5d52d 100644 --- a/partner_category_type/i18n/partner_category_type.pot +++ b/partner_category_type/i18n/partner_category_type.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -16,7 +16,6 @@ msgstr "" #. module: partner_category_type #. odoo-python #: code:addons/partner_category_type/models/res_partner_category.py:0 -#, python-format msgid "" "Contact Tag '%(tag_name)s' has different type than parent '%(parent_name)s'." msgstr "" @@ -24,7 +23,6 @@ msgstr "" #. module: partner_category_type #. odoo-python #: code:addons/partner_category_type/models/res_partner_category.py:0 -#, python-format msgid "Generic" msgstr "" From 1ae2b30e35cc4f72fc931c0de47f9d7057565fa7 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 17 Sep 2025 13:16:21 +0000 Subject: [PATCH 07/11] [BOT] post-merge updates --- partner_category_type/README.rst | 8 ++++-- .../static/description/index.html | 26 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/partner_category_type/README.rst b/partner_category_type/README.rst index b6966851737..88b34c9fe7c 100644 --- a/partner_category_type/README.rst +++ b/partner_category_type/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ===================== Partner Category Type ===================== @@ -7,13 +11,13 @@ Partner Category Type !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:7beb12f6a5f637e76108f0d154e0eb5e9a7ef743c26eb50119032b8675705fff + !! source digest: sha256:801755c18a8f3457926274b02ee6e7d6d5523fc167a7bde412fbdd7843addc4e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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-AGPL--3-blue.png +.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpartner--contact-lightgray.png?logo=github diff --git a/partner_category_type/static/description/index.html b/partner_category_type/static/description/index.html index cfe625b0623..36234ef26ad 100644 --- a/partner_category_type/static/description/index.html +++ b/partner_category_type/static/description/index.html @@ -3,7 +3,7 @@ -Partner Category Type +README.rst -
-

Partner Category Type

+
+ + +Odoo Community Association + +
+

Partner Category Type

-

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

This module adds a selection field ‘Type’ in Contact Tags to be inherited and used in other modules.

Table of contents

@@ -385,7 +390,7 @@

Partner Category Type

-

Bug Tracker

+

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 @@ -393,15 +398,15 @@

Bug Tracker

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

+
From cf04c4c9c87bd1d90ee3a74d110d0ff3771c41da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 20 Feb 2026 16:38:59 +0100 Subject: [PATCH 08/11] [IMP] partner_category_type: Change where the mock has to be loaded Related to https://github.com/odoo/odoo/commit/de056cc784a3bbe2575fd3c9e81ca62e73c362d4 --- .../tests/test_partner_category_type.py | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/partner_category_type/tests/test_partner_category_type.py b/partner_category_type/tests/test_partner_category_type.py index 3c1a8831680..17e805c1b06 100644 --- a/partner_category_type/tests/test_partner_category_type.py +++ b/partner_category_type/tests/test_partner_category_type.py @@ -1,5 +1,6 @@ # Copyright 2023 ForgeFlow, S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from unittest import mock from odoo.exceptions import ValidationError @@ -64,23 +65,15 @@ def test_04_change_parent_category_type(self): child2 = self.env["res.partner.category"].create( {"name": "Child 2", "parent_id": child1.id} ) - - def extended_selection(self): - return [("generic", "Generic"), ("test", "Test")] - - original_selection = type(parent)._get_category_type_selection - - try: - type(parent)._get_category_type_selection = extended_selection + # Replaces the selection in the field definition of category_type + with mock.patch.object( + type(parent), + "_get_category_type_selection", + [("generic", "Generic"), ("test", "Test")], + ): parent.category_type = "test" self.assertEqual(child1.category_type, "test") self.assertEqual(child2.category_type, "test") - finally: - type( - parent - )._get_category_type_selection = ( - original_selection # Ensure this always runs - ) def test_05_compute_category_type(self): """Test computation of category type based on parent""" From 7fd0c056d9baaefc505faa715d5eb26d60aa2086 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 24 Feb 2026 17:18:01 +0000 Subject: [PATCH 09/11] [BOT] post-merge updates --- partner_category_type/README.rst | 2 +- partner_category_type/__manifest__.py | 2 +- partner_category_type/static/description/index.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/partner_category_type/README.rst b/partner_category_type/README.rst index 88b34c9fe7c..6fbdf8c07e0 100644 --- a/partner_category_type/README.rst +++ b/partner_category_type/README.rst @@ -11,7 +11,7 @@ Partner Category Type !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:801755c18a8f3457926274b02ee6e7d6d5523fc167a7bde412fbdd7843addc4e + !! source digest: sha256:9f00c073ac4e6232e223efcfa30bd8c47d697122f5fbd1f33558663b37a18546 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/partner_category_type/__manifest__.py b/partner_category_type/__manifest__.py index b8f1ccade7c..8ab1da13f27 100644 --- a/partner_category_type/__manifest__.py +++ b/partner_category_type/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Partner Category Type", "summary": "Add a selection field 'Type' to classify Contact Tags.", - "version": "18.0.1.0.0", + "version": "18.0.1.0.1", "category": "Partner Management", "website": "https://github.com/OCA/partner-contact", "author": "ForgeFlow, Odoo Community Association (OCA)", diff --git a/partner_category_type/static/description/index.html b/partner_category_type/static/description/index.html index 36234ef26ad..c50b985bcca 100644 --- a/partner_category_type/static/description/index.html +++ b/partner_category_type/static/description/index.html @@ -372,7 +372,7 @@

Partner Category Type

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:801755c18a8f3457926274b02ee6e7d6d5523fc167a7bde412fbdd7843addc4e +!! source digest: sha256:9f00c073ac4e6232e223efcfa30bd8c47d697122f5fbd1f33558663b37a18546 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

This module adds a selection field ‘Type’ in Contact Tags to be From 91968ffed54d6e0a1a46ee76700a2f162bc6d063 Mon Sep 17 00:00:00 2001 From: Ben Brich Date: Thu, 14 May 2026 20:29:27 +0000 Subject: [PATCH 10/11] Added translation using Weblate (German) --- partner_category_type/i18n/de.po | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 partner_category_type/i18n/de.po diff --git a/partner_category_type/i18n/de.po b/partner_category_type/i18n/de.po new file mode 100644 index 00000000000..b9cb19bb98a --- /dev/null +++ b/partner_category_type/i18n/de.po @@ -0,0 +1,38 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_category_type +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: de\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: partner_category_type +#. odoo-python +#: code:addons/partner_category_type/models/res_partner_category.py:0 +msgid "" +"Contact Tag '%(tag_name)s' has different type than parent '%(parent_name)s'." +msgstr "" + +#. module: partner_category_type +#. odoo-python +#: code:addons/partner_category_type/models/res_partner_category.py:0 +msgid "Generic" +msgstr "" + +#. module: partner_category_type +#: model:ir.model,name:partner_category_type.model_res_partner_category +msgid "Partner Tags" +msgstr "" + +#. module: partner_category_type +#: model:ir.model.fields,field_description:partner_category_type.field_res_partner_category__category_type +msgid "Type" +msgstr "" From 234db3fed0e61f1f6d5df23a65a4b32d26cee070 Mon Sep 17 00:00:00 2001 From: uncannycs Date: Wed, 27 May 2026 12:54:08 +0530 Subject: [PATCH 11/11] [MIG] partner_category_type : Migration to v19. --- partner_category_type/README.rst | 10 +++++----- partner_category_type/__manifest__.py | 2 +- partner_category_type/i18n/partner_category_type.pot | 2 +- partner_category_type/models/res_partner_category.py | 2 +- partner_category_type/static/description/index.html | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/partner_category_type/README.rst b/partner_category_type/README.rst index 6fbdf8c07e0..849eebc826c 100644 --- a/partner_category_type/README.rst +++ b/partner_category_type/README.rst @@ -21,13 +21,13 @@ Partner Category Type :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpartner--contact-lightgray.png?logo=github - :target: https://github.com/OCA/partner-contact/tree/18.0/partner_category_type + :target: https://github.com/OCA/partner-contact/tree/19.0/partner_category_type :alt: OCA/partner-contact .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/partner-contact-18-0/partner-contact-18-0-partner_category_type + :target: https://translation.odoo-community.org/projects/partner-contact-19-0/partner-contact-19-0-partner_category_type :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/partner-contact&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/partner-contact&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,7 +46,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -87,6 +87,6 @@ Current `maintainer `__: |maintainer-JordiMForgeFlow| -This module is part of the `OCA/partner-contact `_ project on GitHub. +This module is part of the `OCA/partner-contact `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/partner_category_type/__manifest__.py b/partner_category_type/__manifest__.py index 8ab1da13f27..4753420b22f 100644 --- a/partner_category_type/__manifest__.py +++ b/partner_category_type/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Partner Category Type", "summary": "Add a selection field 'Type' to classify Contact Tags.", - "version": "18.0.1.0.1", + "version": "19.0.1.0.0", "category": "Partner Management", "website": "https://github.com/OCA/partner-contact", "author": "ForgeFlow, Odoo Community Association (OCA)", diff --git a/partner_category_type/i18n/partner_category_type.pot b/partner_category_type/i18n/partner_category_type.pot index d2e6cf5d52d..fe3bb2a0ec0 100644 --- a/partner_category_type/i18n/partner_category_type.pot +++ b/partner_category_type/i18n/partner_category_type.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 18.0\n" +"Project-Id-Version: Odoo Server 19.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/partner_category_type/models/res_partner_category.py b/partner_category_type/models/res_partner_category.py index 0a785e2ea03..734b0129d21 100644 --- a/partner_category_type/models/res_partner_category.py +++ b/partner_category_type/models/res_partner_category.py @@ -18,7 +18,7 @@ def _get_default_category_type(self): string="Type", selection="_get_category_type_selection", required=True, - default=_get_default_category_type, + default=lambda self: self._get_default_category_type(), compute="_compute_category_type", inverse="_inverse_category_type", store=True, diff --git a/partner_category_type/static/description/index.html b/partner_category_type/static/description/index.html index c50b985bcca..97133c3293d 100644 --- a/partner_category_type/static/description/index.html +++ b/partner_category_type/static/description/index.html @@ -374,7 +374,7 @@

Partner Category Type

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:9f00c073ac4e6232e223efcfa30bd8c47d697122f5fbd1f33558663b37a18546 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/partner-contact Translate me on Weblate Try me on Runboat

This module adds a selection field ‘Type’ in Contact Tags to be inherited and used in other modules.

Table of contents

@@ -394,7 +394,7 @@

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.

+feedback.

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

@@ -426,7 +426,7 @@

Maintainers

promote its widespread use.

Current maintainer:

JordiMForgeFlow

-

This module is part of the OCA/partner-contact project on GitHub.

+

This module is part of the OCA/partner-contact project on GitHub.

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