django-cfg 1.3.3__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 +16 -6
- django_cfg/apps/payments/management/commands/currency_stats.py +72 -5
- 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/middleware/api_access.py +35 -34
- django_cfg/apps/payments/migrations/0001_initial.py +1 -1
- django_cfg/apps/payments/models/managers/api_key_managers.py +4 -0
- django_cfg/apps/payments/models/managers/payment_managers.py +5 -0
- django_cfg/apps/payments/models/subscriptions.py +0 -24
- django_cfg/apps/payments/services/cache/__init__.py +1 -1
- django_cfg/apps/payments/services/core/balance_service.py +13 -2
- 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/balance_signals.py +7 -4
- 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 +41 -1
- {django_cfg-1.3.3.dist-info → django_cfg-1.3.5.dist-info}/METADATA +1 -1
- {django_cfg-1.3.3.dist-info → django_cfg-1.3.5.dist-info}/RECORD +98 -65
- 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/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.3.dist-info → django_cfg-1.3.5.dist-info}/WHEEL +0 -0
- {django_cfg-1.3.3.dist-info → django_cfg-1.3.5.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.3.3.dist-info → django_cfg-1.3.5.dist-info}/licenses/LICENSE +0 -0
@@ -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,41 +273,66 @@ 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/cleanup_expired_data.py,sha256=
|
301
|
-
django_cfg/apps/payments/management/commands/currency_stats.py,sha256=
|
302
|
-
django_cfg/apps/payments/management/commands/manage_currencies.py,sha256=
|
303
|
-
django_cfg/apps/payments/management/commands/manage_providers.py,sha256=
|
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
|
304
329
|
django_cfg/apps/payments/management/commands/process_pending_payments.py,sha256=yfmO9sRulGfZQi-tIdf2qWniCU1HhqtGxBY-j_N4UkM,13308
|
305
330
|
django_cfg/apps/payments/management/commands/test_providers.py,sha256=qpXTiKoErZBIXz2KtiWqa4IwWbK8c5WuABE2tDR_eGY,18475
|
306
331
|
django_cfg/apps/payments/middleware/__init__.py,sha256=eL5TmlCKmpW53Ift5rtwS8ss1wUqp4j2gzjGhcAQUQY,380
|
307
|
-
django_cfg/apps/payments/middleware/api_access.py,sha256=
|
332
|
+
django_cfg/apps/payments/middleware/api_access.py,sha256=bXKKJwxp_mh9HjGrqNeYJKGOuAGYYq7VmgM7f1UA8sc,15513
|
308
333
|
django_cfg/apps/payments/middleware/rate_limiting.py,sha256=U6mEyonU3JAK0LZjZqp-q4KgHnXdWpUJT4LJ1jCeQRQ,14813
|
309
334
|
django_cfg/apps/payments/middleware/usage_tracking.py,sha256=ZDoftaOlV8OfUs05HkQZiE_WWAYeTzDbsiuWKI9pfAg,11814
|
310
|
-
django_cfg/apps/payments/migrations/0001_initial.py,sha256=
|
335
|
+
django_cfg/apps/payments/migrations/0001_initial.py,sha256=sjSu5JCT9P3bVB3YrYmAMIUnYVTE7Avyl_t9jhk843g,48741
|
311
336
|
django_cfg/apps/payments/migrations/__init__.py,sha256=OHlzxEGDJYKZz82orZXnh77xy-Okv6FcG3EKMfg9LzU,21
|
312
337
|
django_cfg/apps/payments/models/__init__.py,sha256=7x38zrZjYxH3tV079SthGZeIjuyNB5hbqirT03-ZxuE,1443
|
313
338
|
django_cfg/apps/payments/models/api_keys.py,sha256=dAS9XSOwAOBK40qnjrElz04Up9sqNGNg_0k13pnUjbs,5344
|
@@ -315,16 +340,16 @@ django_cfg/apps/payments/models/balance.py,sha256=esjkt-VIdWBu09eqxTwP5WmcGdI4aC
|
|
315
340
|
django_cfg/apps/payments/models/base.py,sha256=XXMxqHe7OYmzVBW7g8nXgE41wJMigkRtgkPYGTx53oA,2212
|
316
341
|
django_cfg/apps/payments/models/currencies.py,sha256=6ONWpBoZUOFVIHGzj_j1LZsI0yRRhk1x9sNn6kINAA8,8458
|
317
342
|
django_cfg/apps/payments/models/payments.py,sha256=qvSBAl5YSqttZCAgaYCIyP23KiCJafzt0HZEJoAkNpg,11321
|
318
|
-
django_cfg/apps/payments/models/subscriptions.py,sha256=
|
343
|
+
django_cfg/apps/payments/models/subscriptions.py,sha256=o3C3CIupcz3lyvg_hszvHQaiWR7RJQ-pP1eebIDJfBE,10332
|
319
344
|
django_cfg/apps/payments/models/tariffs.py,sha256=b2iDC7hBdZR8TX8aEskM5nTEa5_f0H6-j6wZdcbHdyk,6471
|
320
345
|
django_cfg/apps/payments/models/managers/__init__.py,sha256=56kdXtRJOLHhtnY4arYi15fEAmWWrWJP0F8kn8okpzU,1090
|
321
|
-
django_cfg/apps/payments/models/managers/api_key_managers.py,sha256=
|
346
|
+
django_cfg/apps/payments/models/managers/api_key_managers.py,sha256=TuJqB6zaHnR1Um6l-tZfUtc9Wit3iB7aaDUEF4vnCbY,10547
|
322
347
|
django_cfg/apps/payments/models/managers/balance_managers.py,sha256=84iV5cfSWiETyfLXoSK_s6A1lRv_dsOxu_n6V57gbEY,20298
|
323
348
|
django_cfg/apps/payments/models/managers/currency_managers.py,sha256=ybLPx24rdnXo8jhCybq_3p5_si9BAhOSwIYib3tey-g,13061
|
324
|
-
django_cfg/apps/payments/models/managers/payment_managers.py,sha256=
|
349
|
+
django_cfg/apps/payments/models/managers/payment_managers.py,sha256=Bb782Z9MCNlawitUdAa_97WXBfqQtqHzl9pG1l7-fCc,17691
|
325
350
|
django_cfg/apps/payments/models/managers/subscription_managers.py,sha256=_hDmneMMTtvo2htNDDZOxuoYyxNKP46JC0MrXLwv5f8,21688
|
326
351
|
django_cfg/apps/payments/services/__init__.py,sha256=QUFVfTwliUvQWtaw0JqDss_LDamgNZwaej8fzL6Qzco,6147
|
327
|
-
django_cfg/apps/payments/services/cache/__init__.py,sha256=
|
352
|
+
django_cfg/apps/payments/services/cache/__init__.py,sha256=eUUtnNU1gPyJOAHaUeaDD5WOnPb0aSI7klvTGbgccOE,354
|
328
353
|
django_cfg/apps/payments/services/cache_service/__init__.py,sha256=Lp29sQUzuW7tKfrT6JBQYZgQ_ko4hqm2XozQ0XkC5Gc,4291
|
329
354
|
django_cfg/apps/payments/services/cache_service/api_key_cache.py,sha256=kVLUC5WbRpxXNGiKfcgnR7j4kBH861KpMTuGZJo8ADY,1292
|
330
355
|
django_cfg/apps/payments/services/cache_service/interfaces.py,sha256=7sqTRBSX4BPZ_Oxw6RJTyoLLHTLB5__adyNFZeAzjBI,758
|
@@ -332,19 +357,19 @@ django_cfg/apps/payments/services/cache_service/keys.py,sha256=U37Dwkboxn0E_B5Mp
|
|
332
357
|
django_cfg/apps/payments/services/cache_service/rate_limit_cache.py,sha256=MjFn5q23WjupNI2wZ9KpUJZR5TxX1zkYp6Cu1okZIfQ,1785
|
333
358
|
django_cfg/apps/payments/services/cache_service/simple_cache.py,sha256=aoAVHLfDUpAF0DP7UQYywGKjg8KzPjzu5xxMqRmN8zU,3258
|
334
359
|
django_cfg/apps/payments/services/core/__init__.py,sha256=CY2M4ID3rqcdpbokQSdO_fxtdCfHjsGgBsTznyGPw3k,526
|
335
|
-
django_cfg/apps/payments/services/core/balance_service.py,sha256=
|
360
|
+
django_cfg/apps/payments/services/core/balance_service.py,sha256=WjXYfTGlSSiX047IZSoeHvagSnID9qpSrjVueQUabIA,18636
|
336
361
|
django_cfg/apps/payments/services/core/base.py,sha256=BBOUWPx3dS7u7Ix7KaAyuacCTfXM9jympUuaRSGP4-M,5448
|
337
362
|
django_cfg/apps/payments/services/core/currency_service.py,sha256=1E6uX9rhJyycfktxunkHPD3nhCLWLchXZoVXiwjGiOM,18174
|
338
363
|
django_cfg/apps/payments/services/core/payment_service.py,sha256=X8-yXpBFnvfSVEidMrj42RRvQRZFSKu0cTTrRTtCU0s,18727
|
339
364
|
django_cfg/apps/payments/services/core/subscription_service.py,sha256=1kfxaW-BybIwQkbEpizxNJG_Egz6aF1qCVF2mX4v7Q4,21125
|
340
365
|
django_cfg/apps/payments/services/core/webhook_service.py,sha256=5Ly44QDUQJYm7V5xkOoKaPzobwf5MkLjFI6uamrpTY0,16222
|
341
366
|
django_cfg/apps/payments/services/integrations/__init__.py,sha256=sD48dDem1rqR8jALgrShBfm0-VMhvbK32q4_ufGElq8,663
|
342
|
-
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
|
343
368
|
django_cfg/apps/payments/services/integrations/providers_config.py,sha256=Uuzg8RQAs28csjiDKuk_dnx5ThyB71BJYZmy4ZNCnKs,3264
|
344
369
|
django_cfg/apps/payments/services/providers/__init__.py,sha256=KyBHEiYmIXgWDMDmODSI0dqLBY4Sl3bsBH0Hebx8I4U,443
|
345
370
|
django_cfg/apps/payments/services/providers/base.py,sha256=LT1ypvXQgvDZNZYkPav5QxkeOsdtz2NzWUj-Pae1Fi0,9929
|
346
371
|
django_cfg/apps/payments/services/providers/nowpayments.py,sha256=bfOZZN0HRb3WiwWqm6Aq2ImAqkDnwvhKlKCxsvawWmA,17525
|
347
|
-
django_cfg/apps/payments/services/providers/registry.py,sha256=
|
372
|
+
django_cfg/apps/payments/services/providers/registry.py,sha256=K0v7chazH3MHDNpVPyWayq8EBgO7yTiV5Upfw1W9gVU,16573
|
348
373
|
django_cfg/apps/payments/services/types/__init__.py,sha256=TCx_laKqtUbe2o3Eu_v73TMkbL7fIJ__VYvE_U3xrvw,1634
|
349
374
|
django_cfg/apps/payments/services/types/data.py,sha256=rjXSsjBqDMVQyx5vRynIbCWWO7A37A7G0iVgohpj4qs,9582
|
350
375
|
django_cfg/apps/payments/services/types/requests.py,sha256=0s-5kPdtInnXJE_0lVUlIIGHDM1Ua4bLoG84qxze_i4,6786
|
@@ -352,29 +377,36 @@ django_cfg/apps/payments/services/types/responses.py,sha256=3FdyNOGQEoI8uZNjBPhh
|
|
352
377
|
django_cfg/apps/payments/services/types/webhooks.py,sha256=y7R1CoAZBRn71y9Mc8k6VVj5rjpbQ1ZHJkNHD1ZyK3M,10095
|
353
378
|
django_cfg/apps/payments/signals/__init__.py,sha256=rSso5kyUszEtlbYiw6A72XU2mK1gmB7O9n2lQb2GPWQ,933
|
354
379
|
django_cfg/apps/payments/signals/api_key_signals.py,sha256=fR61t2mOAORD-ugWl4u6ZSP5nuykahnyIqh1uWjRnbY,8587
|
355
|
-
django_cfg/apps/payments/signals/balance_signals.py,sha256=
|
380
|
+
django_cfg/apps/payments/signals/balance_signals.py,sha256=yoWCse6vZfaPkfQVnOIag2aGB23IAb91pzqe29IuFyI,6257
|
356
381
|
django_cfg/apps/payments/signals/payment_signals.py,sha256=uV5v1HlHKxP4A_bpIC1TkTHkj28nEsP3gbRJx3ca0iI,5449
|
357
382
|
django_cfg/apps/payments/signals/subscription_signals.py,sha256=erzd3UczXGKamUecq2r2DeLm-0ycpFANy0nO948qmwg,9061
|
358
|
-
django_cfg/apps/payments/static/payments/
|
359
|
-
django_cfg/apps/payments/static/payments/
|
360
|
-
django_cfg/apps/payments/static/payments/js/
|
361
|
-
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
|
362
389
|
django_cfg/apps/payments/templatetags/__init__.py,sha256=K8PcAAZu-q6LgCbrH29BSxwsWH0GQx-PhT7J-hBATMM,24
|
363
390
|
django_cfg/apps/payments/templatetags/payment_tags.py,sha256=hSeWW8Q8ASHrAd6eISxa1LsusVN6Z4IH-sGAhFwd3lo,11902
|
364
391
|
django_cfg/apps/payments/views/api/__init__.py,sha256=gKd8dE4i-ebCxjquFHI6UaW6KKgV0RE3RlH22c8O4pU,2005
|
365
|
-
django_cfg/apps/payments/views/api/api_keys.py,sha256=
|
392
|
+
django_cfg/apps/payments/views/api/api_keys.py,sha256=yN7DljcQZKNvKzk7MwjJHM6LnmRHwBXfr2KEShC2RYA,13835
|
366
393
|
django_cfg/apps/payments/views/api/balances.py,sha256=a9FsmNjopy8702xXu1gFjWNc6XHkqIoc62HfTG65IdI,13089
|
367
|
-
django_cfg/apps/payments/views/api/base.py,sha256=
|
368
|
-
django_cfg/apps/payments/views/api/currencies.py,sha256=
|
369
|
-
django_cfg/apps/payments/views/api/payments.py,sha256=
|
370
|
-
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
|
371
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
|
372
404
|
django_cfg/apps/payments/views/serializers/__init__.py,sha256=mPY55D6bhRLyPHw6ORrEqtIdgyU2Uezg00EhgD5HK40,2310
|
373
|
-
django_cfg/apps/payments/views/serializers/api_keys.py,sha256=
|
374
|
-
django_cfg/apps/payments/views/serializers/balances.py,sha256
|
375
|
-
django_cfg/apps/payments/views/serializers/currencies.py,sha256=
|
376
|
-
django_cfg/apps/payments/views/serializers/payments.py,sha256=
|
377
|
-
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
|
378
410
|
django_cfg/apps/payments/views/serializers/webhooks.py,sha256=u6YUQoCiTXYWlPkaov7fNwJMopG5uGc7QAE6OQLP3zc,6000
|
379
411
|
django_cfg/apps/support/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
380
412
|
django_cfg/apps/support/admin.py,sha256=-fcegtqoCcwPiBXwyNLMftcYCTTbTRRBpWItyeNNkDY,8827
|
@@ -434,11 +466,11 @@ django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0S
|
|
434
466
|
django_cfg/cli/commands/create_project.py,sha256=8Jg4rfnGCINTd6ebBqx-WXG57AIB5C2yY5D3JQAtpyI,21029
|
435
467
|
django_cfg/cli/commands/info.py,sha256=AaLbFFOjHwqiIzZChPxfD3ASZZs1IAD-0RJQaLo2PC0,4925
|
436
468
|
django_cfg/core/__init__.py,sha256=eVK57qFOok9kTeHoNEMQ1BplkUOaQ7NB9kP9eQK1vg0,358
|
437
|
-
django_cfg/core/config.py,sha256=
|
469
|
+
django_cfg/core/config.py,sha256=u1g6mdUb4hHdUo8lkj3Z102E15lef3q87q2jWv4HdbE,31743
|
438
470
|
django_cfg/core/environment.py,sha256=MAoEPqIPsLVhSANT2Bz4nnus2wmbMW0RCOQxhQfDrDc,9106
|
439
471
|
django_cfg/core/exceptions.py,sha256=RTQEoU3PfR8lqqNNv5ayd_HY2yJLs3eioqUy8VM6AG4,10378
|
440
|
-
django_cfg/core/generation.py,sha256=
|
441
|
-
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
|
442
474
|
django_cfg/core/integration/README.md,sha256=3V27xNWoGQkauixJGW8TAE8p0FB8iCdt6zI4G4Nnssw,10699
|
443
475
|
django_cfg/core/integration/__init__.py,sha256=Il-UZ1dR2cn1Ev_CBMUVfoOxFTCoi__0Z3kmhkx_Na8,1505
|
444
476
|
django_cfg/core/integration/commands_collector.py,sha256=-9ppg2jYSrTC35Ijm5vAHUcNZM6AkayuPkfw715Ca2Q,8325
|
@@ -447,7 +479,7 @@ django_cfg/core/integration/version_checker.py,sha256=NrrbyTAtIkZdNPQHO2PMQjrp8D
|
|
447
479
|
django_cfg/core/integration/display/__init__.py,sha256=YwU9nmXOcDJL3q0wW5Q_59gLh_BXPsOfDlT3sZqHWZU,315
|
448
480
|
django_cfg/core/integration/display/base.py,sha256=67ABqa1WErBcFTROFy8fBzwvYYmHiloBk7-Hpexd2rE,5720
|
449
481
|
django_cfg/core/integration/display/ngrok.py,sha256=QdsIGTA6S_3shIYaxMRtcUibb5L4nMUrFMFg7q9OWA0,6242
|
450
|
-
django_cfg/core/integration/display/startup.py,sha256=
|
482
|
+
django_cfg/core/integration/display/startup.py,sha256=E0xs0aR8g1eraptverRS8k6BoErWZcbZeJESr6PG5uI,34585
|
451
483
|
django_cfg/management/__init__.py,sha256=NrLAhiS59hqjy-bipOC1abNuRiNm5BpKXmjN05VzKbM,28
|
452
484
|
django_cfg/management/commands/__init__.py,sha256=wc5DFEklUo-wB-6VAAmsV5UTbo5s3t936Lu61z4lojs,29
|
453
485
|
django_cfg/management/commands/auto_generate.py,sha256=wjqS2dq8B5fuftHjtsXTc-vk3CkOYVGUESMSw4MCWHw,14343
|
@@ -461,7 +493,7 @@ django_cfg/management/commands/migrator.py,sha256=Etdhl1EKSMWSxyQ70dX48bhYeQiIib
|
|
461
493
|
django_cfg/management/commands/rundramatiq.py,sha256=zYKg6U8PRx09NsW0tK0po9fYkmvNiEzGzwYtramH_gc,9126
|
462
494
|
django_cfg/management/commands/runserver_ngrok.py,sha256=8S711fS0pMasp8F8yigraDJLNnyfqFnrUnDzH2s8Gpk,6560
|
463
495
|
django_cfg/management/commands/script.py,sha256=aXyum1mdoPPOh-4YySRhianjbuAfe19Dyry72E6IQU4,17110
|
464
|
-
django_cfg/management/commands/show_config.py,sha256=
|
496
|
+
django_cfg/management/commands/show_config.py,sha256=6Yf-hAnN4rl_fbaidqzDhhH1kVYwfKKcaf_KtrAE4hY,8894
|
465
497
|
django_cfg/management/commands/show_urls.py,sha256=dqqJg2wwSoKTWGsyacXsFotaI9KahZVfYDGRIJa2riw,12342
|
466
498
|
django_cfg/management/commands/superuser.py,sha256=EpcaOkGMHoBRz2wuy4tAHi7YgEdUMGlTZMRIGXbUhcg,11194
|
467
499
|
django_cfg/management/commands/task_clear.py,sha256=4frvB97yKbGQMiFfYPPlxI4RudFogQOGzTRXbTeDXXY,8018
|
@@ -469,12 +501,13 @@ django_cfg/management/commands/task_status.py,sha256=hhZ0LyiOLoG9luT0hOEA12mpJxr
|
|
469
501
|
django_cfg/management/commands/test_email.py,sha256=nBaQLQz-yQx0xgwRJKuxAdChpotLILJm4FKqNOR3qes,3263
|
470
502
|
django_cfg/management/commands/test_telegram.py,sha256=M7wEhOgtAGnhn6y7NlbPsGw1uvVW0PcZWaGdTffaZ-k,2139
|
471
503
|
django_cfg/management/commands/test_twilio.py,sha256=ukSecCOohO98suVk5Qt5Fd7DlefVkx9sT_U2JykQZA4,4226
|
472
|
-
django_cfg/management/commands/tree.py,sha256=
|
504
|
+
django_cfg/management/commands/tree.py,sha256=Gu9H6YJogX7Z9vnGWDY4jCh7GOr381P5qzHKmALzJUY,13253
|
473
505
|
django_cfg/management/commands/validate_config.py,sha256=KNW1hGGGmNNdpMxwLfsTRIcko-HhfTp06qq8JazJvxk,7475
|
474
506
|
django_cfg/middleware/README.md,sha256=7XukH2HREqEnNJ9KDXhAcSw6lfpZ3gvKKAqGYvSivo4,3886
|
475
|
-
django_cfg/middleware/__init__.py,sha256=
|
507
|
+
django_cfg/middleware/__init__.py,sha256=FxYcAAVh8z-WM-MkipWAwfOwQx2b1rSPyi3Mt9xTUP0,278
|
476
508
|
django_cfg/middleware/pagination.py,sha256=RfLka1DbmLD-zznSAqayGD08x95ikcnkzp9LT5Jj5Bs,8655
|
477
509
|
django_cfg/middleware/public_endpoints.py,sha256=EHJKzlYwakeU3hSPBJ53FZn8Ub-jwENCVSfFDJt3kAk,6915
|
510
|
+
django_cfg/middleware/static_nocache.py,sha256=drpwoKN8zGH1-p4ltMZozL5fUyByzumqLJ7MkJBENnA,1888
|
478
511
|
django_cfg/middleware/user_activity.py,sha256=7XVSnnIVfz-Hucx-YWRODcXd3qDH8Y8E__-6zYWLxqI,6153
|
479
512
|
django_cfg/models/__init__.py,sha256=du24ZdqKdvc3VNXjgufEz_6B6gxdHtlqVHG4PJWaOQM,419
|
480
513
|
django_cfg/models/api.py,sha256=bCsQR3CVsAUs78m1Q1aFpPTNbvGtr1cq-fuxdCK2-JI,4596
|
@@ -491,9 +524,9 @@ django_cfg/models/jwt.py,sha256=3R_dpLmVZIcH4zdtwA4qKnuCB8RZQACrgsbbgWY2q4c,9025
|
|
491
524
|
django_cfg/models/limits.py,sha256=nUfvyPykwKR38ZOlIFqlNGRmfV8RO5hiUrhDH6FCHJw,7449
|
492
525
|
django_cfg/models/logging.py,sha256=4vZF-G9rPmXMxxtUx_ad7Esvgbe8a_5Dl692Yg0fL4A,10636
|
493
526
|
django_cfg/models/ngrok.py,sha256=MVgcKWx0DRSW0QcwhiSx2vVwTSG49vbVrzPkZqDK-zw,3575
|
494
|
-
django_cfg/models/payments.py,sha256=
|
527
|
+
django_cfg/models/payments.py,sha256=i4E1dGygp6mE8_yCPJPp-GsQm3D7qmTHKn91LdBCDx8,7214
|
495
528
|
django_cfg/models/revolution.py,sha256=16fQ09iovrmlepNcTr2J0hZ-ShdMnMSQ2rTXa60yrus,8134
|
496
|
-
django_cfg/models/security.py,sha256=
|
529
|
+
django_cfg/models/security.py,sha256=pJSgxKTINEY5vZR9IbaXhxkW2hh2lk8-E1tqMJNGqWM,5158
|
497
530
|
django_cfg/models/services.py,sha256=fj9JjrJFrlL4DMnMbx_D8JiiZpz4E5uBqmhquAxau7c,13159
|
498
531
|
django_cfg/models/tasks.py,sha256=zFvQaikXi-W-iN7eqR6ZGNiKJnPgOL3yl9RRis-5qZs,17160
|
499
532
|
django_cfg/modules/__init__.py,sha256=Ip9WMpzImEwIAywpFwU056_v0O9oIGG7nCT1YSArxkw,316
|
@@ -501,7 +534,7 @@ django_cfg/modules/base.py,sha256=A7fAp3eEBbs9zxVq96k9FotWnqHqZA5b-kH9-hOJ1zo,59
|
|
501
534
|
django_cfg/modules/django_email.py,sha256=Kk2B1Y73xlbpNKCDkU2uBT01iVANjKpmVlKbRScVCs4,18059
|
502
535
|
django_cfg/modules/django_health.py,sha256=7QzuQ6WyjWYj6lecd4auwRvEyrMUL7N6hiAp-tLyoY4,8923
|
503
536
|
django_cfg/modules/django_logger.py,sha256=ulODtdRnjCTM6OaF4QR-GUzXouHdQCrqDMjPwRUUuX8,8910
|
504
|
-
django_cfg/modules/django_ngrok.py,sha256=
|
537
|
+
django_cfg/modules/django_ngrok.py,sha256=IHR4MsmHGA1s7VaTkcBKhkfA7mcIUBr1gWxO5NQGhYc,10642
|
505
538
|
django_cfg/modules/django_tasks.py,sha256=SBas2juL6RfDL7ttm4xAxJ7bvS052WmUzixNHPlzJVo,17328
|
506
539
|
django_cfg/modules/django_telegram.py,sha256=qz3EOJnCR_YTJVIu2-Iq8--cla6mU-WPohquQ26eHDQ,16367
|
507
540
|
django_cfg/modules/dramatiq_setup.py,sha256=Jke4aO_L1t6F3OAc4pl12zppKzL0gb1p6ilfQ3zUIZ8,454
|
@@ -547,7 +580,7 @@ django_cfg/modules/django_twilio/templates/guide.md,sha256=nZfwx-sgWyK5NApm93zOe
|
|
547
580
|
django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html,sha256=sXR6_D9hmOFfk9CrfPizpLddVhkRirBWpZd_ioEsxVk,6671
|
548
581
|
django_cfg/modules/django_twilio/templates/sendgrid_test_data.json,sha256=fh1VyuSiDELHsS_CIz9gp7tlsMAEjaDOoqbAPSZ3yyo,339
|
549
582
|
django_cfg/modules/django_unfold/__init__.py,sha256=Z91x1iGmkzlRbEb2L9OCFmYDKNAV9C4G3i15j5S0esc,1898
|
550
|
-
django_cfg/modules/django_unfold/dashboard.py,sha256=
|
583
|
+
django_cfg/modules/django_unfold/dashboard.py,sha256=OBeU7X47ssZxhX7r9MBf-nXzVSBLLUGk04U47n6zqrE,17516
|
551
584
|
django_cfg/modules/django_unfold/models.py,sha256=bY6QSSaH_-r9vOTkSQjxeIkl5RaED7XkxXkT8-W5stk,4014
|
552
585
|
django_cfg/modules/django_unfold/system_monitor.py,sha256=cznZqldRJqiSLSJbs4U7R2rX8ClzoIpqdfXdXqI2iQw,6955
|
553
586
|
django_cfg/modules/django_unfold/tailwind.py,sha256=X9o1K3QL0VwUISgJ26sLb6zkdK-00qiDuekqTw-fydc,10846
|
@@ -628,11 +661,11 @@ django_cfg/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
628
661
|
django_cfg/templatetags/django_cfg.py,sha256=11_3YX0jAVuOd_fVcDixAxyDMG4V7A98SPqv8Lbfpxc,1308
|
629
662
|
django_cfg/utils/__init__.py,sha256=64wwXJuXytvwt8Ze_erSR2HmV07nGWJ6DV5wloRBvYE,435
|
630
663
|
django_cfg/utils/path_resolution.py,sha256=C9As6p4Q9l3VeoVkFDRPQWGrzAWf8O8UxLVkaI3ToVM,13899
|
631
|
-
django_cfg/utils/smart_defaults.py,sha256=
|
664
|
+
django_cfg/utils/smart_defaults.py,sha256=M7KEqGfBiwXV-Hk-kS5YGZK8kEc8K2EGqli0hvjBwCQ,10972
|
632
665
|
django_cfg/utils/toolkit.py,sha256=MfnjfGl2_VZo2o5aWIJaOYz2w45HQfOjO6X6nm5BJ8k,25312
|
633
666
|
django_cfg/utils/version_check.py,sha256=jI4v3YMdQriUEeb_TvRl511sDghy6I75iKRDUaNpucs,4800
|
634
|
-
django_cfg-1.3.
|
635
|
-
django_cfg-1.3.
|
636
|
-
django_cfg-1.3.
|
637
|
-
django_cfg-1.3.
|
638
|
-
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>
|
@@ -1,259 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
Payment Template Views for Universal Payment System v2.0.
|
3
|
-
|
4
|
-
Django template views for payment forms and status pages.
|
5
|
-
"""
|
6
|
-
|
7
|
-
from django.views.generic import TemplateView, DetailView
|
8
|
-
from django.contrib.auth.mixins import LoginRequiredMixin
|
9
|
-
from django.shortcuts import get_object_or_404
|
10
|
-
from django.http import JsonResponse
|
11
|
-
from django.utils import timezone
|
12
|
-
|
13
|
-
from ...models import UniversalPayment
|
14
|
-
from ...services.core.payment_service import PaymentService
|
15
|
-
from ...services.core.currency_service import CurrencyService
|
16
|
-
from ...services.integrations.providers_config import get_all_providers_info
|
17
|
-
|
18
|
-
|
19
|
-
class PaymentFormView(LoginRequiredMixin, TemplateView):
|
20
|
-
"""
|
21
|
-
Payment creation form view.
|
22
|
-
|
23
|
-
Displays a form for creating new payments with provider selection
|
24
|
-
and real-time currency conversion.
|
25
|
-
"""
|
26
|
-
template_name = 'payments/payment_form.html'
|
27
|
-
|
28
|
-
def get_context_data(self, **kwargs):
|
29
|
-
context = super().get_context_data(**kwargs)
|
30
|
-
|
31
|
-
# Add form data
|
32
|
-
context.update({
|
33
|
-
'page_title': 'Create Payment',
|
34
|
-
'page_subtitle': 'Process a payment through our universal payment system',
|
35
|
-
})
|
36
|
-
|
37
|
-
return context
|
38
|
-
|
39
|
-
def post(self, request, *args, **kwargs):
|
40
|
-
"""Handle AJAX payment creation."""
|
41
|
-
if not request.headers.get('Content-Type', '').startswith('application/json'):
|
42
|
-
return super().get(request, *args, **kwargs)
|
43
|
-
|
44
|
-
try:
|
45
|
-
import json
|
46
|
-
data = json.loads(request.body)
|
47
|
-
|
48
|
-
# Create payment using service
|
49
|
-
payment_service = PaymentService()
|
50
|
-
result = payment_service.create_payment(
|
51
|
-
user_id=request.user.id,
|
52
|
-
amount_usd=float(data.get('amount', 0)),
|
53
|
-
currency_code=data.get('currency', 'USD'),
|
54
|
-
provider=data.get('provider'),
|
55
|
-
callback_url=data.get('callback_url')
|
56
|
-
)
|
57
|
-
|
58
|
-
if result.success:
|
59
|
-
return JsonResponse({
|
60
|
-
'success': True,
|
61
|
-
'payment': {
|
62
|
-
'id': str(result.data.id),
|
63
|
-
'external_id': result.data.external_id,
|
64
|
-
'status': result.data.status,
|
65
|
-
'amount_usd': result.data.amount_usd,
|
66
|
-
'currency_code': result.data.currency_code,
|
67
|
-
'provider': result.data.provider,
|
68
|
-
'payment_url': result.data.payment_url,
|
69
|
-
'qr_code_url': result.data.qr_code_url,
|
70
|
-
}
|
71
|
-
})
|
72
|
-
else:
|
73
|
-
return JsonResponse({
|
74
|
-
'success': False,
|
75
|
-
'error': result.error_message
|
76
|
-
}, status=400)
|
77
|
-
|
78
|
-
except Exception as e:
|
79
|
-
return JsonResponse({
|
80
|
-
'success': False,
|
81
|
-
'error': str(e)
|
82
|
-
}, status=500)
|
83
|
-
|
84
|
-
|
85
|
-
class PaymentStatusView(DetailView):
|
86
|
-
"""
|
87
|
-
Payment status tracking view.
|
88
|
-
|
89
|
-
Displays payment status with real-time updates and timeline.
|
90
|
-
"""
|
91
|
-
model = UniversalPayment
|
92
|
-
template_name = 'payments/payment_status.html'
|
93
|
-
context_object_name = 'payment'
|
94
|
-
|
95
|
-
def get_object(self, queryset=None):
|
96
|
-
"""Get payment by ID with optimized query."""
|
97
|
-
if queryset is None:
|
98
|
-
queryset = self.get_queryset()
|
99
|
-
|
100
|
-
# Get payment ID from URL
|
101
|
-
payment_id = self.kwargs.get('pk')
|
102
|
-
|
103
|
-
return get_object_or_404(
|
104
|
-
queryset.select_related('currency', 'user')
|
105
|
-
.prefetch_related('transactions'),
|
106
|
-
id=payment_id
|
107
|
-
)
|
108
|
-
|
109
|
-
def get_context_data(self, **kwargs):
|
110
|
-
context = super().get_context_data(**kwargs)
|
111
|
-
payment = self.object
|
112
|
-
|
113
|
-
# Add page metadata
|
114
|
-
context.update({
|
115
|
-
'page_title': f'Payment #{payment.external_id or str(payment.id)[:8]}',
|
116
|
-
'page_subtitle': 'Track your payment progress in real-time',
|
117
|
-
})
|
118
|
-
|
119
|
-
return context
|
120
|
-
|
121
|
-
def get(self, request, *args, **kwargs):
|
122
|
-
"""Handle both template and AJAX requests."""
|
123
|
-
self.object = self.get_object()
|
124
|
-
|
125
|
-
# Handle AJAX requests for status updates
|
126
|
-
if request.headers.get('Accept') == 'application/json':
|
127
|
-
payment = self.object
|
128
|
-
|
129
|
-
return JsonResponse({
|
130
|
-
'id': str(payment.id),
|
131
|
-
'external_id': payment.external_id,
|
132
|
-
'status': payment.status,
|
133
|
-
'status_display': payment.get_status_display(),
|
134
|
-
'amount_usd': payment.amount_usd,
|
135
|
-
'amount_crypto': str(payment.amount_crypto) if payment.amount_crypto else None,
|
136
|
-
'currency_code': payment.currency.code,
|
137
|
-
'provider': payment.provider,
|
138
|
-
'network': payment.network,
|
139
|
-
'created_at': payment.created_at.isoformat(),
|
140
|
-
'updated_at': payment.updated_at.isoformat(),
|
141
|
-
'confirmed_at': payment.confirmed_at.isoformat() if payment.confirmed_at else None,
|
142
|
-
'payment_url': payment.payment_url,
|
143
|
-
'qr_code_url': payment.qr_code_url,
|
144
|
-
'exchange_rate': str(payment.exchange_rate) if payment.exchange_rate else None,
|
145
|
-
})
|
146
|
-
|
147
|
-
# Regular template response
|
148
|
-
return super().get(request, *args, **kwargs)
|
149
|
-
|
150
|
-
|
151
|
-
class PaymentListView(LoginRequiredMixin, TemplateView):
|
152
|
-
"""
|
153
|
-
Payment list view with filtering and search.
|
154
|
-
|
155
|
-
Displays a paginated list of payments with advanced filtering options.
|
156
|
-
"""
|
157
|
-
template_name = 'payments/payment_list.html'
|
158
|
-
|
159
|
-
def get_context_data(self, **kwargs):
|
160
|
-
context = super().get_context_data(**kwargs)
|
161
|
-
|
162
|
-
# Add page metadata
|
163
|
-
context.update({
|
164
|
-
'page_title': 'Payment History',
|
165
|
-
'page_subtitle': 'View and manage your payment transactions',
|
166
|
-
})
|
167
|
-
|
168
|
-
return context
|
169
|
-
|
170
|
-
|
171
|
-
class PaymentDashboardView(LoginRequiredMixin, TemplateView):
|
172
|
-
"""
|
173
|
-
Main payment dashboard view.
|
174
|
-
|
175
|
-
Displays payment statistics, recent activity, and quick actions.
|
176
|
-
"""
|
177
|
-
template_name = 'payments/payment_dashboard.html'
|
178
|
-
|
179
|
-
def get_context_data(self, **kwargs):
|
180
|
-
context = super().get_context_data(**kwargs)
|
181
|
-
|
182
|
-
# Get payment statistics
|
183
|
-
user_payments = UniversalPayment.objects.filter(user=self.request.user)
|
184
|
-
|
185
|
-
stats = {
|
186
|
-
'total_payments': user_payments.count(),
|
187
|
-
'completed_payments': user_payments.filter(status='completed').count(),
|
188
|
-
'pending_payments': user_payments.filter(status__in=['pending', 'processing']).count(),
|
189
|
-
'failed_payments': user_payments.filter(status__in=['failed', 'cancelled']).count(),
|
190
|
-
'total_amount': sum(p.amount_usd for p in user_payments.filter(status='completed')),
|
191
|
-
'recent_payments': user_payments.order_by('-created_at')[:5],
|
192
|
-
}
|
193
|
-
|
194
|
-
# Add page metadata
|
195
|
-
context.update({
|
196
|
-
'page_title': 'Payment Dashboard',
|
197
|
-
'page_subtitle': 'Overview of your payment activity',
|
198
|
-
'stats': stats,
|
199
|
-
})
|
200
|
-
|
201
|
-
return context
|
202
|
-
|
203
|
-
|
204
|
-
class CurrencyConverterView(TemplateView):
|
205
|
-
"""
|
206
|
-
Currency conversion tool view.
|
207
|
-
|
208
|
-
Provides real-time currency conversion rates and calculator.
|
209
|
-
"""
|
210
|
-
template_name = 'payments/currency_converter.html'
|
211
|
-
|
212
|
-
def get_context_data(self, **kwargs):
|
213
|
-
context = super().get_context_data(**kwargs)
|
214
|
-
|
215
|
-
# Add page metadata
|
216
|
-
context.update({
|
217
|
-
'page_title': 'Currency Converter',
|
218
|
-
'page_subtitle': 'Real-time currency conversion rates',
|
219
|
-
})
|
220
|
-
|
221
|
-
return context
|
222
|
-
|
223
|
-
def post(self, request, *args, **kwargs):
|
224
|
-
"""Handle AJAX conversion requests."""
|
225
|
-
if not request.headers.get('Content-Type', '').startswith('application/json'):
|
226
|
-
return super().get(request, *args, **kwargs)
|
227
|
-
|
228
|
-
try:
|
229
|
-
import json
|
230
|
-
data = json.loads(request.body)
|
231
|
-
|
232
|
-
# Use currency service for conversion
|
233
|
-
currency_service = CurrencyService()
|
234
|
-
result = currency_service.convert_currency(
|
235
|
-
amount=float(data.get('amount', 0)),
|
236
|
-
from_currency=data.get('from_currency', 'USD'),
|
237
|
-
to_currency=data.get('to_currency', 'BTC')
|
238
|
-
)
|
239
|
-
|
240
|
-
if result.success:
|
241
|
-
return JsonResponse({
|
242
|
-
'success': True,
|
243
|
-
'converted_amount': result.data.converted_amount,
|
244
|
-
'exchange_rate': result.data.exchange_rate,
|
245
|
-
'from_currency': result.data.from_currency,
|
246
|
-
'to_currency': result.data.to_currency,
|
247
|
-
'timestamp': timezone.now().isoformat(),
|
248
|
-
})
|
249
|
-
else:
|
250
|
-
return JsonResponse({
|
251
|
-
'success': False,
|
252
|
-
'error': result.error_message
|
253
|
-
}, status=400)
|
254
|
-
|
255
|
-
except Exception as e:
|
256
|
-
return JsonResponse({
|
257
|
-
'success': False,
|
258
|
-
'error': str(e)
|
259
|
-
}, status=500)
|