karrio-server-manager 2025.5.5__py3-none-any.whl → 2025.5.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ # Generated by Django 6.0 on 2025-12-12 20:16
2
+
3
+ import functools
4
+ import karrio.server.core.utils
5
+ from django.db import migrations, models
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ('manager', '0067_rename_customs_commodities_table'),
12
+ ]
13
+
14
+ operations = [
15
+ migrations.AddField(
16
+ model_name='shipment',
17
+ name='extra_documents',
18
+ field=models.JSONField(blank=True, default=functools.partial(karrio.server.core.utils.identity, value=[]), null=True),
19
+ ),
20
+ ]
@@ -823,6 +823,9 @@ class Shipment(core.OwnedEntity):
823
823
  metadata = models.JSONField(
824
824
  blank=True, null=True, default=functools.partial(utils.identity, value={})
825
825
  )
826
+ extra_documents = models.JSONField(
827
+ blank=True, null=True, default=functools.partial(utils.identity, value=[])
828
+ )
826
829
 
827
830
  # System Reference fields
828
831
 
@@ -285,8 +285,14 @@ class ShipmentSerializer(ShipmentData):
285
285
  if "docs" in validated_data:
286
286
  changes.append("label")
287
287
  changes.append("invoice")
288
+ changes.append("extra_documents")
288
289
  instance.label = validated_data["docs"].get("label") or instance.label
289
290
  instance.invoice = validated_data["docs"].get("invoice") or instance.invoice
291
+ instance.extra_documents = (
292
+ validated_data["docs"].get("extra_documents")
293
+ or instance.extra_documents
294
+ or []
295
+ )
290
296
 
291
297
  if "selected_rate" in validated_data:
292
298
  selected_rate = validated_data.get("selected_rate", {})
@@ -387,6 +393,7 @@ class ShipmentUpdateData(validators.OptionDefaultSerializer):
387
393
  "shipment_note": "This is a shipment note",
388
394
  "signature_confirmation": true,
389
395
  "saturday_delivery": true,
396
+ "shipping_charges": 10.00,
390
397
  "is_return": true,
