From 7410fb83db67bda4301aac3c38e7c52002d77197 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 21 Apr 2022 18:55:43 +0200 Subject: [PATCH 1/5] [ADD] delivery_carrier_multi_zip: Multiple ZIP intervals for the same delivery method This module allows to set more than one interval of zip codes for matching each shipping method. TT35326 [UPD] Update delivery_carrier_multi_zip.pot delivery_carrier_multi_zip 13.0.1.0.1 Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: delivery-carrier-13.0/delivery-carrier-13.0-delivery_carrier_multi_zip Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-13-0/delivery-carrier-13-0-delivery_carrier_multi_zip/ --- delivery_carrier_multi_zip/README.rst | 99 ++++ delivery_carrier_multi_zip/__init__.py | 4 + delivery_carrier_multi_zip/__manifest__.py | 14 + delivery_carrier_multi_zip/hooks.py | 18 + .../i18n/delivery_carrier_multi_zip.pot | 84 ++++ delivery_carrier_multi_zip/i18n/es.po | 88 ++++ delivery_carrier_multi_zip/models/__init__.py | 3 + .../models/delivery_carrier.py | 74 +++ .../readme/CONFIGURE.rst | 5 + .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 2 + delivery_carrier_multi_zip/readme/INSTALL.rst | 2 + delivery_carrier_multi_zip/readme/ROADMAP.rst | 4 + .../security/ir.model.access.csv | 6 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 449 ++++++++++++++++++ delivery_carrier_multi_zip/tests/__init__.py | 3 + .../tests/test_delivery_carrier_multi_zip.py | 54 +++ .../views/delivery_carrier_view.xml | 27 ++ 19 files changed, 939 insertions(+) create mode 100644 delivery_carrier_multi_zip/README.rst create mode 100644 delivery_carrier_multi_zip/__init__.py create mode 100644 delivery_carrier_multi_zip/__manifest__.py create mode 100644 delivery_carrier_multi_zip/hooks.py create mode 100644 delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot create mode 100644 delivery_carrier_multi_zip/i18n/es.po create mode 100644 delivery_carrier_multi_zip/models/__init__.py create mode 100644 delivery_carrier_multi_zip/models/delivery_carrier.py create mode 100644 delivery_carrier_multi_zip/readme/CONFIGURE.rst create mode 100644 delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst create mode 100644 delivery_carrier_multi_zip/readme/DESCRIPTION.rst create mode 100644 delivery_carrier_multi_zip/readme/INSTALL.rst create mode 100644 delivery_carrier_multi_zip/readme/ROADMAP.rst create mode 100644 delivery_carrier_multi_zip/security/ir.model.access.csv create mode 100644 delivery_carrier_multi_zip/static/description/icon.png create mode 100644 delivery_carrier_multi_zip/static/description/index.html create mode 100644 delivery_carrier_multi_zip/tests/__init__.py create mode 100644 delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py create mode 100644 delivery_carrier_multi_zip/views/delivery_carrier_view.xml diff --git a/delivery_carrier_multi_zip/README.rst b/delivery_carrier_multi_zip/README.rst new file mode 100644 index 0000000000..7809d8e040 --- /dev/null +++ b/delivery_carrier_multi_zip/README.rst @@ -0,0 +1,99 @@ +=================================================== +Multiple ZIP intervals for the same delivery method +=================================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fdelivery--carrier-lightgray.png?logo=github + :target: https://github.com/OCA/delivery-carrier/tree/13.0/delivery_carrier_multi_zip + :alt: OCA/delivery-carrier +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/delivery-carrier-13-0/delivery-carrier-13-0-delivery_carrier_multi_zip + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/99/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to set more than one interval of zip codes for matching each +shipping method. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +This module generates the initial ZIP interval entry from existing "ZIP from" +and "ZIP to", filling one of the two interval parts with wildcard strings. + +Configuration +============= + +To configure delivery methods with multiple ZIPs: + +#. Go to Inventory > Configuration > Delivery > Shipping Methods +#. Create or edit an existing record. +#. Introduce a line for each interval of zip codes. + +Known issues / Roadmap +====================== + +- There's some code for proxying the standard values to the new intervals, for + covering cases like automatisms or other modules that touch such fields, but + there are still non covered cases like multiple consecutive writings creating + weird ZIP interval tables. + +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 +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa __`: + + * Pedro M. Baeza + +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/delivery-carrier `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/delivery_carrier_multi_zip/__init__.py b/delivery_carrier_multi_zip/__init__.py new file mode 100644 index 0000000000..c0d9f3d12f --- /dev/null +++ b/delivery_carrier_multi_zip/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models +from .hooks import post_init_hook diff --git a/delivery_carrier_multi_zip/__manifest__.py b/delivery_carrier_multi_zip/__manifest__.py new file mode 100644 index 0000000000..111b084cb2 --- /dev/null +++ b/delivery_carrier_multi_zip/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2022 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Multiple ZIP intervals for the same delivery method", + "version": "13.0.1.0.1", + "category": "Delivery", + "website": "https://github.com/OCA/delivery-carrier", + "author": "Tecnativa, Odoo Community Association (OCA)", + "license": "AGPL-3", + "installable": True, + "depends": ["delivery"], + "data": ["security/ir.model.access.csv", "views/delivery_carrier_view.xml"], + "post_init_hook": "post_init_hook", +} diff --git a/delivery_carrier_multi_zip/hooks.py b/delivery_carrier_multi_zip/hooks.py new file mode 100644 index 0000000000..d5f3bac62f --- /dev/null +++ b/delivery_carrier_multi_zip/hooks.py @@ -0,0 +1,18 @@ +# Copyright 2022 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import SUPERUSER_ID, api + + +def post_init_hook(cr, registry): + """Convert current ZIP field values to ZIP entries""" + env = api.Environment(cr, SUPERUSER_ID, dict()) + carriers = ( + env["delivery.carrier"] + .with_context( + show_children_carriers=True # compatibility with delivery_multi_destination + ) + .search(["|", ("zip_from", "!=", False), ("zip_to", "!=", False)]) + ) + for carrier in carriers: + carrier.write({"zip_from": carrier.zip_from, "zip_to": carrier.zip_to}) + env.cr.execute("UPDATE delivery_carrier SET zip_from=NULL, zip_to=NULL") diff --git a/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot b/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot new file mode 100644 index 0000000000..b587a4482c --- /dev/null +++ b/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot @@ -0,0 +1,84 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_carrier_multi_zip +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.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: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__carrier_id +msgid "Carrier" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__create_uid +msgid "Created by" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__create_date +msgid "Created on" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model,name:delivery_carrier_multi_zip.model_delivery_carrier_zip +msgid "Delivery destination availability ZIP interval line" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name +msgid "Display Name" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id +msgid "ID" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update +msgid "Last Modified on" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__write_date +msgid "Last Updated on" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__name +msgid "Name" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model,name:delivery_carrier_multi_zip.model_delivery_carrier +msgid "Shipping Methods" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_ids +msgid "ZIP codes" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__zip_from +msgid "Zip From" +msgstr "" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__zip_to +msgid "Zip To" +msgstr "" diff --git a/delivery_carrier_multi_zip/i18n/es.po b/delivery_carrier_multi_zip/i18n/es.po new file mode 100644 index 0000000000..231be87eaf --- /dev/null +++ b/delivery_carrier_multi_zip/i18n/es.po @@ -0,0 +1,88 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_carrier_multi_zip +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-21 17:27+0000\n" +"PO-Revision-Date: 2022-04-21 19:29+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 2.3\n" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__carrier_id +msgid "Carrier" +msgstr "Transportista" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__create_uid +msgid "Created by" +msgstr "Creado por" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__create_date +msgid "Created on" +msgstr "Creado el" + +#. module: delivery_carrier_multi_zip +#: model:ir.model,name:delivery_carrier_multi_zip.model_delivery_carrier_zip +msgid "Delivery destination availability ZIP interval line" +msgstr "Línea de intervalo de CP de disponibilidad de destino de transportista" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id +msgid "ID" +msgstr "ID" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__write_uid +msgid "Last Updated by" +msgstr "Última modificación por" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__write_date +msgid "Last Updated on" +msgstr "Última actualización el" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__name +msgid "Name" +msgstr "Nombre" + +#. module: delivery_carrier_multi_zip +#: model:ir.model,name:delivery_carrier_multi_zip.model_delivery_carrier +msgid "Shipping Methods" +msgstr "Métodos de envío" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_ids +msgid "ZIP codes" +msgstr "Códigos postales" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__zip_from +msgid "Zip From" +msgstr "Desde CP" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__zip_to +msgid "Zip To" +msgstr "Hasta CP" diff --git a/delivery_carrier_multi_zip/models/__init__.py b/delivery_carrier_multi_zip/models/__init__.py new file mode 100644 index 0000000000..f3bc012b95 --- /dev/null +++ b/delivery_carrier_multi_zip/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import delivery_carrier diff --git a/delivery_carrier_multi_zip/models/delivery_carrier.py b/delivery_carrier_multi_zip/models/delivery_carrier.py new file mode 100644 index 0000000000..7092a3b4fc --- /dev/null +++ b/delivery_carrier_multi_zip/models/delivery_carrier.py @@ -0,0 +1,74 @@ +# Copyright 2022 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class DeliveryCarrier(models.Model): + _inherit = "delivery.carrier" + + zip_ids = fields.One2many( + comodel_name="delivery.carrier.zip", + inverse_name="carrier_id", + string="ZIP codes", + ) + + @api.model + def _convert_zip_to_intervals(self, vals): + if self.env.context.get("bypass_multi_zip"): + return + if vals.get("zip_from") or vals.get("zip_to"): + vals.setdefault("zip_ids", []) + vals["zip_ids"].append( + ( + 0, + 0, + { + "zip_from": vals.get("zip_from", "0") or "0", + "zip_to": vals.get("zip_to", "z") or "z", + }, + ) + ) + vals.pop("zip_from", False) + vals.pop("zip_to", False) + + @api.model_create_multi + def create(self, vals_list): + """Intercept creation for changing ZIP values to ZIP interval.""" + for vals in vals_list: + self._convert_zip_to_intervals(vals) + return super().create(vals_list) + + def write(self, vals): + """Intercept write for changing ZIP values to ZIP interval.""" + self._convert_zip_to_intervals(vals) + return super().write(vals) + + def _match_address(self, partner): + """Match as well by zip intervals if they are present.""" + res = super()._match_address(partner) # it has self.ensure_one() + if res and self.zip_ids: + partner_zip = partner.zip or "" + res = bool( + self.zip_ids.filtered( + lambda r: r.zip_from <= partner_zip and r.zip_to >= partner_zip + ) + ) + return res + + +class DeliveryCarrierZip(models.Model): + _name = "delivery.carrier.zip" + _description = "Delivery destination availability ZIP interval line" + + carrier_id = fields.Many2one( + comodel_name="delivery.carrier", ondelete="cascade", index=True + ) + zip_from = fields.Char("Zip From", required=True) + zip_to = fields.Char("Zip To", required=True) + name = fields.Char(compute="_compute_name") + + @api.depends("zip_from", "zip_to") + def _compute_name(self): + for record in self: + record.name = "%s - %s" % (record.zip_from, record.zip_to) diff --git a/delivery_carrier_multi_zip/readme/CONFIGURE.rst b/delivery_carrier_multi_zip/readme/CONFIGURE.rst new file mode 100644 index 0000000000..ec063c5041 --- /dev/null +++ b/delivery_carrier_multi_zip/readme/CONFIGURE.rst @@ -0,0 +1,5 @@ +To configure delivery methods with multiple ZIPs: + +#. Go to Inventory > Configuration > Delivery > Shipping Methods +#. Create or edit an existing record. +#. Introduce a line for each interval of zip codes. diff --git a/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst b/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..ed5092df14 --- /dev/null +++ b/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Tecnativa __`: + + * Pedro M. Baeza diff --git a/delivery_carrier_multi_zip/readme/DESCRIPTION.rst b/delivery_carrier_multi_zip/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..02741c27aa --- /dev/null +++ b/delivery_carrier_multi_zip/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module allows to set more than one interval of zip codes for matching each +shipping method. diff --git a/delivery_carrier_multi_zip/readme/INSTALL.rst b/delivery_carrier_multi_zip/readme/INSTALL.rst new file mode 100644 index 0000000000..1f0c3bb6f4 --- /dev/null +++ b/delivery_carrier_multi_zip/readme/INSTALL.rst @@ -0,0 +1,2 @@ +This module generates the initial ZIP interval entry from existing "ZIP from" +and "ZIP to", filling one of the two interval parts with wildcard strings. diff --git a/delivery_carrier_multi_zip/readme/ROADMAP.rst b/delivery_carrier_multi_zip/readme/ROADMAP.rst new file mode 100644 index 0000000000..f49912fe09 --- /dev/null +++ b/delivery_carrier_multi_zip/readme/ROADMAP.rst @@ -0,0 +1,4 @@ +- There's some code for proxying the standard values to the new intervals, for + covering cases like automatisms or other modules that touch such fields, but + there are still non covered cases like multiple consecutive writings creating + weird ZIP interval tables. diff --git a/delivery_carrier_multi_zip/security/ir.model.access.csv b/delivery_carrier_multi_zip/security/ir.model.access.csv new file mode 100644 index 0000000000..43689acbfb --- /dev/null +++ b/delivery_carrier_multi_zip/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_delivery_carrier_zip,delivery.carrier.zip,model_delivery_carrier_zip,sales_team.group_sale_salesman,1,0,0,0 +access_delivery_carrier_zip_manager,delivery.carrier.zip,model_delivery_carrier_zip,sales_team.group_sale_manager,1,1,1,1 +access_delivery_carrier_zip_partner_manager,delivery.carrier.zip partner_manager,model_delivery_carrier_zip,base.group_partner_manager,1,0,0,0 +access_delivery_carrier_zip_stock_user,delivery.carrier.zip stock_user,model_delivery_carrier_zip,stock.group_stock_user,1,0,0,0 +access_delivery_carrier_zip_stock_manager,delivery.carrier.zip,model_delivery_carrier_zip,stock.group_stock_manager,1,1,1,1 diff --git a/delivery_carrier_multi_zip/static/description/icon.png b/delivery_carrier_multi_zip/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/delivery_carrier_multi_zip/static/description/index.html b/delivery_carrier_multi_zip/static/description/index.html new file mode 100644 index 0000000000..13eb85dba4 --- /dev/null +++ b/delivery_carrier_multi_zip/static/description/index.html @@ -0,0 +1,449 @@ + + + + + + +Multiple ZIP intervals for the same delivery method + + + +
+

