karrio-server-manager 2025.5rc33__py3-none-any.whl → 2025.5rc35__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/models.py +68 -6
- {karrio_server_manager-2025.5rc33.dist-info → karrio_server_manager-2025.5rc35.dist-info}/METADATA +1 -1
- {karrio_server_manager-2025.5rc33.dist-info → karrio_server_manager-2025.5rc35.dist-info}/RECORD +5 -5
- {karrio_server_manager-2025.5rc33.dist-info → karrio_server_manager-2025.5rc35.dist-info}/WHEEL +0 -0
- {karrio_server_manager-2025.5rc33.dist-info → karrio_server_manager-2025.5rc35.dist-info}/top_level.txt +0 -0
karrio/server/manager/models.py
CHANGED
|
@@ -72,7 +72,6 @@ class PickupManager(models.Manager):
|
|
|
72
72
|
return (
|
|
73
73
|
super()
|
|
74
74
|
.get_queryset()
|
|
75
|
-
.select_related("pickup_carrier")
|
|
76
75
|
.prefetch_related(
|
|
77
76
|
"shipments",
|
|
78
77
|
*(("org",) if conf.settings.MULTI_ORGANIZATIONS else tuple()),
|
|
@@ -94,12 +93,13 @@ class ShipmentManager(models.Manager):
|
|
|
94
93
|
"return_address",
|
|
95
94
|
"billing_address",
|
|
96
95
|
"shipment_tracker",
|
|
97
|
-
"selected_rate_carrier",
|
|
98
96
|
"shipment_upload_record",
|
|
99
97
|
)
|
|
100
98
|
.prefetch_related(
|
|
101
99
|
"parcels",
|
|
102
|
-
"
|
|
100
|
+
"parcels__items",
|
|
101
|
+
"customs__commodities",
|
|
102
|
+
"customs__duty_billing_address",
|
|
103
103
|
*(("org",) if conf.settings.MULTI_ORGANIZATIONS else tuple()),
|
|
104
104
|
)
|
|
105
105
|
)
|
|
@@ -112,7 +112,6 @@ class TrackingManager(models.Manager):
|
|
|
112
112
|
.get_queryset()
|
|
113
113
|
.select_related(
|
|
114
114
|
"created_by",
|
|
115
|
-
"tracking_carrier",
|
|
116
115
|
"shipment",
|
|
117
116
|
"shipment__recipient",
|
|
118
117
|
"shipment__shipper",
|
|
@@ -128,7 +127,6 @@ class DocumentUploadRecordManager(models.Manager):
|
|
|
128
127
|
return (
|
|
129
128
|
super()
|
|
130
129
|
.get_queryset()
|
|
131
|
-
.select_related("upload_carrier")
|
|
132
130
|
.prefetch_related(
|
|
133
131
|
*(("org",) if conf.settings.MULTI_ORGANIZATIONS else tuple()),
|
|
134
132
|
)
|
|
@@ -141,7 +139,6 @@ class ManifestManager(models.Manager):
|
|
|
141
139
|
return (
|
|
142
140
|
super()
|
|
143
141
|
.get_queryset()
|
|
144
|
-
.select_related("manifest_carrier")
|
|
145
142
|
.defer("manifest")
|
|
146
143
|
.prefetch_related(
|
|
147
144
|
*(("org",) if conf.settings.MULTI_ORGANIZATIONS else tuple()),
|
|
@@ -483,6 +480,7 @@ class Customs(core.OwnedEntity):
|
|
|
483
480
|
|
|
484
481
|
@core.register_model
|
|
485
482
|
class Pickup(core.OwnedEntity):
|
|
483
|
+
CONTEXT_RELATIONS = ["pickup_carrier"]
|
|
486
484
|
DIRECT_PROPS = [
|
|
487
485
|
"confirmation_number",
|
|
488
486
|
"pickup_date",
|
|
@@ -545,6 +543,16 @@ class Pickup(core.OwnedEntity):
|
|
|
545
543
|
handle = self.address or super()
|
|
546
544
|
return handle.delete(*args, **kwargs)
|
|
547
545
|
|
|
546
|
+
@classmethod
|
|
547
|
+
def resolve_context_data(cls, queryset, context):
|
|
548
|
+
"""Apply context-aware carrier config resolution for pickup_carrier."""
|
|
549
|
+
from karrio.server.providers.models.carrier import Carrier
|
|
550
|
+
|
|
551
|
+
carrier_queryset = Carrier.objects.resolve_config_for(context)
|
|
552
|
+
return queryset.prefetch_related(
|
|
553
|
+
models.Prefetch("pickup_carrier", queryset=carrier_queryset),
|
|
554
|
+
)
|
|
555
|
+
|
|
548
556
|
@property
|
|
549
557
|
def object_type(self):
|
|
550
558
|
return "pickup"
|
|
@@ -572,6 +580,7 @@ class Pickup(core.OwnedEntity):
|
|
|
572
580
|
|
|
573
581
|
@core.register_model
|
|
574
582
|
class Tracking(core.OwnedEntity):
|
|
583
|
+
CONTEXT_RELATIONS = ["tracking_carrier"]
|
|
575
584
|
DIRECT_PROPS = [
|
|
576
585
|
"metadata",
|
|
577
586
|
"info",
|
|
@@ -640,6 +649,16 @@ class Tracking(core.OwnedEntity):
|
|
|
640
649
|
"Shipment", on_delete=models.CASCADE, related_name="shipment_tracker", null=True
|
|
641
650
|
)
|
|
642
651
|
|
|
652
|
+
@classmethod
|
|
653
|
+
def resolve_context_data(cls, queryset, context):
|
|
654
|
+
"""Apply context-aware carrier config resolution for tracking_carrier."""
|
|
655
|
+
from karrio.server.providers.models.carrier import Carrier
|
|
656
|
+
|
|
657
|
+
carrier_queryset = Carrier.objects.resolve_config_for(context)
|
|
658
|
+
return queryset.prefetch_related(
|
|
659
|
+
models.Prefetch("tracking_carrier", queryset=carrier_queryset),
|
|
660
|
+
)
|
|
661
|
+
|
|
643
662
|
@property
|
|
644
663
|
def object_type(self):
|
|
645
664
|
return "tracker"
|
|
@@ -683,6 +702,7 @@ class Tracking(core.OwnedEntity):
|
|
|
683
702
|
|
|
684
703
|
@core.register_model
|
|
685
704
|
class Shipment(core.OwnedEntity):
|
|
705
|
+
CONTEXT_RELATIONS = ["selected_rate_carrier", "carriers"]
|
|
686
706
|
DIRECT_PROPS = [
|
|
687
707
|
"options",
|
|
688
708
|
"services",
|
|
@@ -833,6 +853,25 @@ class Shipment(core.OwnedEntity):
|
|
|
833
853
|
self.customs and self.customs.delete()
|
|
834
854
|
return super().delete(*args, **kwargs)
|
|
835
855
|
|
|
856
|
+
@classmethod
|
|
857
|
+
def resolve_context_data(cls, queryset, context):
|
|
858
|
+
"""
|
|
859
|
+
Apply context-aware prefetching for carriers with proper config resolution.
|
|
860
|
+
This is called by access_by() to ensure carrier configs are resolved for the request context.
|
|
861
|
+
"""
|
|
862
|
+
from karrio.server.providers.models.carrier import Carrier
|
|
863
|
+
|
|
864
|
+
# Resolve carrier configs with the request context for user/org-specific config
|
|
865
|
+
carrier_queryset = Carrier.objects.resolve_config_for(context)
|
|
866
|
+
|
|
867
|
+
# Re-apply carrier prefetches with context-aware config resolution
|
|
868
|
+
# Note: Manager's get_queryset() already sets up base prefetches with context=None
|
|
869
|
+
# This overrides those prefetches with context-aware ones when called via access_by()
|
|
870
|
+
return queryset.prefetch_related(
|
|
871
|
+
models.Prefetch("carriers", queryset=carrier_queryset),
|
|
872
|
+
models.Prefetch("selected_rate_carrier", queryset=carrier_queryset),
|
|
873
|
+
)
|
|
874
|
+
|
|
836
875
|
@property
|
|
837
876
|
def object_type(self):
|
|
838
877
|
return "shipment"
|
|
@@ -910,6 +949,7 @@ class Shipment(core.OwnedEntity):
|
|
|
910
949
|
|
|
911
950
|
@core.register_model
|
|
912
951
|
class DocumentUploadRecord(core.OwnedEntity):
|
|
952
|
+
CONTEXT_RELATIONS = ["upload_carrier"]
|
|
913
953
|
HIDDEN_PROPS = (
|
|
914
954
|
"upload_carrier",
|
|
915
955
|
*(("org",) if conf.settings.MULTI_ORGANIZATIONS else tuple()),
|
|
@@ -951,6 +991,16 @@ class DocumentUploadRecord(core.OwnedEntity):
|
|
|
951
991
|
related_name="shipment_upload_record",
|
|
952
992
|
)
|
|
953
993
|
|
|
994
|
+
@classmethod
|
|
995
|
+
def resolve_context_data(cls, queryset, context):
|
|
996
|
+
"""Apply context-aware carrier config resolution for upload_carrier."""
|
|
997
|
+
from karrio.server.providers.models.carrier import Carrier
|
|
998
|
+
|
|
999
|
+
carrier_queryset = Carrier.objects.resolve_config_for(context)
|
|
1000
|
+
return queryset.prefetch_related(
|
|
1001
|
+
models.Prefetch("upload_carrier", queryset=carrier_queryset),
|
|
1002
|
+
)
|
|
1003
|
+
|
|
954
1004
|
# Computed properties
|
|
955
1005
|
|
|
956
1006
|
@property
|
|
@@ -987,6 +1037,8 @@ class Manifest(core.OwnedEntity):
|
|
|
987
1037
|
verbose_name_plural = "Manifests"
|
|
988
1038
|
ordering = ["-created_at"]
|
|
989
1039
|
|
|
1040
|
+
CONTEXT_RELATIONS = ["manifest_carrier"]
|
|
1041
|
+
|
|
990
1042
|
id = models.CharField(
|
|
991
1043
|
max_length=50,
|
|
992
1044
|
primary_key=True,
|
|
@@ -1016,6 +1068,16 @@ class Manifest(core.OwnedEntity):
|
|
|
1016
1068
|
|
|
1017
1069
|
manifest_carrier = models.ForeignKey(providers.Carrier, on_delete=models.CASCADE)
|
|
1018
1070
|
|
|
1071
|
+
@classmethod
|
|
1072
|
+
def resolve_context_data(cls, queryset, context):
|
|
1073
|
+
"""Apply context-aware carrier config resolution for manifest_carrier."""
|
|
1074
|
+
from karrio.server.providers.models.carrier import Carrier
|
|
1075
|
+
|
|
1076
|
+
carrier_queryset = Carrier.objects.resolve_config_for(context)
|
|
1077
|
+
return queryset.prefetch_related(
|
|
1078
|
+
models.Prefetch("manifest_carrier", queryset=carrier_queryset),
|
|
1079
|
+
)
|
|
1080
|
+
|
|
1019
1081
|
# Computed properties
|
|
1020
1082
|
|
|
1021
1083
|
@property
|
{karrio_server_manager-2025.5rc33.dist-info → karrio_server_manager-2025.5rc35.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=WruyZDTfqKlqu81fwAyxVCwxDu1lvl9l4bo9FbnFbos,34329
|
|
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
|
|
@@ -100,7 +100,7 @@ karrio/server/manager/views/parcels.py,sha256=hZY45rg6SrTWfQqyJ38MGKSor1yqgPUEVH
|
|
|
100
100
|
karrio/server/manager/views/pickups.py,sha256=gmpxz9ot1OR-BP1qh-0MXU3kUJi1ht_74hfaLJzJ42w,5503
|
|
101
101
|
karrio/server/manager/views/shipments.py,sha256=_5EJfgxEO6H2EdQQbaSwILgnim7slqxMKDkEk_97F9c,10267
|
|
102
102
|
karrio/server/manager/views/trackers.py,sha256=3oGn2qDpHgk8GZvuz-Cb93Fc0j_h_HbXQR692Zhfiok,12363
|
|
103
|
-
karrio_server_manager-2025.
|
|
104
|
-
karrio_server_manager-2025.
|
|
105
|
-
karrio_server_manager-2025.
|
|
106
|
-
karrio_server_manager-2025.
|
|
103
|
+
karrio_server_manager-2025.5rc35.dist-info/METADATA,sha256=-JSntjwNP7P042MXocTMVzOu12bar9whAxp_ueeUd6w,734
|
|
104
|
+
karrio_server_manager-2025.5rc35.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
105
|
+
karrio_server_manager-2025.5rc35.dist-info/top_level.txt,sha256=D1D7x8R3cTfjF_15mfiO7wCQ5QMtuM4x8GaPr7z5i78,12
|
|
106
|
+
karrio_server_manager-2025.5rc35.dist-info/RECORD,,
|
{karrio_server_manager-2025.5rc33.dist-info → karrio_server_manager-2025.5rc35.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|