karrio-server-manager 2025.5rc1__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.
Files changed (102) hide show
  1. karrio/server/manager/__init__.py +1 -0
  2. karrio/server/manager/admin.py +1 -0
  3. karrio/server/manager/apps.py +13 -0
  4. karrio/server/manager/migrations/0001_initial.py +1358 -0
  5. karrio/server/manager/migrations/0002_auto_20201127_0721.py +61 -0
  6. karrio/server/manager/migrations/0003_auto_20201230_0820.py +34 -0
  7. karrio/server/manager/migrations/0004_auto_20210125_2125.py +18 -0
  8. karrio/server/manager/migrations/0005_auto_20210216_0758.py +27 -0
  9. karrio/server/manager/migrations/0006_auto_20210307_0438.py +24 -0
  10. karrio/server/manager/migrations/0006_auto_20210308_0302.py +53 -0
  11. karrio/server/manager/migrations/0007_merge_20210311_1428.py +14 -0
  12. karrio/server/manager/migrations/0008_remove_shipment_doc_images.py +17 -0
  13. karrio/server/manager/migrations/0009_auto_20210326_1425.py +28 -0
  14. karrio/server/manager/migrations/0010_auto_20210403_1404.py +28 -0
  15. karrio/server/manager/migrations/0011_auto_20210426_1924.py +48 -0
  16. karrio/server/manager/migrations/0012_auto_20210427_1319.py +24 -0
  17. karrio/server/manager/migrations/0013_customs_invoice_date.py +18 -0
  18. karrio/server/manager/migrations/0014_auto_20210515_0928.py +24 -0
  19. karrio/server/manager/migrations/0015_auto_20210601_0340.py +182 -0
  20. karrio/server/manager/migrations/0016_shipment_archived.py +18 -0
  21. karrio/server/manager/migrations/0017_auto_20210629_1650.py +22 -0
  22. karrio/server/manager/migrations/0018_auto_20210705_1049.py +23 -0
  23. karrio/server/manager/migrations/0019_auto_20210722_1131.py +43 -0
  24. karrio/server/manager/migrations/0020_tracking_messages.py +20 -0
  25. karrio/server/manager/migrations/0021_tracking_estimated_delivery.py +18 -0
  26. karrio/server/manager/migrations/0022_auto_20211122_2100.py +53 -0
  27. karrio/server/manager/migrations/0023_auto_20211227_2141.py +118 -0
  28. karrio/server/manager/migrations/0024_alter_parcel_items.py +18 -0
  29. karrio/server/manager/migrations/0025_auto_20220113_1158.py +25 -0
  30. karrio/server/manager/migrations/0026_parcel_reference_number.py +18 -0
  31. karrio/server/manager/migrations/0027_custom_migration_2021_1.py +47 -0
  32. karrio/server/manager/migrations/0028_auto_20220303_1153.py +39 -0
  33. karrio/server/manager/migrations/0029_auto_20220303_1249.py +55 -0
  34. karrio/server/manager/migrations/0030_alter_shipment_status.py +44 -0
  35. karrio/server/manager/migrations/0031_shipment_invoice.py +34 -0
  36. karrio/server/manager/migrations/0032_custom_migration_2022_3.py +26 -0
  37. karrio/server/manager/migrations/0033_auto_20220504_1335.py +57 -0
  38. karrio/server/manager/migrations/0034_commodity_hs_code.py +18 -0
  39. karrio/server/manager/migrations/0035_parcel_options.py +26 -0
  40. karrio/server/manager/migrations/0036_alter_tracking_shipment.py +24 -0
  41. karrio/server/manager/migrations/0037_auto_20220710_1350.py +28 -0
  42. karrio/server/manager/migrations/0038_alter_tracking_status.py +18 -0
  43. karrio/server/manager/migrations/0039_documentuploadrecord.py +43 -0
  44. karrio/server/manager/migrations/0040_parcel_freight_class.py +18 -0
  45. karrio/server/manager/migrations/0041_alter_commodity_options_alter_parcel_options.py +29 -0
  46. karrio/server/manager/migrations/0042_remove_shipment_shipment_tracking_number_idx_and_more.py +658 -0
  47. karrio/server/manager/migrations/0043_customs_duty_billing_address_and_more.py +62 -0
  48. karrio/server/manager/migrations/0044_address_address_line1_temp_and_more.py +326 -0
  49. karrio/server/manager/migrations/0045_alter_customs_duty_billing_address_and_more.py +45 -0
  50. karrio/server/manager/migrations/0046_auto_20230114_0930.py +78 -0
  51. karrio/server/manager/migrations/0047_remove_shipment_shipment_tracking_number_idx_and_more.py +595 -0
  52. karrio/server/manager/migrations/0048_commodity_title_alter_commodity_description_and_more.py +53 -0
  53. karrio/server/manager/migrations/0049_auto_20230318_0708.py +39 -0
  54. karrio/server/manager/migrations/0050_address_street_number_tracking_account_number_and_more.py +60 -0
  55. karrio/server/manager/migrations/0051_auto_20230330_0556.py +56 -0
  56. karrio/server/manager/migrations/0052_auto_20230520_0811.py +35 -0
  57. karrio/server/manager/migrations/0053_alter_commodity_weight_unit_alter_parcel_weight_unit.py +32 -0
  58. karrio/server/manager/migrations/0054_alter_address_company_name_alter_address_person_name.py +22 -0
  59. karrio/server/manager/migrations/0055_alter_tracking_status.py +32 -0
  60. karrio/server/manager/migrations/0056_tracking_delivery_image_tracking_signature_image.py +22 -0
  61. karrio/server/manager/migrations/0057_alter_customs_invoice_date.py +18 -0
  62. karrio/server/manager/migrations/0058_manifest_shipment_manifest.py +124 -0
  63. karrio/server/manager/migrations/0059_shipment_return_address.py +24 -0
  64. karrio/server/manager/migrations/0060_pickup_meta_alter_address_country_code_and_more.py +527 -0
  65. karrio/server/manager/migrations/0061_alter_customs_incoterm.py +37 -0
  66. karrio/server/manager/migrations/0062_alter_tracking_status.py +35 -0
  67. karrio/server/manager/migrations/__init__.py +0 -0
  68. karrio/server/manager/models.py +984 -0
  69. karrio/server/manager/router.py +3 -0
  70. karrio/server/manager/serializers/__init__.py +50 -0
  71. karrio/server/manager/serializers/address.py +82 -0
  72. karrio/server/manager/serializers/commodity.py +51 -0
  73. karrio/server/manager/serializers/customs.py +84 -0
  74. karrio/server/manager/serializers/document.py +113 -0
  75. karrio/server/manager/serializers/manifest.py +85 -0
  76. karrio/server/manager/serializers/parcel.py +84 -0
  77. karrio/server/manager/serializers/pickup.py +285 -0
  78. karrio/server/manager/serializers/rate.py +19 -0
  79. karrio/server/manager/serializers/shipment.py +869 -0
  80. karrio/server/manager/serializers/tracking.py +250 -0
  81. karrio/server/manager/signals.py +70 -0
  82. karrio/server/manager/tests/__init__.py +10 -0
  83. karrio/server/manager/tests/test_addresses.py +110 -0
  84. karrio/server/manager/tests/test_custom_infos.py +97 -0
  85. karrio/server/manager/tests/test_parcels.py +104 -0
  86. karrio/server/manager/tests/test_pickups.py +345 -0
  87. karrio/server/manager/tests/test_shipments.py +833 -0
  88. karrio/server/manager/tests/test_trackers.py +215 -0
  89. karrio/server/manager/urls.py +10 -0
  90. karrio/server/manager/views/__init__.py +9 -0
  91. karrio/server/manager/views/addresses.py +154 -0
  92. karrio/server/manager/views/customs.py +159 -0
  93. karrio/server/manager/views/documents.py +131 -0
  94. karrio/server/manager/views/manifests.py +160 -0
  95. karrio/server/manager/views/parcels.py +155 -0
  96. karrio/server/manager/views/pickups.py +182 -0
  97. karrio/server/manager/views/shipments.py +335 -0
  98. karrio/server/manager/views/trackers.py +364 -0
  99. karrio_server_manager-2025.5rc1.dist-info/METADATA +28 -0
  100. karrio_server_manager-2025.5rc1.dist-info/RECORD +102 -0
  101. karrio_server_manager-2025.5rc1.dist-info/WHEEL +5 -0
  102. karrio_server_manager-2025.5rc1.dist-info/top_level.txt +2 -0
