Skip to content

Commit 2f9ac09

Browse files
committed
[MIG] l10n_es_delivery_dhl_parcel: Migration to 19.0
1 parent 1de0520 commit 2f9ac09

7 files changed

Lines changed: 74 additions & 52 deletions

File tree

delivery_dhl_parcel/README.rst

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ Delivery DHL Parcel
2121
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
2222
:alt: License: AGPL-3
2323
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github
24-
:target: https://github.com/OCA/l10n-spain/tree/18.0/delivery_dhl_parcel
24+
:target: https://github.com/OCA/l10n-spain/tree/19.0/delivery_dhl_parcel
2525
:alt: OCA/l10n-spain
2626
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
27-
:target: https://translation.odoo-community.org/projects/l10n-spain-18-0/l10n-spain-18-0-delivery_dhl_parcel
27+
:target: https://translation.odoo-community.org/projects/l10n-spain-19-0/l10n-spain-19-0-delivery_dhl_parcel
2828
:alt: Translate me on Weblate
2929
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
30-
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&target_branch=18.0
30+
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&target_branch=19.0
3131
:alt: Try me on Runboat
3232

3333
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -149,18 +149,19 @@ Contrareembolso
149149
Known issues / Roadmap
150150
======================
151151

152-
- La API no facilita métodos para cotizar el coste real de los envíos,
153-
por lo que siempre se cotizan a 0. Si la cotización de envíos es
154-
necesaria, puede instalarse el módulo OCA delivery_price_method o bien
155-
personalizar el método de cotización para este tipo de transportista.
152+
- La API no facilita métodos para cotizar el coste real de los envíos,
153+
por lo que siempre se cotizan a 0. Si la cotización de envíos es
154+
necesaria, puede instalarse el módulo OCA delivery_price_method o
155+
bien personalizar el método de cotización para este tipo de
156+
transportista.
156157

157158
Bug Tracker
158159
===========
159160

160161
Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-spain/issues>`_.
161162
In case of trouble, please check there if your issue has already been reported.
162163
If you spotted it first, help us to smash it by providing a detailed and welcomed
163-
`feedback <https://github.com/OCA/l10n-spain/issues/new?body=module:%20delivery_dhl_parcel%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
164+
`feedback <https://github.com/OCA/l10n-spain/issues/new?body=module:%20delivery_dhl_parcel%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
164165

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

@@ -175,13 +176,13 @@ Authors
175176
Contributors
176177
------------
177178

178-
- `Studio73 <https://www.studio73.es>`__:
179+
- `Studio73 <https://www.studio73.es>`__:
179180

180-
- Ethan Hildick
181+
- Ethan Hildick
181182

182-
- `Tecnativa <https://www.tecnativa.com>`__:
183+
- `Tecnativa <https://www.tecnativa.com>`__:
183184

184-
- Víctor Martínez
185+
- Víctor Martínez
185186

186187
Maintainers
187188
-----------
@@ -204,6 +205,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
204205

205206
|maintainer-hildickethan|
206207

207-
This module is part of the `OCA/l10n-spain <https://github.com/OCA/l10n-spain/tree/18.0/delivery_dhl_parcel>`_ project on GitHub.
208+
This module is part of the `OCA/l10n-spain <https://github.com/OCA/l10n-spain/tree/19.0/delivery_dhl_parcel>`_ project on GitHub.
208209

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

