karrio-server-core 2025.5__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/conf.py +54 -0
- karrio/server/core/__init__.py +3 -0
- karrio/server/core/admin.py +1 -0
- karrio/server/core/apps.py +10 -0
- karrio/server/core/authentication.py +347 -0
- karrio/server/core/config.py +31 -0
- karrio/server/core/context_processors.py +12 -0
- karrio/server/core/datatypes.py +394 -0
- karrio/server/core/dataunits.py +187 -0
- karrio/server/core/exceptions.py +404 -0
- karrio/server/core/fields.py +12 -0
- karrio/server/core/filters.py +837 -0
- karrio/server/core/gateway.py +1011 -0
- karrio/server/core/logging.py +403 -0
- karrio/server/core/management/commands/cli.py +19 -0
- karrio/server/core/management/commands/create_oauth_client.py +41 -0
- karrio/server/core/management/commands/runserver.py +5 -0
- karrio/server/core/middleware.py +197 -0
- karrio/server/core/migrations/0001_initial.py +28 -0
- karrio/server/core/migrations/0002_apilogindex.py +69 -0
- karrio/server/core/migrations/0003_apilogindex_test_mode.py +62 -0
- karrio/server/core/migrations/0004_metafield.py +74 -0
- karrio/server/core/migrations/0005_alter_metafield_type_alter_metafield_value.py +23 -0
- karrio/server/core/migrations/0006_add_api_log_requested_at_index.py +22 -0
- karrio/server/core/migrations/__init__.py +0 -0
- karrio/server/core/models/__init__.py +48 -0
- karrio/server/core/models/base.py +103 -0
- karrio/server/core/models/entity.py +24 -0
- karrio/server/core/models/metafield.py +144 -0
- karrio/server/core/models/third_party.py +21 -0
- karrio/server/core/oauth_validators.py +170 -0
- karrio/server/core/permissions.py +36 -0
- karrio/server/core/renderers.py +11 -0
- karrio/server/core/router.py +3 -0
- karrio/server/core/serializers.py +1971 -0
- karrio/server/core/signals.py +55 -0
- karrio/server/core/telemetry.py +573 -0
- karrio/server/core/tests.py +99 -0
- karrio/server/core/tests_resource_token.py +411 -0
- karrio/server/core/urls.py +12 -0
- karrio/server/core/utils.py +1025 -0
- karrio/server/core/validators.py +264 -0
- karrio/server/core/views/__init__.py +2 -0
- karrio/server/core/views/api.py +133 -0
- karrio/server/core/views/metadata.py +44 -0
- karrio/server/core/views/oauth.py +75 -0
- karrio/server/core/views/references.py +82 -0
- karrio/server/core/views/schema.py +310 -0
- karrio/server/filters/__init__.py +2 -0
- karrio/server/filters/abstract.py +26 -0
- karrio/server/iam/__init__.py +0 -0
- karrio/server/iam/admin.py +3 -0
- karrio/server/iam/apps.py +21 -0
- karrio/server/iam/migrations/0001_initial.py +33 -0
- karrio/server/iam/migrations/__init__.py +0 -0
- karrio/server/iam/models.py +48 -0
- karrio/server/iam/permissions.py +155 -0
- karrio/server/iam/serializers.py +54 -0
- karrio/server/iam/signals.py +18 -0
- karrio/server/iam/tests.py +3 -0
- karrio/server/iam/views.py +3 -0
- karrio/server/openapi.py +75 -0
- karrio/server/providers/__init__.py +1 -0
- karrio/server/providers/admin.py +364 -0
- karrio/server/providers/apps.py +10 -0
- karrio/server/providers/management/commands/migrate_rate_sheets.py +101 -0
- karrio/server/providers/migrations/0001_initial.py +140 -0
- karrio/server/providers/migrations/0002_carrier_active.py +18 -0
- karrio/server/providers/migrations/0003_auto_20201230_0820.py +24 -0
- karrio/server/providers/migrations/0004_auto_20210212_0554.py +178 -0
- karrio/server/providers/migrations/0005_auto_20210212_0555.py +18 -0
- karrio/server/providers/migrations/0006_australiapostsettings.py +29 -0
- karrio/server/providers/migrations/0007_auto_20210213_0206.py +21 -0
- karrio/server/providers/migrations/0008_auto_20210214_0409.py +30 -0
- karrio/server/providers/migrations/0009_auto_20210308_0302.py +18 -0
- karrio/server/providers/migrations/0010_auto_20210409_0852.py +32 -0
- karrio/server/providers/migrations/0011_auto_20210409_0853.py +21 -0
- karrio/server/providers/migrations/0012_alter_carrier_options.py +17 -0
- karrio/server/providers/migrations/0013_tntsettings.py +30 -0
- karrio/server/providers/migrations/0014_auto_20210612_1608.py +46 -0
- karrio/server/providers/migrations/0015_auto_20210615_1601.py +28 -0
- karrio/server/providers/migrations/0016_alter_purolatorsettings_user_token.py +18 -0
- karrio/server/providers/migrations/0017_auto_20210805_0359.py +1293 -0
- karrio/server/providers/migrations/0018_alter_fedexsettings_user_key.py +18 -0
- karrio/server/providers/migrations/0019_dhlpolandsettings_servicelevel.py +65 -0
- karrio/server/providers/migrations/0020_genericsettings_labeltemplate.py +52 -0
- karrio/server/providers/migrations/0021_auto_20211231_2353.py +40 -0
- karrio/server/providers/migrations/0022_carrier_metadata.py +18 -0
- karrio/server/providers/migrations/0023_auto_20220124_1916.py +27 -0
- karrio/server/providers/migrations/0024_alter_genericsettings_custom_carrier_name.py +19 -0
- karrio/server/providers/migrations/0025_alter_servicelevel_service_code.py +19 -0
- karrio/server/providers/migrations/0026_auto_20220208_0132.py +59 -0
- karrio/server/providers/migrations/0027_auto_20220304_1340.py +29 -0
- karrio/server/providers/migrations/0028_auto_20220323_1500.py +33 -0
- karrio/server/providers/migrations/0029_easypostsettings.py +27 -0
- karrio/server/providers/migrations/0030_amazonmwssettings.py +29 -0
- karrio/server/providers/migrations/0031_delete_amazonmwssettings.py +18 -0
- karrio/server/providers/migrations/0032_alter_carrier_test.py +18 -0
- karrio/server/providers/migrations/0033_auto_20220708_1350.py +22 -0
- karrio/server/providers/migrations/0034_amazonmwssettings_dpdhlsettings.py +47 -0
- karrio/server/providers/migrations/0035_alter_carrier_capabilities.py +43 -0
- karrio/server/providers/migrations/0036_upsfreightsettings.py +31 -0
- karrio/server/providers/migrations/0037_chronopostsettings.py +29 -0
- karrio/server/providers/migrations/0038_alter_genericsettings_label_template.py +19 -0
- karrio/server/providers/migrations/0039_auto_20220906_0612.py +23 -0
- karrio/server/providers/migrations/0040_dpdhlsettings_services.py +18 -0
- karrio/server/providers/migrations/0041_auto_20221105_0705.py +38 -0
- karrio/server/providers/migrations/0042_auto_20221215_1642.py +23 -0
- karrio/server/providers/migrations/0043_alter_genericsettings_account_number_and_more.py +39 -0
- karrio/server/providers/migrations/0044_carrier_carrier_capabilities.py +64 -0
- karrio/server/providers/migrations/0045_alter_carrier_active_alter_carrier_carrier_id.py +31 -0
- karrio/server/providers/migrations/0046_remove_dpdhlsettings_signature_and_more.py +41 -0
- karrio/server/providers/migrations/0047_dpdsettings.py +286 -0
- karrio/server/providers/migrations/0048_servicelevel_min_weight_servicelevel_transit_days_and_more.py +64 -0
- karrio/server/providers/migrations/0049_boxknightsettings_geodissettings_lapostesettings_and_more.py +156 -0
- karrio/server/providers/migrations/0050_carrier_is_system_alter_carrier_metadata_and_more.py +106 -0
- karrio/server/providers/migrations/0051_rename_username_upssettings_client_id_and_more.py +31 -0
- karrio/server/providers/migrations/0052_alter_upssettings_account_number_and_more.py +20 -0
- karrio/server/providers/migrations/0053_locate2usettings.py +281 -0
- karrio/server/providers/migrations/0054_zoom2usettings.py +280 -0
- karrio/server/providers/migrations/0055_rename_amazonmwssettings_amazonshippingsettings_and_more.py +44 -0
- karrio/server/providers/migrations/0056_asendiaussettings_geodissettings_code_client_and_more.py +75 -0
- karrio/server/providers/migrations/0057_alter_servicelevel_weight_unit_belgianpostsettings.py +51 -0
- karrio/server/providers/migrations/0058_alliedexpresssettings.py +38 -0
- karrio/server/providers/migrations/0059_ratesheet.py +81 -0
- karrio/server/providers/migrations/0060_belgianpostsettings_rate_sheet_and_more.py +73 -0
- karrio/server/providers/migrations/0061_alliedexpresssettings_service_type.py +17 -0
- karrio/server/providers/migrations/0062_sendlesettings_account_country_code.py +257 -0
- karrio/server/providers/migrations/0063_servicelevel_metadata.py +25 -0
- karrio/server/providers/migrations/0064_alliedexpresslocalsettings.py +43 -0
- karrio/server/providers/migrations/0065_servicelevel_carrier_service_code_and_more.py +66 -0
- karrio/server/providers/migrations/0066_rename_fedexsettings_fedexwssettings_and_more.py +28 -0
- karrio/server/providers/migrations/0067_fedexsettings.py +283 -0
- karrio/server/providers/migrations/0068_fedexsettings_track_api_key_and_more.py +38 -0
- karrio/server/providers/migrations/0069_alter_canadapostsettings_contract_id_and_more.py +23 -0
- karrio/server/providers/migrations/0070_tgesettings_alter_carrier_capabilities.py +65 -0
- karrio/server/providers/migrations/0071_alter_tgesettings_my_toll_token.py +18 -0
- karrio/server/providers/migrations/0072_rename_eshippersettings_eshipperxmlsettings_and_more.py +28 -0
- karrio/server/providers/migrations/0073_delete_eshipperxmlsettings.py +41 -0
- karrio/server/providers/migrations/0074_eshippersettings.py +38 -0
- karrio/server/providers/migrations/0075_haypostsettings.py +40 -0
- karrio/server/providers/migrations/0076_rename_customer_registration_id_uspsinternationalsettings_account_number_and_more.py +125 -0
- karrio/server/providers/migrations/0077_uspswtinternationalsettings_uspswtsettings_and_more.py +165 -0
- karrio/server/providers/migrations/0078_auto_20240813_1552.py +120 -0
- karrio/server/providers/migrations/0079_alter_carrier_options_alter_ratesheet_created_by.py +31 -0
- karrio/server/providers/migrations/0080_alter_aramexsettings_account_country_code_and_more.py +3025 -0
- karrio/server/providers/migrations/0081_remove_alliedexpresssettings_carrier_ptr_and_more.py +338 -0
- karrio/server/providers/migrations/0082_add_zone_identifiers.py +50 -0
- karrio/server/providers/migrations/0083_add_optimized_rate_sheet_structure.py +33 -0
- karrio/server/providers/migrations/0084_alter_servicelevel_currency.py +168 -0
- karrio/server/providers/migrations/0085_populate_dhl_parcel_de_oauth_credentials.py +82 -0
- karrio/server/providers/migrations/0086_rename_dhl_parcel_de_customer_number_to_billing_number.py +71 -0
- karrio/server/providers/migrations/__init__.py +0 -0
- karrio/server/providers/models/__init__.py +16 -0
- karrio/server/providers/models/carrier.py +387 -0
- karrio/server/providers/models/config.py +30 -0
- karrio/server/providers/models/service.py +192 -0
- karrio/server/providers/models/sheet.py +287 -0
- karrio/server/providers/models/template.py +39 -0
- karrio/server/providers/models/utils.py +58 -0
- karrio/server/providers/router.py +3 -0
- karrio/server/providers/serializers/__init__.py +3 -0
- karrio/server/providers/serializers/base.py +538 -0
- karrio/server/providers/signals.py +25 -0
- karrio/server/providers/templates/providers/oauth_callback.html +105 -0
- karrio/server/providers/tests/__init__.py +5 -0
- karrio/server/providers/tests/test_connections.py +895 -0
- karrio/server/providers/urls.py +11 -0
- karrio/server/providers/views/__init__.py +0 -0
- karrio/server/providers/views/carriers.py +267 -0
- karrio/server/providers/views/connections.py +496 -0
- karrio/server/samples.py +352 -0
- karrio/server/serializers/__init__.py +2 -0
- karrio/server/serializers/abstract.py +602 -0
- karrio/server/tracing/__init__.py +0 -0
- karrio/server/tracing/admin.py +63 -0
- karrio/server/tracing/apps.py +8 -0
- karrio/server/tracing/migrations/0001_initial.py +41 -0
- karrio/server/tracing/migrations/0002_auto_20220710_1307.py +22 -0
- karrio/server/tracing/migrations/0003_auto_20221105_0317.py +43 -0
- karrio/server/tracing/migrations/0004_tracingrecord_carrier_account_idx.py +24 -0
- karrio/server/tracing/migrations/0005_optimise_tracingrecord_request_log_idx.py +25 -0
- karrio/server/tracing/migrations/0006_alter_tracingrecord_options_and_more.py +49 -0
- karrio/server/tracing/migrations/0007_tracingrecord_tracing_created_at_idx.py +19 -0
- karrio/server/tracing/migrations/__init__.py +0 -0
- karrio/server/tracing/models.py +82 -0
- karrio/server/tracing/tests.py +3 -0
- karrio/server/tracing/utils.py +109 -0
- karrio/server/user/__init__.py +0 -0
- karrio/server/user/admin.py +96 -0
- karrio/server/user/apps.py +7 -0
- karrio/server/user/forms.py +35 -0
- karrio/server/user/migrations/0001_initial.py +41 -0
- karrio/server/user/migrations/0002_token.py +29 -0
- karrio/server/user/migrations/0003_token_test_mode.py +20 -0
- karrio/server/user/migrations/0004_group.py +26 -0
- karrio/server/user/migrations/0005_token_label.py +21 -0
- karrio/server/user/migrations/0006_workspaceconfig.py +63 -0
- karrio/server/user/migrations/0007_user_metadata.py +25 -0
- karrio/server/user/migrations/__init__.py +0 -0
- karrio/server/user/models.py +218 -0
- karrio/server/user/serializers.py +47 -0
- karrio/server/user/templates/registration/login.html +108 -0
- karrio/server/user/templates/registration/registration_confirm_email.html +10 -0
- karrio/server/user/templates/registration/registration_confirm_email.txt +3 -0
- karrio/server/user/tests.py +3 -0
- karrio/server/user/urls.py +10 -0
- karrio/server/user/utils.py +60 -0
- karrio/server/user/views.py +9 -0
- karrio_server_core-2025.5.dist-info/METADATA +32 -0
- karrio_server_core-2025.5.dist-info/RECORD +213 -0
- karrio_server_core-2025.5.dist-info/WHEEL +5 -0
- karrio_server_core-2025.5.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Generated by Django 4.2.14 on 2024-07-27 13:09
|
|
2
|
+
|
|
3
|
+
from django import forms
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
import django.utils.timezone
|
|
6
|
+
import karrio.lib as lib
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def forwards_func(apps, schema_editor):
|
|
10
|
+
db_alias = schema_editor.connection.alias
|
|
11
|
+
USPSSettings = apps.get_model("providers", "USPSSettings")
|
|
12
|
+
USPSInternationalSettings = apps.get_model("providers", "USPSInternationalSettings")
|
|
13
|
+
|
|
14
|
+
usps_accounts = USPSSettings.objects.using(db_alias).all().iterator()
|
|
15
|
+
usps_intl_accounts = (
|
|
16
|
+
USPSInternationalSettings.objects.using(db_alias).all().iterator()
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
carrier_accounts = [
|
|
20
|
+
*[(_.carrier_ptr, _) for _ in usps_accounts],
|
|
21
|
+
*[(_.carrier_ptr, _) for _ in usps_intl_accounts],
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
for _carrier, _settings in carrier_accounts:
|
|
25
|
+
_carrier.metadata = {
|
|
26
|
+
**(_carrier.metadata or {}),
|
|
27
|
+
"__settings": {
|
|
28
|
+
"carrier_name": "usps",
|
|
29
|
+
**(_carrier.metadata or {}).get("__settings", {}),
|
|
30
|
+
**(lib.failsafe(lambda: forms.model_to_dict(_settings)) or {}),
|
|
31
|
+
},
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
_carrier.save(using=db_alias)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def reverse_func(apps, schema_editor):
|
|
38
|
+
pass
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class Migration(migrations.Migration):
|
|
42
|
+
|
|
43
|
+
dependencies = [
|
|
44
|
+
("providers", "0075_haypostsettings"),
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
operations = [
|
|
48
|
+
migrations.RunPython(forwards_func, reverse_func),
|
|
49
|
+
migrations.RenameField(
|
|
50
|
+
model_name="uspsinternationalsettings",
|
|
51
|
+
old_name="customer_registration_id",
|
|
52
|
+
new_name="account_number",
|
|
53
|
+
),
|
|
54
|
+
migrations.RenameField(
|
|
55
|
+
model_name="uspsinternationalsettings",
|
|
56
|
+
old_name="logistics_manager_mailer_id",
|
|
57
|
+
new_name="account_type",
|
|
58
|
+
),
|
|
59
|
+
migrations.RemoveField(
|
|
60
|
+
model_name="uspsinternationalsettings",
|
|
61
|
+
name="mailer_id",
|
|
62
|
+
),
|
|
63
|
+
migrations.RemoveField(
|
|
64
|
+
model_name="uspsinternationalsettings",
|
|
65
|
+
name="password",
|
|
66
|
+
),
|
|
67
|
+
migrations.RemoveField(
|
|
68
|
+
model_name="uspsinternationalsettings",
|
|
69
|
+
name="username",
|
|
70
|
+
),
|
|
71
|
+
migrations.RemoveField(
|
|
72
|
+
model_name="uspssettings",
|
|
73
|
+
name="customer_registration_id",
|
|
74
|
+
),
|
|
75
|
+
migrations.RemoveField(
|
|
76
|
+
model_name="uspssettings",
|
|
77
|
+
name="logistics_manager_mailer_id",
|
|
78
|
+
),
|
|
79
|
+
migrations.RemoveField(
|
|
80
|
+
model_name="uspssettings",
|
|
81
|
+
name="mailer_id",
|
|
82
|
+
),
|
|
83
|
+
migrations.RemoveField(
|
|
84
|
+
model_name="uspssettings",
|
|
85
|
+
name="password",
|
|
86
|
+
),
|
|
87
|
+
migrations.RemoveField(
|
|
88
|
+
model_name="uspssettings",
|
|
89
|
+
name="username",
|
|
90
|
+
),
|
|
91
|
+
migrations.AddField(
|
|
92
|
+
model_name="uspsinternationalsettings",
|
|
93
|
+
name="client_id",
|
|
94
|
+
field=models.CharField(default=django.utils.timezone.now, max_length=100),
|
|
95
|
+
preserve_default=False,
|
|
96
|
+
),
|
|
97
|
+
migrations.AddField(
|
|
98
|
+
model_name="uspsinternationalsettings",
|
|
99
|
+
name="client_secret",
|
|
100
|
+
field=models.CharField(default=django.utils.timezone.now, max_length=100),
|
|
101
|
+
preserve_default=False,
|
|
102
|
+
),
|
|
103
|
+
migrations.AddField(
|
|
104
|
+
model_name="uspssettings",
|
|
105
|
+
name="account_number",
|
|
106
|
+
field=models.CharField(blank=True, max_length=100, null=True),
|
|
107
|
+
),
|
|
108
|
+
migrations.AddField(
|
|
109
|
+
model_name="uspssettings",
|
|
110
|
+
name="account_type",
|
|
111
|
+
field=models.CharField(blank=True, max_length=100, null=True),
|
|
112
|
+
),
|
|
113
|
+
migrations.AddField(
|
|
114
|
+
model_name="uspssettings",
|
|
115
|
+
name="client_id",
|
|
116
|
+
field=models.CharField(default=django.utils.timezone.now, max_length=100),
|
|
117
|
+
preserve_default=False,
|
|
118
|
+
),
|
|
119
|
+
migrations.AddField(
|
|
120
|
+
model_name="uspssettings",
|
|
121
|
+
name="client_secret",
|
|
122
|
+
field=models.CharField(default=django.utils.timezone.now, max_length=100),
|
|
123
|
+
preserve_default=False,
|
|
124
|
+
),
|
|
125
|
+
]
|
karrio/server/providers/migrations/0077_uspswtinternationalsettings_uspswtsettings_and_more.py
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Generated by Django 4.2.14 on 2024-08-06 06:12
|
|
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
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Migration(migrations.Migration):
|
|
11
|
+
|
|
12
|
+
dependencies = [
|
|
13
|
+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
14
|
+
(
|
|
15
|
+
"providers",
|
|
16
|
+
"0076_rename_customer_registration_id_uspsinternationalsettings_account_number_and_more",
|
|
17
|
+
),
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
operations = [
|
|
21
|
+
migrations.CreateModel(
|
|
22
|
+
name="USPSWTInternationalSettings",
|
|
23
|
+
fields=[
|
|
24
|
+
(
|
|
25
|
+
"carrier_ptr",
|
|
26
|
+
models.OneToOneField(
|
|
27
|
+
auto_created=True,
|
|
28
|
+
on_delete=django.db.models.deletion.CASCADE,
|
|
29
|
+
parent_link=True,
|
|
30
|
+
primary_key=True,
|
|
31
|
+
serialize=False,
|
|
32
|
+
to="providers.carrier",
|
|
33
|
+
),
|
|
34
|
+
),
|
|
35
|
+
("username", models.CharField(max_length=200)),
|
|
36
|
+
("password", models.CharField(max_length=200)),
|
|
37
|
+
("mailer_id", models.CharField(blank=True, max_length=200, null=True)),
|
|
38
|
+
(
|
|
39
|
+
"customer_registration_id",
|
|
40
|
+
models.CharField(blank=True, max_length=200, null=True),
|
|
41
|
+
),
|
|
42
|
+
(
|
|
43
|
+
"logistics_manager_mailer_id",
|
|
44
|
+
models.CharField(blank=True, max_length=200, null=True),
|
|
45
|
+
),
|
|
46
|
+
],
|
|
47
|
+
options={
|
|
48
|
+
"verbose_name": "USPS Web Tools International Settings",
|
|
49
|
+
"verbose_name_plural": "USPS Web Tools International Settings",
|
|
50
|
+
"db_table": "usps_wt_international-settings",
|
|
51
|
+
},
|
|
52
|
+
bases=("providers.carrier",),
|
|
53
|
+
),
|
|
54
|
+
migrations.CreateModel(
|
|
55
|
+
name="USPSWTSettings",
|
|
56
|
+
fields=[
|
|
57
|
+
(
|
|
58
|
+
"carrier_ptr",
|
|
59
|
+
models.OneToOneField(
|
|
60
|
+
auto_created=True,
|
|
61
|
+
on_delete=django.db.models.deletion.CASCADE,
|
|
62
|
+
parent_link=True,
|
|
63
|
+
primary_key=True,
|
|
64
|
+
serialize=False,
|
|
65
|
+
to="providers.carrier",
|
|
66
|
+
),
|
|
67
|
+
),
|
|
68
|
+
("username", models.CharField(max_length=200)),
|
|
69
|
+
("password", models.CharField(max_length=200)),
|
|
70
|
+
("mailer_id", models.CharField(blank=True, max_length=200, null=True)),
|
|
71
|
+
(
|
|
72
|
+
"customer_registration_id",
|
|
73
|
+
models.CharField(blank=True, max_length=200, null=True),
|
|
74
|
+
),
|
|
75
|
+
(
|
|
76
|
+
"logistics_manager_mailer_id",
|
|
77
|
+
models.CharField(blank=True, max_length=200, null=True),
|
|
78
|
+
),
|
|
79
|
+
],
|
|
80
|
+
options={
|
|
81
|
+
"verbose_name": "USPS Web Settings",
|
|
82
|
+
"verbose_name_plural": "USPS Web Settings",
|
|
83
|
+
"db_table": "usps_wt-settings",
|
|
84
|
+
},
|
|
85
|
+
bases=("providers.carrier",),
|
|
86
|
+
),
|
|
87
|
+
migrations.AlterModelOptions(
|
|
88
|
+
name="carrier",
|
|
89
|
+
options={},
|
|
90
|
+
),
|
|
91
|
+
migrations.RemoveField(
|
|
92
|
+
model_name="belgianpostsettings",
|
|
93
|
+
name="rate_sheet",
|
|
94
|
+
),
|
|
95
|
+
migrations.RemoveField(
|
|
96
|
+
model_name="colissimosettings",
|
|
97
|
+
name="rate_sheet",
|
|
98
|
+
),
|
|
99
|
+
migrations.RemoveField(
|
|
100
|
+
model_name="dhlparceldesettings",
|
|
101
|
+
name="rate_sheet",
|
|
102
|
+
),
|
|
103
|
+
migrations.RemoveField(
|
|
104
|
+
model_name="dhlpolandsettings",
|
|
105
|
+
name="rate_sheet",
|
|
106
|
+
),
|
|
107
|
+
migrations.RemoveField(
|
|
108
|
+
model_name="dpdhlsettings",
|
|
109
|
+
name="rate_sheet",
|
|
110
|
+
),
|
|
111
|
+
migrations.RemoveField(
|
|
112
|
+
model_name="dpdsettings",
|
|
113
|
+
name="rate_sheet",
|
|
114
|
+
),
|
|
115
|
+
migrations.RemoveField(
|
|
116
|
+
model_name="genericsettings",
|
|
117
|
+
name="rate_sheet",
|
|
118
|
+
),
|
|
119
|
+
migrations.AddField(
|
|
120
|
+
model_name="carrier",
|
|
121
|
+
name="carrier_code",
|
|
122
|
+
field=models.CharField(
|
|
123
|
+
db_index=True,
|
|
124
|
+
default="generic",
|
|
125
|
+
help_text="eg. dhl_express, fedex, ups, usps, ...",
|
|
126
|
+
max_length=100,
|
|
127
|
+
),
|
|
128
|
+
),
|
|
129
|
+
migrations.AddField(
|
|
130
|
+
model_name="carrier",
|
|
131
|
+
name="credentials",
|
|
132
|
+
field=models.JSONField(
|
|
133
|
+
default=functools.partial(
|
|
134
|
+
karrio.server.core.models._identity, *(), **{"value": {}}
|
|
135
|
+
),
|
|
136
|
+
help_text="Carrier connection credentials",
|
|
137
|
+
),
|
|
138
|
+
),
|
|
139
|
+
migrations.AddField(
|
|
140
|
+
model_name="carrier",
|
|
141
|
+
name="rate_sheet",
|
|
142
|
+
field=models.ForeignKey(
|
|
143
|
+
blank=True,
|
|
144
|
+
null=True,
|
|
145
|
+
on_delete=django.db.models.deletion.SET_NULL,
|
|
146
|
+
to="providers.ratesheet",
|
|
147
|
+
),
|
|
148
|
+
),
|
|
149
|
+
migrations.AlterField(
|
|
150
|
+
model_name="carrier",
|
|
151
|
+
name="active_users",
|
|
152
|
+
field=models.ManyToManyField(
|
|
153
|
+
blank=True, related_name="connection_users", to=settings.AUTH_USER_MODEL
|
|
154
|
+
),
|
|
155
|
+
),
|
|
156
|
+
migrations.AlterField(
|
|
157
|
+
model_name="carrier",
|
|
158
|
+
name="carrier_id",
|
|
159
|
+
field=models.CharField(
|
|
160
|
+
db_index=True,
|
|
161
|
+
help_text="eg. canadapost, dhl_express, fedex, purolator_courrier, ups...",
|
|
162
|
+
max_length=150,
|
|
163
|
+
),
|
|
164
|
+
),
|
|
165
|
+
]
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-08-13 15:52
|
|
2
|
+
|
|
3
|
+
import karrio.lib as lib
|
|
4
|
+
from django import forms
|
|
5
|
+
import django.conf as conf
|
|
6
|
+
import karrio.server.core.models
|
|
7
|
+
from django.db import migrations, models, transaction
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@transaction.atomic
|
|
11
|
+
def forwards_func(apps, schema_editor):
|
|
12
|
+
try:
|
|
13
|
+
from karrio.server.providers.models import MODELS
|
|
14
|
+
except ImportError:
|
|
15
|
+
pass
|
|
16
|
+
|
|
17
|
+
db_alias = schema_editor.connection.alias
|
|
18
|
+
User = apps.get_model(*conf.settings.AUTH_USER_MODEL.split("."))
|
|
19
|
+
Carrier = apps.get_model("providers", "Carrier")
|
|
20
|
+
RateSheet = apps.get_model("providers", "RateSheet")
|
|
21
|
+
|
|
22
|
+
carrier_accounts = Carrier.objects.using(db_alias).all().iterator()
|
|
23
|
+
|
|
24
|
+
for _carrier in carrier_accounts:
|
|
25
|
+
_carrier_name, _settings = next(
|
|
26
|
+
(
|
|
27
|
+
(
|
|
28
|
+
name,
|
|
29
|
+
_carrier.metadata.get("__settings")
|
|
30
|
+
or forms.model_to_dict(getattr(_carrier, model.__name__.lower())),
|
|
31
|
+
)
|
|
32
|
+
for name, model in MODELS.items()
|
|
33
|
+
if hasattr(_carrier, model.__name__.lower())
|
|
34
|
+
),
|
|
35
|
+
(
|
|
36
|
+
_carrier.metadata.get("__settings", {}).get("carrier_name")
|
|
37
|
+
or "eshipper",
|
|
38
|
+
_carrier.metadata.get("__settings", {}),
|
|
39
|
+
),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
_services = _settings.pop("services", {})
|
|
43
|
+
_carrier.credentials = {
|
|
44
|
+
key: value
|
|
45
|
+
for key, value in _settings.items()
|
|
46
|
+
if key
|
|
47
|
+
not in [
|
|
48
|
+
"active",
|
|
49
|
+
"services",
|
|
50
|
+
"rate_sheet",
|
|
51
|
+
"carrier_ptr",
|
|
52
|
+
"is_system",
|
|
53
|
+
"capabilities",
|
|
54
|
+
"active_users",
|
|
55
|
+
"created_by",
|
|
56
|
+
"test_mode",
|
|
57
|
+
"metadata",
|
|
58
|
+
"credentials",
|
|
59
|
+
"carrier_code",
|
|
60
|
+
"carrier_id",
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
_carrier.carrier_code = _carrier_name
|
|
64
|
+
_carrier.metadata = {
|
|
65
|
+
key: value
|
|
66
|
+
for key, value in (_carrier.metadata or {}).items()
|
|
67
|
+
if key not in ["__settings"]
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if "username" in _settings and "password" in _settings:
|
|
71
|
+
if _carrier_name == "usps":
|
|
72
|
+
_carrier.carrier_code = "usps_wt"
|
|
73
|
+
if _carrier_name == "usps_international":
|
|
74
|
+
_carrier.carrier_code = "usps_wt_international"
|
|
75
|
+
if _carrier_name == "eshipper":
|
|
76
|
+
_carrier.credentials = {
|
|
77
|
+
**_carrier.credentials,
|
|
78
|
+
"principal": lib.identity(
|
|
79
|
+
_settings.get("principal")
|
|
80
|
+
if any(_settings.get("principal") or "")
|
|
81
|
+
else _settings.get("username")
|
|
82
|
+
),
|
|
83
|
+
"credential": lib.identity(
|
|
84
|
+
_settings.get("credential")
|
|
85
|
+
if any(_settings.get("credential") or "")
|
|
86
|
+
else _settings.get("password")
|
|
87
|
+
),
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if any(_services):
|
|
91
|
+
settings = getattr(_carrier, MODELS[_carrier_name].__name__.lower())
|
|
92
|
+
_carrier.rate_sheet = karrio.server.core.models._identity(
|
|
93
|
+
getattr(settings, "rate_sheet", None)
|
|
94
|
+
or RateSheet.objects.create(
|
|
95
|
+
name=f"{_carrier_name} - sheet",
|
|
96
|
+
slug=f"{_carrier_name} - rate-sheet",
|
|
97
|
+
carrier_name=_carrier_name,
|
|
98
|
+
is_system=_carrier.is_system,
|
|
99
|
+
created_by=_carrier.created_by
|
|
100
|
+
or User.objects.filter(is_superuser=True).first(),
|
|
101
|
+
)
|
|
102
|
+
)
|
|
103
|
+
_carrier.rate_sheet.services.set(_services)
|
|
104
|
+
|
|
105
|
+
_carrier.save(using=db_alias)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def reverse_func(apps, schema_editor):
|
|
109
|
+
pass
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class Migration(migrations.Migration):
|
|
113
|
+
|
|
114
|
+
dependencies = [
|
|
115
|
+
("providers", "0077_uspswtinternationalsettings_uspswtsettings_and_more"),
|
|
116
|
+
]
|
|
117
|
+
|
|
118
|
+
operations = [
|
|
119
|
+
migrations.RunPython(forwards_func, reverse_func),
|
|
120
|
+
]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated by Django 4.2.15 on 2024-08-24 03:01
|
|
2
|
+
|
|
3
|
+
from django.conf import settings
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
import django.db.models.deletion
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Migration(migrations.Migration):
|
|
9
|
+
|
|
10
|
+
dependencies = [
|
|
11
|
+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
12
|
+
("providers", "0078_auto_20240813_1552"),
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
operations = [
|
|
16
|
+
migrations.AlterModelOptions(
|
|
17
|
+
name="carrier",
|
|
18
|
+
options={"ordering": ["test_mode", "-created_at"]},
|
|
19
|
+
),
|
|
20
|
+
migrations.AlterField(
|
|
21
|
+
model_name="ratesheet",
|
|
22
|
+
name="created_by",
|
|
23
|
+
field=models.ForeignKey(
|
|
24
|
+
blank=True,
|
|
25
|
+
editable=False,
|
|
26
|
+
null=True,
|
|
27
|
+
on_delete=django.db.models.deletion.CASCADE,
|
|
28
|
+
to=settings.AUTH_USER_MODEL,
|
|
29
|
+
),
|
|
30
|
+
),
|
|
31
|
+
]
|