@@ -0,0 +1,60 @@
1
+ # Generated by Django 4.1.7 on 2023-03-26 13:02
2
+
3
+ from django.db import migrations, models
4
+ import functools
5
+ import karrio.server.core.utils
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ("manager", "0049_auto_20230318_0708"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name="address",
16
+ name="street_number",
17
+ field=models.CharField(blank=True, db_index=True, max_length=20, null=True),
18
+ ),
19
+ migrations.AddField(
20
+ model_name="tracking",
21
+ name="account_number",
22
+ field=models.CharField(blank=True, max_length=35, null=True),
23
+ ),
24
+ migrations.AddField(
25
+ model_name="tracking",
26
+ name="info",
27
+ field=models.JSONField(
28
+ blank=True,
29
+ default=functools.partial(
30
+ karrio.server.core.utils.identity, *(), **{"value": {}}
31
+ ),
32
+ null=True,
33
+ ),
34
+ ),
35
+ migrations.AddField(
36
+ model_name="tracking",
37
+ name="reference",
38
+ field=models.CharField(blank=True, max_length=35, null=True),
39
+ ),
40
+ migrations.AlterField(
41
+ model_name="tracking",
42
+ name="status",
43
+ field=models.CharField(
44
+ choices=[
45
+ ("pending", "pending"),
46
+ ("unknown", "unknown"),
47
+ ("delivered", "delivered"),
48
+ ("on_hold", "on_hold"),
49
+ ("in_transit", "in_transit"),
50
+ ("delivery_delayed", "delivery_delayed"),
51
+ ("out_for_delivery", "out_for_delivery"),
52
+ ("ready_for_pickup", "ready_for_pickup"),
53
+ ("delivery_failed", "delivery_failed"),
54
+ ],
55
+ db_index=True,
56
+ default="pending",
57
+ max_length=25,
58
+ ),
59
+ ),
60
+ ]
@@ -0,0 +1,56 @@
1
+ # Generated by Django 4.1.7 on 2023-03-30 05:56
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ def forwards_func(apps, schema_editor):
7
+ db_alias = schema_editor.connection.alias
8
+ Tracker = apps.get_model("manager", "Tracking")
9
+
10
+ trackers = (
11
+ Tracker.objects.using(db_alias)
12
+ .filter(info__shipment_destication_country__isnull=False)
13
+ .iterator()
14
+ )
15
+
16
+ for _tracker in trackers:
17
+ _tracker.info = {
18
+ f"{'shipment_destination_country' if key == 'shipment_destication_country' else key}": value
19
+ for key, value in (_tracker.info or {}).items()
20
+ }
21
+
22
+ _tracker.save()
23
+
24
+
25
+ def reverse_func(apps, schema_editor):
26
+ pass
27
+
28
+
29
+ class Migration(migrations.Migration):
30
+ dependencies = [
31
+ ("manager", "0050_address_street_number_tracking_account_number_and_more"),
32
+ ]
33
+
34
+ operations = [
35
+ migrations.AlterField(
36
+ model_name="shipment",
37
+ name="status",
38
+ field=models.CharField(
39
+ choices=[
40
+ ("draft", "draft"),
41
+ ("purchased", "purchased"),
42
+ ("cancelled", "cancelled"),
43
+ ("shipped", "shipped"),
44
+ ("in_transit", "in_transit"),
45
+ ("delivered", "delivered"),
46
+ ("needs_attention", "needs_attention"),
47
+ ("out_for_delivery", "out_for_delivery"),
48
+ ("delivery_failed", "delivery_failed"),
49
+ ],
50
+ db_index=True,
51
+ default="draft",
52
+ max_length=50,
53
+ ),
54
+ ),
55
+ migrations.RunPython(forwards_func, reverse_func),
56
+ ]
@@ -0,0 +1,35 @@
1
+ # Generated by Django 4.2.1 on 2023-05-20 08:11
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ def forwards_func(apps, schema_editor):
7
+ db_alias = schema_editor.connection.alias
8
+ Tracker = apps.get_model("manager", "Tracking")
9
+
10
+ trackers = (
11
+ Tracker.objects.using(db_alias)
12
+ .filter(info__info__isnull=False)
13
+ .iterator()
14
+ )
15
+
16
+ for _tracker in trackers:
17
+ _tracker.info = {
18
+ k: v for k, v in (_tracker.info or {}).items() if k != "info"
19
+ }
20
+
21
+ _tracker.save()
22
+
23
+
24
+ def reverse_func(apps, schema_editor):
25
+ pass
26
+
27
+
28
+ class Migration(migrations.Migration):
29
+ dependencies = [
30
+ ("manager", "0051_auto_20230330_0556"),
31
+ ]
32
+
33
+ operations = [
34
+ migrations.RunPython(forwards_func, reverse_func),
35
+ ]
@@ -0,0 +1,32 @@
1
+ # Generated by Django 4.2.7 on 2023-11-11 11:28
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("manager", "0052_auto_20230520_0811"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="commodity",
14
+ name="weight_unit",
15
+ field=models.CharField(
16
+ blank=True,
17
+ choices=[("KG", "KG"), ("LB", "LB"), ("OZ", "OZ"), ("G", "G")],
18
+ max_length=2,
19
+ null=True,
20
+ ),
21
+ ),
22
+ migrations.AlterField(
23
+ model_name="parcel",
24
+ name="weight_unit",
25
+ field=models.CharField(
26
+ blank=True,
27
+ choices=[("KG", "KG"), ("LB", "LB"), ("OZ", "OZ"), ("G", "G")],
28
+ max_length=2,
29
+ null=True,
30
+ ),
31
+ ),
32
+ ]
@@ -0,0 +1,22 @@
1
+ # Generated by Django 4.2.8 on 2023-12-20 06:03
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("manager", "0053_alter_commodity_weight_unit_alter_parcel_weight_unit"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="address",
14
+ name="company_name",
15
+ field=models.CharField(blank=True, db_index=True, max_length=50, null=True),
16
+ ),
17
+ migrations.AlterField(
18
+ model_name="address",
19
+ name="person_name",
20
+ field=models.CharField(blank=True, db_index=True, max_length=50, null=True),
21
+ ),
22
+ ]
@@ -0,0 +1,32 @@
1
+ # Generated by Django 4.2.8 on 2023-12-23 06:10
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("manager", "0054_alter_address_company_name_alter_address_person_name"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AlterField(
13
+ model_name="tracking",
14
+ name="status",
15
+ field=models.CharField(
16
+ choices=[
17
+ ("pending", "pending"),
18
+ ("unknown", "unknown"),
19
+ ("on_hold", "on_hold"),
20
+ ("delivered", "delivered"),
21
+ ("in_transit", "in_transit"),
22
+ ("delivery_delayed", "delivery_delayed"),
23
+ ("out_for_delivery", "out_for_delivery"),
24
+ ("ready_for_pickup", "ready_for_pickup"),
25
+ ("delivery_failed", "delivery_failed"),
26
+ ],
27
+ db_index=True,
28
+ default="pending",
29
+ max_length=25,
30
+ ),
31
+ ),
32
+ ]
@@ -0,0 +1,22 @@
1
+ # Generated by Django 4.2.8 on 2024-01-20 16:00
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("manager", "0055_alter_tracking_status"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.AddField(
13
+ model_name="tracking",
14
+ name="delivery_image",
15
+ field=models.TextField(blank=True, null=True),
16
+ ),
17
+ migrations.AddField(
18
+ model_name="tracking",
19
+ name="signature_image",
20
+ field=models.TextField(blank=True, null=True),
21
+ ),
22
+ ]
@@ -0,0 +1,18 @@
1
+ # Generated by Django 4.2.10 on 2024-03-16 04:36
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("manager", "0056_tracking_delivery_image_tracking_signature_image"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="customs",
15
+ name="invoice_date",
16
+ field=models.CharField(blank=True, max_length=50, null=True),
17
+ ),
18
+ ]
@@ -0,0 +1,124 @@
1
+ # Generated by Django 4.2.10 on 2024-03-18 03:33
2
+
3
+ from django.conf import settings
4
+ from django.db import migrations, models
5
+ import django.db.models.deletion
6
+ import functools
7
+ import karrio.server.core.models.base
8
+ import karrio.server.core.utils
9
+
10
+
11
+ class Migration(migrations.Migration):
12
+
13
+ dependencies = [
14
+ ("providers", "0071_alter_tgesettings_my_toll_token"),
15
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
16
+ ("manager", "0057_alter_customs_invoice_date"),
17
+ ]
18
+
19
+ operations = [
20
+ migrations.CreateModel(
21
+ name="Manifest",
22
+ fields=[
23
+ ("created_at", models.DateTimeField(auto_now_add=True)),
24
+ ("updated_at", models.DateTimeField(auto_now=True)),
25
+ (
26
+ "id",
27
+ models.CharField(
28
+ default=functools.partial(
29
+ karrio.server.core.models.base.uuid,
30
+ *(),
31
+ **{"prefix": "manf_"}
32
+ ),
33
+ editable=False,
34
+ max_length=50,
35
+ primary_key=True,
36
+ serialize=False,
37
+ ),
38
+ ),
39
+ (
40
+ "metadata",
41
+ models.JSONField(
42
+ blank=True,
43
+ default=functools.partial(
44
+ karrio.server.core.utils.identity, *(), **{"value": {}}
45
+ ),
46
+ null=True,
47
+ ),
48
+ ),
49
+ (
50
+ "meta",
51
+ models.JSONField(
52
+ blank=True,
53
+ default=functools.partial(
54
+ karrio.server.core.utils.identity, *(), **{"value": {}}
55
+ ),
56
+ null=True,
57
+ ),
58
+ ),
59
+ (
60
+ "options",
61
+ models.JSONField(
62
+ blank=True,
63
+ default=functools.partial(
64
+ karrio.server.core.utils.identity, *(), **{"value": {}}
65
+ ),
66
+ null=True,
67
+ ),
68
+ ),
69
+ (
70
+ "messages",
71
+ models.JSONField(
72
+ blank=True,
73
+ default=functools.partial(
74
+ karrio.server.core.utils.identity, *(), **{"value": []}
75
+ ),
76
+ null=True,
77
+ ),
78
+ ),
79
+ ("reference", models.CharField(blank=True, max_length=100, null=True)),
80
+ ("manifest", models.TextField(blank=True, null=True)),
81
+ ("test_mode", models.BooleanField()),
82
+ (
83
+ "address",
84
+ models.OneToOneField(
85
+ on_delete=django.db.models.deletion.CASCADE,
86
+ related_name="manifest",
87
+ to="manager.address",
88
+ ),
89
+ ),
90
+ (
91
+ "created_by",
92
+ models.ForeignKey(
93
+ on_delete=django.db.models.deletion.CASCADE,
94
+ to=settings.AUTH_USER_MODEL,
95
+ ),
96
+ ),
97
+ (
98
+ "manifest_carrier",
99
+ models.ForeignKey(
100
+ on_delete=django.db.models.deletion.CASCADE,
101
+ to="providers.carrier",
102
+ ),
103
+ ),
104
+ ],
105
+ options={
106
+ "verbose_name": "Manifest",
107
+ "verbose_name_plural": "Manifests",
108
+ "db_table": "manifest",
109
+ "ordering": ["-created_at"],
110
+ },
111
+ bases=(karrio.server.core.models.base.ControlledAccessModel, models.Model),
112
+ ),
113
+ migrations.AddField(
114
+ model_name="shipment",
115
+ name="manifest",
116
+ field=models.ForeignKey(
117
+ blank=True,
118
+ null=True,
119
+ on_delete=django.db.models.deletion.SET_NULL,
120
+ related_name="shipments",
121
+ to="manager.manifest",
122
+ ),
123
+ ),
124
+ ]
@@ -0,0 +1,24 @@
1
+ # Generated by Django 4.2.11 on 2024-06-05 03:01
2
+
3
+ from django.db import migrations, models
4
+ import django.db.models.deletion
5
+
6
+
7
+ class Migration(migrations.Migration):
8
+
9
+ dependencies = [
10
+ ("manager", "0058_manifest_shipment_manifest"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AddField(
15
+ model_name="shipment",
16
+ name="return_address",
17
+ field=models.OneToOneField(
18
+ null=True,
19
+ on_delete=django.db.models.deletion.SET_NULL,
20
+ related_name="return_address_shipment",
21
+ to="manager.address",
22
+ ),
23
+ ),
24
+ ]