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
@@ -1,105 +1,191 @@
1
1
  {% load unfold %}
2
2
 
3
3
  <!-- System Metrics -->
4
- <div class="mt-8 w-full">
5
- {% include 'admin/components/section_header.html' with title='System Metrics' icon='analytics' icon_color='blue' badge='Live Data' %}
6
-
7
- <div class="grid grid-cols-1 md:grid-cols-2 gap-6 w-full">
8
- {% if system_metrics %}
9
- <!-- Database Status -->
10
- {% if system_metrics.database %}
11
- <div class="group">
12
- {% component "unfold/components/card.html" with title="Database" %}
13
- <div class="flex items-center mb-3">
14
- <span class="material-icons
15
- {% if system_metrics.database.status == 'healthy' %}text-green-600 dark:text-green-400
16
- {% elif system_metrics.database.status == 'warning' %}text-amber-600 dark:text-amber-400
17
- {% else %}text-red-600 dark:text-red-400{% endif %} mr-2">storage</span>
18
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">{{ system_metrics.database.type }}</span>
19
- </div>
20
- {% include 'admin/components/progress_bar.html' with value=system_metrics.database.health_percentage title="Connection Health" description=system_metrics.database.description %}
21
- {% endcomponent %}
22
- </div>
23
- {% endif %}
4
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
5
+ {% if system_metrics %}
6
+ <!-- Database Status -->
7
+ {% if system_metrics.database %}
8
+ <div class="bg-gradient-to-br from-green-50 to-white dark:from-green-900/10 dark:to-gray-800 rounded-lg border border-green-200 dark:border-green-800 p-4 hover:shadow-lg hover:border-green-400 dark:hover:border-green-600 transition-all duration-200 group">
9
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
10
+ <span class="material-icons
11
+ {% if system_metrics.database.status == 'healthy' %}text-green-600 dark:text-green-400
12
+ {% elif system_metrics.database.status == 'warning' %}text-amber-600 dark:text-amber-400
13
+ {% else %}text-red-600 dark:text-red-400{% endif %} mr-2">storage</span>
14
+ Database
15
+ </h4>
16
+ <div class="flex items-center mb-3">
17
+ <span class="text-sm text-gray-600 dark:text-gray-400">{{ system_metrics.database.type }}</span>
18
+ </div>
19
+ <div class="space-y-2">
20
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
21
+ <span>Connection Health</span>
22
+ <span class="font-semibold">{{ system_metrics.database.health_percentage }}%</span>
23
+ </div>
24
+ <div class="w-full bg-green-100 dark:bg-green-900/30 rounded-full h-2">
25
+ <div class="bg-green-600 dark:bg-green-500 h-2 rounded-full transition-all duration-300 group-hover:bg-green-700 dark:group-hover:bg-green-400" style="width: {{ system_metrics.database.health_percentage }}%"></div>
26
+ </div>
27
+ <p class="text-xs text-gray-500 dark:text-gray-400">{{ system_metrics.database.description }}</p>
28
+ </div>
29
+ </div>
30
+ {% endif %}
24
31
 
