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.
- karrio/server/manager/migrations/0068_shipment_extra_documents.py +20 -0
- karrio/server/manager/models.py +3 -0
- karrio/server/manager/serializers/shipment.py +13 -0
- karrio/server/manager/tests/test_shipments.py +1 -0
- karrio/server/manager/views/manifests.py +2 -1
- karrio/server/manager/views/shipments.py +2 -1
- {karrio_server_manager-2025.5.5.dist-info → karrio_server_manager-2025.5.6.dist-info}/METADATA +1 -1
- {karrio_server_manager-2025.5.5.dist-info → karrio_server_manager-2025.5.6.dist-info}/RECORD +10 -9
- {karrio_server_manager-2025.5.5.dist-info → karrio_server_manager-2025.5.6.dist-info}/WHEEL +0 -0
- {karrio_server_manager-2025.5.5.dist-info → karrio_server_manager-2025.5.6.dist-info}/top_level.txt +0 -0
|
@@ -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
|
+
]
|
karrio/server/manager/models.py
CHANGED
|
@@ -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
|
{
|
|
@@ -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,
|
{karrio_server_manager-2025.5.5.dist-info → karrio_server_manager-2025.5.6.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
107
|
-
karrio_server_manager-2025.5.
|
|
108
|
-
karrio_server_manager-2025.5.
|
|
109
|
-
karrio_server_manager-2025.5.
|
|
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,,
|
|
File without changes
|
{karrio_server_manager-2025.5.5.dist-info → karrio_server_manager-2025.5.6.dist-info}/top_level.txt
RENAMED
|
File without changes
|