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
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
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
+
+
+

+
This module allows to set more than one interval of zip codes for matching each
+shipping method.
+
Table of contents
+
+
+
+
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.
+
+
+
+
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.
+
+
+
+
+
+- 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.
+
+
+
+
+
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.
+
+
+
+
+
+
+
+- Tecnativa <https://www.tecnativa.com>__:
+
+
+
+
+
+
This module is maintained by the OCA.
+

+
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. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This module allows to set more than one interval of zip codes for matching each
shipping method.
Table of contents
@@ -413,7 +413,7 @@
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 @@
Pedro M. Baeza
+
Philipp Zimmer
@@ -440,7 +441,7 @@
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