25
- <!-- Cache Status -->
26
- {% if system_metrics.cache %}
27
- <div class="group">
28
- {% component "unfold/components/card.html" with title="Cache" %}
29
- <div class="flex items-center mb-3">
30
- <span class="material-icons
31
- {% if system_metrics.cache.status == 'healthy' %}text-primary-600 dark:text-primary-500
32
- {% elif system_metrics.cache.status == 'warning' %}text-amber-600 dark:text-amber-400
33
- {% else %}text-red-600 dark:text-red-400{% endif %} mr-2">memory</span>
34
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">{{ system_metrics.cache.type }}</span>
35
- </div>
36
- {% include 'admin/components/progress_bar.html' with value=system_metrics.cache.health_percentage title="Performance" description=system_metrics.cache.description %}
37
- {% endcomponent %}
38
- </div>
39
- {% endif %}
32
+ <!-- Cache Status -->
33
+ {% if system_metrics.cache %}
34
+ <div class="bg-gradient-to-br from-blue-50 to-white dark:from-blue-900/10 dark:to-gray-800 rounded-lg border border-blue-200 dark:border-blue-800 p-4 hover:shadow-lg hover:border-blue-400 dark:hover:border-blue-600 transition-all duration-200 group">
35
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
36
+ <span class="material-icons
37
+ {% if system_metrics.cache.status == 'healthy' %}text-blue-600 dark:text-blue-400
38
+ {% elif system_metrics.cache.status == 'warning' %}text-amber-600 dark:text-amber-400
39
+ {% else %}text-red-600 dark:text-red-400{% endif %} mr-2">memory</span>
40
+ Cache
41
+ </h4>
42
+ <div class="flex items-center mb-3">
43
+ <span class="text-sm text-gray-600 dark:text-gray-400">{{ system_metrics.cache.type }}</span>
44
+ </div>
45
+ <div class="space-y-2">
46
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
47
+ <span>Performance</span>
48
+ <span class="font-semibold">{{ system_metrics.cache.health_percentage }}%</span>
49
+ </div>
50
+ <div class="w-full bg-blue-100 dark:bg-blue-900/30 rounded-full h-2">
51
+ <div class="bg-blue-600 dark:bg-blue-500 h-2 rounded-full transition-all duration-300 group-hover:bg-blue-700 dark:group-hover:bg-blue-400" style="width: {{ system_metrics.cache.health_percentage }}%"></div>
52
+ </div>
53
+ <p class="text-xs text-gray-500 dark:text-gray-400">{{ system_metrics.cache.description }}</p>
54
+ </div>
55
+ </div>
56
+ {% endif %}
40
57
 
41
- <!-- Storage Status -->
42
- {% if system_metrics.storage %}
43
- <div class="group">
44
- {% component "unfold/components/card.html" with title="Storage" %}
45
- <div class="flex items-center mb-3">
46
- <span class="material-icons
47
- {% if system_metrics.storage.status == 'healthy' %}text-amber-600 dark:text-amber-400
48
- {% elif system_metrics.storage.status == 'warning' %}text-orange-600 dark:text-orange-400
49
- {% else %}text-gray-600 dark:text-gray-400{% endif %} mr-2">folder</span>
50
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">{{ system_metrics.storage.type }}</span>
51
- </div>
52
- {% include 'admin/components/progress_bar.html' with value=system_metrics.storage.health_percentage title="Usage" description=system_metrics.storage.description %}
53
- {% endcomponent %}
54
- </div>
55
- {% endif %}
58
+ <!-- Storage Status -->
59
+ {% if system_metrics.storage %}
60
+ <div class="bg-gradient-to-br from-amber-50 to-white dark:from-amber-900/10 dark:to-gray-800 rounded-lg border border-amber-200 dark:border-amber-800 p-4 hover:shadow-lg hover:border-amber-400 dark:hover:border-amber-600 transition-all duration-200 group">
61
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
62
+ <span class="material-icons
63
+ {% if system_metrics.storage.status == 'healthy' %}text-amber-600 dark:text-amber-400
64
+ {% elif system_metrics.storage.status == 'warning' %}text-orange-600 dark:text-orange-400
65
+ {% else %}text-gray-600 dark:text-gray-400{% endif %} mr-2">folder</span>
66
+ Storage
67
+ </h4>
68
+ <div class="flex items-center mb-3">
69
+ <span class="text-sm text-gray-600 dark:text-gray-400">{{ system_metrics.storage.type }}</span>
70
+ </div>
71
+ <div class="space-y-2">
72
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
73
+ <span>Usage</span>
74
+ <span class="font-semibold">{{ system_metrics.storage.health_percentage }}%</span>
75
+ </div>
76
+ <div class="w-full bg-amber-100 dark:bg-amber-900/30 rounded-full h-2">
77
+ <div class="bg-amber-600 dark:bg-amber-500 h-2 rounded-full transition-all duration-300 group-hover:bg-amber-700 dark:group-hover:bg-amber-400" style="width: {{ system_metrics.storage.health_percentage }}%"></div>
78
+ </div>
79
+ <p class="text-xs text-gray-500 dark:text-gray-400">{{ system_metrics.storage.description }}</p>
80
+ </div>
81
+ </div>
82
+ {% endif %}
56
83
 
