django-cfg 1.3.1__py3-none-any.whl → 1.3.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.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/payments/admin_interface/old/payments/base.html +175 -0
- django_cfg/apps/payments/admin_interface/old/payments/components/dev_tool_card.html +125 -0
- django_cfg/apps/payments/admin_interface/old/payments/components/ngrok_status_card.html +113 -0
- django_cfg/apps/payments/admin_interface/old/payments/components/status_card.html +35 -0
- django_cfg/apps/payments/admin_interface/old/payments/payment_dashboard.html +309 -0
- django_cfg/apps/payments/admin_interface/old/payments/payment_form.html +303 -0
- django_cfg/apps/payments/admin_interface/old/payments/payment_list.html +382 -0
- django_cfg/apps/payments/admin_interface/old/payments/webhook_dashboard.html +518 -0
- django_cfg/apps/payments/{static → admin_interface/old/static}/payments/css/components.css +248 -9
- django_cfg/apps/payments/admin_interface/old/static/payments/js/ngrok-status.js +163 -0
- django_cfg/apps/payments/admin_interface/serializers/__init__.py +39 -0
- django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +149 -0
- django_cfg/apps/payments/admin_interface/serializers/webhook_serializers.py +114 -0
- django_cfg/apps/payments/admin_interface/templates/payments/base.html +55 -90
- django_cfg/apps/payments/admin_interface/templates/payments/components/dialog.html +81 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_help_dialog.html +112 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_status.html +175 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/status_card.html +21 -17
- django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html +123 -250
- django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +170 -269
- django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html +152 -355
- django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html +202 -551
- django_cfg/apps/payments/admin_interface/views/__init__.py +25 -14
- django_cfg/apps/payments/admin_interface/views/api/__init__.py +20 -0
- django_cfg/apps/payments/admin_interface/views/api/payments.py +191 -0
- django_cfg/apps/payments/admin_interface/views/api/stats.py +206 -0
- django_cfg/apps/payments/admin_interface/views/api/users.py +60 -0
- django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +257 -0
- django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +70 -0
- django_cfg/apps/payments/admin_interface/views/base.py +114 -0
- django_cfg/apps/payments/admin_interface/views/dashboard.py +60 -0
- django_cfg/apps/payments/admin_interface/views/forms.py +94 -0
- django_cfg/apps/payments/config/helpers.py +2 -2
- django_cfg/apps/payments/management/commands/cleanup_expired_data.py +429 -0
- django_cfg/apps/payments/management/commands/currency_stats.py +443 -0
- django_cfg/apps/payments/management/commands/manage_currencies.py +9 -20
- django_cfg/apps/payments/management/commands/manage_providers.py +5 -5
- django_cfg/apps/payments/management/commands/process_pending_payments.py +357 -0
- django_cfg/apps/payments/management/commands/test_providers.py +434 -0
- django_cfg/apps/payments/middleware/api_access.py +35 -34
- django_cfg/apps/payments/migrations/0001_initial.py +1 -1
- django_cfg/apps/payments/models/balance.py +5 -2
- django_cfg/apps/payments/models/managers/api_key_managers.py +6 -2
- django_cfg/apps/payments/models/managers/balance_managers.py +3 -3
- django_cfg/apps/payments/models/managers/payment_managers.py +5 -0
- django_cfg/apps/payments/models/managers/subscription_managers.py +3 -3
- django_cfg/apps/payments/models/subscriptions.py +0 -24
- django_cfg/apps/payments/services/cache/__init__.py +1 -1
- django_cfg/apps/payments/services/cache_service/__init__.py +143 -0
- django_cfg/apps/payments/services/cache_service/api_key_cache.py +37 -0
- django_cfg/apps/payments/services/cache_service/interfaces.py +32 -0
- django_cfg/apps/payments/services/cache_service/keys.py +49 -0
- django_cfg/apps/payments/services/cache_service/rate_limit_cache.py +47 -0
- django_cfg/apps/payments/services/cache_service/simple_cache.py +101 -0
- django_cfg/apps/payments/services/core/balance_service.py +13 -2
- django_cfg/apps/payments/services/core/payment_service.py +49 -22
- django_cfg/apps/payments/services/integrations/ngrok_service.py +3 -3
- django_cfg/apps/payments/services/providers/registry.py +20 -0
- django_cfg/apps/payments/signals/api_key_signals.py +2 -2
- django_cfg/apps/payments/signals/balance_signals.py +8 -5
- django_cfg/apps/payments/static/payments/js/api-client.js +385 -0
- django_cfg/apps/payments/static/payments/js/ngrok-status.js +58 -0
- django_cfg/apps/payments/static/payments/js/payment-dashboard.js +50 -0
- django_cfg/apps/payments/static/payments/js/payment-form.js +175 -0
- django_cfg/apps/payments/static/payments/js/payment-list.js +95 -0
- django_cfg/apps/payments/static/payments/js/webhook-dashboard.js +154 -0
- django_cfg/apps/payments/urls.py +4 -0
- django_cfg/apps/payments/urls_admin.py +37 -18
- django_cfg/apps/payments/views/api/api_keys.py +14 -0
- django_cfg/apps/payments/views/api/base.py +1 -0
- django_cfg/apps/payments/views/api/currencies.py +2 -2
- django_cfg/apps/payments/views/api/payments.py +11 -5
- django_cfg/apps/payments/views/api/subscriptions.py +36 -31
- django_cfg/apps/payments/views/overview/__init__.py +40 -0
- django_cfg/apps/payments/views/overview/serializers.py +205 -0
- django_cfg/apps/payments/views/overview/services.py +439 -0
- django_cfg/apps/payments/views/overview/urls.py +27 -0
- django_cfg/apps/payments/views/overview/views.py +231 -0
- django_cfg/apps/payments/views/serializers/api_keys.py +20 -6
- django_cfg/apps/payments/views/serializers/balances.py +5 -8
- django_cfg/apps/payments/views/serializers/currencies.py +2 -6
- django_cfg/apps/payments/views/serializers/payments.py +37 -32
- django_cfg/apps/payments/views/serializers/subscriptions.py +4 -26
- django_cfg/apps/urls.py +2 -1
- django_cfg/core/config.py +25 -15
- django_cfg/core/generation.py +12 -12
- django_cfg/core/integration/display/startup.py +1 -1
- django_cfg/core/validation.py +4 -4
- django_cfg/management/commands/show_config.py +2 -2
- django_cfg/management/commands/tree.py +1 -3
- django_cfg/middleware/__init__.py +2 -0
- django_cfg/middleware/static_nocache.py +55 -0
- django_cfg/models/payments.py +13 -15
- django_cfg/models/security.py +15 -0
- django_cfg/modules/django_ngrok.py +6 -0
- django_cfg/modules/django_unfold/dashboard.py +1 -3
- django_cfg/utils/smart_defaults.py +51 -5
- {django_cfg-1.3.1.dist-info → django_cfg-1.3.5.dist-info}/METADATA +1 -1
- {django_cfg-1.3.1.dist-info → django_cfg-1.3.5.dist-info}/RECORD +111 -69
- django_cfg/apps/payments/admin_interface/templates/payments/components/dev_tool_card.html +0 -38
- django_cfg/apps/payments/admin_interface/views/payment_views.py +0 -259
- django_cfg/apps/payments/admin_interface/views/webhook_dashboard.py +0 -37
- django_cfg/apps/payments/services/cache/cache_service.py +0 -235
- /django_cfg/apps/payments/admin_interface/{templates → old}/payments/components/loading_spinner.html +0 -0
- /django_cfg/apps/payments/admin_interface/{templates → old}/payments/components/notification.html +0 -0
- /django_cfg/apps/payments/admin_interface/{templates → old}/payments/components/provider_card.html +0 -0
- /django_cfg/apps/payments/admin_interface/{templates → old}/payments/currency_converter.html +0 -0
- /django_cfg/apps/payments/admin_interface/{templates → old}/payments/payment_status.html +0 -0
- /django_cfg/apps/payments/{static → admin_interface/old/static}/payments/css/dashboard.css +0 -0
- /django_cfg/apps/payments/{static → admin_interface/old/static}/payments/js/components.js +0 -0
- /django_cfg/apps/payments/{static → admin_interface/old/static}/payments/js/utils.js +0 -0
- {django_cfg-1.3.1.dist-info → django_cfg-1.3.5.dist-info}/WHEEL +0 -0
- {django_cfg-1.3.1.dist-info → django_cfg-1.3.5.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.3.1.dist-info → django_cfg-1.3.5.dist-info}/licenses/LICENSE +0 -0
django_cfg/models/payments.py
CHANGED
@@ -28,25 +28,23 @@ class PaymentsConfig(BaseModel):
|
|
28
28
|
description="Enable payments middleware"
|
29
29
|
)
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
# Whitelist approach - only these paths require API key
|
32
|
+
protected_paths: List[str] = Field(
|
33
|
+
default=[
|
34
|
+
'/api/admin/', # Admin API endpoints
|
35
|
+
'/api/private/', # Private API endpoints
|
36
|
+
'/api/secure/', # Secure API endpoints
|
37
|
+
],
|
38
|
+
description="Paths that require API key authentication (whitelist approach)"
|
34
39
|
)
|
35
40
|
|
36
|
-
|
41
|
+
protected_patterns: List[str] = Field(
|
37
42
|
default=[
|
38
|
-
'
|
39
|
-
'
|
40
|
-
'
|
41
|
-
'/api/currencies/supported/',
|
42
|
-
'/api/api-keys/create/',
|
43
|
-
'/api/api-keys/validate/',
|
44
|
-
'/api/health/',
|
45
|
-
'/admin/',
|
46
|
-
'/static/',
|
47
|
-
'/media/',
|
43
|
+
r'^/api/admin/.*$', # All admin API endpoints
|
44
|
+
r'^/api/private/.*$', # All private API endpoints
|
45
|
+
r'^/api/secure/.*$', # All secure API endpoints
|
48
46
|
],
|
49
|
-
description="
|
47
|
+
description="Regex patterns for paths that require API key authentication"
|
50
48
|
)
|
51
49
|
|
52
50
|
# Rate limiting defaults
|
django_cfg/models/security.py
CHANGED
@@ -22,6 +22,20 @@ class SecurityConfig(BaseConfig):
|
|
22
22
|
cors_allow_all_origins: bool = Field(default=False, description="Allow all origins (dev only)")
|
23
23
|
cors_allowed_origins: List[str] = Field(default_factory=list, description="Allowed CORS origins")
|
24
24
|
cors_allow_credentials: bool = Field(default=True, description="Allow CORS credentials")
|
25
|
+
cors_allow_headers: List[str] = Field(
|
26
|
+
default_factory=lambda: [
|
27
|
+
"accept",
|
28
|
+
"accept-encoding",
|
29
|
+
"authorization",
|
30
|
+
"content-type",
|
31
|
+
"dnt",
|
32
|
+
"origin",
|
33
|
+
"user-agent",
|
34
|
+
"x-csrftoken",
|
35
|
+
"x-requested-with",
|
36
|
+
],
|
37
|
+
description="CORS allowed headers with common defaults for API usage",
|
38
|
+
)
|
25
39
|
|
26
40
|
# CSRF settings
|
27
41
|
csrf_enabled: bool = Field(default=True, description="Enable CSRF protection")
|
@@ -85,6 +99,7 @@ class SecurityConfig(BaseConfig):
|
|
85
99
|
'CORS_ALLOW_ALL_ORIGINS': self.cors_allow_all_origins,
|
86
100
|
'CORS_ALLOWED_ORIGINS': self.cors_allowed_origins,
|
87
101
|
'CORS_ALLOW_CREDENTIALS': self.cors_allow_credentials,
|
102
|
+
'CORS_ALLOW_HEADERS': self.cors_allow_headers,
|
88
103
|
})
|
89
104
|
|
90
105
|
# Add corsheaders to middleware if not present
|
@@ -299,6 +299,11 @@ def is_ngrok_available_from_env() -> bool:
|
|
299
299
|
return get_ngrok_service().is_ngrok_available_from_env()
|
300
300
|
|
301
301
|
|
302
|
+
def is_tunnel_active() -> bool:
|
303
|
+
"""Check if ngrok tunnel is actually active."""
|
304
|
+
return get_ngrok_service().is_tunnel_active()
|
305
|
+
|
306
|
+
|
302
307
|
def get_effective_tunnel_url() -> Optional[str]:
|
303
308
|
"""Get effective tunnel URL (from manager or environment)."""
|
304
309
|
return get_ngrok_service().get_effective_tunnel_url()
|
@@ -318,5 +323,6 @@ __all__ = [
|
|
318
323
|
"get_tunnel_url_from_env",
|
319
324
|
"get_ngrok_host_from_env",
|
320
325
|
"is_ngrok_available_from_env",
|
326
|
+
"is_tunnel_active",
|
321
327
|
"get_effective_tunnel_url",
|
322
328
|
]
|
@@ -16,9 +16,7 @@ from .models.dashboard import StatCard, StatsCardsWidget
|
|
16
16
|
|
17
17
|
class DashboardManager(BaseCfgModule):
|
18
18
|
"""
|
19
|
-
Dashboard configuration manager for Unfold.
|
20
|
-
|
21
|
-
Based on the working configuration from @old/api__old/api/dashboard/unfold_config.py
|
19
|
+
Dashboard configuration manager for Unfold.
|
22
20
|
"""
|
23
21
|
|
24
22
|
def __init__(self):
|
@@ -50,15 +50,21 @@ class SmartDefaults:
|
|
50
50
|
@staticmethod
|
51
51
|
def get_database_defaults(environment: str = "development", debug: bool = False, engine: str = "sqlite3") -> Dict[str, Any]:
|
52
52
|
"""Get database configuration defaults."""
|
53
|
-
|
53
|
+
defaults = {
|
54
54
|
'ENGINE': 'django.db.backends.sqlite3',
|
55
55
|
'NAME': Path('db') / 'db.sqlite3',
|
56
56
|
'ATOMIC_REQUESTS': True,
|
57
57
|
'CONN_MAX_AGE': 60,
|
58
|
-
'OPTIONS': {
|
59
|
-
'timeout': 20,
|
60
|
-
}
|
58
|
+
'OPTIONS': {}
|
61
59
|
}
|
60
|
+
|
61
|
+
# Add engine-specific options
|
62
|
+
if engine == "django.db.backends.postgresql":
|
63
|
+
defaults['OPTIONS']['connect_timeout'] = 20
|
64
|
+
elif engine == "django.db.backends.sqlite3":
|
65
|
+
defaults['OPTIONS']['timeout'] = 20 # SQLite uses 'timeout'
|
66
|
+
|
67
|
+
return defaults
|
62
68
|
|
63
69
|
@staticmethod
|
64
70
|
def get_cache_defaults() -> Dict[str, Any]:
|
@@ -83,7 +89,10 @@ class SmartDefaults:
|
|
83
89
|
cors_allow_headers=None
|
84
90
|
) -> Dict[str, Any]:
|
85
91
|
"""Get security configuration defaults."""
|
86
|
-
|
92
|
+
from ..models.security import SecurityConfig
|
93
|
+
|
94
|
+
# Base security settings
|
95
|
+
base_settings = {
|
87
96
|
'USE_TZ': True,
|
88
97
|
'USE_I18N': True,
|
89
98
|
'USE_L10N': True,
|
@@ -94,6 +103,43 @@ class SmartDefaults:
|
|
94
103
|
'SECURE_HSTS_INCLUDE_SUBDOMAINS': not debug,
|
95
104
|
'SECURE_HSTS_PRELOAD': not debug,
|
96
105
|
}
|
106
|
+
|
107
|
+
# Add CORS settings if security domains are configured
|
108
|
+
if security_domains:
|
109
|
+
# Combine default CORS headers with custom ones
|
110
|
+
default_headers = SecurityConfig().cors_allow_headers
|
111
|
+
if cors_allow_headers:
|
112
|
+
# Combine and deduplicate headers
|
113
|
+
all_headers = default_headers + cors_allow_headers
|
114
|
+
seen = set()
|
115
|
+
unique_headers = []
|
116
|
+
for header in all_headers:
|
117
|
+
if header.lower() not in seen:
|
118
|
+
seen.add(header.lower())
|
119
|
+
unique_headers.append(header)
|
120
|
+
final_headers = unique_headers
|
121
|
+
else:
|
122
|
+
final_headers = default_headers
|
123
|
+
|
124
|
+
# Create SecurityConfig with appropriate settings
|
125
|
+
security_config = SecurityConfig(
|
126
|
+
cors_enabled=True,
|
127
|
+
cors_allow_all_origins=debug or environment == "development",
|
128
|
+
cors_allowed_origins=security_domains if not (debug or environment == "development") else [],
|
129
|
+
cors_allow_credentials=True,
|
130
|
+
cors_allow_headers=final_headers,
|
131
|
+
ssl_redirect=ssl_redirect or False,
|
132
|
+
)
|
133
|
+
|
134
|
+
# Configure for development if needed
|
135
|
+
if debug or environment == "development":
|
136
|
+
security_config.configure_for_development()
|
137
|
+
|
138
|
+
# Get Django settings from SecurityConfig
|
139
|
+
cors_settings = security_config.to_django_settings()
|
140
|
+
base_settings.update(cors_settings)
|
141
|
+
|
142
|
+
return base_settings
|
97
143
|
|
98
144
|
@classmethod
|
99
145
|
def get_logging_defaults(
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: django-cfg
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.5
|
4
4
|
Summary: 🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one.
|
5
5
|
Project-URL: Homepage, https://djangocfg.com
|
6
6
|
Project-URL: Documentation, https://docs.djangocfg.com
|
@@ -1,9 +1,9 @@
|
|
1
1
|
django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
django_cfg/__init__.py,sha256=
|
2
|
+
django_cfg/__init__.py,sha256=uM881Xrrg-5kgQiCLl-l58cqZChTaf1A8THAVW68CkM,1630
|
3
3
|
django_cfg/apps.py,sha256=k84brkeXJI7EgKZLEpTkM9YFZofKI4PzhFOn1cl9Msc,1656
|
4
4
|
django_cfg/config.py,sha256=cbrtZxfXbI5p-qfdK5eR86OGxIbm4827zYdGIr6LmNg,1399
|
5
5
|
django_cfg/apps/__init__.py,sha256=JtDmEYt1OcleWM2ZaeX0LKDnRQzPOavfaXBWG4ECB5Q,26
|
6
|
-
django_cfg/apps/urls.py,sha256=
|
6
|
+
django_cfg/apps/urls.py,sha256=SZZcic097cUbx32NNPtQNoHWCXZO7IGwwjHaEo6Gbbk,2586
|
7
7
|
django_cfg/apps/accounts/README.md,sha256=YkUYJ3iKMYTmm9ALK2PDnX75SDqZxgnkzNLCD5efxRs,8227
|
8
8
|
django_cfg/apps/accounts/__init__.py,sha256=osecEQhMJVP8ejhZzElNsAqA1fX-GPD3K5_yNwDk6IE,100
|
9
9
|
django_cfg/apps/accounts/__models.py,sha256=65AomWYd78ptQ60drPbodxf0Ue310vmJQpQOPHL6V3E,10161
|
@@ -263,8 +263,8 @@ django_cfg/apps/newsletter/views/subscriptions.py,sha256=marHLbRT6a6e8tMjKVtKG_0
|
|
263
263
|
django_cfg/apps/newsletter/views/tracking.py,sha256=EJlAltpASzc_0nslVPJt-6mnIqI_QCEmz3MQEGPKzmU,2481
|
264
264
|
django_cfg/apps/payments/README.md,sha256=FlyMSGyFnHkUudn99RvQwT0Y77Y-WJgd025wdi5ZB1Y,8290
|
265
265
|
django_cfg/apps/payments/apps.py,sha256=K0y6dYj9VAm-AovX6_3RHt1Iti7ZrgAqB_zui_2_wKU,1736
|
266
|
-
django_cfg/apps/payments/urls.py,sha256=
|
267
|
-
django_cfg/apps/payments/urls_admin.py,sha256=
|
266
|
+
django_cfg/apps/payments/urls.py,sha256=9ld9UlKr32_dGkkl-r6N04uYF7TeK3Sf2f1s2yXaumc,3940
|
267
|
+
django_cfg/apps/payments/urls_admin.py,sha256=TexZtNHwaCjTKd_AvjbwlCvv0P3ayXujnJ9LCG0VwmU,2653
|
268
268
|
django_cfg/apps/payments/admin/__init__.py,sha256=GYeKIzUR2ibzOq_Zl0_rjILkkLt5Jz3gRY9Pps-oN28,887
|
269
269
|
django_cfg/apps/payments/admin/api_keys_admin.py,sha256=p10fESfcGRuwDht_ptB9_siWSVADneEhe5lHppsBHnc,22201
|
270
270
|
django_cfg/apps/payments/admin/balance_admin.py,sha256=EdlngRKYHNEZ-Wa3eM5GGSBnUgtuKh5NK7LDup92Jsg,26354
|
@@ -273,99 +273,140 @@ django_cfg/apps/payments/admin/filters.py,sha256=lH9FYafujLDtAqfpyytwsHxVhRJLo_C
|
|
273
273
|
django_cfg/apps/payments/admin/payments_admin.py,sha256=orSha0A1h3u8gM6mlVLP15k4DlY9sAhc_oic_kh-g9c,19271
|
274
274
|
django_cfg/apps/payments/admin/subscriptions_admin.py,sha256=JH3yk9G--78G3ddRFOuL2-krLeKV8huIiNqla1OgO5c,23255
|
275
275
|
django_cfg/apps/payments/admin_interface/__init__.py,sha256=PNJRbl02SeAOVgqSVNLXa5TcldpG7FvyuVvv-5MmFns,533
|
276
|
-
django_cfg/apps/payments/admin_interface/
|
277
|
-
django_cfg/apps/payments/admin_interface/
|
278
|
-
django_cfg/apps/payments/admin_interface/
|
279
|
-
django_cfg/apps/payments/admin_interface/
|
280
|
-
django_cfg/apps/payments/admin_interface/
|
281
|
-
django_cfg/apps/payments/admin_interface/
|
282
|
-
django_cfg/apps/payments/admin_interface/
|
283
|
-
django_cfg/apps/payments/admin_interface/
|
284
|
-
django_cfg/apps/payments/admin_interface/
|
285
|
-
django_cfg/apps/payments/admin_interface/
|
286
|
-
django_cfg/apps/payments/admin_interface/
|
287
|
-
django_cfg/apps/payments/admin_interface/
|
288
|
-
django_cfg/apps/payments/admin_interface/
|
289
|
-
django_cfg/apps/payments/admin_interface/
|
290
|
-
django_cfg/apps/payments/admin_interface/
|
276
|
+
django_cfg/apps/payments/admin_interface/old/payments/base.html,sha256=qOecB7B9wA4htviUTqzCHeeiKNz1rJOwYzNcvdO8bes,8142
|
277
|
+
django_cfg/apps/payments/admin_interface/old/payments/currency_converter.html,sha256=3uZMFnoGTh-dGsk6WTLpRFABi0Vilj1La-cna1CvUZI,18428
|
278
|
+
django_cfg/apps/payments/admin_interface/old/payments/payment_dashboard.html,sha256=IPg9aJWihrmPA95OBGJz_z36-hfL54yLq1a7xo-upfg,16738
|
279
|
+
django_cfg/apps/payments/admin_interface/old/payments/payment_form.html,sha256=HeqFmb_yZ3Uan-eYvPpMcW8cB-5eE1qkpe8Qf9J21u0,14558
|
280
|
+
django_cfg/apps/payments/admin_interface/old/payments/payment_list.html,sha256=OyxXX_AYTAbVNnce_lbABPfP9LmyfXmI7bJnwbFqprc,19401
|
281
|
+
django_cfg/apps/payments/admin_interface/old/payments/payment_status.html,sha256=wJkL-dw_GVF9ttsYwuoSt5wdm0_zq_VINdC5EPZPuJM,22781
|
282
|
+
django_cfg/apps/payments/admin_interface/old/payments/webhook_dashboard.html,sha256=Dp7sIdKfIIO6gsCARZ-d4Q5igIVdXAvDpN4Jvxc5gLY,23177
|
283
|
+
django_cfg/apps/payments/admin_interface/old/payments/components/dev_tool_card.html,sha256=N7xLp6ztsr4DgkhBlnhEth0K0Risg7ZfcGObn_8f0v0,6637
|
284
|
+
django_cfg/apps/payments/admin_interface/old/payments/components/loading_spinner.html,sha256=PYBzMBdNMfoQDwC-4pLiygS4aXn_DiImv7FsDP8NLjk,704
|
285
|
+
django_cfg/apps/payments/admin_interface/old/payments/components/ngrok_status_card.html,sha256=DK5V_DydX359F6rr_I6amnQrJJwwzf1rl72WT_YYk4g,5463
|
286
|
+
django_cfg/apps/payments/admin_interface/old/payments/components/notification.html,sha256=Vq3oIgknbvnyD0V6fy8d1FcQG5n01rASeF6lUXp1hEU,912
|
287
|
+
django_cfg/apps/payments/admin_interface/old/payments/components/provider_card.html,sha256=dIlOuWdknSVH5zimBsIWiammeKtqmMMN69_ECm-EFoU,4297
|
288
|
+
django_cfg/apps/payments/admin_interface/old/payments/components/status_card.html,sha256=d3xtdOP8qlK-zSYB3g8QGG_FXCPGX1J-blSQJNKtqgw,1411
|
289
|
+
django_cfg/apps/payments/admin_interface/old/static/payments/css/components.css,sha256=EpFf6s_6_QoOj7gxaKHfuiFtZ14Isve9u-q8VvydoGo,12248
|
290
|
+
django_cfg/apps/payments/admin_interface/old/static/payments/css/dashboard.css,sha256=s1Uupb_ixnIFQKljetlcBP-r7_HkeanbNMul_zdrWOo,4539
|
291
|
+
django_cfg/apps/payments/admin_interface/old/static/payments/js/components.js,sha256=3z85iEdT1ZQt9tf4_yJzf20gLaBHvieQ-5f_0di4lGY,19320
|
292
|
+
django_cfg/apps/payments/admin_interface/old/static/payments/js/ngrok-status.js,sha256=QuIb8CGS9MN6dQlPYzq_hran-Wzub-o3nPtPr6hfzrs,5834
|
293
|
+
django_cfg/apps/payments/admin_interface/old/static/payments/js/utils.js,sha256=NgHkyU9mS5GW7CWBDIKmIUjilkD8KdnzaWWC-GtUzss,13256
|
294
|
+
django_cfg/apps/payments/admin_interface/serializers/__init__.py,sha256=NvP8MeCqXvsR7ghQehtjXlIS5hOpTI9aMhBMk8ab3lA,981
|
295
|
+
django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py,sha256=_Q1lrqBjuF09Dpo5Jy-jrB-cYFEYwl54b1jVdeqiAMo,5089
|
296
|
+
django_cfg/apps/payments/admin_interface/serializers/webhook_serializers.py,sha256=3jF9TP873oe0J1GS7udeD5B7GQ6LlhXXMaxBSIV50U0,3727
|
297
|
+
django_cfg/apps/payments/admin_interface/templates/payments/base.html,sha256=xNU-E1D6FFgK2v6T8GY0oFD0gPjdCCIj2HeinjQaSVU,5799
|
298
|
+
django_cfg/apps/payments/admin_interface/templates/payments/payment_dashboard.html,sha256=-cntOiZIQA_mXssk5gSoR5q-GbX1FnhyhlQg0o9lslY,9902
|
299
|
+
django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html,sha256=fDH1tCRBQXWDGYuGFJA-j31p6qXsIKi3ZhWcnsfvtbo,12414
|
300
|
+
django_cfg/apps/payments/admin_interface/templates/payments/payment_list.html,sha256=b6-QEyQSaUz1Il7nHnNFydYdi3qfqKlMgvy1Wy7LO_E,10962
|
301
|
+
django_cfg/apps/payments/admin_interface/templates/payments/webhook_dashboard.html,sha256=xNzRsh_3SWGt6haziAFABDbkhEPngqIsTLXqlkprWuY,15143
|
302
|
+
django_cfg/apps/payments/admin_interface/templates/payments/components/dialog.html,sha256=wM7LBdDGBNSH9-Cz4l6rKzZ3h-Auwt2cv5prK2V9RsU,3641
|
303
|
+
django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_help_dialog.html,sha256=_jCmEupz-tsz6_8tmg0SlYJpRPW0HuUdO7IQfIr7RGc,5828
|
304
|
+
django_cfg/apps/payments/admin_interface/templates/payments/components/ngrok_status.html,sha256=ZQlWm6jUUEsIBih0GWmA-H0NHkohK4AgpTkEAvOdkNg,7535
|
305
|
+
django_cfg/apps/payments/admin_interface/templates/payments/components/status_card.html,sha256=vQlDjsA72HmrewkELUABGL72eWtvs4PAM4T5-wo58PQ,2006
|
306
|
+
django_cfg/apps/payments/admin_interface/views/__init__.py,sha256=Wv8wDjbSXi3Jv2qHa680hZvv4Qm6DAx1aIQ7fDcjoos,784
|
307
|
+
django_cfg/apps/payments/admin_interface/views/base.py,sha256=sMkoPf9m2GIttb2Y9KIgHM4HJxj1VI-44gin7KGEtCA,3495
|
308
|
+
django_cfg/apps/payments/admin_interface/views/dashboard.py,sha256=VMgjHvA83o1WXJH99ZJOXI92cYWHmXJ7bnQj6FNHcwE,1830
|
309
|
+
django_cfg/apps/payments/admin_interface/views/forms.py,sha256=1kMIRd3BoKFFJe1ssfWWsi1e-bdFeRSmdCrm90rFfWg,2976
|
310
|
+
django_cfg/apps/payments/admin_interface/views/api/__init__.py,sha256=0lwYw-BO_jHZrlwWZbJAVQUCkIMzSDg7KkBxjo1bu8c,506
|
311
|
+
django_cfg/apps/payments/admin_interface/views/api/payments.py,sha256=PYzAryU00MI5VPCtoX77D7E4MzIeuIVOfSuwaJYI86A,7141
|
312
|
+
django_cfg/apps/payments/admin_interface/views/api/stats.py,sha256=0kUT2GrfDiZ4DF6tSpRSDnb7pAsvk40psE_xdna0Hsg,8019
|
313
|
+
django_cfg/apps/payments/admin_interface/views/api/users.py,sha256=QW3lO5EfmecCh6sVxHGuH_v6VHOh-jGcpny6JaJvEio,2244
|
314
|
+
django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py,sha256=j-iLPP76EH_7-54MNLS_Z0TVY_Tt5xzFTRLSkZhr8YU,10295
|
315
|
+
django_cfg/apps/payments/admin_interface/views/api/webhook_public.py,sha256=w-_62BHPetd5C93b9VnPpojBJNEufdBgw1_0IYjReYw,2466
|
291
316
|
django_cfg/apps/payments/config/__init__.py,sha256=4soiOM2ELb72zzGAR4C0eC5kkJ5KX2y6N5Ezf-aqqSA,946
|
292
317
|
django_cfg/apps/payments/config/django_cfg_integration.py,sha256=Hg5N4Wbu6XoqTABysLmfqhH1ekKP6Zy3wpI8yEiP9Ys,6553
|
293
|
-
django_cfg/apps/payments/config/helpers.py,sha256=
|
318
|
+
django_cfg/apps/payments/config/helpers.py,sha256=vA9AcdtwUhtdb-4Gtc6H8c5iuqgvKjkuBocllTilBEI,4814
|
294
319
|
django_cfg/apps/payments/config/constance/__init__.py,sha256=CPDUPosm_gLetrr6uAVFl_ofOF7ILVPje0MKKAd0RS4,658
|
295
320
|
django_cfg/apps/payments/config/constance/config_service.py,sha256=utfq4ifNRxRuuZHLVtTkGj9bqKvyDDeWvvGsgyacu-k,4139
|
296
321
|
django_cfg/apps/payments/config/constance/fields.py,sha256=v45-3ulrrxUesj9r3WEuXbAZIu4uZE0N4Tn-0VaoGfY,2473
|
297
322
|
django_cfg/apps/payments/config/constance/settings.py,sha256=PTzAPwbTV9FX8LwYY0OYkuvbWcIVU47XEeDqTbbbwv0,6854
|
298
323
|
django_cfg/apps/payments/management/__init__.py,sha256=1qi5wv2KVLIKoGVzItrB78D8xrbf3ruwO3_kGZ7bLh4,30
|
299
324
|
django_cfg/apps/payments/management/commands/__init__.py,sha256=1pri3qN5PLFIRSwxLkZJ7Bc4W4UyiKBZCcJjqy1IUr0,22
|
300
|
-
django_cfg/apps/payments/management/commands/
|
301
|
-
django_cfg/apps/payments/management/commands/
|
325
|
+
django_cfg/apps/payments/management/commands/cleanup_expired_data.py,sha256=BLk7n5yKXo13lpOyqFH6ZqYTyvmXV7Z4Bg-Kr2oP8Dk,15566
|
326
|
+
django_cfg/apps/payments/management/commands/currency_stats.py,sha256=Z2TAtT3r22VRzqI5VnVg0b-B7HVE-hfQ0iAd56YrWl0,17852
|
327
|
+
django_cfg/apps/payments/management/commands/manage_currencies.py,sha256=1s9z5PIWuVDcqixyD4gtmfo0CshqlO8FDPS3QLBgcr4,14725
|
328
|
+
django_cfg/apps/payments/management/commands/manage_providers.py,sha256=67NDKE2yI5oOvXbHpWuJmRPwAkMqZf1bV2zjZ-kfqQ0,15724
|
329
|
+
django_cfg/apps/payments/management/commands/process_pending_payments.py,sha256=yfmO9sRulGfZQi-tIdf2qWniCU1HhqtGxBY-j_N4UkM,13308
|
330
|
+
django_cfg/apps/payments/management/commands/test_providers.py,sha256=qpXTiKoErZBIXz2KtiWqa4IwWbK8c5WuABE2tDR_eGY,18475
|
302
331
|
django_cfg/apps/payments/middleware/__init__.py,sha256=eL5TmlCKmpW53Ift5rtwS8ss1wUqp4j2gzjGhcAQUQY,380
|
303
|
-
django_cfg/apps/payments/middleware/api_access.py,sha256=
|
332
|
+
django_cfg/apps/payments/middleware/api_access.py,sha256=bXKKJwxp_mh9HjGrqNeYJKGOuAGYYq7VmgM7f1UA8sc,15513
|
304
333
|
django_cfg/apps/payments/middleware/rate_limiting.py,sha256=U6mEyonU3JAK0LZjZqp-q4KgHnXdWpUJT4LJ1jCeQRQ,14813
|
305
334
|
django_cfg/apps/payments/middleware/usage_tracking.py,sha256=ZDoftaOlV8OfUs05HkQZiE_WWAYeTzDbsiuWKI9pfAg,11814
|
306
|
-
django_cfg/apps/payments/migrations/0001_initial.py,sha256=
|
335
|
+
django_cfg/apps/payments/migrations/0001_initial.py,sha256=sjSu5JCT9P3bVB3YrYmAMIUnYVTE7Avyl_t9jhk843g,48741
|
307
336
|
django_cfg/apps/payments/migrations/__init__.py,sha256=OHlzxEGDJYKZz82orZXnh77xy-Okv6FcG3EKMfg9LzU,21
|
308
337
|
django_cfg/apps/payments/models/__init__.py,sha256=7x38zrZjYxH3tV079SthGZeIjuyNB5hbqirT03-ZxuE,1443
|
309
338
|
django_cfg/apps/payments/models/api_keys.py,sha256=dAS9XSOwAOBK40qnjrElz04Up9sqNGNg_0k13pnUjbs,5344
|
310
|
-
django_cfg/apps/payments/models/balance.py,sha256=
|
339
|
+
django_cfg/apps/payments/models/balance.py,sha256=esjkt-VIdWBu09eqxTwP5WmcGdI4aCbXSfjoTHwYZec,8084
|
311
340
|
django_cfg/apps/payments/models/base.py,sha256=XXMxqHe7OYmzVBW7g8nXgE41wJMigkRtgkPYGTx53oA,2212
|
312
341
|
django_cfg/apps/payments/models/currencies.py,sha256=6ONWpBoZUOFVIHGzj_j1LZsI0yRRhk1x9sNn6kINAA8,8458
|
313
342
|
django_cfg/apps/payments/models/payments.py,sha256=qvSBAl5YSqttZCAgaYCIyP23KiCJafzt0HZEJoAkNpg,11321
|
314
|
-
django_cfg/apps/payments/models/subscriptions.py,sha256=
|
343
|
+
django_cfg/apps/payments/models/subscriptions.py,sha256=o3C3CIupcz3lyvg_hszvHQaiWR7RJQ-pP1eebIDJfBE,10332
|
315
344
|
django_cfg/apps/payments/models/tariffs.py,sha256=b2iDC7hBdZR8TX8aEskM5nTEa5_f0H6-j6wZdcbHdyk,6471
|
316
345
|
django_cfg/apps/payments/models/managers/__init__.py,sha256=56kdXtRJOLHhtnY4arYi15fEAmWWrWJP0F8kn8okpzU,1090
|
317
|
-
django_cfg/apps/payments/models/managers/api_key_managers.py,sha256=
|
318
|
-
django_cfg/apps/payments/models/managers/balance_managers.py,sha256=
|
346
|
+
django_cfg/apps/payments/models/managers/api_key_managers.py,sha256=TuJqB6zaHnR1Um6l-tZfUtc9Wit3iB7aaDUEF4vnCbY,10547
|
347
|
+
django_cfg/apps/payments/models/managers/balance_managers.py,sha256=84iV5cfSWiETyfLXoSK_s6A1lRv_dsOxu_n6V57gbEY,20298
|
319
348
|
django_cfg/apps/payments/models/managers/currency_managers.py,sha256=ybLPx24rdnXo8jhCybq_3p5_si9BAhOSwIYib3tey-g,13061
|
320
|
-
django_cfg/apps/payments/models/managers/payment_managers.py,sha256=
|
321
|
-
django_cfg/apps/payments/models/managers/subscription_managers.py,sha256=
|
349
|
+
django_cfg/apps/payments/models/managers/payment_managers.py,sha256=Bb782Z9MCNlawitUdAa_97WXBfqQtqHzl9pG1l7-fCc,17691
|
350
|
+
django_cfg/apps/payments/models/managers/subscription_managers.py,sha256=_hDmneMMTtvo2htNDDZOxuoYyxNKP46JC0MrXLwv5f8,21688
|
322
351
|
django_cfg/apps/payments/services/__init__.py,sha256=QUFVfTwliUvQWtaw0JqDss_LDamgNZwaej8fzL6Qzco,6147
|
323
|
-
django_cfg/apps/payments/services/cache/__init__.py,sha256=
|
324
|
-
django_cfg/apps/payments/services/
|
352
|
+
django_cfg/apps/payments/services/cache/__init__.py,sha256=eUUtnNU1gPyJOAHaUeaDD5WOnPb0aSI7klvTGbgccOE,354
|
353
|
+
django_cfg/apps/payments/services/cache_service/__init__.py,sha256=Lp29sQUzuW7tKfrT6JBQYZgQ_ko4hqm2XozQ0XkC5Gc,4291
|
354
|
+
django_cfg/apps/payments/services/cache_service/api_key_cache.py,sha256=kVLUC5WbRpxXNGiKfcgnR7j4kBH861KpMTuGZJo8ADY,1292
|
355
|
+
django_cfg/apps/payments/services/cache_service/interfaces.py,sha256=7sqTRBSX4BPZ_Oxw6RJTyoLLHTLB5__adyNFZeAzjBI,758
|
356
|
+
django_cfg/apps/payments/services/cache_service/keys.py,sha256=U37Dwkboxn0E_B5MpfcY0RobIzhC5SQklE-jfkBMcOg,1700
|
357
|
+
django_cfg/apps/payments/services/cache_service/rate_limit_cache.py,sha256=MjFn5q23WjupNI2wZ9KpUJZR5TxX1zkYp6Cu1okZIfQ,1785
|
358
|
+
django_cfg/apps/payments/services/cache_service/simple_cache.py,sha256=aoAVHLfDUpAF0DP7UQYywGKjg8KzPjzu5xxMqRmN8zU,3258
|
325
359
|
django_cfg/apps/payments/services/core/__init__.py,sha256=CY2M4ID3rqcdpbokQSdO_fxtdCfHjsGgBsTznyGPw3k,526
|
326
|
-
django_cfg/apps/payments/services/core/balance_service.py,sha256=
|
360
|
+
django_cfg/apps/payments/services/core/balance_service.py,sha256=WjXYfTGlSSiX047IZSoeHvagSnID9qpSrjVueQUabIA,18636
|
327
361
|
django_cfg/apps/payments/services/core/base.py,sha256=BBOUWPx3dS7u7Ix7KaAyuacCTfXM9jympUuaRSGP4-M,5448
|
328
362
|
django_cfg/apps/payments/services/core/currency_service.py,sha256=1E6uX9rhJyycfktxunkHPD3nhCLWLchXZoVXiwjGiOM,18174
|
329
|
-
django_cfg/apps/payments/services/core/payment_service.py,sha256=
|
363
|
+
django_cfg/apps/payments/services/core/payment_service.py,sha256=X8-yXpBFnvfSVEidMrj42RRvQRZFSKu0cTTrRTtCU0s,18727
|
330
364
|
django_cfg/apps/payments/services/core/subscription_service.py,sha256=1kfxaW-BybIwQkbEpizxNJG_Egz6aF1qCVF2mX4v7Q4,21125
|
331
365
|
django_cfg/apps/payments/services/core/webhook_service.py,sha256=5Ly44QDUQJYm7V5xkOoKaPzobwf5MkLjFI6uamrpTY0,16222
|
332
366
|
django_cfg/apps/payments/services/integrations/__init__.py,sha256=sD48dDem1rqR8jALgrShBfm0-VMhvbK32q4_ufGElq8,663
|
333
|
-
django_cfg/apps/payments/services/integrations/ngrok_service.py,sha256=
|
367
|
+
django_cfg/apps/payments/services/integrations/ngrok_service.py,sha256=dxK6dwC2IPknwu6-RlX9v8KK-D6WK922LtVxHtxxxik,1310
|
334
368
|
django_cfg/apps/payments/services/integrations/providers_config.py,sha256=Uuzg8RQAs28csjiDKuk_dnx5ThyB71BJYZmy4ZNCnKs,3264
|
335
369
|
django_cfg/apps/payments/services/providers/__init__.py,sha256=KyBHEiYmIXgWDMDmODSI0dqLBY4Sl3bsBH0Hebx8I4U,443
|
336
370
|
django_cfg/apps/payments/services/providers/base.py,sha256=LT1ypvXQgvDZNZYkPav5QxkeOsdtz2NzWUj-Pae1Fi0,9929
|
337
371
|
django_cfg/apps/payments/services/providers/nowpayments.py,sha256=bfOZZN0HRb3WiwWqm6Aq2ImAqkDnwvhKlKCxsvawWmA,17525
|
338
|
-
django_cfg/apps/payments/services/providers/registry.py,sha256=
|
372
|
+
django_cfg/apps/payments/services/providers/registry.py,sha256=K0v7chazH3MHDNpVPyWayq8EBgO7yTiV5Upfw1W9gVU,16573
|
339
373
|
django_cfg/apps/payments/services/types/__init__.py,sha256=TCx_laKqtUbe2o3Eu_v73TMkbL7fIJ__VYvE_U3xrvw,1634
|
340
374
|
django_cfg/apps/payments/services/types/data.py,sha256=rjXSsjBqDMVQyx5vRynIbCWWO7A37A7G0iVgohpj4qs,9582
|
341
375
|
django_cfg/apps/payments/services/types/requests.py,sha256=0s-5kPdtInnXJE_0lVUlIIGHDM1Ua4bLoG84qxze_i4,6786
|
342
376
|
django_cfg/apps/payments/services/types/responses.py,sha256=3FdyNOGQEoI8uZNjBPhhw1XtXqs-2lo02qZ5TQg-CqY,7947
|
343
377
|
django_cfg/apps/payments/services/types/webhooks.py,sha256=y7R1CoAZBRn71y9Mc8k6VVj5rjpbQ1ZHJkNHD1ZyK3M,10095
|
344
378
|
django_cfg/apps/payments/signals/__init__.py,sha256=rSso5kyUszEtlbYiw6A72XU2mK1gmB7O9n2lQb2GPWQ,933
|
345
|
-
django_cfg/apps/payments/signals/api_key_signals.py,sha256=
|
346
|
-
django_cfg/apps/payments/signals/balance_signals.py,sha256=
|
379
|
+
django_cfg/apps/payments/signals/api_key_signals.py,sha256=fR61t2mOAORD-ugWl4u6ZSP5nuykahnyIqh1uWjRnbY,8587
|
380
|
+
django_cfg/apps/payments/signals/balance_signals.py,sha256=yoWCse6vZfaPkfQVnOIag2aGB23IAb91pzqe29IuFyI,6257
|
347
381
|
django_cfg/apps/payments/signals/payment_signals.py,sha256=uV5v1HlHKxP4A_bpIC1TkTHkj28nEsP3gbRJx3ca0iI,5449
|
348
382
|
django_cfg/apps/payments/signals/subscription_signals.py,sha256=erzd3UczXGKamUecq2r2DeLm-0ycpFANy0nO948qmwg,9061
|
349
|
-
django_cfg/apps/payments/static/payments/
|
350
|
-
django_cfg/apps/payments/static/payments/
|
351
|
-
django_cfg/apps/payments/static/payments/js/
|
352
|
-
django_cfg/apps/payments/static/payments/js/
|
383
|
+
django_cfg/apps/payments/static/payments/js/api-client.js,sha256=p4No-Fl86ww8XepNMGAa0MaPbGknAoDqqiJILVszc1Y,14059
|
384
|
+
django_cfg/apps/payments/static/payments/js/ngrok-status.js,sha256=icSv2FB_zFgOFGNZftklgWO_oH9Ryw7bXs-hyqXyThY,1531
|
385
|
+
django_cfg/apps/payments/static/payments/js/payment-dashboard.js,sha256=4KDzaU1mTBgk7Xj5Pxy6FUG4HnLWa9G6PeUvUv9jnqs,1601
|
386
|
+
django_cfg/apps/payments/static/payments/js/payment-form.js,sha256=Q8mm4Uj3Q9ctjZYQ44cuPdfAaiRdTyaWLMIsQQafYsE,6649
|
387
|
+
django_cfg/apps/payments/static/payments/js/payment-list.js,sha256=Dz_2Bn0JQ9N7biv_Sd92vXIU-IZHKn1_lFA8AFm_amc,3269
|
388
|
+
django_cfg/apps/payments/static/payments/js/webhook-dashboard.js,sha256=kpmoks7t_Lf0jIEHtnRoWBLX4rU5OL8e1AFBDlxwlUU,5271
|
353
389
|
django_cfg/apps/payments/templatetags/__init__.py,sha256=K8PcAAZu-q6LgCbrH29BSxwsWH0GQx-PhT7J-hBATMM,24
|
354
390
|
django_cfg/apps/payments/templatetags/payment_tags.py,sha256=hSeWW8Q8ASHrAd6eISxa1LsusVN6Z4IH-sGAhFwd3lo,11902
|
355
391
|
django_cfg/apps/payments/views/api/__init__.py,sha256=gKd8dE4i-ebCxjquFHI6UaW6KKgV0RE3RlH22c8O4pU,2005
|
356
|
-
django_cfg/apps/payments/views/api/api_keys.py,sha256=
|
392
|
+
django_cfg/apps/payments/views/api/api_keys.py,sha256=yN7DljcQZKNvKzk7MwjJHM6LnmRHwBXfr2KEShC2RYA,13835
|
357
393
|
django_cfg/apps/payments/views/api/balances.py,sha256=a9FsmNjopy8702xXu1gFjWNc6XHkqIoc62HfTG65IdI,13089
|
358
|
-
django_cfg/apps/payments/views/api/base.py,sha256=
|
359
|
-
django_cfg/apps/payments/views/api/currencies.py,sha256=
|
360
|
-
django_cfg/apps/payments/views/api/payments.py,sha256=
|
361
|
-
django_cfg/apps/payments/views/api/subscriptions.py,sha256
|
394
|
+
django_cfg/apps/payments/views/api/base.py,sha256=XarvJUnifIB40-gxpLWhQt8WS50EISj6ZNtbw4j_1u0,10388
|
395
|
+
django_cfg/apps/payments/views/api/currencies.py,sha256=so7QiFNw5ixtfZc4PsKXteXW7WwwANTs50hTXlRaU2I,13790
|
396
|
+
django_cfg/apps/payments/views/api/payments.py,sha256=_CvDbmGDR7vwn0BrkVJ_KIjItSMVmTLdfVEeOwQn__o,14624
|
397
|
+
django_cfg/apps/payments/views/api/subscriptions.py,sha256=-0l80BH-csD482EFjgrXREJMZ6ongOiJQevjnBuiV48,16642
|
362
398
|
django_cfg/apps/payments/views/api/webhooks.py,sha256=FrSYuz07r2M0HE9QcG71T8WlqDMX9gKT_XqRXLd71DE,17288
|
399
|
+
django_cfg/apps/payments/views/overview/__init__.py,sha256=2SbWIJzExZFsOiBWnaIMURUhXnJDJ8mBcueuKFkBhJw,987
|
400
|
+
django_cfg/apps/payments/views/overview/serializers.py,sha256=uxDlzMIrn7hhS0aNExuR2YHZ5Tl1LgeFBfwZwLEu4lo,9654
|
401
|
+
django_cfg/apps/payments/views/overview/services.py,sha256=w2SO1UBmNZlXERjJZYIRteGPTwj8AiwUQCBWsTpCAcY,16173
|
402
|
+
django_cfg/apps/payments/views/overview/urls.py,sha256=6Ldh8-hrkUakZDkZ7eMXpcYrdAnR8xs2UpmyDUOk4z8,1212
|
403
|
+
django_cfg/apps/payments/views/overview/views.py,sha256=F1chPhhQYeey1Wpg7z7fKvlzqT5Nxr2dKIc5PioLc-U,7991
|
363
404
|
django_cfg/apps/payments/views/serializers/__init__.py,sha256=mPY55D6bhRLyPHw6ORrEqtIdgyU2Uezg00EhgD5HK40,2310
|
364
|
-
django_cfg/apps/payments/views/serializers/api_keys.py,sha256=
|
365
|
-
django_cfg/apps/payments/views/serializers/balances.py,sha256
|
366
|
-
django_cfg/apps/payments/views/serializers/currencies.py,sha256=
|
367
|
-
django_cfg/apps/payments/views/serializers/payments.py,sha256=
|
368
|
-
django_cfg/apps/payments/views/serializers/subscriptions.py,sha256=
|
405
|
+
django_cfg/apps/payments/views/serializers/api_keys.py,sha256=PjJJJPMX6b1PD2ppJ6vWSPLLGbEhE1_e3E8Rx5U0bJ0,14873
|
406
|
+
django_cfg/apps/payments/views/serializers/balances.py,sha256=-8TnPFH-Am2xYclvK19kZenXTp7AjaE6tetyDaSREW0,9414
|
407
|
+
django_cfg/apps/payments/views/serializers/currencies.py,sha256=OzPU8BipZGG7I8PLm1IQOAuPwe9WZDMGNFpM784-YWc,10539
|
408
|
+
django_cfg/apps/payments/views/serializers/payments.py,sha256=WvFlTyjIG-HIecYD4320AMKhkCp4J_eQ8erQdL3kIqQ,12542
|
409
|
+
django_cfg/apps/payments/views/serializers/subscriptions.py,sha256=b5hrFUjqKOxnpWd8nrOzNCwQkBxNyZPNw9gGxVpTbFc,13620
|
369
410
|
django_cfg/apps/payments/views/serializers/webhooks.py,sha256=u6YUQoCiTXYWlPkaov7fNwJMopG5uGc7QAE6OQLP3zc,6000
|
370
411
|
django_cfg/apps/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
371
412
|
django_cfg/apps/support/admin.py,sha256=-fcegtqoCcwPiBXwyNLMftcYCTTbTRRBpWItyeNNkDY,8827
|
@@ -425,11 +466,11 @@ django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0S
|
|
425
466
|
django_cfg/cli/commands/create_project.py,sha256=8Jg4rfnGCINTd6ebBqx-WXG57AIB5C2yY5D3JQAtpyI,21029
|
426
467
|
django_cfg/cli/commands/info.py,sha256=AaLbFFOjHwqiIzZChPxfD3ASZZs1IAD-0RJQaLo2PC0,4925
|
427
468
|
django_cfg/core/__init__.py,sha256=eVK57qFOok9kTeHoNEMQ1BplkUOaQ7NB9kP9eQK1vg0,358
|
428
|
-
django_cfg/core/config.py,sha256=
|
469
|
+
django_cfg/core/config.py,sha256=u1g6mdUb4hHdUo8lkj3Z102E15lef3q87q2jWv4HdbE,31743
|
429
470
|
django_cfg/core/environment.py,sha256=MAoEPqIPsLVhSANT2Bz4nnus2wmbMW0RCOQxhQfDrDc,9106
|
430
471
|
django_cfg/core/exceptions.py,sha256=RTQEoU3PfR8lqqNNv5ayd_HY2yJLs3eioqUy8VM6AG4,10378
|
431
|
-
django_cfg/core/generation.py,sha256=
|
432
|
-
django_cfg/core/validation.py,sha256=
|
472
|
+
django_cfg/core/generation.py,sha256=TVRm_s9NaajekkfmIbk2sTlN2je39OALzzqePBxniyA,26427
|
473
|
+
django_cfg/core/validation.py,sha256=QeM1k6jjlFp4Sc9FAfK3SS_3jyP6orXRqA7XBt24Q6w,6574
|
433
474
|
django_cfg/core/integration/README.md,sha256=3V27xNWoGQkauixJGW8TAE8p0FB8iCdt6zI4G4Nnssw,10699
|
434
475
|
django_cfg/core/integration/__init__.py,sha256=Il-UZ1dR2cn1Ev_CBMUVfoOxFTCoi__0Z3kmhkx_Na8,1505
|
435
476
|
django_cfg/core/integration/commands_collector.py,sha256=-9ppg2jYSrTC35Ijm5vAHUcNZM6AkayuPkfw715Ca2Q,8325
|
@@ -438,7 +479,7 @@ django_cfg/core/integration/version_checker.py,sha256=NrrbyTAtIkZdNPQHO2PMQjrp8D
|
|
438
479
|
django_cfg/core/integration/display/__init__.py,sha256=YwU9nmXOcDJL3q0wW5Q_59gLh_BXPsOfDlT3sZqHWZU,315
|
439
480
|
django_cfg/core/integration/display/base.py,sha256=67ABqa1WErBcFTROFy8fBzwvYYmHiloBk7-Hpexd2rE,5720
|
440
481
|
django_cfg/core/integration/display/ngrok.py,sha256=QdsIGTA6S_3shIYaxMRtcUibb5L4nMUrFMFg7q9OWA0,6242
|
441
|
-
django_cfg/core/integration/display/startup.py,sha256=
|
482
|
+
django_cfg/core/integration/display/startup.py,sha256=E0xs0aR8g1eraptverRS8k6BoErWZcbZeJESr6PG5uI,34585
|
442
483
|
django_cfg/management/__init__.py,sha256=NrLAhiS59hqjy-bipOC1abNuRiNm5BpKXmjN05VzKbM,28
|
443
484
|
django_cfg/management/commands/__init__.py,sha256=wc5DFEklUo-wB-6VAAmsV5UTbo5s3t936Lu61z4lojs,29
|
444
485
|
django_cfg/management/commands/auto_generate.py,sha256=wjqS2dq8B5fuftHjtsXTc-vk3CkOYVGUESMSw4MCWHw,14343
|
@@ -452,7 +493,7 @@ django_cfg/management/commands/migrator.py,sha256=Etdhl1EKSMWSxyQ70dX48bhYeQiIib
|
|
452
493
|
django_cfg/management/commands/rundramatiq.py,sha256=zYKg6U8PRx09NsW0tK0po9fYkmvNiEzGzwYtramH_gc,9126
|
453
494
|
django_cfg/management/commands/runserver_ngrok.py,sha256=8S711fS0pMasp8F8yigraDJLNnyfqFnrUnDzH2s8Gpk,6560
|
454
495
|
django_cfg/management/commands/script.py,sha256=aXyum1mdoPPOh-4YySRhianjbuAfe19Dyry72E6IQU4,17110
|
455
|
-
django_cfg/management/commands/show_config.py,sha256=
|
496
|
+
django_cfg/management/commands/show_config.py,sha256=6Yf-hAnN4rl_fbaidqzDhhH1kVYwfKKcaf_KtrAE4hY,8894
|
456
497
|
django_cfg/management/commands/show_urls.py,sha256=dqqJg2wwSoKTWGsyacXsFotaI9KahZVfYDGRIJa2riw,12342
|
457
498
|
django_cfg/management/commands/superuser.py,sha256=EpcaOkGMHoBRz2wuy4tAHi7YgEdUMGlTZMRIGXbUhcg,11194
|
458
499
|
django_cfg/management/commands/task_clear.py,sha256=4frvB97yKbGQMiFfYPPlxI4RudFogQOGzTRXbTeDXXY,8018
|
@@ -460,12 +501,13 @@ django_cfg/management/commands/task_status.py,sha256=hhZ0LyiOLoG9luT0hOEA12mpJxr
|
|
460
501
|
django_cfg/management/commands/test_email.py,sha256=nBaQLQz-yQx0xgwRJKuxAdChpotLILJm4FKqNOR3qes,3263
|
461
502
|
django_cfg/management/commands/test_telegram.py,sha256=M7wEhOgtAGnhn6y7NlbPsGw1uvVW0PcZWaGdTffaZ-k,2139
|
462
503
|
django_cfg/management/commands/test_twilio.py,sha256=ukSecCOohO98suVk5Qt5Fd7DlefVkx9sT_U2JykQZA4,4226
|
463
|
-
django_cfg/management/commands/tree.py,sha256=
|
504
|
+
django_cfg/management/commands/tree.py,sha256=Gu9H6YJogX7Z9vnGWDY4jCh7GOr381P5qzHKmALzJUY,13253
|
464
505
|
django_cfg/management/commands/validate_config.py,sha256=KNW1hGGGmNNdpMxwLfsTRIcko-HhfTp06qq8JazJvxk,7475
|
465
506
|
django_cfg/middleware/README.md,sha256=7XukH2HREqEnNJ9KDXhAcSw6lfpZ3gvKKAqGYvSivo4,3886
|
466
|
-
django_cfg/middleware/__init__.py,sha256=
|
507
|
+
django_cfg/middleware/__init__.py,sha256=FxYcAAVh8z-WM-MkipWAwfOwQx2b1rSPyi3Mt9xTUP0,278
|
467
508
|
django_cfg/middleware/pagination.py,sha256=RfLka1DbmLD-zznSAqayGD08x95ikcnkzp9LT5Jj5Bs,8655
|
468
509
|
django_cfg/middleware/public_endpoints.py,sha256=EHJKzlYwakeU3hSPBJ53FZn8Ub-jwENCVSfFDJt3kAk,6915
|
510
|
+
django_cfg/middleware/static_nocache.py,sha256=drpwoKN8zGH1-p4ltMZozL5fUyByzumqLJ7MkJBENnA,1888
|
469
511
|
django_cfg/middleware/user_activity.py,sha256=7XVSnnIVfz-Hucx-YWRODcXd3qDH8Y8E__-6zYWLxqI,6153
|
470
512
|
django_cfg/models/__init__.py,sha256=du24ZdqKdvc3VNXjgufEz_6B6gxdHtlqVHG4PJWaOQM,419
|
471
513
|
django_cfg/models/api.py,sha256=bCsQR3CVsAUs78m1Q1aFpPTNbvGtr1cq-fuxdCK2-JI,4596
|
@@ -482,9 +524,9 @@ django_cfg/models/jwt.py,sha256=3R_dpLmVZIcH4zdtwA4qKnuCB8RZQACrgsbbgWY2q4c,9025
|
|
482
524
|
django_cfg/models/limits.py,sha256=nUfvyPykwKR38ZOlIFqlNGRmfV8RO5hiUrhDH6FCHJw,7449
|
483
525
|
django_cfg/models/logging.py,sha256=4vZF-G9rPmXMxxtUx_ad7Esvgbe8a_5Dl692Yg0fL4A,10636
|
484
526
|
django_cfg/models/ngrok.py,sha256=MVgcKWx0DRSW0QcwhiSx2vVwTSG49vbVrzPkZqDK-zw,3575
|
485
|
-
django_cfg/models/payments.py,sha256=
|
527
|
+
django_cfg/models/payments.py,sha256=i4E1dGygp6mE8_yCPJPp-GsQm3D7qmTHKn91LdBCDx8,7214
|
486
528
|
django_cfg/models/revolution.py,sha256=16fQ09iovrmlepNcTr2J0hZ-ShdMnMSQ2rTXa60yrus,8134
|
487
|
-
django_cfg/models/security.py,sha256=
|
529
|
+
django_cfg/models/security.py,sha256=pJSgxKTINEY5vZR9IbaXhxkW2hh2lk8-E1tqMJNGqWM,5158
|
488
530
|
django_cfg/models/services.py,sha256=fj9JjrJFrlL4DMnMbx_D8JiiZpz4E5uBqmhquAxau7c,13159
|
489
531
|
django_cfg/models/tasks.py,sha256=zFvQaikXi-W-iN7eqR6ZGNiKJnPgOL3yl9RRis-5qZs,17160
|
490
532
|
django_cfg/modules/__init__.py,sha256=Ip9WMpzImEwIAywpFwU056_v0O9oIGG7nCT1YSArxkw,316
|
@@ -492,7 +534,7 @@ django_cfg/modules/base.py,sha256=A7fAp3eEBbs9zxVq96k9FotWnqHqZA5b-kH9-hOJ1zo,59
|
|
492
534
|
django_cfg/modules/django_email.py,sha256=Kk2B1Y73xlbpNKCDkU2uBT01iVANjKpmVlKbRScVCs4,18059
|
493
535
|
django_cfg/modules/django_health.py,sha256=7QzuQ6WyjWYj6lecd4auwRvEyrMUL7N6hiAp-tLyoY4,8923
|
494
536
|
django_cfg/modules/django_logger.py,sha256=ulODtdRnjCTM6OaF4QR-GUzXouHdQCrqDMjPwRUUuX8,8910
|
495
|
-
django_cfg/modules/django_ngrok.py,sha256=
|
537
|
+
django_cfg/modules/django_ngrok.py,sha256=IHR4MsmHGA1s7VaTkcBKhkfA7mcIUBr1gWxO5NQGhYc,10642
|
496
538
|
django_cfg/modules/django_tasks.py,sha256=SBas2juL6RfDL7ttm4xAxJ7bvS052WmUzixNHPlzJVo,17328
|
497
539
|
django_cfg/modules/django_telegram.py,sha256=qz3EOJnCR_YTJVIu2-Iq8--cla6mU-WPohquQ26eHDQ,16367
|
498
540
|
django_cfg/modules/dramatiq_setup.py,sha256=Jke4aO_L1t6F3OAc4pl12zppKzL0gb1p6ilfQ3zUIZ8,454
|
@@ -538,7 +580,7 @@ django_cfg/modules/django_twilio/templates/guide.md,sha256=nZfwx-sgWyK5NApm93zOe
|
|
538
580
|
django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html,sha256=sXR6_D9hmOFfk9CrfPizpLddVhkRirBWpZd_ioEsxVk,6671
|
539
581
|
django_cfg/modules/django_twilio/templates/sendgrid_test_data.json,sha256=fh1VyuSiDELHsS_CIz9gp7tlsMAEjaDOoqbAPSZ3yyo,339
|
540
582
|
django_cfg/modules/django_unfold/__init__.py,sha256=Z91x1iGmkzlRbEb2L9OCFmYDKNAV9C4G3i15j5S0esc,1898
|
541
|
-
django_cfg/modules/django_unfold/dashboard.py,sha256=
|
583
|
+
django_cfg/modules/django_unfold/dashboard.py,sha256=OBeU7X47ssZxhX7r9MBf-nXzVSBLLUGk04U47n6zqrE,17516
|
542
584
|
django_cfg/modules/django_unfold/models.py,sha256=bY6QSSaH_-r9vOTkSQjxeIkl5RaED7XkxXkT8-W5stk,4014
|
543
585
|
django_cfg/modules/django_unfold/system_monitor.py,sha256=cznZqldRJqiSLSJbs4U7R2rX8ClzoIpqdfXdXqI2iQw,6955
|
544
586
|
django_cfg/modules/django_unfold/tailwind.py,sha256=X9o1K3QL0VwUISgJ26sLb6zkdK-00qiDuekqTw-fydc,10846
|
@@ -619,11 +661,11 @@ django_cfg/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
619
661
|
django_cfg/templatetags/django_cfg.py,sha256=11_3YX0jAVuOd_fVcDixAxyDMG4V7A98SPqv8Lbfpxc,1308
|
620
662
|
django_cfg/utils/__init__.py,sha256=64wwXJuXytvwt8Ze_erSR2HmV07nGWJ6DV5wloRBvYE,435
|
621
663
|
django_cfg/utils/path_resolution.py,sha256=C9As6p4Q9l3VeoVkFDRPQWGrzAWf8O8UxLVkaI3ToVM,13899
|
622
|
-
django_cfg/utils/smart_defaults.py,sha256=
|
664
|
+
django_cfg/utils/smart_defaults.py,sha256=M7KEqGfBiwXV-Hk-kS5YGZK8kEc8K2EGqli0hvjBwCQ,10972
|
623
665
|
django_cfg/utils/toolkit.py,sha256=MfnjfGl2_VZo2o5aWIJaOYz2w45HQfOjO6X6nm5BJ8k,25312
|
624
666
|
django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaNpucs,4800
|
625
|
-
django_cfg-1.3.
|
626
|
-
django_cfg-1.3.
|
627
|
-
django_cfg-1.3.
|
628
|
-
django_cfg-1.3.
|
629
|
-
django_cfg-1.3.
|
667
|
+
django_cfg-1.3.5.dist-info/METADATA,sha256=7SY2HNBQfadRnPyt3Q5l5aMvjnyDReZHuFYRzKfWIL8,38740
|
668
|
+
django_cfg-1.3.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
669
|
+
django_cfg-1.3.5.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
|
670
|
+
django_cfg-1.3.5.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
671
|
+
django_cfg-1.3.5.dist-info/RECORD,,
|
@@ -1,38 +0,0 @@
|
|
1
|
-
{% comment %}
|
2
|
-
Development Tool Card Component
|
3
|
-
|
4
|
-
Usage:
|
5
|
-
{% include 'payments/components/dev_tool_card.html' with title="Ngrok Tunnel" status="Active" status_color="text-green-600" details=details_dict button_text="Check Status" button_class="bg-gray-100" %}
|
6
|
-
|
7
|
-
Expected details structure:
|
8
|
-
{
|
9
|
-
'Status': 'Active',
|
10
|
-
'URL': 'https://abc123.ngrok.io'
|
11
|
-
}
|
12
|
-
{% endcomment %}
|
13
|
-
|
14
|
-
<div class="p-4 border border-gray-200 dark:border-gray-700 rounded-lg">
|
15
|
-
<h4 class="font-medium text-gray-900 dark:text-white mb-2">{{ title }}</h4>
|
16
|
-
|
17
|
-
<div class="space-y-2 text-sm">
|
18
|
-
{% for label, value in details.items %}
|
19
|
-
<div class="flex justify-between">
|
20
|
-
<span class="text-gray-600 dark:text-gray-400">{{ label }}:</span>
|
21
|
-
{% if label == 'Status' %}
|
22
|
-
<span class="{{ status_color|default:'text-gray-600' }}" >{{ value }}</span>
|
23
|
-
{% elif label == 'URL' and value %}
|
24
|
-
<code class="text-xs break-all">{{ value }}</code>
|
25
|
-
{% else %}
|
26
|
-
<span class="text-xs">{{ value|default:'N/A' }}</span>
|
27
|
-
{% endif %}
|
28
|
-
</div>
|
29
|
-
{% endfor %}
|
30
|
-
</div>
|
31
|
-
|
32
|
-
{% if button_text %}
|
33
|
-
<button onclick="{{ button_onclick|default:'' }}"
|
34
|
-
class="mt-3 w-full px-3 py-1 text-sm {{ button_class|default:'bg-gray-100 dark:bg-gray-700' }} text-gray-700 dark:text-gray-300 rounded hover:bg-gray-200 dark:hover:bg-gray-600">
|
35
|
-
{{ button_text }}
|
36
|
-
</button>
|
37
|
-
{% endif %}
|
38
|
-
</div>
|