From 1fae28de8c67348f973d2f3f8392c2ac11dcbbfc Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Wed, 7 Sep 2022 18:20:04 +0200 Subject: [PATCH 01/11] Add edi_party_data_oca --- edi_party_data_oca/README.rst | 1 + edi_party_data_oca/__init__.py | 2 + edi_party_data_oca/__manifest__.py | 20 +++ edi_party_data_oca/components/__init__.py | 2 + edi_party_data_oca/components/common.py | 72 +++++++++ edi_party_data_oca/components/party_data.py | 12 ++ edi_party_data_oca/models/__init__.py | 1 + .../models/edi_exchange_type.py | 16 ++ edi_party_data_oca/readme/CONFIGURE.rst | 4 + edi_party_data_oca/readme/CONTRIBUTORS.rst | 1 + edi_party_data_oca/readme/DESCRIPTION.rst | 9 ++ edi_party_data_oca/readme/USAGE.rst | 7 + edi_party_data_oca/tests/__init__.py | 1 + edi_party_data_oca/tests/test_party_data.py | 146 ++++++++++++++++++ edi_party_data_oca/utils.py | 22 +++ .../views/edi_exchange_type_views.xml | 14 ++ 16 files changed, 330 insertions(+) create mode 100644 edi_party_data_oca/README.rst create mode 100644 edi_party_data_oca/__init__.py create mode 100644 edi_party_data_oca/__manifest__.py create mode 100644 edi_party_data_oca/components/__init__.py create mode 100644 edi_party_data_oca/components/common.py create mode 100644 edi_party_data_oca/components/party_data.py create mode 100644 edi_party_data_oca/models/__init__.py create mode 100644 edi_party_data_oca/models/edi_exchange_type.py create mode 100644 edi_party_data_oca/readme/CONFIGURE.rst create mode 100644 edi_party_data_oca/readme/CONTRIBUTORS.rst create mode 100644 edi_party_data_oca/readme/DESCRIPTION.rst create mode 100644 edi_party_data_oca/readme/USAGE.rst create mode 100644 edi_party_data_oca/tests/__init__.py create mode 100644 edi_party_data_oca/tests/test_party_data.py create mode 100644 edi_party_data_oca/utils.py create mode 100644 edi_party_data_oca/views/edi_exchange_type_views.xml diff --git a/edi_party_data_oca/README.rst b/edi_party_data_oca/README.rst new file mode 100644 index 0000000000..417108db88 --- /dev/null +++ b/edi_party_data_oca/README.rst @@ -0,0 +1 @@ +wait for the bot \ No newline at end of file diff --git a/edi_party_data_oca/__init__.py b/edi_party_data_oca/__init__.py new file mode 100644 index 0000000000..f24d3e2426 --- /dev/null +++ b/edi_party_data_oca/__init__.py @@ -0,0 +1,2 @@ +from . import components +from . import models diff --git a/edi_party_data_oca/__manifest__.py b/edi_party_data_oca/__manifest__.py new file mode 100644 index 0000000000..292467e0cf --- /dev/null +++ b/edi_party_data_oca/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2022 Camptocamp SA +# @author: Simone Orsi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "EDI Party data", + "summary": """ + Allow to configure and retrieve party information for EDI exchanges. + """, + "version": "14.0.1.0.0", + "development_status": "Alpha", + "license": "AGPL-3", + "website": "https://github.com/OCA/edi", + "author": "Camptocamp, Odoo Community Association (OCA)", + "maintainers": ["simahawk"], + "depends": ["edi_oca", "partner_identification"], + "data": [ + "views/edi_exchange_type_views.xml", + ], +} diff --git a/edi_party_data_oca/components/__init__.py b/edi_party_data_oca/components/__init__.py new file mode 100644 index 0000000000..f37fba156b --- /dev/null +++ b/edi_party_data_oca/components/__init__.py @@ -0,0 +1,2 @@ +from . import common +from . import party_data diff --git a/edi_party_data_oca/components/common.py b/edi_party_data_oca/components/common.py new file mode 100644 index 0000000000..90ed3be0f5 --- /dev/null +++ b/edi_party_data_oca/components/common.py @@ -0,0 +1,72 @@ +# Copyright 2022 Camptocamp SA +# @author: Simone Orsi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tools import DotDict + +from odoo.addons.component.core import AbstractComponent + + +class EDIExchangePartyDataMixin(AbstractComponent): + """Abstract component mixin provide partner data for exchanges.""" + + _name = "edi.party.data.mixin" + _inherit = "edi.component.mixin" + _collection = "edi.backend" + _usage = "edi.party.data" + + def __init__(self, work_context): + super().__init__(work_context) + self.partner = self._get_partner() + self.allowed_id_categories = self.exchange_record.type_id.id_category_ids + + def _get_partner(self): + # Hook here to define different logic to lookup for the partner + # based on current partner (eg: pick the parent). + return self.work.partner + + def get_party(self): + """Return party information. + + Requires a res.partner to be passed via work context. + + :return: odoo.tools.DotDict + """ + return self._party_from_partner() + + def _party_from_partner(self, **kw): + # NB: for UBL this should probably replace `base.ubl._ubl_get_party_identification` + # which does nothing today. + party = DotDict( + name=self._get_name(), + identifiers=self._get_identifiers(), + # TODO: is this only for UBL? + endpoint=self._get_endpoint(), + ) + party.update(kw) + return party + + def _get_name(self): + return self.partner.name + + def _get_endpoint(self): + return {} + + def _get_identifiers(self): + identifiers = self.partner.id_numbers.filtered( + lambda x: self._filter_id_number(x) + ) + return [self._get_indentity(x) for x in identifiers] + + def _filter_id_number(self, id_number): + if self.allowed_id_categories: + return id_number.category_id in self.allowed_id_categories + return True + + def _get_indentity(self, id_number): + return DotDict( + attrs={ + "schemeID": id_number.category_id.code, + }, + value=id_number.name, + ) diff --git a/edi_party_data_oca/components/party_data.py b/edi_party_data_oca/components/party_data.py new file mode 100644 index 0000000000..d64ec02530 --- /dev/null +++ b/edi_party_data_oca/components/party_data.py @@ -0,0 +1,12 @@ +# Copyright 2022 Camptocamp SA +# @author: Simone Orsi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.component.core import Component + + +class EDIPartyData(Component): + """Default component to lookup for party information.""" + + _name = "edi.party.data" + _inherit = "edi.party.data.mixin" diff --git a/edi_party_data_oca/models/__init__.py b/edi_party_data_oca/models/__init__.py new file mode 100644 index 0000000000..719704f711 --- /dev/null +++ b/edi_party_data_oca/models/__init__.py @@ -0,0 +1 @@ +from . import edi_exchange_type diff --git a/edi_party_data_oca/models/edi_exchange_type.py b/edi_party_data_oca/models/edi_exchange_type.py new file mode 100644 index 0000000000..faa61f18d4 --- /dev/null +++ b/edi_party_data_oca/models/edi_exchange_type.py @@ -0,0 +1,16 @@ +# Copyright 2022 Camptocamp SA +# @author Simone Orsi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class EDIExchangeType(models.Model): + + _inherit = "edi.exchange.type" + + id_category_ids = fields.Many2many( + string="ID categories", + comodel_name="res.partner.id_category", + help="Allowed ID categories to be used to generate parties information.", + ) diff --git a/edi_party_data_oca/readme/CONFIGURE.rst b/edi_party_data_oca/readme/CONFIGURE.rst new file mode 100644 index 0000000000..2cdb51f542 --- /dev/null +++ b/edi_party_data_oca/readme/CONFIGURE.rst @@ -0,0 +1,4 @@ +On the exchange type form, find the field "ID categories" +and set the categories allowed for that exchange type. + +If not set, *all the IDs* of the partner will be exposed. diff --git a/edi_party_data_oca/readme/CONTRIBUTORS.rst b/edi_party_data_oca/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..f1c71bce18 --- /dev/null +++ b/edi_party_data_oca/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Simone Orsi diff --git a/edi_party_data_oca/readme/DESCRIPTION.rst b/edi_party_data_oca/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..23b8950328 --- /dev/null +++ b/edi_party_data_oca/readme/DESCRIPTION.rst @@ -0,0 +1,9 @@ +Technical module for the EDI suite module to retrieve data for parties of an exchange. + +This module provides default component +and a mixin to be used for registering new components for specific backends. + +It's based on `partner_identification` +so that the party information will include allowed ID numbers for a given exchange. + +You can configure which ID number categories are allowed on the exchange type. diff --git a/edi_party_data_oca/readme/USAGE.rst b/edi_party_data_oca/readme/USAGE.rst new file mode 100644 index 0000000000..c55eb229ef --- /dev/null +++ b/edi_party_data_oca/readme/USAGE.rst @@ -0,0 +1,7 @@ +An handy util method is to retrive the component:: + + from odoo.addons.edi_party_data_oca.utils import get_party_data_component + + component = get_party_data_component(exchange_record, partner) + + data = component.get_party() diff --git a/edi_party_data_oca/tests/__init__.py b/edi_party_data_oca/tests/__init__.py new file mode 100644 index 0000000000..ab479a1db1 --- /dev/null +++ b/edi_party_data_oca/tests/__init__.py @@ -0,0 +1 @@ +from . import test_party_data diff --git a/edi_party_data_oca/tests/test_party_data.py b/edi_party_data_oca/tests/test_party_data.py new file mode 100644 index 0000000000..b48669c042 --- /dev/null +++ b/edi_party_data_oca/tests/test_party_data.py @@ -0,0 +1,146 @@ +# Copyright 2022 Camptocamp SA +# @author: Simone Orsi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.edi_oca.tests.common import EDIBackendCommonComponentTestCase + +from ..utils import get_party_data_component + + +class PartyDataTestCase(EDIBackendCommonComponentTestCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.backend = cls.env.ref("edi_oca.demo_edi_backend") + cls.cat_model = cls.env["res.partner.id_category"] + cls.all_cat = cls.cat_model.browse() + for i in range(1, 4): + rec = cls.cat_model.create({"code": f"cat{i}", "name": f"Cat {i}"}) + cls.all_cat += rec + setattr(cls, f"category{i}", rec) + for i in range(1, 4): + rec = cls.env["res.partner"].create( + { + "name": f"Test Partner {i}", + "id_numbers": [ + ( + 0, + 0, + { + "name": f"{cat.code}-p{i}", + "category_id": cat.id, + }, + ) + for cat in cls.all_cat[i - 1 :] + ], + } + ) + setattr(cls, f"partner{i}", rec) + + # No need for special file name gen + cls.exc_type = cls._create_exchange_type( + name="ID output test", + code="id_out_test", + direction="output", + ) + cls.exc_record = cls.backend.create_record("id_out_test", {}) + + def _get_provider(self, partner): + return get_party_data_component(self.exc_record, partner) + + def _make_expected_data(self, partner, number, allowed_codes=None, **kw): + data = { + "name": partner.name, + "identifiers": [ + {"attrs": {"schemeID": "cat1"}, "value": f"cat1-p{number}"}, + {"attrs": {"schemeID": "cat2"}, "value": f"cat2-p{number}"}, + {"attrs": {"schemeID": "cat3"}, "value": f"cat3-p{number}"}, + ], + "endpoint": {}, + } + data.update(kw) + if allowed_codes: + data["identifiers"] = [ + x + for x in data["identifiers"] + if x["attrs"]["schemeID"] in allowed_codes + ] + return data + + def test_lookup(self): + provider = self._get_provider(self.partner1) + self.assertEqual(provider.partner, self.partner1) + self.assertFalse(provider.allowed_id_categories) + + def test_data(self): + expected = ( + (self.partner1, self._make_expected_data(self.partner1, 1)), + ( + self.partner2, + self._make_expected_data( + self.partner2, 2, allowed_codes=["cat2", "cat3"] + ), + ), + ( + self.partner3, + self._make_expected_data(self.partner3, 3, allowed_codes=["cat3"]), + ), + ) + for partner, expected_data in expected: + provider = self._get_provider(partner) + res = provider.get_party() + self.assertEqual(res, expected_data) + + def test_data_limited_1(self): + self.exc_type.id_category_ids = self.category1 + expected = ( + ( + self.partner1, + self._make_expected_data(self.partner1, 1, allowed_codes=["cat1"]), + ), + (self.partner2, self._make_expected_data(self.partner2, 2, identifiers=[])), + (self.partner3, self._make_expected_data(self.partner3, 3, identifiers=[])), + ) + for partner, expected_data in expected: + provider = self._get_provider(partner) + res = provider.get_party() + self.assertEqual(res, expected_data) + + def test_data_limited_2(self): + self.exc_type.id_category_ids = self.category2 + expected = ( + ( + self.partner1, + self._make_expected_data(self.partner1, 1, allowed_codes=["cat2"]), + ), + ( + self.partner2, + self._make_expected_data(self.partner2, 2, allowed_codes=["cat2"]), + ), + (self.partner3, self._make_expected_data(self.partner3, 3, identifiers=[])), + ) + for partner, expected_data in expected: + provider = self._get_provider(partner) + res = provider.get_party() + self.assertEqual(res, expected_data) + + def test_data_limited_3(self): + self.exc_type.id_category_ids = self.category3 + expected = ( + ( + self.partner1, + self._make_expected_data(self.partner1, 1, allowed_codes=["cat3"]), + ), + ( + self.partner2, + self._make_expected_data(self.partner2, 2, allowed_codes=["cat3"]), + ), + ( + self.partner3, + self._make_expected_data(self.partner3, 3, allowed_codes=["cat3"]), + ), + ) + for partner, expected_data in expected: + provider = self._get_provider(partner) + res = provider.get_party() + self.assertEqual(res, expected_data) diff --git a/edi_party_data_oca/utils.py b/edi_party_data_oca/utils.py new file mode 100644 index 0000000000..8daabef161 --- /dev/null +++ b/edi_party_data_oca/utils.py @@ -0,0 +1,22 @@ +# Copyright 2022 Camptocamp SA +# @author: Simone Orsi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +def get_party_data_component(exc_record, partner, work_ctx=None): + """Shortcut to retrieve party data component.""" + work_ctx = work_ctx or {} + work_ctx.update({"exchange_record": exc_record, "partner": partner}) + backend = exc_record.backend_id + # TODO: match_attrs normally comes w/ `backend._get_component` + # but ATM we cannot use it because the usage will be computed + # by `_get_component_usage_candidates` which does not consider explicit usage. + # We have 2 optins for improvements: + # 1. allow `_get_component` to receive an explicit usage + # 2. inject a new candidate in `_get_component_usage_candidates` + # equal to the key that is passed. + # @simahawk: I'd go for opt 1. + match_attrs = backend._component_match_attrs(exc_record, "data") + return backend._find_component( + backend._name, ["edi.party.data"], work_ctx=work_ctx, **match_attrs + ) diff --git a/edi_party_data_oca/views/edi_exchange_type_views.xml b/edi_party_data_oca/views/edi_exchange_type_views.xml new file mode 100644 index 0000000000..8dc755f8a6 --- /dev/null +++ b/edi_party_data_oca/views/edi_exchange_type_views.xml @@ -0,0 +1,14 @@ + + + + edi.exchange.type + + + + + + + + + + From 2e3e44d7f5ac45cd4e3f1c48ebc6b0fcd9d78bc1 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 2 Dec 2022 10:58:23 +0000 Subject: [PATCH 02/11] [UPD] Update edi_party_data_oca.pot --- .../i18n/edi_party_data_oca.pot | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 edi_party_data_oca/i18n/edi_party_data_oca.pot diff --git a/edi_party_data_oca/i18n/edi_party_data_oca.pot b/edi_party_data_oca/i18n/edi_party_data_oca.pot new file mode 100644 index 0000000000..6c4b945e75 --- /dev/null +++ b/edi_party_data_oca/i18n/edi_party_data_oca.pot @@ -0,0 +1,44 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * edi_party_data_oca +# +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: edi_party_data_oca +#: model:ir.model.fields,help:edi_party_data_oca.field_edi_exchange_type__id_category_ids +msgid "Allowed ID categories to be used to generate parties information." +msgstr "" + +#. module: edi_party_data_oca +#: model:ir.model.fields,field_description:edi_party_data_oca.field_edi_exchange_type__display_name +msgid "Display Name" +msgstr "" + +#. module: edi_party_data_oca +#: model:ir.model,name:edi_party_data_oca.model_edi_exchange_type +msgid "EDI Exchange Type" +msgstr "" + +#. module: edi_party_data_oca +#: model:ir.model.fields,field_description:edi_party_data_oca.field_edi_exchange_type__id +msgid "ID" +msgstr "" + +#. module: edi_party_data_oca +#: model:ir.model.fields,field_description:edi_party_data_oca.field_edi_exchange_type__id_category_ids +msgid "ID categories" +msgstr "" + +#. module: edi_party_data_oca +#: model:ir.model.fields,field_description:edi_party_data_oca.field_edi_exchange_type____last_update +msgid "Last Modified on" +msgstr "" From 844a47efac448b6e0d499acd061c8ddda6369fa2 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 2 Dec 2022 11:07:08 +0000 Subject: [PATCH 03/11] [UPD] README.rst --- edi_party_data_oca/README.rst | 114 ++++- .../static/description/index.html | 451 ++++++++++++++++++ 2 files changed, 564 insertions(+), 1 deletion(-) create mode 100644 edi_party_data_oca/static/description/index.html diff --git a/edi_party_data_oca/README.rst b/edi_party_data_oca/README.rst index 417108db88..b46f85136f 100644 --- a/edi_party_data_oca/README.rst +++ b/edi_party_data_oca/README.rst @@ -1 +1,113 @@ -wait for the bot \ No newline at end of file +============== +EDI Party data +============== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |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%2Fedi-lightgray.png?logo=github + :target: https://github.com/OCA/edi/tree/14.0/edi_party_data_oca + :alt: OCA/edi +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/edi-14-0/edi-14-0-edi_party_data_oca + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/226/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Technical module for the EDI suite module to retrieve data for parties of an exchange. + +This module provides default component +and a mixin to be used for registering new components for specific backends. + +It's based on `partner_identification` +so that the party information will include allowed ID numbers for a given exchange. + +You can configure which ID number categories are allowed on the exchange type. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +On the exchange type form, find the field "ID categories" +and set the categories allowed for that exchange type. + +If not set, *all the IDs* of the partner will be exposed. + +Usage +===== + +An handy util method is to retrive the component:: + + from odoo.addons.edi_party_data_oca.utils import get_party_data_component + + component = get_party_data_component(exchange_record, partner) + + data = component.get_party() + +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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* Simone Orsi + +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-simahawk| image:: https://github.com/simahawk.png?size=40px + :target: https://github.com/simahawk + :alt: simahawk + +Current `maintainer `__: + +|maintainer-simahawk| + +This module is part of the `OCA/edi `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/edi_party_data_oca/static/description/index.html b/edi_party_data_oca/static/description/index.html new file mode 100644 index 0000000000..4d8af74c98 --- /dev/null +++ b/edi_party_data_oca/static/description/index.html @@ -0,0 +1,451 @@ + + + + + + +EDI Party data + + + +
+