57
- <!-- API Status -->
58
- {% if system_metrics.api %}
59
- <div class="group">
60
- {% component "unfold/components/card.html" with title="API" %}
61
- <div class="flex items-center mb-3">
62
- <span class="material-icons
63
- {% if system_metrics.api.status == 'healthy' %}text-blue-600 dark:text-blue-400
64
- {% elif system_metrics.api.status == 'warning' %}text-amber-600 dark:text-amber-400
65
- {% else %}text-red-600 dark:text-red-400{% endif %} mr-2">api</span>
66
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">{{ system_metrics.api.type }}</span>
67
- </div>
68
- {% include 'admin/components/progress_bar.html' with value=system_metrics.api.health_percentage title="URL Patterns" description=system_metrics.api.description %}
69
- {% endcomponent %}
70
- </div>
71
- {% endif %}
72
- {% else %}
73
- <!-- Fallback static metrics -->
74
- <div class="group">
75
- {% component "unfold/components/card.html" with title="Database" %}
76
- <div class="flex items-center mb-3">
77
- <span class="material-icons text-green-600 dark:text-green-400 mr-2">storage</span>
78
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">PostgreSQL</span>
79
- </div>
80
- {% include 'admin/components/progress_bar.html' with value=85 title="Connection Health" description="Healthy - 85%" %}
81
- {% endcomponent %}
84
+ <!-- API Status -->
85
+ {% if system_metrics.api %}
86
+ <div class="bg-gradient-to-br from-purple-50 to-white dark:from-purple-900/10 dark:to-gray-800 rounded-lg border border-purple-200 dark:border-purple-800 p-4 hover:shadow-lg hover:border-purple-400 dark:hover:border-purple-600 transition-all duration-200 group">
87
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
88
+ <span class="material-icons
89
+ {% if system_metrics.api.status == 'healthy' %}text-purple-600 dark:text-purple-400
90
+ {% elif system_metrics.api.status == 'warning' %}text-amber-600 dark:text-amber-400
91
+ {% else %}text-red-600 dark:text-red-400{% endif %} mr-2">api</span>
92
+ API
93
+ </h4>
94
+ <div class="flex items-center mb-3">
95
+ <span class="text-sm text-gray-600 dark:text-gray-400">{{ system_metrics.api.type }}</span>
96
+ </div>
97
+ <div class="space-y-2">
98
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
99
+ <span>URL Patterns</span>
100
+ <span class="font-semibold">{{ system_metrics.api.health_percentage }}%</span>
101
+ </div>
102
+ <div class="w-full bg-purple-100 dark:bg-purple-900/30 rounded-full h-2">
103
+ <div class="bg-purple-600 dark:bg-purple-500 h-2 rounded-full transition-all duration-300 group-hover:bg-purple-700 dark:group-hover:bg-purple-400" style="width: {{ system_metrics.api.health_percentage }}%"></div>
104
+ </div>
105
+ <p class="text-xs text-gray-500 dark:text-gray-400">{{ system_metrics.api.description }}</p>
82
106
  </div>
107
+ </div>
108
+ {% endif %}
109
+ {% else %}
110
+ <!-- Fallback static metrics -->
111
+ <div class="bg-gradient-to-br from-green-50 to-white dark:from-green-900/10 dark:to-gray-800 rounded-lg border border-green-200 dark:border-green-800 p-4 hover:shadow-lg hover:border-green-400 dark:hover:border-green-600 transition-all duration-200 group">
112
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
113
+ <span class="material-icons text-green-600 dark:text-green-400 mr-2">storage</span>
114
+ Database
115
+ </h4>
116
+ <div class="flex items-center mb-3">
117
+ <span class="text-sm text-gray-600 dark:text-gray-400">PostgreSQL</span>
118
+ </div>
119
+ <div class="space-y-2">
120
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
121
+ <span>Connection Health</span>
122
+ <span class="font-semibold">85%</span>
123
+ </div>
124
+ <div class="w-full bg-green-100 dark:bg-green-900/30 rounded-full h-2">
125
+ <div class="bg-green-600 dark:bg-green-500 h-2 rounded-full transition-all duration-300 group-hover:bg-green-700 dark:group-hover:bg-green-400" style="width: 85%"></div>
126
+ </div>
127
+ <p class="text-xs text-gray-500 dark:text-gray-400">Healthy - 85%</p>
128
+ </div>
129
+ </div>
83
130
 
