From f6bc5faeab1b97c791835dd8b16cef3ea0d573c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 11 Oct 2021 18:50:11 +0200 Subject: [PATCH] Add wizard to print shipping labels issue10834 review375701002 --- carrier.py | 7 +++++++ stock.py | 3 +++ tests/scenario_shipping_dpd.rst | 2 ++ 3 files changed, 12 insertions(+) diff --git a/carrier.py b/carrier.py index e76ae6561d..cc3e24a31e 100644 --- a/carrier.py +++ b/carrier.py @@ -107,3 +107,10 @@ class Carrier(metaclass=PoolMeta): 'invisible': Eval('shipping_service') != 'dpd', }), ] + + @property + def shipping_label_mimetype(self): + mimetype = super().shipping_label_mimetype + if self.shipping_service == 'dpd': + mimetype = 'application/pdf' + return mimetype diff --git a/stock.py b/stock.py index 5993c82578..de94ebf076 100644 --- a/stock.py +++ b/stock.py @@ -124,6 +124,7 @@ class CreateDPDShipping(Wizard): if not credential.depot or not credential.token: credential.update_token() + carrier = shipment.carrier shipping_client = get_client(credential.server, SHIPMENT_SERVICE) print_options = self.get_print_options(shipment) packages = shipment.root_packages @@ -178,6 +179,8 @@ class CreateDPDShipping(Wizard): parcels = response.parcelInformation for package, label, parcel in zip_longest(packages, labels, parcels): package.shipping_label = fields.Binary.cast(label.getvalue()) + package.shipping_label_mimetype = ( + carrier.shipping_label_mimetype) package.shipping_reference = parcel.parcelLabelNumber Package.save(packages) shipment.save() diff --git a/tests/scenario_shipping_dpd.rst b/tests/scenario_shipping_dpd.rst index 159242656a..f32f56659b 100644 --- a/tests/scenario_shipping_dpd.rst +++ b/tests/scenario_shipping_dpd.rst @@ -221,6 +221,8 @@ Create the packs and ship the shipment:: >>> pack, = shipment.root_packages >>> pack.shipping_label is not None True + >>> pack.shipping_label_mimetype + 'application/pdf' >>> pack.shipping_reference is not None True >>> pack.shipping_tracking_url.startswith('https://tracking.dpd.de/status/')