Multiple ZIP intervals for the same delivery method

+ + +

Beta License: AGPL-3 OCA/delivery-carrier Translate me on Weblate Try me on Runbot

+

This module allows to set more than one interval of zip codes for matching each +shipping method.

+

Table of contents

+ +
+

Installation

+

This module generates the initial ZIP interval entry from existing “ZIP from” +and “ZIP to”, filling one of the two interval parts with wildcard strings.

+
+
+

Configuration

+

To configure delivery methods with multiple ZIPs:

+
    +
  1. Go to Inventory > Configuration > Delivery > Shipping Methods
  2. +
  3. Create or edit an existing record.
  4. +
  5. Introduce a line for each interval of zip codes.
  6. +
+
+
+

Known issues / Roadmap

+
    +
  • There’s some code for proxying the standard values to the new intervals, for +covering cases like automatisms or other modules that touch such fields, but +there are still non covered cases like multiple consecutive writings creating +weird ZIP interval tables.
  • +
+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa <https://www.tecnativa.com>__:
      +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

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

+

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

+
+
+
+ + diff --git a/delivery_carrier_multi_zip/tests/__init__.py b/delivery_carrier_multi_zip/tests/__init__.py new file mode 100644 index 0000000000..648626c5d9 --- /dev/null +++ b/delivery_carrier_multi_zip/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_delivery_carrier_multi_zip diff --git a/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py b/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py new file mode 100644 index 0000000000..4eb59dc95a --- /dev/null +++ b/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py @@ -0,0 +1,54 @@ +# Copyright 2022 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests import common + +from odoo.addons.delivery_carrier_multi_zip.hooks import post_init_hook + + +class TestDeliveryCarrierMultiZip(common.SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner_1 = cls.env["res.partner"].create( + {"name": "Test partner 1", "zip": "0001"} + ) + cls.partner_2 = cls.env["res.partner"].create( + {"name": "Test partner 2", "zip": "0002"} + ) + cls.product = cls.env["product.product"].create( + {"name": "Test carrier", "type": "service"} + ) + cls.carrier = cls.env["delivery.carrier"].create( + { + "name": "Test carrier multi ZIP", + "product_id": cls.product.id, + "zip_from": "0001", + "zip_to": "0001", + } + ) + + def test_delivery_multi_zip_write_create(self): + self.assertEqual(len(self.carrier.zip_ids), 1) + self.assertEqual(self.carrier.zip_ids.zip_from, "0001") + self.assertEqual(self.carrier.zip_ids.zip_to, "0001") + self.carrier.write({"zip_to": "0002"}) + self.assertEqual(len(self.carrier.zip_ids), 2) + self.assertEqual(self.carrier.zip_ids[1].zip_from, "0") + self.assertEqual(self.carrier.zip_ids[1].zip_to, "0002") + + def test_post_init_hook(self): + self.carrier.zip_ids.unlink() + self.carrier.with_context(bypass_multi_zip=True).write({"zip_from": "0002"}) + post_init_hook(self.env.cr, None) + self.assertEqual(len(self.carrier.zip_ids), 1) + self.assertEqual(self.carrier.zip_ids.zip_from, "0002") + self.assertEqual(self.carrier.zip_ids.zip_to, "z") + self.carrier.refresh() + self.assertFalse(self.carrier.zip_from) + + def test_available_carriers(self): + self.assertIn(self.carrier, self.carrier.available_carriers(self.partner_1)) + self.assertNotIn(self.carrier, self.carrier.available_carriers(self.partner_2)) + self.carrier.zip_ids = [(0, 0, {"zip_from": "0002", "zip_to": "0020"})] + self.assertIn(self.carrier, self.carrier.available_carriers(self.partner_2)) diff --git a/delivery_carrier_multi_zip/views/delivery_carrier_view.xml b/delivery_carrier_multi_zip/views/delivery_carrier_view.xml new file mode 100644 index 0000000000..de7de8d7fe --- /dev/null +++ b/delivery_carrier_multi_zip/views/delivery_carrier_view.xml @@ -0,0 +1,27 @@ + + + + + delivery.carrier + + + + 1 + + + 1 + + + + + + + + + + + + + + From f20c90959e3beba77cbfc95101fcfb0cc0956f3c Mon Sep 17 00:00:00 2001 From: Philipp Zimmer Date: Sat, 27 Aug 2022 01:29:03 +0200 Subject: [PATCH 2/5] [MIG] delivery_carrier_multi_zip: Migration to 14.0 [UPD] Update delivery_carrier_multi_zip.pot [UPD] README.rst --- delivery_carrier_multi_zip/README.rst | 12 ++- delivery_carrier_multi_zip/__manifest__.py | 2 +- delivery_carrier_multi_zip/i18n/de.po | 91 +++++++++++++++++++ .../i18n/delivery_carrier_multi_zip.pot | 7 +- delivery_carrier_multi_zip/i18n/es.po | 11 ++- .../models/delivery_carrier.py | 10 +- .../readme/CONTRIBUTORS.rst | 2 + .../static/description/index.html | 7 +- .../tests/test_delivery_carrier_multi_zip.py | 22 ++--- .../views/delivery_carrier_view.xml | 6 +- 10 files changed, 136 insertions(+), 34 deletions(-) create mode 100644 delivery_carrier_multi_zip/i18n/de.po diff --git a/delivery_carrier_multi_zip/README.rst b/delivery_carrier_multi_zip/README.rst index 7809d8e040..3be4db6b07 100644 --- a/delivery_carrier_multi_zip/README.rst +++ b/delivery_carrier_multi_zip/README.rst @@ -14,13 +14,13 @@ Multiple ZIP intervals for the same delivery method :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdelivery--carrier-lightgray.png?logo=github - :target: https://github.com/OCA/delivery-carrier/tree/13.0/delivery_carrier_multi_zip + :target: https://github.com/OCA/delivery-carrier/tree/14.0/delivery_carrier_multi_zip :alt: OCA/delivery-carrier .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/delivery-carrier-13-0/delivery-carrier-13-0-delivery_carrier_multi_zip + :target: https://translation.odoo-community.org/projects/delivery-carrier-14-0/delivery-carrier-14-0-delivery_carrier_multi_zip :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/99/13.0 + :target: https://runbot.odoo-community.org/runbot/99/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -62,7 +62,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 -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -81,6 +81,8 @@ Contributors * Pedro M. Baeza +* Philipp Zimmer + Maintainers ~~~~~~~~~~~ @@ -94,6 +96,6 @@ 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/delivery-carrier `_ project on GitHub. +This module is part of the `OCA/delivery-carrier `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/delivery_carrier_multi_zip/__manifest__.py b/delivery_carrier_multi_zip/__manifest__.py index 111b084cb2..c6e02159c3 100644 --- a/delivery_carrier_multi_zip/__manifest__.py +++ b/delivery_carrier_multi_zip/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Multiple ZIP intervals for the same delivery method", - "version": "13.0.1.0.1", + "version": "14.0.1.0.0", "category": "Delivery", "website": "https://github.com/OCA/delivery-carrier", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/delivery_carrier_multi_zip/i18n/de.po b/delivery_carrier_multi_zip/i18n/de.po new file mode 100644 index 0000000000..33a51b5453 --- /dev/null +++ b/delivery_carrier_multi_zip/i18n/de.po @@ -0,0 +1,91 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * delivery_carrier_multi_zip +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-08-26 23:39+0000\n" +"PO-Revision-Date: \n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: de_DE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.2.4\n" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__carrier_id +msgid "Carrier" +msgstr "Spediteur" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__create_uid +msgid "Created by" +msgstr "Angelegt durch" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__create_date +msgid "Created on" +msgstr "Angelegt am" + +#. module: delivery_carrier_multi_zip +#: model:ir.model,name:delivery_carrier_multi_zip.model_delivery_carrier_zip +msgid "Delivery destination availability ZIP interval line" +msgstr "Verfügbarer Postleitzahlenbereich für das Lieferziel" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__display_name +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name +msgid "Display Name" +msgstr "Anzeigebezeichnung" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__id +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id +msgid "ID" +msgstr "ID" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier____last_update +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update +msgid "Last Modified on" +msgstr "Letzte Änderung am" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__write_uid +msgid "Last Updated by" +msgstr "Zuletzt aktualisiert durch" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__write_date +msgid "Last Updated on" +msgstr "Zuletzt aktualisiert am" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__name +msgid "Name" +msgstr "Bezeichnung" + +#. module: delivery_carrier_multi_zip +#: model:ir.model,name:delivery_carrier_multi_zip.model_delivery_carrier +msgid "Shipping Methods" +msgstr "Versandmethoden" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_range_ids +msgid "ZIP codes" +msgstr "Postleitzahlen" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__zip_from +msgid "Zip From" +msgstr "Postleitzahl ab" + +#. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__zip_to +msgid "Zip To" +msgstr "Postleitzahl bis" diff --git a/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot b/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot index b587a4482c..d117ca7a00 100644 --- a/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot +++ b/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -34,16 +34,19 @@ msgid "Delivery destination availability ZIP interval line" msgstr "" #. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__display_name #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name msgid "Display Name" msgstr "" #. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__id #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id msgid "ID" msgstr "" #. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier____last_update #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update msgid "Last Modified on" msgstr "" @@ -69,7 +72,7 @@ msgid "Shipping Methods" msgstr "" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_ids +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_range_ids msgid "ZIP codes" msgstr "" diff --git a/delivery_carrier_multi_zip/i18n/es.po b/delivery_carrier_multi_zip/i18n/es.po index 231be87eaf..eb9f61af53 100644 --- a/delivery_carrier_multi_zip/i18n/es.po +++ b/delivery_carrier_multi_zip/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-21 17:27+0000\n" -"PO-Revision-Date: 2022-04-21 19:29+0200\n" +"POT-Creation-Date: 2022-08-26 23:39+0000\n" +"PO-Revision-Date: 2022-08-27 01:40+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: es\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: \n" -"X-Generator: Poedit 2.3\n" +"X-Generator: Poedit 2.2.4\n" #. module: delivery_carrier_multi_zip #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__carrier_id @@ -38,16 +38,19 @@ msgid "Delivery destination availability ZIP interval line" msgstr "Línea de intervalo de CP de disponibilidad de destino de transportista" #. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__display_name #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name msgid "Display Name" msgstr "Nombre mostrado" #. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__id #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id msgid "ID" msgstr "ID" #. module: delivery_carrier_multi_zip +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier____last_update #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update msgid "Last Modified on" msgstr "Última modificación el" @@ -73,7 +76,7 @@ msgid "Shipping Methods" msgstr "Métodos de envío" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_ids +#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__zip_range_ids msgid "ZIP codes" msgstr "Códigos postales" diff --git a/delivery_carrier_multi_zip/models/delivery_carrier.py b/delivery_carrier_multi_zip/models/delivery_carrier.py index 7092a3b4fc..9ee2ede9aa 100644 --- a/delivery_carrier_multi_zip/models/delivery_carrier.py +++ b/delivery_carrier_multi_zip/models/delivery_carrier.py @@ -7,7 +7,7 @@ class DeliveryCarrier(models.Model): _inherit = "delivery.carrier" - zip_ids = fields.One2many( + zip_range_ids = fields.One2many( comodel_name="delivery.carrier.zip", inverse_name="carrier_id", string="ZIP codes", @@ -18,8 +18,8 @@ def _convert_zip_to_intervals(self, vals): if self.env.context.get("bypass_multi_zip"): return if vals.get("zip_from") or vals.get("zip_to"): - vals.setdefault("zip_ids", []) - vals["zip_ids"].append( + vals.setdefault("zip_range_ids", []) + vals["zip_range_ids"].append( ( 0, 0, @@ -47,10 +47,10 @@ def write(self, vals): def _match_address(self, partner): """Match as well by zip intervals if they are present.""" res = super()._match_address(partner) # it has self.ensure_one() - if res and self.zip_ids: + if res and self.zip_range_ids: partner_zip = partner.zip or "" res = bool( - self.zip_ids.filtered( + self.zip_range_ids.filtered( lambda r: r.zip_from <= partner_zip and r.zip_to >= partner_zip ) ) diff --git a/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst b/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst index ed5092df14..5f0e8f98d8 100644 --- a/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst +++ b/delivery_carrier_multi_zip/readme/CONTRIBUTORS.rst @@ -1,3 +1,5 @@ * `Tecnativa __`: * Pedro M. Baeza + +* Philipp Zimmer diff --git a/delivery_carrier_multi_zip/static/description/index.html b/delivery_carrier_multi_zip/static/description/index.html index 13eb85dba4..9e1144498a 100644 --- a/delivery_carrier_multi_zip/static/description/index.html +++ b/delivery_carrier_multi_zip/static/description/index.html @@ -367,7 +367,7 @@