84
- <div class="group">
85
- {% component "unfold/components/card.html" with title="Cache" %}
86
- <div class="flex items-center mb-3">
87
- <span class="material-icons text-primary-600 dark:text-primary-500 mr-2">memory</span>
88
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">Memory Cache</span>
89
- </div>
90
- {% include 'admin/components/progress_bar.html' with value=90 title="Performance" description="Optimal - 90%" %}
91
- {% endcomponent %}
131
+ <div class="bg-gradient-to-br from-blue-50 to-white dark:from-blue-900/10 dark:to-gray-800 rounded-lg border border-blue-200 dark:border-blue-800 p-4 hover:shadow-lg hover:border-blue-400 dark:hover:border-blue-600 transition-all duration-200 group">
132
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
133
+ <span class="material-icons text-blue-600 dark:text-blue-400 mr-2">memory</span>
134
+ Cache
135
+ </h4>
136
+ <div class="flex items-center mb-3">
137
+ <span class="text-sm text-gray-600 dark:text-gray-400">Memory Cache</span>
92
138
  </div>
139
+ <div class="space-y-2">
140
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
141
+ <span>Performance</span>
142
+ <span class="font-semibold">90%</span>
143
+ </div>
144
+ <div class="w-full bg-blue-100 dark:bg-blue-900/30 rounded-full h-2">
145
+ <div class="bg-blue-600 dark:bg-blue-500 h-2 rounded-full transition-all duration-300 group-hover:bg-blue-700 dark:group-hover:bg-blue-400" style="width: 90%"></div>
146
+ </div>
147
+ <p class="text-xs text-gray-500 dark:text-gray-400">Optimal - 90%</p>
148
+ </div>
149
+ </div>
93
150
 
94
- <div class="group">
95
- {% component "unfold/components/card.html" with title="Storage" %}
96
- <div class="flex items-center mb-3">
97
- <span class="material-icons text-amber-600 dark:text-amber-400 mr-2">folder</span>
98
- <span class="text-sm text-font-subtle-light dark:text-font-subtle-dark">Disk Space</span>
99
- </div>
100
- {% include 'admin/components/progress_bar.html' with value=67 title="Usage" description="67% used (33% free)" %}
101
- {% endcomponent %}
151
+ <div class="bg-gradient-to-br from-amber-50 to-white dark:from-amber-900/10 dark:to-gray-800 rounded-lg border border-amber-200 dark:border-amber-800 p-4 hover:shadow-lg hover:border-amber-400 dark:hover:border-amber-600 transition-all duration-200 group">
152
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
153
+ <span class="material-icons text-amber-600 dark:text-amber-400 mr-2">folder</span>
154
+ Storage
155
+ </h4>
156
+ <div class="flex items-center mb-3">
157
+ <span class="text-sm text-gray-600 dark:text-gray-400">Disk Space</span>
102
158
  </div>
