django-cfg 1.2.27__py3-none-any.whl → 1.2.29__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/services/providers/cryptomus.py +2 -1
- django_cfg/apps/payments/static/payments/css/payments.css +340 -0
- django_cfg/apps/payments/static/payments/js/notifications.js +202 -0
- django_cfg/apps/payments/static/payments/js/payment-utils.js +318 -0
- django_cfg/apps/payments/static/payments/js/theme.js +86 -0
- django_cfg/apps/payments/templates/payments/base.html +182 -0
- django_cfg/apps/payments/templates/payments/components/payment_card.html +201 -0
- django_cfg/apps/payments/templates/payments/components/payment_qr_code.html +109 -0
- django_cfg/apps/payments/templates/payments/components/progress_bar.html +36 -0
- django_cfg/apps/payments/templates/payments/components/provider_stats.html +40 -0
- django_cfg/apps/payments/templates/payments/components/status_badge.html +27 -0
- django_cfg/apps/payments/templates/payments/components/status_overview.html +144 -0
- django_cfg/apps/payments/templates/payments/dashboard.html +346 -0
- django_cfg/apps/payments/templatetags/__init__.py +1 -0
- django_cfg/apps/payments/templatetags/payments_tags.py +315 -0
- django_cfg/apps/payments/urls_templates.py +52 -0
- django_cfg/apps/payments/views/templates/__init__.py +25 -0
- django_cfg/apps/payments/views/templates/ajax.py +312 -0
- django_cfg/apps/payments/views/templates/base.py +204 -0
- django_cfg/apps/payments/views/templates/dashboard.py +60 -0
- django_cfg/apps/payments/views/templates/payment_detail.py +102 -0
- django_cfg/apps/payments/views/templates/payment_management.py +164 -0
- django_cfg/apps/payments/views/templates/qr_code.py +174 -0
- django_cfg/apps/payments/views/templates/stats.py +240 -0
- django_cfg/apps/payments/views/templates/utils.py +181 -0
- django_cfg/apps/urls.py +3 -0
- django_cfg/registry/core.py +1 -0
- django_cfg/template_archive/.gitignore +1 -0
- django_cfg/template_archive/django_sample.zip +0 -0
- {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/METADATA +12 -15
- {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/RECORD +35 -10
- {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/WHEEL +0 -0
- {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,181 @@
|
|
1
|
+
"""
|
2
|
+
Utility views for payment dashboard.
|
3
|
+
|
4
|
+
Provides testing, debugging, and development functionality.
|
5
|
+
"""
|
6
|
+
|
7
|
+
from django.views.generic import TemplateView
|
8
|
+
from django.utils import timezone
|
9
|
+
from datetime import timedelta
|
10
|
+
from .base import (
|
11
|
+
SuperuserRequiredMixin,
|
12
|
+
PaymentContextMixin,
|
13
|
+
log_view_access
|
14
|
+
)
|
15
|
+
|
16
|
+
|
17
|
+
class PaymentTestView(
|
18
|
+
SuperuserRequiredMixin,
|
19
|
+
PaymentContextMixin,
|
20
|
+
TemplateView
|
21
|
+
):
|
22
|
+
"""Test view for development and debugging purposes."""
|
23
|
+
|
24
|
+
template_name = 'payments/test.html'
|
25
|
+
page_title = 'Payment System Test'
|
26
|
+
|
27
|
+
def get_breadcrumbs(self):
|
28
|
+
return [
|
29
|
+
{'name': 'Dashboard', 'url': '/payments/admin/'},
|
30
|
+
{'name': 'System Test', 'url': ''},
|
31
|
+
]
|
32
|
+
|
33
|
+
def get_context_data(self, **kwargs):
|
34
|
+
context = super().get_context_data(**kwargs)
|
35
|
+
|
36
|
+
# Log access for audit
|
37
|
+
log_view_access('payment_test', self.request.user)
|
38
|
+
|
39
|
+
# Create sample data for testing templates
|
40
|
+
sample_data = self._generate_sample_data()
|
41
|
+
|
42
|
+
# Get system information
|
43
|
+
system_info = self._get_system_info()
|
44
|
+
|
45
|
+
# Get test scenarios
|
46
|
+
test_scenarios = self._get_test_scenarios()
|
47
|
+
|
48
|
+
# Get common context
|
49
|
+
common_context = self.get_common_context()
|
50
|
+
|
51
|
+
context.update({
|
52
|
+
'sample_data': sample_data,
|
53
|
+
'system_info': system_info,
|
54
|
+
'test_scenarios': test_scenarios,
|
55
|
+
'test_mode': True,
|
56
|
+
**common_context
|
57
|
+
})
|
58
|
+
|
59
|
+
return context
|
60
|
+
|
61
|
+
def _generate_sample_data(self):
|
62
|
+
"""Generate sample payment data for testing."""
|
63
|
+
sample_payments = []
|
64
|
+
statuses = ['pending', 'confirming', 'completed', 'failed']
|
65
|
+
providers = ['nowpayments', 'cryptapi', 'cryptomus', 'stripe']
|
66
|
+
|
67
|
+
for i in range(12):
|
68
|
+
sample_payments.append({
|
69
|
+
'id': f'sample-{i}',
|
70
|
+
'internal_payment_id': f'PAY-{1000 + i}',
|
71
|
+
'provider_payment_id': f'PROV-{2000 + i}',
|
72
|
+
'amount_usd': 50.0 + (i * 25),
|
73
|
+
'currency_code': 'USD',
|
74
|
+
'status': statuses[i % len(statuses)],
|
75
|
+
'provider': providers[i % len(providers)],
|
76
|
+
'user_email': f'user{i}@example.com',
|
77
|
+
'created_at': timezone.now() - timedelta(hours=i),
|
78
|
+
'updated_at': timezone.now() - timedelta(minutes=i * 10),
|
79
|
+
'pay_address': f'1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa{i}' if i % 2 == 0 else None,
|
80
|
+
'pay_amount': 0.001 + (i * 0.0001) if i % 2 == 0 else None,
|
81
|
+
})
|
82
|
+
|
83
|
+
return {
|
84
|
+
'payments': sample_payments,
|
85
|
+
'stats': {
|
86
|
+
'total_count': len(sample_payments),
|
87
|
+
'pending_count': len([p for p in sample_payments if p['status'] == 'pending']),
|
88
|
+
'completed_count': len([p for p in sample_payments if p['status'] == 'completed']),
|
89
|
+
'failed_count': len([p for p in sample_payments if p['status'] == 'failed']),
|
90
|
+
'total_volume': sum(p['amount_usd'] for p in sample_payments),
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
def _get_system_info(self):
|
95
|
+
"""Get system information for debugging."""
|
96
|
+
import django
|
97
|
+
import sys
|
98
|
+
from django.conf import settings
|
99
|
+
|
100
|
+
info = {
|
101
|
+
'django_version': django.get_version(),
|
102
|
+
'python_version': sys.version,
|
103
|
+
'debug_mode': settings.DEBUG,
|
104
|
+
'database_engine': settings.DATABASES['default']['ENGINE'],
|
105
|
+
'installed_apps': len(settings.INSTALLED_APPS),
|
106
|
+
'timezone': str(settings.TIME_ZONE),
|
107
|
+
'language': settings.LANGUAGE_CODE,
|
108
|
+
}
|
109
|
+
|
110
|
+
# Add payment-specific info
|
111
|
+
try:
|
112
|
+
from ...models import UniversalPayment, PaymentEvent
|
113
|
+
info.update({
|
114
|
+
'total_payments': UniversalPayment.objects.count(),
|
115
|
+
'total_events': PaymentEvent.objects.count(),
|
116
|
+
'providers_in_use': list(
|
117
|
+
UniversalPayment.objects.values_list('provider', flat=True).distinct()
|
118
|
+
),
|
119
|
+
})
|
120
|
+
except Exception:
|
121
|
+
info.update({
|
122
|
+
'total_payments': 'Unable to query',
|
123
|
+
'total_events': 'Unable to query',
|
124
|
+
'providers_in_use': [],
|
125
|
+
})
|
126
|
+
|
127
|
+
return info
|
128
|
+
|
129
|
+
def _get_test_scenarios(self):
|
130
|
+
"""Get available test scenarios."""
|
131
|
+
scenarios = [
|
132
|
+
{
|
133
|
+
'name': 'Template Component Test',
|
134
|
+
'description': 'Test all payment template components with sample data',
|
135
|
+
'endpoint': '/payments/test/?test=components',
|
136
|
+
'available': True,
|
137
|
+
},
|
138
|
+
{
|
139
|
+
'name': 'Status Badge Test',
|
140
|
+
'description': 'Test payment status badges for all possible statuses',
|
141
|
+
'endpoint': '/payments/test/?test=status_badges',
|
142
|
+
'available': True,
|
143
|
+
},
|
144
|
+
{
|
145
|
+
'name': 'Progress Bar Test',
|
146
|
+
'description': 'Test payment progress bars with different percentages',
|
147
|
+
'endpoint': '/payments/test/?test=progress_bars',
|
148
|
+
'available': True,
|
149
|
+
},
|
150
|
+
{
|
151
|
+
'name': 'Provider Statistics Test',
|
152
|
+
'description': 'Test provider statistics with sample data',
|
153
|
+
'endpoint': '/payments/test/?test=provider_stats',
|
154
|
+
'available': True,
|
155
|
+
},
|
156
|
+
{
|
157
|
+
'name': 'Real-time Updates Test',
|
158
|
+
'description': 'Test WebSocket connections and real-time updates',
|
159
|
+
'endpoint': '/payments/test/?test=realtime',
|
160
|
+
'available': False, # Requires WebSocket setup
|
161
|
+
},
|
162
|
+
{
|
163
|
+
'name': 'QR Code Generation Test',
|
164
|
+
'description': 'Test QR code generation for crypto payments',
|
165
|
+
'endpoint': '/payments/test/?test=qr_codes',
|
166
|
+
'available': True,
|
167
|
+
},
|
168
|
+
{
|
169
|
+
'name': 'API Integration Test',
|
170
|
+
'description': 'Test payment provider API integrations',
|
171
|
+
'endpoint': '/payments/test/?test=api_integration',
|
172
|
+
'available': False, # Requires API keys
|
173
|
+
},
|
174
|
+
]
|
175
|
+
|
176
|
+
# Add current test parameter
|
177
|
+
current_test = self.request.GET.get('test', 'overview')
|
178
|
+
for scenario in scenarios:
|
179
|
+
scenario['is_current'] = scenario['endpoint'].endswith(f'test={current_test}')
|
180
|
+
|
181
|
+
return scenarios
|
django_cfg/apps/urls.py
CHANGED
@@ -51,6 +51,9 @@ def get_django_cfg_urlpatterns() -> List[URLPattern]:
|
|
51
51
|
# Maintenance app - multi-site maintenance mode with Cloudflare
|
52
52
|
if base_module.is_maintenance_enabled():
|
53
53
|
patterns.append(path('maintenance/', include('django_cfg.apps.maintenance.urls')))
|
54
|
+
|
55
|
+
if base_module.is_payments_enabled():
|
56
|
+
patterns.append(path('payments/admin/', include('django_cfg.apps.payments.urls_templates')))
|
54
57
|
|
55
58
|
except Exception:
|
56
59
|
# Fallback: include all URLs if config is not available
|
django_cfg/registry/core.py
CHANGED
@@ -50,6 +50,7 @@ CORE_REGISTRY = {
|
|
50
50
|
"create_nowpayments_config": ("django_cfg.models.payments", "create_nowpayments_config"),
|
51
51
|
"create_cryptapi_config": ("django_cfg.models.payments", "create_cryptapi_config"),
|
52
52
|
"create_stripe_config": ("django_cfg.models.payments", "create_stripe_config"),
|
53
|
+
"create_cryptomus_config": ("django_cfg.models.payments", "create_cryptomus_config"),
|
53
54
|
|
54
55
|
# Pagination classes
|
55
56
|
"DefaultPagination": ("django_cfg.middleware.pagination", "DefaultPagination"),
|
@@ -0,0 +1 @@
|
|
1
|
+
*.zip
|
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: django-cfg
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.29
|
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
|
@@ -150,12 +150,12 @@ Description-Content-Type: text/markdown
|
|
150
150
|
# 🚀 Django-CFG: Enterprise Django Configuration Framework
|
151
151
|
|
152
152
|
|
153
|
-
[](https://pypi.org/project/django-cfg
|
154
|
-
[](https://pypi.org/project/django-cfg
|
155
|
-
[](https://pypi.org/project/django-cfg
|
156
|
-
[](https://github.com/
|
157
|
-
[](https://pypi.org/project/django-cfg
|
158
|
-
[](https://pypi.org/project/django-cfg)
|
154
|
+
[](https://pypi.org/project/django-cfg)
|
155
|
+
[](https://pypi.org/project/django-cfg)
|
156
|
+
[](https://github.com/markolofsen/markolofsen/blob/main/LICENSE)
|
157
|
+
[](https://pypi.org/project/django-cfg)
|
158
|
+
[](https://github.com/markolofsen/django-cfg)
|
159
159
|
|
160
160
|
> **Transform Django development with enterprise-grade type safety, AI agents, and production-ready integrations.**
|
161
161
|
|
@@ -163,8 +163,7 @@ Description-Content-Type: text/markdown
|
|
163
163
|
|
164
164
|
🌐 **Official Website**: [djangocfg.com](https://djangocfg.com/)
|
165
165
|
📚 **Documentation**: [docs.djangocfg.com](https://docs.djangocfg.com/)
|
166
|
-
🐙 **GitHub Repository**: [github.com/
|
167
|
-
💬 **Community Discord**: [Join our Discord](https://discord.gg/django-cfg)
|
166
|
+
🐙 **GitHub Repository**: [github.com/markolofsen/django-cfg](https://github.com/markolofsen/django-cfg)
|
168
167
|
|
169
168
|
---
|
170
169
|
|
@@ -540,7 +539,7 @@ python manage.py runserver_ngrok # With ngrok integration
|
|
540
539
|
docker pull djangocfg/django-cfg:latest
|
541
540
|
|
542
541
|
# Or build from source
|
543
|
-
git clone https://github.com/
|
542
|
+
git clone https://github.com/markolofsen/django-cfg.git
|
544
543
|
cd django-cfg
|
545
544
|
docker build -t my-django-cfg .
|
546
545
|
|
@@ -956,16 +955,14 @@ class EnterpriseConfigTest(EnterpriseTestCase, ConfigTestMixin):
|
|
956
955
|
### **Community Resources**
|
957
956
|
- 🌐 **Official Website**: [djangocfg.com](https://djangocfg.com/)
|
958
957
|
- 📚 **Documentation**: [docs.djangocfg.com](https://docs.djangocfg.com/)
|
959
|
-
- 🐙 **GitHub**: [github.com/
|
960
|
-
- 💬 **Discord Community**: [Join our Discord](https://discord.gg/django-cfg)
|
958
|
+
- 🐙 **GitHub**: [github.com/markolofsen/django-cfg](https://github.com/markolofsen/django-cfg)
|
961
959
|
- 📦 **PyPI Package**: [pypi.org/project/django-cfg](https://pypi.org/project/django-cfg/)
|
962
960
|
- ❓ **Stack Overflow**: Tag questions with `django-cfg`
|
963
|
-
- 🐦 **Twitter**: [@DjangoCFG](https://twitter.com/djangocfg)
|
964
961
|
|
965
962
|
### **Contributing**
|
966
963
|
```bash
|
967
964
|
# Development setup
|
968
|
-
git clone https://github.com/
|
965
|
+
git clone https://github.com/markolofsen/django-cfg.git
|
969
966
|
cd django-cfg
|
970
967
|
pip install -e ".[dev,test]"
|
971
968
|
|
@@ -995,7 +992,7 @@ git push origin feature/my-feature
|
|
995
992
|
**Django-CFG** is released under the **MIT License** - see [LICENSE](LICENSE) file for details.
|
996
993
|
|
997
994
|
### **Enterprise License**
|
998
|
-
For enterprises requiring additional features, support, or custom licensing terms, contact us at [enterprise@djangocfg.com](mailto:
|
995
|
+
For enterprises requiring additional features, support, or custom licensing terms, contact us at [enterprise@djangocfg.com](mailto:info@djangocfg.com).
|
999
996
|
|
1000
997
|
---
|
1001
998
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
django_cfg/__init__.py,sha256=
|
2
|
+
django_cfg/__init__.py,sha256=0JnW564qb6KPVtNC1rWFY2PFejY09Zk2EJAzLn8YmsY,1631
|
3
3
|
django_cfg/apps.py,sha256=k84brkeXJI7EgKZLEpTkM9YFZofKI4PzhFOn1cl9Msc,1656
|
4
4
|
django_cfg/config.py,sha256=ME-JKaVzcdmaGhuc1YTkEWoMKSaUasNf1SBlNz-NfrM,1399
|
5
5
|
django_cfg/urls.py,sha256=bpRFjMonQuk4UCUMxx4ueBX3YDNB7HXKFwEghQ3KR3o,793
|
6
6
|
django_cfg/apps/__init__.py,sha256=JtDmEYt1OcleWM2ZaeX0LKDnRQzPOavfaXBWG4ECB5Q,26
|
7
|
-
django_cfg/apps/urls.py,sha256=
|
7
|
+
django_cfg/apps/urls.py,sha256=UwrfNcfFWfzs1F2sn6_-JrgOqULbWgOe7rJy1RBCY1k,2498
|
8
8
|
django_cfg/apps/accounts/README.md,sha256=YkUYJ3iKMYTmm9ALK2PDnX75SDqZxgnkzNLCD5efxRs,8227
|
9
9
|
django_cfg/apps/accounts/__init__.py,sha256=osecEQhMJVP8ejhZzElNsAqA1fX-GPD3K5_yNwDk6IE,100
|
10
10
|
django_cfg/apps/accounts/__models.py,sha256=65AomWYd78ptQ60drPbodxf0Ue310vmJQpQOPHL6V3E,10161
|
@@ -266,6 +266,7 @@ django_cfg/apps/payments/__init__.py,sha256=Qb8viLJBKCclV9uuoXjxWXeDevXlbdJ76mV8
|
|
266
266
|
django_cfg/apps/payments/apps.py,sha256=FZgbLQFMeOJPs_892bM6X-3Edt3YPD2CP50HMekH7Sk,551
|
267
267
|
django_cfg/apps/payments/decorators.py,sha256=A8MsH7hzw8i7Cl3Eh5Lcqd9Dbn_nubbb6BAI3eZMEgk,10960
|
268
268
|
django_cfg/apps/payments/urls.py,sha256=8Tr5Sr3FcTgUB4PRYYlb8MOkugAPgKT46Jd0uVyNruk,3473
|
269
|
+
django_cfg/apps/payments/urls_templates.py,sha256=PJanuqkVWRoPz5qJg_2i3UcHftC78Y3LdYC5ZCmRgws,1827
|
269
270
|
django_cfg/apps/payments/viewsets.py,sha256=QaUXHUbiw4z0oc2JGpJLkTpLIeP6gC2Q7BNcZ_sTBeg,2175
|
270
271
|
django_cfg/apps/payments/admin/__init__.py,sha256=BUTbE4RfbqX3EBF-9oscrh7wQ2tuwCqofGYqlCz4QM4,666
|
271
272
|
django_cfg/apps/payments/admin/api_keys_admin.py,sha256=nMghMkKcDYvjZ4POVwpS59E6Dc7IVP9dHv-1OltpEes,11436
|
@@ -333,7 +334,7 @@ django_cfg/apps/payments/services/monitoring/provider_health.py,sha256=uiXyKcDK4
|
|
333
334
|
django_cfg/apps/payments/services/providers/__init__.py,sha256=RbfjUc0pJzJkfIP0mnTWOtTKEyQ_YSJSZG_8AINaEEw,550
|
334
335
|
django_cfg/apps/payments/services/providers/base.py,sha256=kjWPb7EutZHaByDW3py8srAcnvZdE4oqj6Tp9xS9ADk,3807
|
335
336
|
django_cfg/apps/payments/services/providers/cryptapi.py,sha256=e1ZmglhQ_IKG8fASKBHcCQUs8BbLvUfI9RXdskWXG5U,10668
|
336
|
-
django_cfg/apps/payments/services/providers/cryptomus.py,sha256=
|
337
|
+
django_cfg/apps/payments/services/providers/cryptomus.py,sha256=yi0fnLiUfGezpwdyhkx2MQ436y--jXhh9SzV4B3sIJU,12464
|
337
338
|
django_cfg/apps/payments/services/providers/nowpayments.py,sha256=xsylxVaN5L5tYfv1j_OJzX_PSEBEq9pmBeRFG80rcCA,11490
|
338
339
|
django_cfg/apps/payments/services/providers/registry.py,sha256=cOOMXLMSK5JWSXPm2j1Ukmw7-qzwpmEUyGfBFTTltK4,3888
|
339
340
|
django_cfg/apps/payments/services/security/__init__.py,sha256=4aRxCQRr-lZ4XkU-6-8oL33DOpKmVboGZUfY6NdivEQ,763
|
@@ -345,8 +346,22 @@ django_cfg/apps/payments/signals/__init__.py,sha256=L3danrGQ-9tEfaAbkXOILPb2Bw_T
|
|
345
346
|
django_cfg/apps/payments/signals/api_key_signals.py,sha256=MDkB9A1VxfiTouhpIe_uMoppbmQq0t-YBL_llk45Vcc,5995
|
346
347
|
django_cfg/apps/payments/signals/payment_signals.py,sha256=Bo9nDZmn4TV04otp_-pRfwCTsstKUHHzkU5TeVmwKf8,4852
|
347
348
|
django_cfg/apps/payments/signals/subscription_signals.py,sha256=FDXlR02fpS6ILzMJQjoK4Ln1v7Kb8vp_Ej9v_lqnVE0,7492
|
349
|
+
django_cfg/apps/payments/static/payments/css/payments.css,sha256=0Sl-CNzK2en3k7tQeD42b_PKW-EWelHhrwzBQJnZLBg,7987
|
350
|
+
django_cfg/apps/payments/static/payments/js/notifications.js,sha256=CzJDlXBlAmEzU77sFqEdr2kh4iP9i6D4N1hrSUs6mew,6282
|
351
|
+
django_cfg/apps/payments/static/payments/js/payment-utils.js,sha256=brDwJM_3TFIx3J5Okbq3ziMgNaX9hZPoPsOzB-wY5Ks,9993
|
352
|
+
django_cfg/apps/payments/static/payments/js/theme.js,sha256=ejOYBjUXnfcJunye4kUqPuVSa8DtoT5qNR2IcFukUGY,2683
|
348
353
|
django_cfg/apps/payments/tasks/__init__.py,sha256=0lgH_ZBdEYzy_-pgYN678oppiS7CU_Ni02E9lV_Cy4Y,272
|
349
354
|
django_cfg/apps/payments/tasks/webhook_processing.py,sha256=OrE5br3m6ECYzk9qLBo4gI0pEI6dO5y1tZMgae8siPQ,5553
|
355
|
+
django_cfg/apps/payments/templates/payments/base.html,sha256=2xkvbI0hov68eM6XVVpBSTf5TmZ7GhuYiXZMTBUBRrM,8388
|
356
|
+
django_cfg/apps/payments/templates/payments/dashboard.html,sha256=h5Sq4kpIz3Sg-IsaQzzw4zzRIC5sXGW6ooWJVMLuqmw,15026
|
357
|
+
django_cfg/apps/payments/templates/payments/components/payment_card.html,sha256=hXWCYF40k4E_Otc2U21_qa__wN4ZVX4D8T_6KIfNxco,8067
|
358
|
+
django_cfg/apps/payments/templates/payments/components/payment_qr_code.html,sha256=khJGd2IKwJGwI5-hloPJpGsWA_O3yJUu4ACVszu-vn8,4261
|
359
|
+
django_cfg/apps/payments/templates/payments/components/progress_bar.html,sha256=9FGZNjwVa6s8MHBBuElzJnLv-sodLPqVLu5GtWVeils,1724
|
360
|
+
django_cfg/apps/payments/templates/payments/components/provider_stats.html,sha256=n5lPQILpa_eM0TxSeAEF2R0amFit89ZMtE1Uk-pk6Yk,1778
|
361
|
+
django_cfg/apps/payments/templates/payments/components/status_badge.html,sha256=wTVdo-JxHcke_W5so429Y_z-wld6VSDH5dG5VZvCu7g,1329
|
362
|
+
django_cfg/apps/payments/templates/payments/components/status_overview.html,sha256=OC0DGGdbzSrSoAYM8FjCdIScYGP-hEIav15AaOomma4,5471
|
363
|
+
django_cfg/apps/payments/templatetags/__init__.py,sha256=an--kiemgAVzvru7MXNEyMaT9qaBK6ADcxqw0fbkb24,41
|
364
|
+
django_cfg/apps/payments/templatetags/payments_tags.py,sha256=x0HuKiiVp_PiBoPXK0B-oPlN2el3KkEUWGCdynamDcs,10226
|
350
365
|
django_cfg/apps/payments/utils/__init__.py,sha256=CyoHao3WlDPIyRNRChJggsazfRFEIhSC7HUB33GlAnQ,1178
|
351
366
|
django_cfg/apps/payments/utils/billing_utils.py,sha256=Kp-DX-RrGYEMvnBbg2oPJ7EjqAzhp4qsVblGLpgcb-k,11708
|
352
367
|
django_cfg/apps/payments/utils/config_utils.py,sha256=kuPT-CKPcoQRwPW_oQ0_CzKxP71JG1FP70Jg59PHrAw,8615
|
@@ -360,6 +375,15 @@ django_cfg/apps/payments/views/payment_views.py,sha256=5UH8La8BM7f8SJmc4aq5yAZn4
|
|
360
375
|
django_cfg/apps/payments/views/subscription_views.py,sha256=WqBDsaPUQGP6ZCmbheIdRupy-qESPpdj8IgKkaLp3V8,5005
|
361
376
|
django_cfg/apps/payments/views/tariff_views.py,sha256=i0uOg6SBk_1sct2M2iwKMw-5YHMr5mhVvm_ljpFRwPQ,4907
|
362
377
|
django_cfg/apps/payments/views/webhook_views.py,sha256=s6CtRIW8leGDcaerMGjuH5ohV3dE0YMPcllmcRSv_p8,9616
|
378
|
+
django_cfg/apps/payments/views/templates/__init__.py,sha256=4sUFWJQymqp7J-OEjAdd5_RpyJoL0m6VKV762zoCVu0,695
|
379
|
+
django_cfg/apps/payments/views/templates/ajax.py,sha256=9Zb-sMHz59TSsNs1IeNLP1hV69Q6OiYRRkZ0VrnBKa8,10608
|
380
|
+
django_cfg/apps/payments/views/templates/base.py,sha256=Ykf9A4ZhUkyrQkdmDrQad5P2N8Ig0BD7KDCfC8PHuwQ,7022
|
381
|
+
django_cfg/apps/payments/views/templates/dashboard.py,sha256=uwKcVncvGgKWz0P6EjV6efkF3-PUFkbjaohoysXx_20,1697
|
382
|
+
django_cfg/apps/payments/views/templates/payment_detail.py,sha256=7hPUMf0jXTsj9ou4a0vQw66La9IHAtgFoHK_TzMLqFs,3603
|
383
|
+
django_cfg/apps/payments/views/templates/payment_management.py,sha256=KGeQCh1Go51ciR1mn5KI0qc8FMVK8eavsKChTC4wbTs,5514
|
384
|
+
django_cfg/apps/payments/views/templates/qr_code.py,sha256=xTM8PQ8C5vTgVIyAFNoSLfR9T_8YQwb8hl453Eq_Dg4,6106
|
385
|
+
django_cfg/apps/payments/views/templates/stats.py,sha256=Asbxtocn31rCGAPYgvlSx00dyM6TvZxkegEzPieD6_E,8496
|
386
|
+
django_cfg/apps/payments/views/templates/utils.py,sha256=Bk8tIlozb0h6bNQhJEEvs_AXaJ3MIWxHiL_1Y7XYXVY,6694
|
363
387
|
django_cfg/apps/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
364
388
|
django_cfg/apps/support/admin.py,sha256=-fcegtqoCcwPiBXwyNLMftcYCTTbTRRBpWItyeNNkDY,8827
|
365
389
|
django_cfg/apps/support/admin_filters.py,sha256=ZpKtetRxppRAMwIr-pwDbXAyh7qouDfTCEZoo1YJfFs,2179
|
@@ -548,7 +572,7 @@ django_cfg/modules/django_unfold/models/dropdown.py,sha256=bbRYl0iuzBrwgmqUMTDw9
|
|
548
572
|
django_cfg/modules/django_unfold/models/navigation.py,sha256=xrP2szoe1MSiTVAfc0Hd2dS32HhCp8XHBJinF5yc_U8,2575
|
549
573
|
django_cfg/modules/django_unfold/models/tabs.py,sha256=AHV7lmaRTjOluf9mgZvXISG5D7Re1QPdU2v-iYoCaIQ,848
|
550
574
|
django_cfg/registry/__init__.py,sha256=q6z9hGcBdtzbVLeDeQtP-A31z-1V7myZqjlZyTs1uo0,540
|
551
|
-
django_cfg/registry/core.py,sha256=
|
575
|
+
django_cfg/registry/core.py,sha256=aqxLDPshDR8xvk23PAJV5asxin00GLn5_9-eHkb68DM,3468
|
552
576
|
django_cfg/registry/exceptions.py,sha256=b4pIakeRxhT1-ST3lbAnmAQaASRBARCoah_w6vb3VF0,399
|
553
577
|
django_cfg/registry/modules.py,sha256=e8lCG5C-yhRgvs8El_-6Xbdrte-enZF_Xb3B4opO-Hs,1135
|
554
578
|
django_cfg/registry/services.py,sha256=wpGSgSCUr4e9pUh5-rwN1AyPLGazK6KD-Ky4vz-elIw,1219
|
@@ -556,8 +580,9 @@ django_cfg/registry/third_party.py,sha256=3VPyh5XkHJr6uDNbpv04HutVSumoyo5jgB-zyq
|
|
556
580
|
django_cfg/routing/__init__.py,sha256=zOg9yh2lP2NaxlnZpVH8IogQBHGlcky_C-n0VWD9LIc,277
|
557
581
|
django_cfg/routing/callbacks.py,sha256=zMWD0AEE4AvczdBN-VDjgczai683ZSEqws0pnCVQ3FI,5994
|
558
582
|
django_cfg/routing/routers.py,sha256=J89kcIArV2lSl3rzh61Rya0h-I5Zq7-QAat6PvmKVFs,1582
|
583
|
+
django_cfg/template_archive/.gitignore,sha256=tQCgTL4yauG8soddqhJczOLZMCAROLosXsTlHaYVIwM,5
|
559
584
|
django_cfg/template_archive/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
560
|
-
django_cfg/template_archive/django_sample.zip,sha256=
|
585
|
+
django_cfg/template_archive/django_sample.zip,sha256=_B41fgUZxCCsYs_fUCVykRhjTRN13-rE2dgYAcIOHHE,1729936
|
561
586
|
django_cfg/templates/__init__.py,sha256=IzLjt-a7VIJ0OutmAE1_-w0_LpL2u0MgGpnIabjZuW8,19
|
562
587
|
django_cfg/templates/admin/index.html,sha256=kehH-W9fTTUo36G9X82vM7L3Mr_lTiMkfp0qxPJAaSg,1247
|
563
588
|
django_cfg/templates/admin/components/action_grid.html,sha256=inffy-bMcuecSwgnR3HIEGE-r9wG_BgPttkvHqqFih8,3068
|
@@ -607,8 +632,8 @@ django_cfg/utils/path_resolution.py,sha256=C9As6p4Q9l3VeoVkFDRPQWGrzAWf8O8UxLVka
|
|
607
632
|
django_cfg/utils/smart_defaults.py,sha256=MxbUZwn_xbh48li7uLI6W4D9WCD2P2WO48dv85Fra5E,23057
|
608
633
|
django_cfg/utils/toolkit.py,sha256=Td8_iXNaftonF_xdZP4Y3uO65nuA_4_zditn5Q_Pfcw,23310
|
609
634
|
django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaNpucs,4800
|
610
|
-
django_cfg-1.2.
|
611
|
-
django_cfg-1.2.
|
612
|
-
django_cfg-1.2.
|
613
|
-
django_cfg-1.2.
|
614
|
-
django_cfg-1.2.
|
635
|
+
django_cfg-1.2.29.dist-info/METADATA,sha256=7lU4qPQgGMdnN2G_cS_Lmjy8UpugBRz1BYH68M6B2Xs,38645
|
636
|
+
django_cfg-1.2.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
637
|
+
django_cfg-1.2.29.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
|
638
|
+
django_cfg-1.2.29.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
|
639
|
+
django_cfg-1.2.29.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|