Multiple ZIP intervals for the same delivery method

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/delivery-carrier Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/delivery-carrier Translate me on Weblate Try me on Runbot

This module allows to set more than one interval of zip codes for matching each shipping method.

Table of contents

@@ -413,7 +413,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 -feedback.

+feedback.

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

@@ -431,6 +431,7 @@

Contributors

  • Pedro M. Baeza
  • +
  • Philipp Zimmer
  • @@ -440,7 +441,7 @@

    Maintainers

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

    +

    This module is part of the OCA/delivery-carrier project on GitHub.

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

    diff --git a/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py b/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py index 4eb59dc95a..140bf6b5ae 100644 --- a/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py +++ b/delivery_carrier_multi_zip/tests/test_delivery_carrier_multi_zip.py @@ -29,26 +29,26 @@ def setUpClass(cls): ) def test_delivery_multi_zip_write_create(self): - self.assertEqual(len(self.carrier.zip_ids), 1) - self.assertEqual(self.carrier.zip_ids.zip_from, "0001") - self.assertEqual(self.carrier.zip_ids.zip_to, "0001") + self.assertEqual(len(self.carrier.zip_range_ids), 1) + self.assertEqual(self.carrier.zip_range_ids.zip_from, "0001") + self.assertEqual(self.carrier.zip_range_ids.zip_to, "0001") self.carrier.write({"zip_to": "0002"}) - self.assertEqual(len(self.carrier.zip_ids), 2) - self.assertEqual(self.carrier.zip_ids[1].zip_from, "0") - self.assertEqual(self.carrier.zip_ids[1].zip_to, "0002") + self.assertEqual(len(self.carrier.zip_range_ids), 2) + self.assertEqual(self.carrier.zip_range_ids[1].zip_from, "0") + self.assertEqual(self.carrier.zip_range_ids[1].zip_to, "0002") def test_post_init_hook(self): - self.carrier.zip_ids.unlink() + self.carrier.zip_range_ids.unlink() self.carrier.with_context(bypass_multi_zip=True).write({"zip_from": "0002"}) post_init_hook(self.env.cr, None) - self.assertEqual(len(self.carrier.zip_ids), 1) - self.assertEqual(self.carrier.zip_ids.zip_from, "0002") - self.assertEqual(self.carrier.zip_ids.zip_to, "z") + self.assertEqual(len(self.carrier.zip_range_ids), 1) + self.assertEqual(self.carrier.zip_range_ids.zip_from, "0002") + self.assertEqual(self.carrier.zip_range_ids.zip_to, "z") self.carrier.refresh() self.assertFalse(self.carrier.zip_from) def test_available_carriers(self): self.assertIn(self.carrier, self.carrier.available_carriers(self.partner_1)) self.assertNotIn(self.carrier, self.carrier.available_carriers(self.partner_2)) - self.carrier.zip_ids = [(0, 0, {"zip_from": "0002", "zip_to": "0020"})] + self.carrier.zip_range_ids = [(0, 0, {"zip_from": "0002", "zip_to": "0020"})] self.assertIn(self.carrier, self.carrier.available_carriers(self.partner_2)) diff --git a/delivery_carrier_multi_zip/views/delivery_carrier_view.xml b/delivery_carrier_multi_zip/views/delivery_carrier_view.xml index de7de8d7fe..654e72b5a6 100644 --- a/delivery_carrier_multi_zip/views/delivery_carrier_view.xml +++ b/delivery_carrier_multi_zip/views/delivery_carrier_view.xml @@ -13,9 +13,9 @@ 1 - - - + + + From d48e308d26ad4f774d528b8a4a2cce6461450455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Mon, 14 Nov 2022 12:58:37 +0100 Subject: [PATCH 3/5] [MIG] delivery_carrier_multi_zip: Migration to 15.0 TT40224 [UPD] Update delivery_carrier_multi_zip.pot [UPD] README.rst Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: delivery-carrier-15.0/delivery-carrier-15.0-delivery_carrier_multi_zip Translate-URL: https://translation.odoo-community.org/projects/delivery-carrier-15-0/delivery-carrier-15-0-delivery_carrier_multi_zip/ [UPD] README.rst --- delivery_carrier_multi_zip/README.rst | 23 +++++---- delivery_carrier_multi_zip/__manifest__.py | 2 +- delivery_carrier_multi_zip/i18n/de.po | 3 -- .../i18n/delivery_carrier_multi_zip.pot | 5 +- delivery_carrier_multi_zip/i18n/es.po | 3 -- .../models/delivery_carrier.py | 4 +- .../static/description/index.html | 50 ++++++++++--------- .../tests/test_delivery_carrier_multi_zip.py | 2 +- 8 files changed, 44 insertions(+), 48 deletions(-) diff --git a/delivery_carrier_multi_zip/README.rst b/delivery_carrier_multi_zip/README.rst index 3be4db6b07..66bd2dd565 100644 --- a/delivery_carrier_multi_zip/README.rst +++ b/delivery_carrier_multi_zip/README.rst @@ -2,10 +2,13 @@ Multiple ZIP intervals for the same delivery method =================================================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:0435aacd8389b6a61ca2df68e61ae3bb8d8b89c1dba4b3bbb322b2650f7e2999 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -14,16 +17,16 @@ Multiple ZIP intervals for the same delivery method :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fdelivery--carrier-lightgray.png?logo=github - :target: https://github.com/OCA/delivery-carrier/tree/14.0/delivery_carrier_multi_zip + :target: https://github.com/OCA/delivery-carrier/tree/15.0/delivery_carrier_multi_zip :alt: OCA/delivery-carrier .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/delivery-carrier-14-0/delivery-carrier-14-0-delivery_carrier_multi_zip + :target: https://translation.odoo-community.org/projects/delivery-carrier-15-0/delivery-carrier-15-0-delivery_carrier_multi_zip :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/99/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/delivery-carrier&target_branch=15.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module allows to set more than one interval of zip codes for matching each shipping method. @@ -61,8 +64,8 @@ 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 `_. +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. @@ -96,6 +99,6 @@ 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/delivery-carrier `_ project on GitHub. +This module is part of the `OCA/delivery-carrier `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/delivery_carrier_multi_zip/__manifest__.py b/delivery_carrier_multi_zip/__manifest__.py index c6e02159c3..73f7cf5fbb 100644 --- a/delivery_carrier_multi_zip/__manifest__.py +++ b/delivery_carrier_multi_zip/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { "name": "Multiple ZIP intervals for the same delivery method", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "category": "Delivery", "website": "https://github.com/OCA/delivery-carrier", "author": "Tecnativa, Odoo Community Association (OCA)", diff --git a/delivery_carrier_multi_zip/i18n/de.po b/delivery_carrier_multi_zip/i18n/de.po index 33a51b5453..38cd32f4e9 100644 --- a/delivery_carrier_multi_zip/i18n/de.po +++ b/delivery_carrier_multi_zip/i18n/de.po @@ -38,19 +38,16 @@ msgid "Delivery destination availability ZIP interval line" msgstr "Verfügbarer Postleitzahlenbereich für das Lieferziel" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__display_name #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name msgid "Display Name" msgstr "Anzeigebezeichnung" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__id #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id msgid "ID" msgstr "ID" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier____last_update #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update msgid "Last Modified on" msgstr "Letzte Änderung am" diff --git a/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot b/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot index d117ca7a00..b8d7fef9b9 100644 --- a/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot +++ b/delivery_carrier_multi_zip/i18n/delivery_carrier_multi_zip.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -34,19 +34,16 @@ msgid "Delivery destination availability ZIP interval line" msgstr "" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__display_name #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name msgid "Display Name" msgstr "" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__id #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id msgid "ID" msgstr "" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier____last_update #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update msgid "Last Modified on" msgstr "" diff --git a/delivery_carrier_multi_zip/i18n/es.po b/delivery_carrier_multi_zip/i18n/es.po index eb9f61af53..271b5e0407 100644 --- a/delivery_carrier_multi_zip/i18n/es.po +++ b/delivery_carrier_multi_zip/i18n/es.po @@ -38,19 +38,16 @@ msgid "Delivery destination availability ZIP interval line" msgstr "Línea de intervalo de CP de disponibilidad de destino de transportista" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__display_name #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__display_name msgid "Display Name" msgstr "Nombre mostrado" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier__id #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip__id msgid "ID" msgstr "ID" #. module: delivery_carrier_multi_zip -#: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier____last_update #: model:ir.model.fields,field_description:delivery_carrier_multi_zip.field_delivery_carrier_zip____last_update msgid "Last Modified on" msgstr "Última modificación el" diff --git a/delivery_carrier_multi_zip/models/delivery_carrier.py b/delivery_carrier_multi_zip/models/delivery_carrier.py index 9ee2ede9aa..1c2ef412d3 100644 --- a/delivery_carrier_multi_zip/models/delivery_carrier.py +++ b/delivery_carrier_multi_zip/models/delivery_carrier.py @@ -64,8 +64,8 @@ class DeliveryCarrierZip(models.Model): carrier_id = fields.Many2one( comodel_name="delivery.carrier", ondelete="cascade", index=True ) - zip_from = fields.Char("Zip From", required=True) - zip_to = fields.Char("Zip To", required=True) + zip_from = fields.Char(required=True) + zip_to = fields.Char(required=True) name = fields.Char(compute="_compute_name") @api.depends("zip_from", "zip_to") diff --git a/delivery_carrier_multi_zip/static/description/index.html b/delivery_carrier_multi_zip/static/description/index.html index 9e1144498a..1a095d02cf 100644 --- a/delivery_carrier_multi_zip/static/description/index.html +++ b/delivery_carrier_multi_zip/static/description/index.html @@ -1,20 +1,20 @@ - + - + Multiple ZIP intervals for the same delivery method