Skip to content

Commit b156eb5

Browse files
committed
[MIG] delivery_postlogistics: Migration to 18.0
1 parent 5293e95 commit b156eb5

16 files changed

+57
-47
lines changed

delivery_postlogistics/__manifest__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
{
44
"name": "PostLogistics Shipping - “Barcode” web service",
55
"summary": "Print PostLogistics shipping labels using the Barcode web service",
6-
"version": "16.0.1.1.0",
6+
"version": "18.0.1.0.0",
77
"author": "Camptocamp,Odoo Community Association (OCA)",
88
"maintainer": "Camptocamp",
99
"license": "AGPL-3",
1010
"category": "Delivery",
1111
"complexity": "normal",
12-
"depends": ["delivery", "mail", "base", "stock"],
12+
"depends": ["delivery", "mail", "base", "stock", "stock_delivery"],
1313
"website": "https://github.com/OCA/delivery-carrier",
1414
"data": [
1515
"security/ir.model.access.csv",

delivery_postlogistics/models/delivery_carrier.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def onchange_prod_environment(self):
114114
def postlogistics_get_tracking_link(self, picking):
115115
return (
116116
"https://service.post.ch/EasyTrack/"
117-
"submitParcelData.do?formattedParcelCodes=%s" % picking.carrier_tracking_ref
117+
f"submitParcelData.do?formattedParcelCodes={picking.carrier_tracking_ref}"
118118
)
119119

120120
def postlogistics_cancel_shipment(self, pickings):
@@ -158,7 +158,7 @@ def verify_credentials(self):
158158
return message
159159

160160
def _compute_can_generate_return(self):
161-
res = super(DeliveryCarrier, self)._compute_can_generate_return()
161+
res = super()._compute_can_generate_return()
162162
for carrier in self:
163163
if carrier.delivery_type == "postlogistics":
164164
carrier.can_generate_return = True

delivery_postlogistics/models/stock_move.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class StockMove(models.Model):
88
_inherit = "stock.move"
99

1010
def _get_new_picking_values(self):
11-
vals = super(StockMove, self)._get_new_picking_values()
11+
vals = super()._get_new_picking_values()
1212

1313
order_commitment_date = (
1414
self.sale_line_id and self.sale_line_id.order_id.commitment_date

delivery_postlogistics/models/stock_package_type.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ class PackageType(models.Model):
88
_inherit = "stock.package.type"
99

1010
package_carrier_type = fields.Selection(
11-
selection_add=[("postlogistics", "PostLogistics")]
11+
selection_add=[("postlogistics", "PostLogistics")],
12+
ondelete={"postlogistics": "set default"},
1213
)
1314

1415
def _get_packaging_codes(self):

delivery_postlogistics/postlogistics/web_service.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ def add_item(package=None):
343343
# start with 9 to ensure uniqueness and use 7 digits
344344
# of picking number
345345
picking_num = _compile_itemnum.sub("", picking.name)
346-
item_number = "9%s" % picking_num[-7:].zfill(7)
346+
item_number = f"9{picking_num[-7:].zfill(7)}"
347347
else:
348348
item_number = self._get_item_number(picking, pack_counter)
349349
item["itemNumber"] = item_number
@@ -461,7 +461,8 @@ def _request_access_token(cls, delivery_carrier):
461461
) as error:
462462
raise UserError(
463463
_(
464-
"Postlogistics service is not accessible at the moment. Error code: %s. "
464+
"Postlogistics service is not accessible at the moment. Error code:"
465+
" %s. "
465466
"Please try again later." % (response.status_code or "None")
466467
)
467468
) from error
@@ -546,7 +547,7 @@ def generate_label(self, picking, packages):
546547
response = requests.post(
547548
url=generate_label_url,
548549
headers={
549-
"Authorization": "Bearer %s" % access_token,
550+
"Authorization": f"Bearer {access_token}",
550551
"accept": "application/json",
551552
"content-type": "application/json",
552553
},
@@ -559,9 +560,10 @@ def generate_label(self, picking, packages):
559560
res["errors"] = response.content.decode("utf-8")
560561
_logger.warning(
561562
"Shipping label could not be generated.\n"
562-
"Request: %(datas)s\n"
563-
"Response: %(error)s"
564-
% {"datas": json.dumps(data), "error": res["errors"]}
563+
"Request: {datas}\n"
564+
"Response: {error}".format(
565+
datas=json.dumps(data), error=res["errors"]
566+
)
565567
)
566568
return [res]
567569

delivery_postlogistics/tests/common.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
from ..postlogistics.web_service import PostlogisticsWebService
77

8-
ENDPOINT_URL = "https://wedecint.post.ch/"
8+
ENDPOINT_URL = "https://localhost:8069/"
99
CLIENT_ID = "XXX"
1010
CLIENT_SECRET = "XXX"
1111
LICENSE = "XXX"

delivery_postlogistics/tests/fixtures/cassettes/test_missing_language.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interactions:
1515
content-type:
1616
- application/x-www-form-urlencoded
1717
method: POST
18-
uri: https://wedecint.post.ch/WEDECOAuth/token
18+
uri: https://localhost:8069/WEDECOAuth/token
1919
response:
2020
body:
2121
string: '{"access_token":"XXX","token_type":"Bearer","expires_in":60}'
@@ -67,7 +67,7 @@ interactions:
6767
content-type:
6868
- application/json
6969
method: POST
70-
uri: https://wedecint.post.ch/api/barcode/v1/generateAddressLabel
70+
uri: https://localhost:8069/api/barcode/v1/generateAddressLabel
7171
response:
7272
body:
7373
string: "{\n \"labelDefinition\" : {\n \"labelLayout\" : \"A6\",\n \"\

delivery_postlogistics/tests/fixtures/cassettes/test_store_label.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interactions:
1515
content-type:
1616
- application/x-www-form-urlencoded
1717
method: POST
18-
uri: https://wedecint.post.ch/WEDECOAuth/token
18+
uri: https://localhost:8069/WEDECOAuth/token
1919
response:
2020
body:
2121
string: '{"access_token":"XXX","token_type":"Bearer","expires_in":60}'
@@ -67,7 +67,7 @@ interactions:
6767
content-type:
6868
- application/json
6969
method: POST
70-
uri: https://wedecint.post.ch/api/barcode/v1/generateAddressLabel
70+
uri: https://localhost:8069/api/barcode/v1/generateAddressLabel
7171
response:
7272
body:
7373
string: "{\n \"labelDefinition\" : {\n \"labelLayout\" : \"A6\",\n \"\

delivery_postlogistics/tests/fixtures/cassettes/test_token_error.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ interactions:
1515
content-type:
1616
- application/x-www-form-urlencoded
1717
method: POST
18-
uri: https://wedecint.post.ch/WEDECOAuth/token
18+
uri: https://localhost:8069/WEDECOAuth/token
1919
response:
2020
body:
2121
string: ''
@@ -33,4 +33,4 @@ interactions:
3333
status:
3434
code: 503
3535
message: Service Unavailable
36-
version: 1
36+
version: 1

delivery_postlogistics/tests/test_packaging_code.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright 2022 Camptocamp SA
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
33

4-
from odoo.tests.common import Form, TransactionCase
4+
from odoo.tests import Form, TransactionCase
55

66
PACKAGE_CODE = "blah-biddy, bloo-blah, blah-blah-biddy, bloo-blah"
77
EXPECTED_CODES = ["blah-biddy", "bloo-blah", "blah-blah-biddy", "bloo-blah"]
@@ -13,7 +13,7 @@ class TestPackagingCode(TransactionCase):
1313

1414
@classmethod
1515
def setUpClass(cls):
16-
super(TestPackagingCode, cls).setUpClass()
16+
super().setUpClass()
1717
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
1818
cls.carrier = cls.env.ref("delivery.delivery_carrier")
1919
cls.carrier.delivery_type = "postlogistics"

delivery_postlogistics/tests/test_postlogistics.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ def test_postlogistics_rate_shipment(self):
114114
def test_postlogistics_get_token_error(self):
115115
with recorder.use_cassette("test_token_error") as cassette:
116116
err_msg = (
117-
"Postlogistics service is not accessible at the moment. Error code: 503. "
117+
"Postlogistics service is not accessible at the moment. Error code:"
118+
" 503. "
118119
"Please try again later."
119120
)
120121
with self.assertRaisesRegex(UserError, err_msg):

delivery_postlogistics/views/delivery.xml

+11-11
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,22 @@
1111
<page
1212
name="postlogistics"
1313
string="PostLogistics"
14-
attrs="{'invisible': [('delivery_type', '!=', 'postlogistics')]}"
14+
invisible="delivery_type != 'postlogistics'"
1515
>
1616
<group>
1717
<group string="Credentials">
1818
<field
1919
name="postlogistics_endpoint_url"
20-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
20+
required="delivery_type == 'postlogistics'"
2121
/>
2222
<field
2323
name="postlogistics_client_id"
24-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
24+
required="delivery_type == 'postlogistics'"
2525
/>
2626
<field
2727
name="postlogistics_client_secret"
2828
password="True"
29-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
29+
required="delivery_type == 'postlogistics'"
3030
/>
3131
<button
3232
name="verify_credentials"
@@ -38,33 +38,33 @@
3838
<group string="Template">
3939
<field
4040
name="postlogistics_label_layout"
41-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
41+
required="delivery_type == 'postlogistics'"
4242
/>
4343
<field
4444
name="postlogistics_output_format"
45-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
45+
required="delivery_type == 'postlogistics'"
4646
/>
4747
<field
4848
name="postlogistics_resolution"
49-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
49+
required="delivery_type == 'postlogistics'"
5050
/>
5151
</group>
5252
<group string="Misc.">
5353
<field
5454
name="postlogistics_license_id"
55-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
55+
required="delivery_type == 'postlogistics'"
5656
/>
5757
<field
5858
name="postlogistics_default_package_type_id"
59-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
59+
required="delivery_type == 'postlogistics'"
6060
/>
6161
<field
6262
name="postlogistics_tracking_format"
63-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
63+
required="delivery_type == 'postlogistics'"
6464
/>
6565
<field
6666
name="postlogistics_proclima_logo"
67-
attrs="{'required': [('delivery_type', '=', 'postlogistics')]}"
67+
required="delivery_type == 'postlogistics'"
6868
/>
6969
<field name="postlogistics_office" />
7070
</group>

delivery_postlogistics/views/postlogistics_license.xml

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66
<field name="name">postlogistics.license.view_list</field>
77
<field name="model">postlogistics.license</field>
88
<field name="arch" type="xml">
9-
<tree editable="bottom">
9+
<list editable="bottom">
1010
<field name="name" />
1111
<field name="number" />
1212
<field name="sequence" invisible="True" />
1313
<field name="company_id" groups="base.group_multi_company" />
14-
</tree>
14+
</list>
1515
</field>
1616
</record>
1717
<record id="action_postlogistics_licenses" model="ir.actions.act_window">
1818
<field name="name">PostLogistics Licenses</field>
1919
<field name="type">ir.actions.act_window</field>
2020
<field name="res_model">postlogistics.license</field>
21-
<field name='view_mode'>tree</field>
21+
<field name='view_mode'>list</field>
2222
</record>
2323
<menuitem
2424
id="menu_postlogistics_licenses"

delivery_postlogistics/views/stock.xml

+9-6
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,36 @@
44
<odoo>
55
<record id="view_picking_withcarrier_out_form" model="ir.ui.view">
66
<field name="model">stock.picking</field>
7-
<field name="inherit_id" ref="delivery.view_picking_withcarrier_out_form" />
7+
<field
8+
name="inherit_id"
9+
ref="stock_delivery.view_picking_withcarrier_out_form"
10+
/>
811
<field name="arch" type="xml">
912
<field name="state" position="before">
1013
<button
1114
name="action_generate_carrier_label"
1215
help="Create Shipping Label 🚚"
13-
attrs="{'invisible': ['|', '|', ('state', '!=', 'done'), ('delivery_type', '!=', 'postlogistics'), ('picking_type_code', '=', 'incoming')]}"
16+
invisible="state != 'done' or delivery_type != 'postlogistics' or picking_type_code == 'incoming'"
1417
string="Create Shipping Label 🚚"
1518
type="object"
1619
/>
1720
</field>
1821

1922
<button name="print_return_label" position="attributes">
2023
<attribute
21-
name="attrs"
22-
>{'invisible':['|', ('is_return_picking', '=', False),('picking_type_code', '!=', 'incoming')]}</attribute>
24+
name="invisible"
25+
>"is_return_picking == False or picking_type_code != 'incoming'"</attribute>
2326
</button>
2427

2528
<xpath expr="//page//group[@name='carrier_data']/.." position="after">
2629
<separator
2730
string="Delivery instructions"
28-
attrs="{'invisible': [('delivery_type', '!=', 'postlogistics')]}"
31+
invisible="delivery_type != 'postlogistics'"
2932
/>
3033
<group>
3134
<group
3235
name="delivery_instructions"
33-
attrs="{'invisible': [('delivery_type', '!=', 'postlogistics')]}"
36+
invisible="delivery_type != 'postlogistics'"
3437
>
3538
<field name="delivery_fixed_date" />
3639
<field name="delivery_place" />

delivery_postlogistics/views/stock_package_type_view.xml

+7-4
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@
55
<record id="stock_package_type_form_delivery" model="ir.ui.view">
66
<field name="name">stock.package.type.form.inherit</field>
77
<field name="model">stock.package.type</field>
8-
<field name="inherit_id" ref="delivery.stock_package_type_form_delivery" />
8+
<field
9+
name="inherit_id"
10+
ref="stock_delivery.stock_package_type_form_delivery"
11+
/>
912
<field name="arch" type="xml">
1013
<field name="shipper_package_code" position="attributes">
1114
<attribute
12-
name="attrs"
13-
>{"required": [("package_carrier_type", "=", "postlogistics")]}</attribute>
15+
name="required"
16+
>package_carrier_type == 'postlogistics'</attribute>
1417
</field>
1518
<field name="shipper_package_code" position="after">
1619
<span
1720
colspan="2"
18-
attrs="{'invisible': [('package_carrier_type', '!=', 'postlogistics')]}"
21+
invisible="package_carrier_type != 'postlogistics'"
1922
>See section 8.10 of <a
2023
target="new"
2124
href="https://developer.post.ch/en/digital-commerce-api"

delivery_postlogistics/wizard/stock_picking_return.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class ReturnPicking(models.TransientModel):
55
_inherit = "stock.return.picking"
66

77
def _create_returns(self):
8-
new_picking, pick_type_id = super(ReturnPicking, self)._create_returns()
8+
new_picking, pick_type_id = super()._create_returns()
99
if self.picking_id.delivery_type == "postlogistics":
1010
picking = self.env["stock.picking"].browse(new_picking)
1111
picking.write({"carrier_id": self.picking_id.carrier_id.id})

0 commit comments

Comments
 (0)