delivery_dhl_parcel/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{
44
"name": "Delivery DHL Parcel",
55
"summary": "Delivery Carrier implementation for DHL Parcel using their API",
6-
"version": "18.0.1.0.0",
6+
"version": "19.0.1.0.0",
77
"category": "Stock",
88
"website": "https://github.com/OCA/l10n-spain",
99
"author": "Studio73, Odoo Community Association (OCA)",

delivery_dhl_parcel/models/delivery_carrier.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
44
import base64
55

6-
from odoo import _, fields, models
6+
from odoo import fields, models
77
from odoo.tools import float_compare
88

99
from .dhl_parcel_request import (
@@ -69,7 +69,7 @@ def dhl_parcel_get_tracking_link(self, picking):
6969

7070
def _prepare_dhl_parcel_address_info(self, partner):
7171
phone = partner.phone and partner.phone.replace(" ", "") or ""
72-
mobile = partner.mobile and partner.mobile.replace(" ", "") or ""
72+
7373
address = partner.street or ""
7474
if partner.street2:
7575
address += " " + partner.street2
@@ -91,7 +91,7 @@ def _prepare_dhl_parcel_address_info(self, partner):
9191
"City": partner.city or "",
9292
"PostalCode": partner.zip or "",
9393
"Country": partner.country_id.code or "",
94-
"Phone": phone or mobile,
94+
"Phone": phone,
9595
"Email": partner.email or "",
9696
}
9797

@@ -182,15 +182,14 @@ def dhl_parcel_send_shipping(self, pickings):
182182
continue
183183
vals["tracking_number"] = response.get("Tracking", "")
184184
# We post an extra message in the chatter with the rest of the response
185-
body = _(
185+
body = self.env._(
186186
"DHL Parcel Shipping extra info:\n"
187-
"Origin: %(origin)s, Customer: %(customer)s, AWB: %(awb)s, LP: %(lp)s"
188-
) % {
189-
"origin": response.get("Origin", "N/A"),
190-
"customer": response.get("Customer", "N/A"),
191-
"awb": response.get("AWB", "N/A"),
192-
"lp": response.get("LP", "N/A"),
193-
}
187+
"Origin: %(origin)s, Customer: %(customer)s, AWB: %(awb)s, LP: %(lp)s",
188+
origin=response.get("Origin", "N/A"),
189+
customer=response.get("Customer", "N/A"),
190+
awb=response.get("AWB", "N/A"),
191+
lp=response.get("LP", "N/A"),
192+
)
194193
attachment = []
195194
if response.get("Label"):
196195
label_format = picking.carrier_id.dhl_parcel_label_format.lower()
@@ -243,15 +242,18 @@ def dhl_parcel_cancel_shipment(self, pickings):
243242
for picking in pickings.filtered("carrier_tracking_ref"):
244243
response = dhl_parcel_request.cancel_shipment(picking.carrier_tracking_ref)
245244
if not response.status_code == 200:
246-
msg = _(
247-
"DHL Parcel Cancellation failed with reason: %s"
248-
) % response.get("Message", "Connection Error")
245+
msg = self.env._(
246+
"DHL Parcel Cancellation failed with reason: %(reason)s",
247+
reason=response.get("Message", "Connection Error"),
248+
)
249249
picking.message_post(body=msg)
250250
continue
251251
picking.carrier_tracking_ref = False
252252
picking.message_post(
253-
body=_("DHL Parcel Expedition with reference %s cancelled")
254-
% picking.carrier_tracking_ref
253+
body=self.env._(
254+
"DHL Parcel Expedition with reference %(reference)s cancelled",
255+
reference=picking.carrier_tracking_ref,
256+
)
255257
)
256258

257259
def dhl_parcel_get_label(self, carrier_tracking_ref):
@@ -293,12 +295,12 @@ def dhl_parcel_rate_shipment(self, order):
293295
return {
294296
"success": True,
295297
"price": self.product_id.lst_price,
296-
"error_message": _(
298+
"error_message": self.env._(
297299
"""DHL Parcel API doesn't provide methods to compute delivery rates, so
298300
you should rely on another price method instead or override this
299301
one in your custom code."""
300302
),
301-
"warning_message": _(
303+
"warning_message": self.env._(
302304
"""DHL Parcel API doesn't provide methods to compute delivery rates, so
303305
you should rely on another price method instead or override this
304306
one in your custom code."""
@@ -313,7 +315,7 @@ def action_open_end_day(self):
313315
)
314316
view_id = self.env.ref("delivery_dhl_parcel.delivery_endday_wizard_form").id
315317
return {
316-
"name": _("DHL Parcel End Day"),
318+
"name": self.env._("DHL Parcel End Day"),
317319
"type": "ir.actions.act_window",
318320
"view_mode": "form",
319321
"res_model": "dhl.parcel.endday.wizard",

delivery_dhl_parcel/models/dhl_parcel_request.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import requests
55

6-
from odoo import _, fields
6+
from odoo import fields
77
from odoo.exceptions import UserError
88

99
DHL_PARCEL_DELIVERY_STATES_STATIC = {
@@ -27,6 +27,7 @@ class DhlParcelRequest:
2727

2828
def __init__(self, carrier):
2929
self.carrier_id = carrier
30+
self.env = carrier.env
3031
self.token = self._get_new_auth_token(
3132
username=carrier.dhl_parcel_uid or "",
3233
password=carrier.dhl_parcel_password or "",
@@ -47,7 +48,9 @@ def _send_api_request(self, request_type, url, data=None, skip_auth=False):
4748
res = requests.post(url=url, json=data, headers=auth, timeout=60)
4849
else:
4950
raise UserError(
50-
_("Unsupported request type, please only use 'GET' or 'POST'")
51+
self.env._(
52+
"Unsupported request type, please only use 'GET' or 'POST'"
53+
)
5154
)
5255
res.raise_for_status()
5356
dhl_parcel_last_request = (
@@ -56,14 +59,19 @@ def _send_api_request(self, request_type, url, data=None, skip_auth=False):
5659
self.carrier_id.log_xml(dhl_parcel_last_request, "dhl_parcel_last_request")
5760
self.carrier_id.log_xml(res.text or "", "dhl_parcel_last_response")
5861
except requests.exceptions.Timeout:
59-
raise UserError(_("Timeout: the server did not reply within 60s")) from None
62+
raise UserError(
63+
self.env._("Timeout: the server did not reply within 60s")
64+
) from None
6065
except (ValueError, requests.exceptions.ConnectionError):
61-
raise UserError(_("Server not reachable, please try again later")) from None
66+
raise UserError(
67+
self.env._("Server not reachable, please try again later")
68+
) from None
6269
except requests.exceptions.HTTPError as e:
63-
error_message = _("%(error)s\n%(message)s") % {
64-
"error": str(e),
65-
"message": res.json().get("Message", "") if res.text else "",
66-
}
70+
error_message = self.env._(
71+
"%(error)s\n%(message)s",
72+
error=str(e),
73+
message=res.json().get("Message", "") if res and res.text else "",
74+
)
6775
raise UserError(error_message) from None
6876
return res
6977

delivery_dhl_parcel/models/stock_picking.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
33
import base64
44

5-
from odoo import _, fields, models
5+
from odoo import fields, models
66

77

88
class StockPicking(models.Model):
@@ -23,7 +23,9 @@ def dhl_parcel_get_label(self):
2323
"pdf" if label_format == "pdf" else "txt",
2424
)
2525
self.message_post(
26-
body=(_("DHL Parcel label for %s") % tracking_ref),
26+
body=self.env._(
27+
"DHL Parcel label for %(reference)s", reference=tracking_ref
28+
),
2729
attachments=[(label_name, label)],
2830
)
2931
# We return label in case it wants to be printed in an inheritance
@@ -41,10 +43,14 @@ def dhl_parcel_toggle_hold_shipment(self):
4143
self.dhl_parcel_shipment_held = not carrier.dhl_parcel_release_shipment(
4244
tracking_ref
4345
)
44-
message = _("Released shipment for {}").format(tracking_ref)
46+
message = self.env._(
47+
"Released shipment for %(reference)s", reference=tracking_ref
48+
)
4549
else:
4650
self.dhl_parcel_shipment_held = carrier.dhl_parcel_hold_shipment(
4751
tracking_ref
4852
)
49-
message = _("Held shipment for {}").format(tracking_ref)
53+
message = self.env._(
54+
"Held shipment for %(reference)s", reference=tracking_ref
55+
)
5056
self.message_post(body=message)

delivery_dhl_parcel/static/description/index.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ <h1>Delivery DHL Parcel</h1>
374374
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
375375
!! source digest: sha256:df729672478265589dddafc3ad63dbfb5cd9673dd865a9dcbad9c8102ccfc558
376376
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
377-
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-spain/tree/18.0/delivery_dhl_parcel"><img alt="OCA/l10n-spain" src="https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-spain-18-0/l10n-spain-18-0-delivery_dhl_parcel"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
377+
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-spain/tree/19.0/delivery_dhl_parcel"><img alt="OCA/l10n-spain" src="https://img.shields.io/badge/github-OCA%2Fl10n--spain-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-spain-19-0/l10n-spain-19-0-delivery_dhl_parcel"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-spain&amp;target_branch=19.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
378378
<p>Este módulo integra la API de DHL Parcel con Odoo. No es válido para
379379
otras integraciones de DHL como el Express, que usan otras APIs.</p>
380380
<p>IMPORTANTE: Hay varias APIs distintas para DHL España y DHL Parcel, esta
@@ -527,16 +527,17 @@ <h2><a class="toc-backref" href="#toc-entry-11">Known issues / Roadmap</a></h2>
527527
<ul class="simple">
528528
<li>La API no facilita métodos para cotizar el coste real de los envíos,
529529
por lo que siempre se cotizan a 0. Si la cotización de envíos es
530-
necesaria, puede instalarse el módulo OCA delivery_price_method o bien
531-
personalizar el método de cotización para este tipo de transportista.</li>
530+
necesaria, puede instalarse el módulo OCA delivery_price_method o
531+
bien personalizar el método de cotización para este tipo de
532+
transportista.</li>
532533
</ul>
533534
</div>
534535
<div class="section" id="bug-tracker">
535536
<h2><a class="toc-backref" href="#toc-entry-12">Bug Tracker</a></h2>
536537
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/l10n-spain/issues">GitHub Issues</a>.
537538
In case of trouble, please check there if your issue has already been reported.
538539
If you spotted it first, help us to smash it by providing a detailed and welcomed
539-
<a class="reference external" href="https://github.com/OCA/l10n-spain/issues/new?body=module:%20delivery_dhl_parcel%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
540+
<a class="reference external" href="https://github.com/OCA/l10n-spain/issues/new?body=module:%20delivery_dhl_parcel%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
540541
<p>Do not contact contributors directly about support or help with technical issues.</p>
541542
</div>
542543
<div class="section" id="credits">
@@ -571,7 +572,7 @@ <h3><a class="toc-backref" href="#toc-entry-16">Maintainers</a></h3>
571572
promote its widespread use.</p>
572573
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
573574
<p><a class="reference external image-reference" href="https://github.com/hildickethan"><img alt="hildickethan" src="https://github.com/hildickethan.png?size=40px" /></a></p>
574-
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-spain/tree/18.0/delivery_dhl_parcel">OCA/l10n-spain</a> project on GitHub.</p>
575+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-spain/tree/19.0/delivery_dhl_parcel">OCA/l10n-spain</a> project on GitHub.</p>
575576
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
576577
</div>
577578
</div>

delivery_dhl_parcel/tests/test_delivery_dhl_parcel.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
from unittest import mock
55
from unittest.mock import MagicMock, Mock
66

7-
from odoo.tests import Form, common
7+
from odoo.tests import Form
88

9+
from odoo.addons.base.tests.common import BaseCommon
910
from odoo.addons.delivery_dhl_parcel.models.dhl_parcel_request import DhlParcelRequest
1011

1112
request_model = (
@@ -15,7 +16,7 @@
1516
# There is also no public test user so we mock all API requests
1617

1718

18-
class TestDeliveryDhlParcel(common.SingleTransactionCase):
19+
class TestDeliveryDhlParcel(BaseCommon):
1920
@classmethod
2021
def setUpClass(cls):
2122
super().setUpClass()
@@ -258,6 +259,7 @@ def test_release_shipment_success(self, mock_requests):
258259
],
259260
)
260261
def test_02_dhl_parcel_picking_update(self, redirect_mock, *args):
262+
self.picking.carrier_tracking_ref = "0870002260"
261263
self.picking.tracking_state_update()
262264
self.assertEqual(
263265
self.picking.tracking_state_history,
@@ -285,6 +287,7 @@ def test_02_dhl_parcel_picking_update(self, redirect_mock, *args):
285287
@mock.patch(f"{request_model}.hold_shipment", return_value=True)
286288
@mock.patch(f"{request_model}.release_shipment", return_value=True)
287289
def test_03_dhl_parcel_picking_toggle_hold(self, redirect_mock, *args):
290+
self.picking.carrier_tracking_ref = "0870002260"
288291
self.assertFalse(self.picking.dhl_parcel_shipment_held)
289292
self.picking.dhl_parcel_toggle_hold_shipment() # hold
290293
self.assertTrue(self.picking.dhl_parcel_shipment_held)
@@ -322,6 +325,7 @@ def test_05_dhl_parcel_get_tracking_link(self):
322325
f"{request_model}.print_shipment", return_value="JVBERiasdasdsdcfnsdhfbasdf=="
323326
)
324327
def test_06_dhl_parcel_get_label(self, redirect_mock, *args):
328+
self.picking.carrier_tracking_ref = "0870002260"
325329
label = self.picking.dhl_parcel_get_label()
326330
self.assertTrue(label)
327331

0 commit comments

Comments
 (0)