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.
Files changed (35) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/payments/services/providers/cryptomus.py +2 -1
  3. django_cfg/apps/payments/static/payments/css/payments.css +340 -0
  4. django_cfg/apps/payments/static/payments/js/notifications.js +202 -0
  5. django_cfg/apps/payments/static/payments/js/payment-utils.js +318 -0
  6. django_cfg/apps/payments/static/payments/js/theme.js +86 -0
  7. django_cfg/apps/payments/templates/payments/base.html +182 -0
  8. django_cfg/apps/payments/templates/payments/components/payment_card.html +201 -0
  9. django_cfg/apps/payments/templates/payments/components/payment_qr_code.html +109 -0
  10. django_cfg/apps/payments/templates/payments/components/progress_bar.html +36 -0
  11. django_cfg/apps/payments/templates/payments/components/provider_stats.html +40 -0
  12. django_cfg/apps/payments/templates/payments/components/status_badge.html +27 -0
  13. django_cfg/apps/payments/templates/payments/components/status_overview.html +144 -0
  14. django_cfg/apps/payments/templates/payments/dashboard.html +346 -0
  15. django_cfg/apps/payments/templatetags/__init__.py +1 -0
  16. django_cfg/apps/payments/templatetags/payments_tags.py +315 -0
  17. django_cfg/apps/payments/urls_templates.py +52 -0
  18. django_cfg/apps/payments/views/templates/__init__.py +25 -0
  19. django_cfg/apps/payments/views/templates/ajax.py +312 -0
  20. django_cfg/apps/payments/views/templates/base.py +204 -0
  21. django_cfg/apps/payments/views/templates/dashboard.py +60 -0
  22. django_cfg/apps/payments/views/templates/payment_detail.py +102 -0
  23. django_cfg/apps/payments/views/templates/payment_management.py +164 -0
  24. django_cfg/apps/payments/views/templates/qr_code.py +174 -0
  25. django_cfg/apps/payments/views/templates/stats.py +240 -0
  26. django_cfg/apps/payments/views/templates/utils.py +181 -0
  27. django_cfg/apps/urls.py +3 -0
  28. django_cfg/registry/core.py +1 -0
  29. django_cfg/template_archive/.gitignore +1 -0
  30. django_cfg/template_archive/django_sample.zip +0 -0
  31. {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/METADATA +12 -15
  32. {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/RECORD +35 -10
  33. {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/WHEEL +0 -0
  34. {django_cfg-1.2.27.dist-info → django_cfg-1.2.29.dist-info}/entry_points.txt +0 -0
  35. {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
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-cfg
3
- Version: 1.2.27
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
- [![Python Version](https://img.shields.io/pypi/pyversions/django-cfg.svg?style=flat-square&logo=python&logoColor=white)](https://pypi.org/project/django-cfg/)
154
- [![Django Version](https://img.shields.io/pypi/djversions/django-cfg.svg?style=flat-square&logo=django&logoColor=white)](https://pypi.org/project/django-cfg/)
155
- [![PyPI Version](https://img.shields.io/pypi/v/django-cfg.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/django-cfg/)
156
- [![License](https://img.shields.io/pypi/l/django-cfg.svg?style=flat-square)](https://github.com/django-cfg/django-cfg/blob/main/LICENSE)
157
- [![Downloads](https://img.shields.io/pypi/dm/django-cfg.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/django-cfg/)
158
- [![GitHub Stars](https://img.shields.io/github/stars/django-cfg/django-cfg?style=flat-square&logo=github)](https://github.com/django-cfg/django-cfg)
153
+ [![Python Version](https://img.shields.io/pypi/pyversions/django-cfg.svg?style=flat-square&logo=python&logoColor=white)](https://pypi.org/project/django-cfg)
154
+ [![Django Version](https://img.shields.io/pypi/djversions/django-cfg.svg?style=flat-square&logo=django&logoColor=white)](https://pypi.org/project/django-cfg)
155
+ [![PyPI Version](https://img.shields.io/pypi/v/django-cfg.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/django-cfg)
156
+ [![License](https://img.shields.io/pypi/l/django-cfg.svg?style=flat-square)](https://github.com/markolofsen/markolofsen/blob/main/LICENSE)
157
+ [![Downloads](https://img.shields.io/pypi/dm/django-cfg.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/django-cfg)
158
+ [![GitHub Stars](https://img.shields.io/github/stars/markolofsen/django-cfg?style=flat-square&logo=github)](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/django-cfg/django-cfg](https://github.com/django-cfg/django-cfg)
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/django-cfg/django-cfg.git
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/django-cfg/django-cfg](https://github.com/django-cfg/django-cfg)
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/django-cfg/django-cfg.git
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:enterprise@djangocfg.com).
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=v23PCbYq4o9lgmLhEJ-3nYe-uzQvAf0g03Y-Mfmaark,1631
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=y10rWxIMf70GIO_QPXv59reFArkQhkvknKXTILgdvs0,2346
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=RKJHpkUnm3YrYc_XH-Eh-UrYwMcer-5XhK_T5Ak8NjE,12436
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=4zvppBabwUzHcBviFJcSQ8PH8kG5ypCUlavpFuhw2nw,3378
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=PXVnqBXeklWhzlYTmaJD4SKAVGL5Xv-XRJcRKMia_mo,1743331
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.27.dist-info/METADATA,sha256=NNK1jiulE41b2ii8tOQ28TciygkBIvJdwY5XRp8ffKQ,38867
611
- django_cfg-1.2.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
612
- django_cfg-1.2.27.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
613
- django_cfg-1.2.27.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
614
- django_cfg-1.2.27.dist-info/RECORD,,
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,,