391
398
  "doc_files": [
392
399
  {
@@ -443,6 +450,7 @@ class ShipmentRateData(validators.OptionDefaultSerializer):
443
450
  {
444
451
  "currency": "USD",
445
452
  "insurance": 100.00,
453
+ "insured_by": "carrier",
446
454
  "cash_on_delivery": 30.00,
447
455
  "dangerous_good": true,
448
456
  "declared_value": 150.00,
@@ -450,6 +458,7 @@ class ShipmentRateData(validators.OptionDefaultSerializer):
450
458
  "email_notification": true,
451
459
  "email_notification_to": "shipper@mail.com",
452
460
  "hold_at_location": true,
461
+ "locker_id": "123456789",
453
462
  "paperless_trade": true,
454
463
  "preferred_service": "fedex_express_saver",
455
464
  "shipment_date": "2020-01-01", # TODO: deprecate
@@ -457,6 +466,7 @@ class ShipmentRateData(validators.OptionDefaultSerializer):
457
466
  "shipment_note": "This is a shipment note",
458
467
  "signature_confirmation": true,
459
468
  "saturday_delivery": true,
469
+ "shipping_charges": 10.00,
460
470
  "is_return": true,
461
471
  "doc_files": [
462
472
  {
@@ -500,6 +510,7 @@ class ShipmentPurchaseSerializer(Shipment):
500
510
  {
501
511
  "currency": "USD",
502
512
  "insurance": 100.00,
513
+ "insured_by": "carrier",
503
514
  "cash_on_delivery": 30.00,
504
515
  "dangerous_good": true,
505
516
  "declared_value": 150.00,
@@ -507,6 +518,7 @@ class ShipmentPurchaseSerializer(Shipment):
507
518
  "email_notification": true,
508
519
  "email_notification_to": "shipper@mail.com",
509
520
  "hold_at_location": true,
521
+ "locker_id": "123456789",
510
522
  "paperless_trade": true,
511
523
  "preferred_service": "fedex_express_saver",
512
524
  "shipment_date": "2020-01-01", # TODO: deprecate
@@ -514,6 +526,7 @@ class ShipmentPurchaseSerializer(Shipment):
514
526
  "shipment_note": "This is a shipment note",
515
527
  "signature_confirmation": true,
516
528
  "saturday_delivery": true,
529
+ "shipping_charges": 10.00,
517
530
  "is_return": true,
518
531
  "doc_files": [
519
532
  {
@@ -1205,6 +1205,7 @@ class TestShipmentCancelIdempotent(APITestCase):
1205
1205
  LABEL_DOCUMENT_RESPONSE = {
1206
1206
  "category": "label",
1207
1207
  "format": "PDF",
1208
+ "print_format": None,
1208
1209
  "base64": "==apodifjoefr",
1209
1210
  "url": ANY,
1210
1211
  }
@@ -11,6 +11,7 @@ import rest_framework.throttling as throttling
11
11
  import django_filters.rest_framework as django_filters
12
12
 
13
13
  from karrio.server.core.utils import validate_resource_token
14
+ from karrio.server.core.authentication import AccessMixin
14
15
  import karrio.server.openapi as openapi
15
16
  import karrio.server.core.views.api as api
16
17
  import karrio.server.core.filters as filters
@@ -106,7 +107,7 @@ class ManifestDetails(api.APIView):
106
107
  return response.Response(serializers.Manifest(manifest).data)
107
108
 
108
109
 
109
- class ManifestDoc(django_downloadview.VirtualDownloadView):
110
+ class ManifestDoc(AccessMixin, django_downloadview.VirtualDownloadView):
110
111
  @openapi.extend_schema(exclude=True)
111
112
  def get(self, req: request.Request, pk: str, doc: str = "manifest", format: str = "pdf", **kwargs):
112
113
  """Retrieve a manifest file."""
@@ -15,6 +15,7 @@ import karrio.server.openapi as openapi
15
15
  import karrio.server.core.filters as filters
16
16
  import karrio.server.manager.models as models
17
17
  from karrio.server.core.views.api import GenericAPIView, APIView
18
+ from karrio.server.core.authentication import AccessMixin
18
19
  from karrio.server.core.filters import ShipmentFilters
19
20
  from karrio.server.manager.router import router
20
21
  from karrio.server.manager.serializers import (
@@ -267,7 +268,7 @@ class ShipmentPurchase(APIView):
267
268
  return Response(PurchasedShipment(update).data)
268
269
 
269
270
 
270
- class ShipmentDocs(VirtualDownloadView):
271
+ class ShipmentDocs(AccessMixin, VirtualDownloadView):
271
272
  @openapi.extend_schema(exclude=True)
272
273
  def get(
273
274
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: karrio_server_manager
3
- Version: 2025.5.5
3
+ Version: 2025.5.6
4
4
  Summary: Multi-carrier shipping API Shipments manager module
5
5
  Author-email: karrio <hello@karrio.io>
6
6
  License-Expression: LGPL-3.0
@@ -1,7 +1,7 @@
1
1
  karrio/server/manager/__init__.py,sha256=lDTMs_O6mQl0DEI2_TniT24TDJbjnkla-5QpnwfYlxs,64
2
2
  karrio/server/manager/admin.py,sha256=QOl5e2m3ekU5aj0yj9Uq4nRQrNMB_FfqNae6RyIxkC0,35
3
3
  karrio/server/manager/apps.py,sha256=WHTQ1t79uDZTbinRzvNg1NjtFwnwEvg0tP_ChrtTRwI,364
4
- karrio/server/manager/models.py,sha256=WruyZDTfqKlqu81fwAyxVCwxDu1lvl9l4bo9FbnFbos,34329
4
+ karrio/server/manager/models.py,sha256=eMBARl00oZVE_L1YMXV79bNBp5n36mVQO-MlSexBA3M,34458
5
5
  karrio/server/manager/router.py,sha256=IBUR7rfBkdEHQzWxYOPcVSM8NBp3fte9G6Q5BVTUNNw,95
6
6
  karrio/server/manager/signals.py,sha256=3ZApZY4Ne8Gb0AT5rjC3Xneb7dnbSQyXp1OiBXt7eIA,1908
7
7
  karrio/server/manager/urls.py,sha256=oXJlvhHNKxFkc_CmpFoyTSAMJcLp4Wt9dHbViQDkqw4,220
@@ -73,6 +73,7 @@ karrio/server/manager/migrations/0064_shipment_shipment_created_at_idx_and_more.
73
73
  karrio/server/manager/migrations/0065_alter_address_city_alter_address_company_name_and_more.py,sha256=m0KQSz8cnJzaXUlaAKdqU0duZ8wSQeTYQCIeam3Wivw,6279
74
74
  karrio/server/manager/migrations/0066_commodity_image_url_commodity_product_id_and_more.py,sha256=Jw7bEBmqzDSp6zw0xcAiKc9aDCsa3Wrw-oTM8r9Pqfc,997
75
75
  karrio/server/manager/migrations/0067_rename_customs_commodities_table.py,sha256=WPACK9Ab5QUdcX9yxBkV6_MXTAkB9F8vETDOlVqOrT4,1933
76
+ karrio/server/manager/migrations/0068_shipment_extra_documents.py,sha256=DL4FqB5bf5Rq3YuWVJsBMStkwMDmHIp_WN1BA6hKSTI,536
76
77
  karrio/server/manager/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
78
  karrio/server/manager/serializers/__init__.py,sha256=FyL9pqzoV7umSJut5P2KzqPFxn1ZWu07Qx7I58H2AQc,1454
78
79
  karrio/server/manager/serializers/address.py,sha256=yGKvZiNukeI15LEDdbo1ycqqK8QW77ak_vyLMIKyglI,2779
@@ -83,7 +84,7 @@ karrio/server/manager/serializers/manifest.py,sha256=mSneCk_7HMXpi64_7hggWvkR7Ma
83
84
  karrio/server/manager/serializers/parcel.py,sha256=733Bg26lVbEkoWtAVM5Qt2IRBS2QDuVxhG40Hiqh3bw,2621
84
85
  karrio/server/manager/serializers/pickup.py,sha256=sX0VmcQxGkXn3IEosMuFwdXh4HhdkPcuBOp79O8PoDQ,9233
85
86
  karrio/server/manager/serializers/rate.py,sha256=7vYK_v8iWEDnswqYHG2Lir16_UhHTOxW5rdC6lw3lzA,652
86
- karrio/server/manager/serializers/shipment.py,sha256=ByVrnexMI_fgSGBWO95qOPQn65Xzcfb8Vna9nF3k7Bk,37004
87
+ karrio/server/manager/serializers/shipment.py,sha256=XuqCsB8TBYtn270JNKyvmYglDZttEfLED69NYN-uVyA,37500
87
88
  karrio/server/manager/serializers/tracking.py,sha256=ixrAjIiZQsvSt4y0qtisGkt6TFOJ3ORNkJAQVt6YQrA,12483
88
89
  karrio/server/manager/tests/__init__.py,sha256=Y1UNteEE60vWdUAkjbldu_r_-h4u0He8-UoiBgTjKcU,391
89
90
  karrio/server/manager/tests/test_addresses.py,sha256=pNkZC_yJyb29ZlEOtOAs4blcEYiOarw0zhZIZC5uj1w,3111
@@ -92,18 +93,18 @@ karrio/server/manager/tests/test_errors.py,sha256=x2-mSsXknHkE4V7TajEu8d3rpqV38T
92
93
  karrio/server/manager/tests/test_manifests.py,sha256=X35ZTXTFEM4Gxdjz598yiNNkOOKZGpILjHWRC0oM5U4,2764
93
94
  karrio/server/manager/tests/test_parcels.py,sha256=lVLBOsHzXgXQvYjHIUy5oiPvrMfxYpueVvvhtuhstWk,2559
94
95
  karrio/server/manager/tests/test_pickups.py,sha256=8jxddwTnBvBM9FOyWxW9TtZ-GOVYUje7HQ2EZjsbtD8,10681
95
- karrio/server/manager/tests/test_shipments.py,sha256=I9DIx4l7zrHZ_vEvAKgdrnIx_euZtreSj9W40fouqSU,39725
96
+ karrio/server/manager/tests/test_shipments.py,sha256=S_mDZtCFd1R5S40AA83LfmQsGJGrJ52gwDzh2SY4YIM,39751
96
97
  karrio/server/manager/tests/test_trackers.py,sha256=VIGT8OVH51mf_6F2HEr5C-kYvsMnhUods_rpq543RbI,7207
97
98
  karrio/server/manager/views/__init__.py,sha256=kDFUaORRQ3Xh0ZPm-Jk88Ss8dgGYM57iUFXb9TPMzh0,401
98
99
  karrio/server/manager/views/addresses.py,sha256=7YCAs2ZYgd1icYwMcGGWfX7A7vZEL4BEAbU4eIxhiMY,4620
99
100
  karrio/server/manager/views/customs.py,sha256=-ZreiKyJ1xeLeNVG53nMfRQFeURduWr1QkDItdLPnE8,4875
100
101
  karrio/server/manager/views/documents.py,sha256=znW54qJ_k7WInIut5FBZFDT93CioozXTOYFKRSUTBhA,4005
101
- karrio/server/manager/views/manifests.py,sha256=bk-8XoGLVqgjDfpTZbTKjXW7r8DYNDp2ce2xGG73sbI,7012
102
+ karrio/server/manager/views/manifests.py,sha256=KwDoV7GSdRv7YDAzl0SLaNoAx4R-gBguO_WiW_qwfBM,7083
102
103
  karrio/server/manager/views/parcels.py,sha256=hZY45rg6SrTWfQqyJ38MGKSor1yqgPUEVHtu16aG37g,4594
103
104
  karrio/server/manager/views/pickups.py,sha256=gmpxz9ot1OR-BP1qh-0MXU3kUJi1ht_74hfaLJzJ42w,5503
104
- karrio/server/manager/views/shipments.py,sha256=YOFcZy-ymn3YfIKtcfNjFO4R_tPocrmEqMkQUXSSDCM,13083
105
+ karrio/server/manager/views/shipments.py,sha256=vdJFgIKnSHEb2FVGtqJbiMoHuMqzWtDpINMH4UaEtQQ,13154
105
106
  karrio/server/manager/views/trackers.py,sha256=3oGn2qDpHgk8GZvuz-Cb93Fc0j_h_HbXQR692Zhfiok,12363
106
- karrio_server_manager-2025.5.5.dist-info/METADATA,sha256=fj_XMA52xNVPSCUZYh2CywQdx6mZSiqtMP0DJ51gtrQ,730
107
- karrio_server_manager-2025.5.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
108
- karrio_server_manager-2025.5.5.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
109
- karrio_server_manager-2025.5.5.dist-info/RECORD,,
107
+ karrio_server_manager-2025.5.6.dist-info/METADATA,sha256=1jahLAav2eIZAOiSn5ox0VY0kOS64MNs4Bi1WmJJOI4,730
108
+ karrio_server_manager-2025.5.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
109
+ karrio_server_manager-2025.5.6.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
110
+ karrio_server_manager-2025.5.6.dist-info/RECORD,,