django-cfg 1.3.11__py3-none-any.whl โ†’ 1.4.0__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 (439) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/accounts/admin/inlines.py +11 -5
  3. django_cfg/apps/accounts/admin/user_admin.py +39 -16
  4. django_cfg/apps/accounts/serializers/profile.py +1 -1
  5. django_cfg/apps/accounts/services/otp_service.py +18 -11
  6. django_cfg/apps/accounts/signals.py +15 -24
  7. django_cfg/apps/accounts/utils/notifications.py +217 -358
  8. django_cfg/apps/accounts/views/otp.py +2 -2
  9. django_cfg/apps/accounts/views/webhook.py +1 -1
  10. django_cfg/apps/agents/core/django_agent.py +1 -1
  11. django_cfg/apps/api/commands/views.py +66 -83
  12. django_cfg/apps/api/health/drf_views.py +269 -0
  13. django_cfg/apps/api/health/serializers.py +45 -0
  14. django_cfg/apps/api/health/urls.py +6 -1
  15. django_cfg/apps/knowbase/admin/actions/__init__.py +13 -0
  16. django_cfg/apps/knowbase/admin/actions/visibility_actions.py +56 -0
  17. django_cfg/apps/knowbase/admin/document_admin.py +136 -270
  18. django_cfg/apps/knowbase/admin/helpers/__init__.py +17 -0
  19. django_cfg/apps/knowbase/admin/helpers/configs.py +72 -0
  20. django_cfg/apps/knowbase/admin/helpers/display_helpers.py +156 -0
  21. django_cfg/apps/knowbase/admin/helpers/statistics.py +108 -0
  22. django_cfg/apps/knowbase/config/constance_fields.py +1 -1
  23. django_cfg/apps/knowbase/config/settings.py +2 -2
  24. django_cfg/apps/knowbase/mixins/__init__.py +19 -2
  25. django_cfg/apps/knowbase/mixins/config/__init__.py +14 -0
  26. django_cfg/apps/knowbase/mixins/config/defaults.py +75 -0
  27. django_cfg/apps/knowbase/mixins/config/meta_config.py +120 -0
  28. django_cfg/apps/knowbase/mixins/creator.py +10 -10
  29. django_cfg/apps/knowbase/mixins/external_data_mixin.py +105 -403
  30. django_cfg/apps/knowbase/mixins/generators/__init__.py +16 -0
  31. django_cfg/apps/knowbase/mixins/generators/content_generator.py +218 -0
  32. django_cfg/apps/knowbase/mixins/generators/field_analyzer.py +76 -0
  33. django_cfg/apps/knowbase/mixins/generators/metadata_generator.py +124 -0
  34. django_cfg/apps/knowbase/mixins/service.py +2 -2
  35. django_cfg/apps/knowbase/services/archive/__init__.py +1 -0
  36. django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +17 -0
  37. django_cfg/apps/knowbase/services/archive/analyzers/complexity_analyzer.py +33 -0
  38. django_cfg/apps/knowbase/services/archive/analyzers/purpose_detector.py +36 -0
  39. django_cfg/apps/knowbase/services/archive/analyzers/quality_analyzer.py +39 -0
  40. django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +103 -0
  41. django_cfg/apps/knowbase/services/archive/chunking/__init__.py +19 -0
  42. django_cfg/apps/knowbase/services/archive/chunking/base.py +81 -0
  43. django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +62 -0
  44. django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +107 -0
  45. django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +248 -0
  46. django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +70 -0
  47. django_cfg/apps/knowbase/services/archive/chunking_service.py +110 -729
  48. django_cfg/apps/knowbase/services/archive/context/__init__.py +14 -0
  49. django_cfg/apps/knowbase/services/archive/context/builders.py +220 -0
  50. django_cfg/apps/knowbase/services/archive/context/models.py +38 -0
  51. django_cfg/apps/knowbase/services/embedding/models.py +18 -14
  52. django_cfg/apps/knowbase/services/embedding/processors.py +6 -3
  53. django_cfg/apps/knowbase/tasks/document_processing.py +11 -3
  54. django_cfg/apps/leads/tests.py +1 -1
  55. django_cfg/apps/payments/admin/api_keys_admin.py +1 -1
  56. django_cfg/apps/payments/admin/balance_admin.py +1 -1
  57. django_cfg/apps/payments/admin/currencies_admin.py +1 -1
  58. django_cfg/apps/payments/admin/payments_admin.py +1 -1
  59. django_cfg/apps/payments/admin/subscriptions_admin.py +1 -1
  60. django_cfg/apps/payments/admin_interface/templates/payments/base.html +59 -126
  61. django_cfg/apps/payments/admin_interface/views/api/payments.py +1 -1
  62. django_cfg/apps/payments/admin_interface/views/api/stats.py +1 -1
  63. django_cfg/apps/payments/admin_interface/views/api/users.py +1 -1
  64. django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +1 -1
  65. django_cfg/apps/payments/admin_interface/views/api/webhook_public.py +1 -1
  66. django_cfg/apps/payments/admin_interface/views/base.py +29 -2
  67. django_cfg/apps/payments/apps.py +1 -1
  68. django_cfg/apps/payments/config/django_cfg_integration.py +2 -2
  69. django_cfg/apps/payments/config/helpers.py +3 -2
  70. django_cfg/apps/payments/management/commands/cleanup_expired_data.py +1 -1
  71. django_cfg/apps/payments/management/commands/currency_stats.py +1 -1
  72. django_cfg/apps/payments/management/commands/manage_currencies.py +1 -1
  73. django_cfg/apps/payments/management/commands/manage_providers.py +1 -1
  74. django_cfg/apps/payments/management/commands/process_pending_payments.py +1 -1
  75. django_cfg/apps/payments/management/commands/test_providers.py +1 -1
  76. django_cfg/apps/payments/middleware/api_access.py +1 -1
  77. django_cfg/apps/payments/middleware/rate_limiting.py +1 -1
  78. django_cfg/apps/payments/middleware/usage_tracking.py +1 -1
  79. django_cfg/apps/payments/models/balance.py +2 -2
  80. django_cfg/apps/payments/models/managers/api_key_managers.py +1 -1
  81. django_cfg/apps/payments/models/managers/balance_managers.py +1 -1
  82. django_cfg/apps/payments/models/managers/currency_managers.py +1 -1
  83. django_cfg/apps/payments/models/managers/payment_managers.py +1 -1
  84. django_cfg/apps/payments/models/managers/subscription_managers.py +1 -1
  85. django_cfg/apps/payments/models/payments.py +2 -2
  86. django_cfg/apps/payments/services/cache_service/__init__.py +1 -1
  87. django_cfg/apps/payments/services/cache_service/simple_cache.py +10 -5
  88. django_cfg/apps/payments/services/core/base.py +1 -1
  89. django_cfg/apps/payments/services/core/currency/__init__.py +13 -0
  90. django_cfg/apps/payments/services/core/currency/currency_converter.py +57 -0
  91. django_cfg/apps/payments/services/core/currency/currency_validator.py +61 -0
  92. django_cfg/apps/payments/services/core/operations/__init__.py +15 -0
  93. django_cfg/apps/payments/services/core/operations/payment_canceller.py +100 -0
  94. django_cfg/apps/payments/services/core/operations/payment_creator.py +196 -0
  95. django_cfg/apps/payments/services/core/operations/status_checker.py +100 -0
  96. django_cfg/apps/payments/services/core/payment_service.py +124 -612
  97. django_cfg/apps/payments/services/core/providers/__init__.py +13 -0
  98. django_cfg/apps/payments/services/core/providers/provider_client.py +132 -0
  99. django_cfg/apps/payments/services/core/providers/status_mapper.py +89 -0
  100. django_cfg/apps/payments/services/core/utils/__init__.py +13 -0
  101. django_cfg/apps/payments/services/core/utils/data_converter.py +48 -0
  102. django_cfg/apps/payments/services/core/utils/statistics_calculator.py +69 -0
  103. django_cfg/apps/payments/services/providers/base.py +1 -1
  104. django_cfg/apps/payments/services/providers/nowpayments/__init__.py +3 -3
  105. django_cfg/apps/payments/services/providers/nowpayments/parsers/__init__.py +9 -0
  106. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/__init__.py +23 -0
  107. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/constants.py +23 -0
  108. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/currency_names.py +244 -0
  109. django_cfg/apps/payments/services/providers/nowpayments/parsers/data/patterns.py +511 -0
  110. django_cfg/apps/payments/services/providers/nowpayments/parsers/parser.py +168 -0
  111. django_cfg/apps/payments/services/providers/nowpayments/provider.py +1 -1
  112. django_cfg/apps/payments/services/providers/nowpayments/sync.py +1 -1
  113. django_cfg/apps/payments/services/providers/registry.py +1 -1
  114. django_cfg/apps/payments/services/providers/sync_service.py +1 -1
  115. django_cfg/apps/payments/signals/__init__.py +1 -1
  116. django_cfg/apps/payments/signals/api_key_signals.py +1 -1
  117. django_cfg/apps/payments/signals/balance_signals.py +1 -1
  118. django_cfg/apps/payments/signals/payment_signals.py +1 -1
  119. django_cfg/apps/payments/signals/subscription_signals.py +1 -1
  120. django_cfg/apps/payments/views/api/api_keys.py +1 -1
  121. django_cfg/apps/payments/views/api/balances.py +1 -1
  122. django_cfg/apps/payments/views/api/base.py +1 -1
  123. django_cfg/apps/payments/views/api/currencies.py +1 -1
  124. django_cfg/apps/payments/views/api/payments.py +1 -1
  125. django_cfg/apps/payments/views/api/subscriptions.py +1 -1
  126. django_cfg/apps/payments/views/api/webhooks.py +1 -1
  127. django_cfg/apps/payments/views/serializers/api_keys.py +1 -1
  128. django_cfg/apps/payments/views/serializers/balances.py +1 -1
  129. django_cfg/apps/payments/views/serializers/currencies.py +1 -1
  130. django_cfg/apps/payments/views/serializers/payments.py +1 -1
  131. django_cfg/apps/payments/views/serializers/subscriptions.py +1 -1
  132. django_cfg/apps/payments/views/serializers/webhooks.py +1 -1
  133. django_cfg/apps/support/admin/support_admin.py +21 -13
  134. django_cfg/apps/support/templates/support/chat/access_denied.html +21 -27
  135. django_cfg/apps/support/templates/support/chat/ticket_chat.html +183 -254
  136. django_cfg/apps/support/utils/support_email_service.py +1 -1
  137. django_cfg/apps/tasks/templates/tasks/layout/base.html +20 -115
  138. django_cfg/apps/tasks/utils/simulator.py +1 -1
  139. django_cfg/apps/tasks/views/dashboard.py +33 -3
  140. django_cfg/apps/urls.py +5 -1
  141. django_cfg/cli/README.md +57 -471
  142. django_cfg/cli/commands/create_project.py +140 -529
  143. django_cfg/cli/main.py +13 -10
  144. django_cfg/core/__init__.py +63 -6
  145. django_cfg/core/base/__init__.py +5 -0
  146. django_cfg/core/base/config_model.py +652 -0
  147. django_cfg/core/builders/__init__.py +11 -0
  148. django_cfg/core/builders/apps_builder.py +258 -0
  149. django_cfg/core/builders/middleware_builder.py +115 -0
  150. django_cfg/core/builders/security_builder.py +96 -0
  151. django_cfg/core/config.py +20 -892
  152. django_cfg/core/constants.py +69 -0
  153. django_cfg/core/environment/__init__.py +9 -0
  154. django_cfg/core/exceptions.py +45 -298
  155. django_cfg/core/generation/__init__.py +51 -0
  156. django_cfg/core/generation/core_generators/__init__.py +0 -0
  157. django_cfg/core/generation/core_generators/settings.py +90 -0
  158. django_cfg/core/generation/core_generators/static.py +82 -0
  159. django_cfg/core/generation/core_generators/templates.py +141 -0
  160. django_cfg/core/generation/data_generators/__init__.py +15 -0
  161. django_cfg/core/generation/data_generators/cache.py +132 -0
  162. django_cfg/core/generation/data_generators/database.py +117 -0
  163. django_cfg/core/generation/generation.py +92 -0
  164. django_cfg/core/generation/integration_generators/__init__.py +21 -0
  165. django_cfg/core/generation/integration_generators/api.py +237 -0
  166. django_cfg/core/generation/integration_generators/sessions.py +65 -0
  167. django_cfg/core/generation/integration_generators/tailwind.py +54 -0
  168. django_cfg/core/generation/integration_generators/tasks.py +92 -0
  169. django_cfg/core/generation/integration_generators/third_party.py +144 -0
  170. django_cfg/core/generation/orchestrator.py +285 -0
  171. django_cfg/core/generation/protocols.py +30 -0
  172. django_cfg/core/generation/security_generators/__init__.py +0 -0
  173. django_cfg/core/generation/utility_generators/__init__.py +24 -0
  174. django_cfg/core/generation/utility_generators/email.py +58 -0
  175. django_cfg/core/generation/utility_generators/i18n.py +66 -0
  176. django_cfg/core/generation/utility_generators/limits.py +58 -0
  177. django_cfg/core/generation/utility_generators/logging.py +66 -0
  178. django_cfg/core/generation/utility_generators/security.py +101 -0
  179. django_cfg/core/generation/utils/__init__.py +0 -0
  180. django_cfg/core/generation/utils/helpers.py +32 -0
  181. django_cfg/core/integration/__init__.py +18 -25
  182. django_cfg/core/integration/display/startup.py +146 -133
  183. django_cfg/core/integration/url_integration.py +13 -2
  184. django_cfg/core/services/__init__.py +5 -0
  185. django_cfg/core/services/config_service.py +121 -0
  186. django_cfg/core/state/__init__.py +9 -0
  187. django_cfg/core/state/registry.py +84 -0
  188. django_cfg/core/types/__init__.py +15 -0
  189. django_cfg/core/types/aliases.py +15 -0
  190. django_cfg/core/types/enums.py +49 -0
  191. django_cfg/dashboard/DEBUG_README.md +105 -0
  192. django_cfg/dashboard/REFACTORING_SUMMARY.md +237 -0
  193. django_cfg/dashboard/__init__.py +24 -0
  194. django_cfg/dashboard/components.py +308 -0
  195. django_cfg/dashboard/debug.py +176 -0
  196. django_cfg/dashboard/management/__init__.py +0 -0
  197. django_cfg/dashboard/management/commands/__init__.py +0 -0
  198. django_cfg/dashboard/management/commands/debug_dashboard.py +109 -0
  199. django_cfg/dashboard/sections/__init__.py +1 -0
  200. django_cfg/dashboard/sections/base.py +128 -0
  201. django_cfg/dashboard/sections/commands.py +32 -0
  202. django_cfg/dashboard/sections/overview.py +394 -0
  203. django_cfg/dashboard/sections/stats.py +48 -0
  204. django_cfg/dashboard/sections/system.py +73 -0
  205. django_cfg/management/commands/check_settings.py +6 -2
  206. django_cfg/management/commands/clear_constance.py +6 -1
  207. django_cfg/management/commands/create_token.py +5 -4
  208. django_cfg/management/commands/generate.py +5 -0
  209. django_cfg/management/commands/list_urls.py +7 -2
  210. django_cfg/management/commands/migrate_all.py +6 -2
  211. django_cfg/management/commands/migrator.py +6 -1
  212. django_cfg/management/commands/rundramatiq.py +6 -1
  213. django_cfg/management/commands/rundramatiq_simulator.py +11 -4
  214. django_cfg/management/commands/runserver_ngrok.py +9 -7
  215. django_cfg/management/commands/script.py +25 -21
  216. django_cfg/management/commands/show_config.py +6 -1
  217. django_cfg/management/commands/show_urls.py +8 -3
  218. django_cfg/management/commands/superuser.py +5 -4
  219. django_cfg/management/commands/task_clear.py +8 -3
  220. django_cfg/management/commands/task_status.py +8 -3
  221. django_cfg/management/commands/test_email.py +6 -1
  222. django_cfg/management/commands/test_telegram.py +6 -1
  223. django_cfg/management/commands/test_twilio.py +6 -1
  224. django_cfg/management/commands/tree.py +7 -4
  225. django_cfg/models/__init__.py +88 -3
  226. django_cfg/models/api/__init__.py +27 -0
  227. django_cfg/models/{api.py โ†’ api/config.py} +1 -1
  228. django_cfg/models/api/drf/__init__.py +21 -0
  229. django_cfg/models/api/drf/config.py +101 -0
  230. django_cfg/models/api/drf/redoc.py +31 -0
  231. django_cfg/models/api/drf/spectacular.py +129 -0
  232. django_cfg/models/api/drf/swagger.py +59 -0
  233. django_cfg/models/{api_keys.py โ†’ api/keys.py} +16 -6
  234. django_cfg/models/{limits.py โ†’ api/limits.py} +0 -1
  235. django_cfg/models/base/__init__.py +14 -0
  236. django_cfg/models/django/__init__.py +16 -0
  237. django_cfg/models/{constance.py โ†’ django/constance.py} +1 -1
  238. django_cfg/models/{environment.py โ†’ django/environment.py} +1 -1
  239. django_cfg/models/infrastructure/__init__.py +17 -0
  240. django_cfg/models/{cache.py โ†’ infrastructure/cache.py} +3 -2
  241. django_cfg/models/infrastructure/database/__init__.py +22 -0
  242. django_cfg/models/infrastructure/database/config.py +265 -0
  243. django_cfg/models/infrastructure/database/converters.py +91 -0
  244. django_cfg/models/infrastructure/database/parsers.py +96 -0
  245. django_cfg/models/infrastructure/database/routing.py +85 -0
  246. django_cfg/models/infrastructure/database/validators.py +170 -0
  247. django_cfg/models/{logging.py โ†’ infrastructure/logging.py} +1 -1
  248. django_cfg/models/{security.py โ†’ infrastructure/security.py} +2 -2
  249. django_cfg/models/ngrok/__init__.py +11 -0
  250. django_cfg/models/ngrok/auth.py +37 -0
  251. django_cfg/models/ngrok/config.py +77 -0
  252. django_cfg/models/ngrok/tunnel.py +35 -0
  253. django_cfg/models/payments/__init__.py +20 -0
  254. django_cfg/models/payments/api_keys.py +57 -0
  255. django_cfg/models/{payments.py โ†’ payments/config.py} +56 -154
  256. django_cfg/models/payments/providers/__init__.py +15 -0
  257. django_cfg/models/payments/providers/base.py +25 -0
  258. django_cfg/models/payments/providers/nowpayments.py +48 -0
  259. django_cfg/models/services/__init__.py +18 -0
  260. django_cfg/models/services/base.py +65 -0
  261. django_cfg/models/{email.py โ†’ services/email.py} +1 -1
  262. django_cfg/models/services/telegram.py +172 -0
  263. django_cfg/models/tasks/__init__.py +51 -0
  264. django_cfg/models/tasks/backends.py +250 -0
  265. django_cfg/models/tasks/config.py +314 -0
  266. django_cfg/models/tasks/utils.py +174 -0
  267. django_cfg/modules/base.py +18 -3
  268. django_cfg/modules/django_admin/decorators/actions.py +1 -1
  269. django_cfg/modules/django_admin/decorators/display.py +1 -1
  270. django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +1 -1
  271. django_cfg/modules/django_cfg_rpc_client/README.md +346 -0
  272. django_cfg/modules/django_cfg_rpc_client/__init__.py +51 -0
  273. django_cfg/modules/django_cfg_rpc_client/client.py +540 -0
  274. django_cfg/modules/django_cfg_rpc_client/config.py +207 -0
  275. django_cfg/modules/django_cfg_rpc_client/dashboard/README.md +517 -0
  276. django_cfg/modules/django_cfg_rpc_client/dashboard/UNFOLD_INTEGRATION.md +439 -0
  277. django_cfg/modules/django_cfg_rpc_client/dashboard/__init__.py +11 -0
  278. django_cfg/modules/django_cfg_rpc_client/dashboard/apps.py +22 -0
  279. django_cfg/modules/django_cfg_rpc_client/dashboard/monitor.py +435 -0
  280. django_cfg/modules/django_cfg_rpc_client/dashboard/static/django_cfg_rpc_dashboard/js/dashboard.js +373 -0
  281. django_cfg/modules/django_cfg_rpc_client/dashboard/templates/django_cfg_rpc_dashboard/base.html +76 -0
  282. django_cfg/modules/django_cfg_rpc_client/dashboard/templates/django_cfg_rpc_dashboard/dashboard.html +200 -0
  283. django_cfg/modules/django_cfg_rpc_client/dashboard/urls.py +22 -0
  284. django_cfg/modules/django_cfg_rpc_client/dashboard/urls_admin.py +9 -0
  285. django_cfg/modules/django_cfg_rpc_client/dashboard/views.py +251 -0
  286. django_cfg/modules/django_cfg_rpc_client/exceptions.py +201 -0
  287. django_cfg/modules/django_drf_theme/CHANGELOG.md +210 -0
  288. django_cfg/modules/django_drf_theme/EXAMPLE.md +465 -0
  289. django_cfg/modules/django_drf_theme/IMPLEMENTATION.md +232 -0
  290. django_cfg/modules/django_drf_theme/README.md +207 -0
  291. django_cfg/modules/django_drf_theme/TAILWIND_CDN_GUIDE.md +274 -0
  292. django_cfg/modules/django_drf_theme/__init__.py +23 -0
  293. django_cfg/modules/django_drf_theme/apps.py +15 -0
  294. django_cfg/modules/django_drf_theme/renderers.py +58 -0
  295. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/api.html +375 -0
  296. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/base.html +938 -0
  297. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/filter_form.html +132 -0
  298. django_cfg/modules/django_drf_theme/templates/rest_framework/tailwind/forms/raw_data_form.html +123 -0
  299. django_cfg/modules/django_drf_theme/templatetags/__init__.py +1 -0
  300. django_cfg/modules/django_drf_theme/templatetags/tailwind_tags.py +57 -0
  301. django_cfg/modules/django_email/__init__.py +14 -0
  302. django_cfg/modules/{django_email.py โ†’ django_email/service.py} +78 -113
  303. django_cfg/modules/django_email/utils.py +40 -0
  304. django_cfg/modules/django_health/__init__.py +9 -0
  305. django_cfg/modules/{django_health.py โ†’ django_health/service.py} +23 -21
  306. django_cfg/modules/django_llm/llm/client.py +155 -550
  307. django_cfg/modules/django_llm/llm/embeddings/__init__.py +13 -0
  308. django_cfg/modules/django_llm/llm/embeddings/mock_embedder.py +106 -0
  309. django_cfg/modules/django_llm/llm/embeddings/openai_embedder.py +79 -0
  310. django_cfg/modules/django_llm/llm/models_api/__init__.py +9 -0
  311. django_cfg/modules/django_llm/llm/models_api/models_query.py +163 -0
  312. django_cfg/modules/django_llm/llm/providers/__init__.py +15 -0
  313. django_cfg/modules/django_llm/llm/providers/config_builder.py +103 -0
  314. django_cfg/modules/django_llm/llm/providers/provider_manager.py +148 -0
  315. django_cfg/modules/django_llm/llm/providers/provider_selector.py +60 -0
  316. django_cfg/modules/django_llm/llm/requests/__init__.py +15 -0
  317. django_cfg/modules/django_llm/llm/requests/cache_manager.py +170 -0
  318. django_cfg/modules/django_llm/llm/requests/chat_handler.py +199 -0
  319. django_cfg/modules/django_llm/llm/requests/embedding_handler.py +113 -0
  320. django_cfg/modules/django_llm/llm/responses/__init__.py +9 -0
  321. django_cfg/modules/django_llm/llm/responses/response_builder.py +131 -0
  322. django_cfg/modules/django_llm/llm/stats/__init__.py +9 -0
  323. django_cfg/modules/django_llm/llm/stats/stats_manager.py +107 -0
  324. django_cfg/modules/django_llm/translator/detectors/__init__.py +13 -0
  325. django_cfg/modules/django_llm/translator/detectors/language_detector.py +90 -0
  326. django_cfg/modules/django_llm/translator/detectors/script_detector.py +153 -0
  327. django_cfg/modules/django_llm/translator/stats/__init__.py +11 -0
  328. django_cfg/modules/django_llm/translator/stats/stats_tracker.py +85 -0
  329. django_cfg/modules/django_llm/translator/translator.py +150 -603
  330. django_cfg/modules/django_llm/translator/translators/__init__.py +15 -0
  331. django_cfg/modules/django_llm/translator/translators/json_translator.py +316 -0
  332. django_cfg/modules/django_llm/translator/translators/text_translator.py +139 -0
  333. django_cfg/modules/django_llm/translator/utils/__init__.py +13 -0
  334. django_cfg/modules/django_llm/translator/utils/prompt_builder.py +110 -0
  335. django_cfg/modules/django_llm/translator/utils/text_utils.py +114 -0
  336. django_cfg/modules/django_logging/FIXES_SUMMARY.md +276 -0
  337. django_cfg/modules/django_logging/LOGGING_GUIDE.md +504 -0
  338. django_cfg/modules/django_logging/__init__.py +14 -0
  339. django_cfg/modules/{django_logger.py โ†’ django_logging/django_logger.py} +13 -13
  340. django_cfg/modules/{logger.py โ†’ django_logging/logger.py} +14 -4
  341. django_cfg/modules/django_ngrok/__init__.py +39 -0
  342. django_cfg/modules/{django_ngrok.py โ†’ django_ngrok/service.py} +14 -42
  343. django_cfg/modules/django_rpc_old/POETRY.md +344 -0
  344. django_cfg/modules/django_rpc_old/README.md +397 -0
  345. django_cfg/modules/django_rpc_old/TESTING.md +358 -0
  346. django_cfg/modules/django_rpc_old/__init__.py +39 -0
  347. django_cfg/modules/django_rpc_old/client.py +531 -0
  348. django_cfg/modules/django_rpc_old/config.py +279 -0
  349. django_cfg/modules/django_rpc_old/exceptions.py +172 -0
  350. django_cfg/modules/django_tailwind/README.md +478 -0
  351. django_cfg/modules/django_tailwind/__init__.py +7 -0
  352. django_cfg/modules/django_tailwind/apps.py +10 -0
  353. django_cfg/modules/django_tailwind/templates/django_tailwind/app.html +5 -0
  354. django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +117 -0
  355. django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +124 -0
  356. django_cfg/modules/django_tailwind/templates/django_tailwind/components/theme_toggle.html +54 -0
  357. django_cfg/modules/django_tailwind/templates/django_tailwind/components/user_menu.html +116 -0
  358. django_cfg/modules/django_tailwind/templates/django_tailwind/simple.html +46 -0
  359. django_cfg/modules/django_tailwind/templatetags/__init__.py +1 -0
  360. django_cfg/modules/django_tailwind/templatetags/tailwind_info.py +185 -0
  361. django_cfg/modules/django_tasks/__init__.py +29 -0
  362. django_cfg/modules/django_tasks/factory.py +127 -0
  363. django_cfg/modules/{django_tasks.py โ†’ django_tasks/service.py} +45 -274
  364. django_cfg/modules/django_tasks/settings.py +107 -0
  365. django_cfg/modules/django_telegram/__init__.py +29 -0
  366. django_cfg/modules/{django_telegram.py โ†’ django_telegram/service.py} +45 -113
  367. django_cfg/modules/django_telegram/utils.py +62 -0
  368. django_cfg/modules/django_twilio/__init__.py +54 -107
  369. django_cfg/modules/django_twilio/_imports.py +30 -0
  370. django_cfg/modules/django_twilio/base.py +192 -0
  371. django_cfg/modules/django_twilio/email_otp.py +227 -0
  372. django_cfg/modules/django_twilio/sendgrid_service.py +1 -1
  373. django_cfg/modules/django_twilio/simple_service.py +1 -2
  374. django_cfg/modules/django_twilio/sms.py +94 -0
  375. django_cfg/modules/django_twilio/twilio_service.py +2 -3
  376. django_cfg/modules/django_twilio/unified.py +310 -0
  377. django_cfg/modules/django_twilio/utils.py +190 -0
  378. django_cfg/modules/django_twilio/whatsapp.py +137 -0
  379. django_cfg/modules/django_unfold/callbacks/base.py +198 -7
  380. django_cfg/modules/django_unfold/callbacks/main.py +102 -10
  381. django_cfg/modules/django_unfold/dashboard.py +65 -43
  382. django_cfg/modules/django_unfold/models/config.py +13 -12
  383. django_cfg/modules/django_unfold/models/navigation.py +8 -3
  384. django_cfg/modules/django_unfold/models/tabs.py +2 -2
  385. django_cfg/modules/django_unfold/templates/unfold/helpers/app_list.html +102 -0
  386. django_cfg/registry/core.py +24 -26
  387. django_cfg/registry/modules.py +5 -2
  388. django_cfg/registry/services.py +20 -3
  389. django_cfg/registry/third_party.py +8 -8
  390. django_cfg/static/admin/css/dashboard.css +260 -0
  391. django_cfg/static/admin/js/commands.js +171 -0
  392. django_cfg/static/admin/js/dashboard.js +126 -0
  393. django_cfg/templates/admin/components/management_commands.js +375 -0
  394. django_cfg/templates/admin/components/progress_bar.html +18 -23
  395. django_cfg/templates/admin/index.html +48 -20
  396. django_cfg/templates/admin/index_new.html +106 -0
  397. django_cfg/templates/admin/layouts/base_dashboard.html +60 -0
  398. django_cfg/templates/admin/layouts/dashboard_with_tabs.html +1 -20
  399. django_cfg/templates/admin/sections/commands_section.html +626 -0
  400. django_cfg/templates/admin/sections/overview_section.html +112 -0
  401. django_cfg/templates/admin/sections/stats_section.html +35 -0
  402. django_cfg/templates/admin/sections/system_section.html +99 -0
  403. django_cfg/templates/admin/snippets/components/CHARTS_GUIDE.md +322 -0
  404. django_cfg/templates/admin/snippets/components/activity_tracker.html +85 -47
  405. django_cfg/templates/admin/snippets/components/charts_section.html +154 -64
  406. django_cfg/templates/admin/snippets/components/django_commands.html +3 -3
  407. django_cfg/templates/admin/snippets/components/recent_activity_improved.html +25 -0
  408. django_cfg/templates/admin/snippets/components/recent_users_table.html +1 -1
  409. django_cfg/templates/admin/snippets/components/system_metrics.html +179 -93
  410. django_cfg/templates/admin/snippets/zones/zones_table.html +2 -2
  411. django_cfg/templatetags/django_cfg.py +7 -1
  412. django_cfg/utils/smart_defaults.py +4 -4
  413. django_cfg-1.4.0.dist-info/METADATA +920 -0
  414. {django_cfg-1.3.11.dist-info โ†’ django_cfg-1.4.0.dist-info}/RECORD +425 -196
  415. django_cfg/apps/accounts/utils/auth_email_service.py +0 -84
  416. django_cfg/apps/payments/services/providers/nowpayments/parsers.py +0 -879
  417. django_cfg/core/generation.py +0 -621
  418. django_cfg/management/commands/validate_config.py +0 -189
  419. django_cfg/models/database.py +0 -480
  420. django_cfg/models/drf.py +0 -272
  421. django_cfg/models/ngrok.py +0 -122
  422. django_cfg/models/services.py +0 -440
  423. django_cfg/models/tasks.py +0 -550
  424. django_cfg/modules/django_twilio/service.py +0 -942
  425. django_cfg/template_archive/django_sample.zip +0 -0
  426. django_cfg/templates/rest_framework/api.html +0 -12
  427. django_cfg/utils/toolkit.py +0 -703
  428. django_cfg-1.3.11.dist-info/METADATA +0 -1029
  429. /django_cfg/apps/accounts/management/commands/{test_otp.py โ†’ otp_test.py} +0 -0
  430. /django_cfg/core/{environment.py โ†’ environment/detector.py} +0 -0
  431. /django_cfg/models/{cors.py โ†’ api/cors.py} +0 -0
  432. /django_cfg/models/{jwt.py โ†’ api/jwt.py} +0 -0
  433. /django_cfg/models/{base.py โ†’ base/config.py} +0 -0
  434. /django_cfg/models/{cfg.py โ†’ base/module.py} +0 -0
  435. /django_cfg/models/{revolution.py โ†’ django/revolution.py} +0 -0
  436. /django_cfg/modules/{dramatiq_setup.py โ†’ django_tasks/dramatiq_setup.py} +0 -0
  437. {django_cfg-1.3.11.dist-info โ†’ django_cfg-1.4.0.dist-info}/WHEEL +0 -0
  438. {django_cfg-1.3.11.dist-info โ†’ django_cfg-1.4.0.dist-info}/entry_points.txt +0 -0
  439. {django_cfg-1.3.11.dist-info โ†’ django_cfg-1.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,439 @@
1
+ # Unfold Admin Integration ๐ŸŽจ
2
+
3
+ Complete guide for integrating RPC Dashboard with django-unfold admin interface.
4
+
5
+ ---
6
+
7
+ ## โœจ Automatic Integration (New in v2.0)
8
+
9
+ **Zero configuration required!** When you enable RPC, django-cfg automatically adds "Operations" section to Unfold navigation:
10
+
11
+ ```python
12
+ # config.py
13
+ from django_cfg import DjangoConfig
14
+ from django_cfg.modules.django_cfg_rpc_client.config import DjangoCfgRPCConfig
15
+
16
+ class MyConfig(DjangoConfig):
17
+ # Enable RPC module
18
+ django_cfg_rpc = DjangoCfgRPCConfig(
19
+ enabled=True,
20
+ redis_url="redis://localhost:6379/2",
21
+ )
22
+ ```
23
+
24
+ **That's it!** Django-cfg automatically creates "Operations" section with:
25
+ - โœ… RPC Dashboard (if RPC enabled)
26
+ - โœ… Background Tasks (if tasks enabled)
27
+ - โœ… Configuration (Constance)
28
+ - โœ… Maintenance (if enabled)
29
+ - โœ… Health Check
30
+
31
+ **No URL configuration needed** - URLs are auto-registered via `get_django_cfg_urlpatterns()`
32
+
33
+ ---
34
+
35
+ ## ๐ŸŽจ Custom Navigation (Advanced)
36
+
37
+ If you want to customize the navigation, override `unfold` config:
38
+
39
+ ### Option 1: Custom Section Name
40
+
41
+ ```python
42
+ from django_cfg import UnfoldConfig, NavigationSection, NavigationItem, Icons
43
+
44
+ class MyConfig(DjangoConfig):
45
+ django_cfg_rpc = DjangoCfgRPCConfig(enabled=True, redis_url="redis://localhost:6379/2")
46
+
47
+ # Override navigation
48
+ unfold = UnfoldConfig(
49
+ site_title="My Admin",
50
+ navigation=[
51
+ NavigationSection(
52
+ title="Monitoring", # Custom name
53
+ items=[
54
+ NavigationItem(
55
+ title="RPC Dashboard",
56
+ icon=Icons.MONITOR_HEART,
57
+ link="/admin/rpc/"
58
+ ),
59
+ ],
60
+ ),
61
+ ],
62
+ )
63
+ ```
64
+
65
+ ### Option 2: Manual URL Registration (Not Recommended)
66
+
67
+ If not using django-cfg's automatic URL generation:
68
+
69
+ ```python
70
+ # urls.py
71
+ from django.urls import path, include
72
+
73
+ urlpatterns = [
74
+ path('admin/', admin.site.urls),
75
+ path('admin/rpc/', include('django_cfg.modules.django_cfg_rpc_client.dashboard.urls')),
76
+ ]
77
+ ```
78
+
79
+ ---
80
+
81
+ ## ๐Ÿ“ Navigation Placement
82
+
83
+ ### Option 1: Operations Section (Recommended)
84
+
85
+ Combine RPC Dashboard with all operational tools for logical grouping:
86
+
87
+ ```python
88
+ NavigationSection(
89
+ title="Operations",
90
+ items=[
91
+ NavigationItem(
92
+ title="RPC Dashboard",
93
+ icon=Icons.MONITOR_HEART,
94
+ link="/admin/rpc/"
95
+ ),
96
+ NavigationItem(
97
+ title="Background Tasks",
98
+ icon=Icons.TASK,
99
+ link="admin:django_dramatiq_task_changelist"
100
+ ),
101
+ NavigationItem(
102
+ title="Configuration",
103
+ icon=Icons.SETTINGS,
104
+ link="admin:constance_config_changelist"
105
+ ),
106
+ NavigationItem(
107
+ title="Maintenance",
108
+ icon=Icons.BUILD,
109
+ link="admin:maintenance_cloudflaresite_changelist"
110
+ ),
111
+ ],
112
+ )
113
+ ```
114
+
115
+ ### Option 2: System/Admin Section
116
+
117
+ ```python
118
+ NavigationSection(
119
+ title="System",
120
+ items=[
121
+ NavigationItem(title="Configuration", icon=Icons.SETTINGS, link="/admin/constance/config/"),
122
+ NavigationItem(title="RPC Dashboard", icon=Icons.MONITOR_HEART, link="/admin/rpc/"),
123
+ NavigationItem(title="Logs", icon=Icons.DESCRIPTION, link="/admin/logs/"),
124
+ ],
125
+ )
126
+ ```
127
+
128
+ ### Option 3: Integrated with Content
129
+
130
+ ```python
131
+ navigation=[
132
+ NavigationSection(
133
+ title="Content",
134
+ items=[
135
+ NavigationItem(title="Posts", icon=Icons.ARTICLE, link="admin:blog_post_changelist"),
136
+ ],
137
+ ),
138
+ NavigationSection(
139
+ title="Tools",
140
+ items=[
141
+ NavigationItem(title="RPC Dashboard", icon=Icons.INSIGHTS, link="/admin/rpc/"),
142
+ NavigationItem(title="Analytics", icon=Icons.ANALYTICS, link="/admin/analytics/"),
143
+ ],
144
+ ),
145
+ ]
146
+ ```
147
+
148
+ ---
149
+
150
+ ## ๐ŸŽจ Icon Options
151
+
152
+ Material Design icons for RPC Dashboard:
153
+
154
+ ```python
155
+ # Health & Monitoring (Recommended)
156
+ icon=Icons.MONITOR_HEART # โค๏ธ Heart monitor - best for health monitoring
157
+ icon=Icons.HEALTH_AND_SAFETY # ๐Ÿฅ Health and safety
158
+ icon=Icons.MEDICAL_SERVICES # ๐Ÿฉบ Medical services
159
+
160
+ # Analytics & Insights
161
+ icon=Icons.INSIGHTS # ๐Ÿ’ก Insights - good for analytics
162
+ icon=Icons.ANALYTICS # ๐Ÿ“Š Analytics charts
163
+ icon=Icons.BAR_CHART # ๐Ÿ“Š Bar chart
164
+ icon=Icons.DASHBOARD # ๐Ÿ“‹ Dashboard
165
+
166
+ # Activity & Timeline
167
+ icon=Icons.TIMELINE # ๐Ÿ“ˆ Timeline activity
168
+ icon=Icons.HISTORY # ๐Ÿ• History/activity
169
+ icon=Icons.UPDATE # ๐Ÿ”„ Updates
170
+
171
+ # Communication
172
+ icon=Icons.WEBHOOK # ๐Ÿ”— Webhooks
173
+ icon=Icons.API # ๐Ÿ”Œ API
174
+ icon=Icons.CLOUD_SYNC # โ˜๏ธ Cloud sync
175
+ ```
176
+
177
+ ### Icon Preview
178
+
179
+ ```python
180
+ # Health monitoring focus
181
+ NavigationItem(title="RPC Monitor", icon=Icons.MONITOR_HEART, link="/admin/rpc/")
182
+ # โ†’ Best for: Health checks, system monitoring
183
+
184
+ # Analytics focus
185
+ NavigationItem(title="RPC Analytics", icon=Icons.INSIGHTS, link="/admin/rpc/")
186
+ # โ†’ Best for: Statistics, performance metrics
187
+
188
+ # Activity focus
189
+ NavigationItem(title="RPC Activity", icon=Icons.TIMELINE, link="/admin/rpc/")
190
+ # โ†’ Best for: Request logs, recent activity
191
+
192
+ # Technical focus
193
+ NavigationItem(title="RPC Dashboard", icon=Icons.API, link="/admin/rpc/")
194
+ # โ†’ Best for: Developer tools, API monitoring
195
+ ```
196
+
197
+ ---
198
+
199
+ ## ๐Ÿ” Access Control
200
+
201
+ ### Staff-Only Access (Default)
202
+
203
+ ```python
204
+ NavigationItem(
205
+ title="RPC Dashboard",
206
+ icon=Icons.MONITOR_HEART,
207
+ link="/admin/rpc/",
208
+ # No permission = staff users only (is_staff=True)
209
+ )
210
+ ```
211
+
212
+ ### Superuser-Only Access
213
+
214
+ ```python
215
+ NavigationItem(
216
+ title="RPC Dashboard",
217
+ icon=Icons.MONITOR_HEART,
218
+ link="/admin/rpc/",
219
+ permission=lambda request: request.user.is_superuser
220
+ )
221
+ ```
222
+
223
+ ### Custom Permission Check
224
+
225
+ ```python
226
+ NavigationItem(
227
+ title="RPC Dashboard",
228
+ icon=Icons.MONITOR_HEART,
229
+ link="/admin/rpc/",
230
+ permission=lambda request: (
231
+ request.user.is_staff and
232
+ request.user.has_perm('monitoring.view_rpc')
233
+ )
234
+ )
235
+ ```
236
+
237
+ ---
238
+
239
+ ## ๐Ÿท๏ธ Badge Support
240
+
241
+ ### Add "New" Badge
242
+
243
+ ```python
244
+ NavigationItem(
245
+ title="RPC Dashboard",
246
+ icon=Icons.MONITOR_HEART,
247
+ link="/admin/rpc/",
248
+ badge="new"
249
+ )
250
+ ```
251
+
252
+ ### Dynamic Badge (Alert Count)
253
+
254
+ ```python
255
+ def get_rpc_navigation(request):
256
+ from django_cfg.modules.django_cfg_rpc_client.dashboard.monitor import RPCMonitor
257
+
258
+ monitor = RPCMonitor()
259
+ health = monitor.health_check()
260
+
261
+ # Show badge if Redis is down
262
+ badge = "!" if not health['redis_connected'] else None
263
+
264
+ return NavigationItem(
265
+ title="RPC Dashboard",
266
+ icon=Icons.MONITOR_HEART,
267
+ link="/admin/rpc/",
268
+ badge=badge
269
+ )
270
+
271
+ # Use in navigation
272
+ unfold: UnfoldConfig = UnfoldConfig(
273
+ sidebar={
274
+ "navigation": "myapp.navigation.get_rpc_navigation",
275
+ }
276
+ )
277
+ ```
278
+
279
+ ---
280
+
281
+ ## ๐ŸŽฏ Full Example
282
+
283
+ Complete configuration with all django-cfg features:
284
+
285
+ ```python
286
+ # config.py
287
+ from django_cfg import (
288
+ DjangoConfig,
289
+ UnfoldConfig,
290
+ NavigationSection,
291
+ NavigationItem,
292
+ Icons,
293
+ DjangoCfgRPCConfig,
294
+ TaskConfig,
295
+ PaymentsConfig,
296
+ )
297
+
298
+ class ProductionConfig(DjangoConfig):
299
+ """Production configuration with monitoring."""
300
+
301
+ # === RPC Configuration ===
302
+ django_cfg_rpc: DjangoCfgRPCConfig = DjangoCfgRPCConfig(
303
+ enabled=True,
304
+ redis_url="redis://localhost:6379/2",
305
+ rpc_timeout=30,
306
+ )
307
+
308
+ # === Background Tasks ===
309
+ enable_tasks: bool = True
310
+
311
+ # === Payments ===
312
+ payments: PaymentsConfig = PaymentsConfig(enabled=True)
313
+
314
+ # === Unfold Admin ===
315
+ unfold: UnfoldConfig = UnfoldConfig(
316
+ site_title="Production Admin",
317
+ site_header="Production Dashboard",
318
+ theme='dark',
319
+
320
+ navigation=[
321
+ # Dashboard
322
+ NavigationSection(
323
+ title="Dashboard",
324
+ items=[
325
+ NavigationItem(
326
+ title="Overview",
327
+ icon=Icons.DASHBOARD,
328
+ link="/admin/"
329
+ ),
330
+ ],
331
+ ),
332
+
333
+ # Content Management
334
+ NavigationSection(
335
+ title="Content",
336
+ items=[
337
+ NavigationItem(title="Posts", icon=Icons.ARTICLE, link="admin:blog_post_changelist"),
338
+ NavigationItem(title="Pages", icon=Icons.DESCRIPTION, link="admin:pages_page_changelist"),
339
+ ],
340
+ ),
341
+
342
+ # E-commerce
343
+ NavigationSection(
344
+ title="E-commerce",
345
+ items=[
346
+ NavigationItem(title="Products", icon=Icons.INVENTORY, link="admin:shop_product_changelist"),
347
+ NavigationItem(title="Orders", icon=Icons.SHOPPING_CART, link="admin:shop_order_changelist"),
348
+ NavigationItem(title="Payments", icon=Icons.PAYMENT, link="admin:payments_payment_changelist"),
349
+ ],
350
+ ),
351
+
352
+ # Operations (RPC Dashboard + System Tools)
353
+ NavigationSection(
354
+ title="Operations",
355
+ items=[
356
+ NavigationItem(
357
+ title="RPC Dashboard",
358
+ icon=Icons.MONITOR_HEART,
359
+ link="/admin/rpc/",
360
+ permission=lambda request: request.user.is_staff
361
+ ),
362
+ NavigationItem(
363
+ title="Background Tasks",
364
+ icon=Icons.TASK,
365
+ link="admin:django_dramatiq_task_changelist",
366
+ permission=lambda request: request.user.is_staff
367
+ ),
368
+ NavigationItem(
369
+ title="Configuration",
370
+ icon=Icons.SETTINGS,
371
+ link="admin:constance_config_changelist",
372
+ permission=lambda request: request.user.is_staff
373
+ ),
374
+ NavigationItem(
375
+ title="Maintenance",
376
+ icon=Icons.BUILD,
377
+ link="admin:maintenance_cloudflaresite_changelist",
378
+ permission=lambda request: request.user.is_superuser
379
+ ),
380
+ ],
381
+ ),
382
+ ],
383
+ )
384
+ ```
385
+
386
+ ---
387
+
388
+ ## ๐Ÿงช Testing Integration
389
+
390
+ ### Test Navigation Display
391
+
392
+ ```python
393
+ from django.test import TestCase, RequestFactory
394
+ from django.contrib.auth import get_user_model
395
+
396
+ User = get_user_model()
397
+
398
+ class UnfoldNavigationTest(TestCase):
399
+ def setUp(self):
400
+ self.factory = RequestFactory()
401
+ self.staff_user = User.objects.create_user(
402
+ username='staff',
403
+ is_staff=True
404
+ )
405
+ self.regular_user = User.objects.create_user(
406
+ username='user',
407
+ is_staff=False
408
+ )
409
+
410
+ def test_rpc_dashboard_visible_to_staff(self):
411
+ """Test RPC Dashboard appears in navigation for staff users."""
412
+ request = self.factory.get('/admin/')
413
+ request.user = self.staff_user
414
+
415
+ # Navigation rendering logic
416
+ # Verify RPC Dashboard link is present
417
+
418
+ def test_rpc_dashboard_hidden_from_regular_users(self):
419
+ """Test RPC Dashboard hidden from non-staff users."""
420
+ request = self.factory.get('/admin/')
421
+ request.user = self.regular_user
422
+
423
+ # Verify RPC Dashboard link is NOT present
424
+ ```
425
+
426
+ ---
427
+
428
+ ## ๐Ÿ“š Related Documentation
429
+
430
+ - [Unfold Admin Guide](/docs/features/modules/unfold/overview.md)
431
+ - [RPC Dashboard README](./README.md)
432
+ - [Icons Reference](/docs/fundamentals/icons.md)
433
+ - [Navigation Configuration](/docs/guides/admin-interface.md)
434
+
435
+ ---
436
+
437
+ **Last Updated**: 2025-10-03
438
+ **Version**: 2.0
439
+ **Compatible with**: django-unfold 0.x, django-cfg 2.x
@@ -0,0 +1,11 @@
1
+ """
2
+ RPC Dashboard for django-cfg-rpc-client.
3
+
4
+ Provides real-time monitoring and visualization of RPC activity.
5
+ """
6
+
7
+ default_app_config = 'django_cfg.modules.django_cfg_rpc_client.dashboard.apps.RPCDashboardConfig'
8
+
9
+ from .monitor import RPCMonitor
10
+
11
+ __all__ = ['RPCMonitor']
@@ -0,0 +1,22 @@
1
+ """
2
+ Django AppConfig for RPC Dashboard.
3
+
4
+ Enables template and static file discovery.
5
+ """
6
+
7
+ from django.apps import AppConfig
8
+
9
+
10
+ class RPCDashboardConfig(AppConfig):
11
+ """
12
+ RPC Dashboard application configuration.
13
+
14
+ Enables:
15
+ - Template discovery from templates/django_cfg_rpc_dashboard/
16
+ - Static file discovery from static/django_cfg_rpc_dashboard/
17
+ """
18
+
19
+ default_auto_field = 'django.db.models.BigAutoField'
20
+ name = 'django_cfg.modules.django_cfg_rpc_client.dashboard'
21
+ label = 'django_cfg_rpc_dashboard'
22
+ verbose_name = 'Django-CFG RPC Dashboard'