EDI Party data

+ + +

Alpha License: AGPL-3 OCA/edi Translate me on Weblate Try me on Runbot

+

Technical module for the EDI suite module to retrieve data for parties of an exchange.

+

This module provides default component +and a mixin to be used for registering new components for specific backends.

+

It’s based on partner_identification +so that the party information will include allowed ID numbers for a given exchange.

+

You can configure which ID number categories are allowed on the exchange type.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

+
+

Table of contents

+ +
+

Configuration

+

On the exchange type form, find the field “ID categories” +and set the categories allowed for that exchange type.

+

If not set, all the IDs of the partner will be exposed.

+
+
+

Usage

+

An handy util method is to retrive the component:

+
+from odoo.addons.edi_party_data_oca.utils import get_party_data_component
+
+component = get_party_data_component(exchange_record, partner)
+
+data = component.get_party()
+
+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Camptocamp
  • +
+
+ +
+

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:

+

simahawk

+

This module is part of the OCA/edi project on GitHub.

+

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

+
+
+
+ + From bb79756534d98c7c33dfd873a03ef72fb2574ca4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 2 Dec 2022 11:07:08 +0000 Subject: [PATCH 04/11] [ADD] icon.png --- edi_party_data_oca/static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 edi_party_data_oca/static/description/icon.png diff --git a/edi_party_data_oca/static/description/icon.png b/edi_party_data_oca/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 From 54f7b8c27d12937eec03dda5d62cc1af660b45cd Mon Sep 17 00:00:00 2001 From: Simone Orsi Date: Mon, 5 Dec 2022 12:10:47 +0100 Subject: [PATCH 05/11] edi_party_data: use display_name by default Use the full name of the partner by default to include parent name. This behavior can be tweaked w/ the work context key 'party_data_name_field'. --- edi_party_data_oca/components/common.py | 3 +- edi_party_data_oca/readme/CONFIGURE.rst | 16 ++++++++ edi_party_data_oca/tests/test_party_data.py | 45 +++++++++++++++++++-- 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/edi_party_data_oca/components/common.py b/edi_party_data_oca/components/common.py index 90ed3be0f5..30a4d2e0c0 100644 --- a/edi_party_data_oca/components/common.py +++ b/edi_party_data_oca/components/common.py @@ -47,7 +47,8 @@ def _party_from_partner(self, **kw): return party def _get_name(self): - return self.partner.name + name_field = getattr(self.work, "party_data_name_field", "display_name") + return self.partner[name_field] def _get_endpoint(self): return {} diff --git a/edi_party_data_oca/readme/CONFIGURE.rst b/edi_party_data_oca/readme/CONFIGURE.rst index 2cdb51f542..6422af15ae 100644 --- a/edi_party_data_oca/readme/CONFIGURE.rst +++ b/edi_party_data_oca/readme/CONFIGURE.rst @@ -1,4 +1,20 @@ +ID numbers selection +~~~~~~~~~~~~~~~~~~~~ + On the exchange type form, find the field "ID categories" and set the categories allowed for that exchange type. If not set, *all the IDs* of the partner will be exposed. + +Name field +~~~~~~~~~~ + +On the exchange type form, modify the advanced settings +so that the work context of the component that is used (eg: generate) +contains `party_data_name_field`. For instance:: + + components: + generate: + usage: my.generate + work_ctx: + party_data_name_field: name diff --git a/edi_party_data_oca/tests/test_party_data.py b/edi_party_data_oca/tests/test_party_data.py index b48669c042..5520c344cd 100644 --- a/edi_party_data_oca/tests/test_party_data.py +++ b/edi_party_data_oca/tests/test_party_data.py @@ -18,10 +18,19 @@ def setUpClass(cls): rec = cls.cat_model.create({"code": f"cat{i}", "name": f"Cat {i}"}) cls.all_cat += rec setattr(cls, f"category{i}", rec) + + parent = cls.env["res.partner"].create( + { + "name": "ACME inc", + "is_company": True, + } + ) + for i in range(1, 4): rec = cls.env["res.partner"].create( { "name": f"Test Partner {i}", + "parent_id": parent.id, "id_numbers": [ ( 0, @@ -45,12 +54,14 @@ def setUpClass(cls): ) cls.exc_record = cls.backend.create_record("id_out_test", {}) - def _get_provider(self, partner): - return get_party_data_component(self.exc_record, partner) + def _get_provider(self, partner, **kw): + return get_party_data_component(self.exc_record, partner, **kw) - def _make_expected_data(self, partner, number, allowed_codes=None, **kw): + def _make_expected_data( + self, partner, number, allowed_codes=None, name_field="display_name", **kw + ): data = { - "name": partner.name, + "name": partner[name_field], "identifiers": [ {"attrs": {"schemeID": "cat1"}, "value": f"cat1-p{number}"}, {"attrs": {"schemeID": "cat2"}, "value": f"cat2-p{number}"}, @@ -91,6 +102,32 @@ def test_data(self): res = provider.get_party() self.assertEqual(res, expected_data) + def test_data_no_fullname(self): + expected = ( + ( + self.partner1, + self._make_expected_data(self.partner1, 1, name_field="name"), + ), + ( + self.partner2, + self._make_expected_data( + self.partner2, 2, allowed_codes=["cat2", "cat3"], name_field="name" + ), + ), + ( + self.partner3, + self._make_expected_data( + self.partner3, 3, allowed_codes=["cat3"], name_field="name" + ), + ), + ) + for partner, expected_data in expected: + provider = self._get_provider( + partner, work_ctx={"party_data_name_field": "name"} + ) + res = provider.get_party() + self.assertEqual(res, expected_data) + def test_data_limited_1(self): self.exc_type.id_category_ids = self.category1 expected = ( From 0c4686c741e915e7c8a56aa69d076bd8e59ce91c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 6 Dec 2022 11:40:53 +0000 Subject: [PATCH 06/11] [UPD] README.rst --- edi_party_data_oca/README.rst | 16 +++++++ .../static/description/index.html | 46 +++++++++++++------ 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/edi_party_data_oca/README.rst b/edi_party_data_oca/README.rst index b46f85136f..0ed6a03a27 100644 --- a/edi_party_data_oca/README.rst +++ b/edi_party_data_oca/README.rst @@ -48,11 +48,27 @@ You can configure which ID number categories are allowed on the exchange type. Configuration ============= +ID numbers selection +~~~~~~~~~~~~~~~~~~~~ + On the exchange type form, find the field "ID categories" and set the categories allowed for that exchange type. If not set, *all the IDs* of the partner will be exposed. +Name field +~~~~~~~~~~ + +On the exchange type form, modify the advanced settings +so that the work context of the component that is used (eg: generate) +contains `party_data_name_field`. For instance:: + + components: + generate: + usage: my.generate + work_ctx: + party_data_name_field: name + Usage ===== diff --git a/edi_party_data_oca/static/description/index.html b/edi_party_data_oca/static/description/index.html index 4d8af74c98..0ff614de81 100644 --- a/edi_party_data_oca/static/description/index.html +++ b/edi_party_data_oca/static/description/index.html @@ -383,25 +383,45 @@

EDI Party data

Table of contents

Configuration

+
+

ID numbers selection

On the exchange type form, find the field “ID categories” and set the categories allowed for that exchange type.

If not set, all the IDs of the partner will be exposed.

+
+

Name field

+

On the exchange type form, modify the advanced settings +so that the work context of the component that is used (eg: generate) +contains party_data_name_field. For instance:

+
+components:
+    generate:
+        usage: my.generate
+        work_ctx:
+            party_data_name_field: name
+
+
+
-

Usage

+

Usage

An handy util method is to retrive the component:

 from odoo.addons.edi_party_data_oca.utils import get_party_data_component
@@ -412,7 +432,7 @@ 

Usage

-

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 smashing it by providing a detailed and welcomed @@ -420,21 +440,21 @@

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Camptocamp
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

OCA, or the Odoo Community Association, is a nonprofit organization whose From 649ab657781f49ba374e6551d2359288668c4541 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 6 Dec 2022 11:40:54 +0000 Subject: [PATCH 07/11] edi_party_data_oca 14.0.1.1.0 --- edi_party_data_oca/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edi_party_data_oca/__manifest__.py b/edi_party_data_oca/__manifest__.py index 292467e0cf..78465e12f8 100644 --- a/edi_party_data_oca/__manifest__.py +++ b/edi_party_data_oca/__manifest__.py @@ -7,7 +7,7 @@ "summary": """ Allow to configure and retrieve party information for EDI exchanges. """, - "version": "14.0.1.0.0", + "version": "14.0.1.1.0", "development_status": "Alpha", "license": "AGPL-3", "website": "https://github.com/OCA/edi", From 7302e40bbe7d0ca0229a88df1201a2e9dbfccb8a Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 12:42:17 +0000 Subject: [PATCH 08/11] [UPD] README.rst --- edi_party_data_oca/README.rst | 15 +++--- .../static/description/index.html | 52 ++++++++++--------- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/edi_party_data_oca/README.rst b/edi_party_data_oca/README.rst index 0ed6a03a27..2106614754 100644 --- a/edi_party_data_oca/README.rst +++ b/edi_party_data_oca/README.rst @@ -2,10 +2,13 @@ EDI Party data ============== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:6c2e2206f095872a298e2a1b29b5dc93ea5ab23deb640363c1fda7e4e207136e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ EDI Party data .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/edi-14-0/edi-14-0-edi_party_data_oca :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/226/14.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/edi&target_branch=14.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| Technical module for the EDI suite module to retrieve data for parties of an exchange. @@ -85,7 +88,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 smashing it by providing a detailed and welcomed +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. diff --git a/edi_party_data_oca/static/description/index.html b/edi_party_data_oca/static/description/index.html index 0ff614de81..33183f94aa 100644 --- a/edi_party_data_oca/static/description/index.html +++ b/edi_party_data_oca/static/description/index.html @@ -1,20 +1,20 @@ - + - + EDI Party data