103
- {% endif %}
104
- </div>
159
+ <div class="space-y-2">
160
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
161
+ <span>Usage</span>
162
+ <span class="font-semibold">67%</span>
163
+ </div>
164
+ <div class="w-full bg-amber-100 dark:bg-amber-900/30 rounded-full h-2">
165
+ <div class="bg-amber-600 dark:bg-amber-500 h-2 rounded-full transition-all duration-300 group-hover:bg-amber-700 dark:group-hover:bg-amber-400" style="width: 67%"></div>
166
+ </div>
167
+ <p class="text-xs text-gray-500 dark:text-gray-400">67% used (33% free)</p>
168
+ </div>
169
+ </div>
170
+
171
+ <div class="bg-gradient-to-br from-purple-50 to-white dark:from-purple-900/10 dark:to-gray-800 rounded-lg border border-purple-200 dark:border-purple-800 p-4 hover:shadow-lg hover:border-purple-400 dark:hover:border-purple-600 transition-all duration-200 group">
172
+ <h4 class="text-sm font-semibold text-gray-900 dark:text-gray-100 mb-3 flex items-center">
173
+ <span class="material-icons text-purple-600 dark:text-purple-400 mr-2">api</span>
174
+ API
175
+ </h4>
176
+ <div class="flex items-center mb-3">
177
+ <span class="text-sm text-gray-600 dark:text-gray-400">REST API</span>
178
+ </div>
179
+ <div class="space-y-2">
180
+ <div class="flex items-center justify-between text-xs text-gray-600 dark:text-gray-400">
181
+ <span>URL Patterns</span>
182
+ <span class="font-semibold">100%</span>
183
+ </div>
184
+ <div class="w-full bg-purple-100 dark:bg-purple-900/30 rounded-full h-2">
185
+ <div class="bg-purple-600 dark:bg-purple-500 h-2 rounded-full transition-all duration-300 group-hover:bg-purple-700 dark:group-hover:bg-purple-400" style="width: 100%"></div>
186
+ </div>
187
+ <p class="text-xs text-gray-500 dark:text-gray-400">All routes healthy</p>
188
+ </div>
189
+ </div>
190
+ {% endif %}
105
191
  </div>
@@ -21,9 +21,9 @@
21
21
  {% endfor %}
22
22
  </tr>
23
23
  </thead>
24
- <tbody class="bg-white dark:bg-base-900 divide-y divide-base-200 dark:divide-base-700">
24
+ <tbody class="bg-white dark:bg-base-900 divide-y divide-base-200 dark:divide-base-700">
25
25
  {% for row in zones_table.rows %}
26
- <tr class="hover:bg-base-100 dark:hover:bg-base-800 transition-colors duration-150">
26
+ <tr class="hover:bg-base-50 dark:hover:bg-base-700 transition-colors duration-150">
27
27
  <td class="px-6 py-4 whitespace-nowrap">
28
28
  <div class="flex items-center">
29
29
  <div class="flex-shrink-0 mr-3">
@@ -34,11 +34,17 @@ def lib_health_url():
34
34
  return LIB_HEALTH_URL
35
35
 
36
36
 
37
+ @register.simple_tag
38
+ def lib_subtitle():
39
+ """Get the library subtitle/tagline."""
40
+ return "The AI-First Django Framework That Thinks For You"
41
+
42
+
37
43
  @register.simple_tag
38
44
  def project_name():
39
45
  """Get the project name from current config."""
40
46
  # Lazy import to avoid AppRegistryNotReady error
41
- from django_cfg.core.config import get_current_config
47
+ from django_cfg.core.state import get_current_config
42
48
  from django_cfg.config import LIB_NAME
43
49
 
44
50
  # Try to get project name from current config
@@ -10,8 +10,6 @@ Following KISS principle:
10
10
  from typing import Dict, Any, Optional, List
11
11
  from pathlib import Path
12
12
 
13
- from django_cfg.models.cache import CacheConfig
14
- from django_cfg.models.services import EmailConfig
15
13
  from django_cfg.core.exceptions import ConfigurationError
16
14
 
17
15
 
@@ -89,8 +87,8 @@ class SmartDefaults:
89
87
  cors_allow_headers=None
90
88
  ) -> Dict[str, Any]:
91
89
  """Get security configuration defaults."""
92
- from ..models.security import SecurityConfig
93
-
90
+ from ..models.infrastructure.security import SecurityConfig
91
+
94
92
  # Base security settings
95
93
  base_settings = {
96
94
  'USE_TZ': True,
@@ -298,6 +296,7 @@ class SmartDefaults:
298
296
  def configure_cache_backend(cache_config, environment: str, debug: bool):
299
297
  """Configure cache backend - simplified."""
300
298
  if cache_config is None:
299
+ from django_cfg.models.infrastructure.cache import CacheConfig
301
300
  return CacheConfig()
302
301
  return cache_config
303
302
 
@@ -305,6 +304,7 @@ class SmartDefaults:
305
304
  def configure_email_backend(email_config, environment: str, debug: bool):
306
305
  """Configure email backend - simplified."""
307
306
  if email_config is None:
307
+ from django_cfg.models.services.email import EmailConfig
308
308
  return EmailConfig()
309
309
  return email_config
310
310