django-cfg 1.4.46__py3-none-any.whl → 1.5.181__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 (1516) hide show
  1. django_cfg/__init__.py +14 -1
  2. django_cfg/apps/api/commands/serializers.py +152 -0
  3. django_cfg/apps/api/commands/views.py +32 -0
  4. django_cfg/apps/api/dashboard/TRANSACTION_FIX.md +73 -0
  5. django_cfg/apps/api/dashboard/__init__.py +8 -0
  6. django_cfg/apps/api/dashboard/apps.py +23 -0
  7. django_cfg/apps/api/dashboard/serializers/__init__.py +73 -0
  8. django_cfg/apps/api/dashboard/serializers/activity.py +38 -0
  9. django_cfg/apps/api/dashboard/serializers/apizones.py +35 -0
  10. django_cfg/apps/api/dashboard/serializers/base.py +16 -0
  11. django_cfg/apps/api/dashboard/serializers/charts.py +44 -0
  12. django_cfg/apps/api/dashboard/serializers/commands.py +85 -0
  13. django_cfg/apps/api/dashboard/serializers/config.py +317 -0
  14. django_cfg/apps/api/dashboard/serializers/metrics.py +66 -0
  15. django_cfg/apps/api/dashboard/serializers/overview.py +59 -0
  16. django_cfg/apps/api/dashboard/serializers/statistics.py +65 -0
  17. django_cfg/apps/api/dashboard/serializers/system.py +58 -0
  18. django_cfg/apps/api/dashboard/services/__init__.py +24 -0
  19. django_cfg/apps/api/dashboard/services/apizones_service.py +137 -0
  20. django_cfg/apps/api/dashboard/services/charts_service.py +267 -0
  21. django_cfg/apps/api/dashboard/services/commands_security.py +228 -0
  22. django_cfg/apps/api/dashboard/services/commands_service.py +361 -0
  23. django_cfg/apps/api/dashboard/services/config_service.py +334 -0
  24. django_cfg/apps/api/dashboard/services/metrics_service.py +262 -0
  25. django_cfg/apps/api/dashboard/services/overview_service.py +205 -0
  26. django_cfg/apps/api/dashboard/services/statistics_service.py +404 -0
  27. django_cfg/apps/api/dashboard/services/system_health_service.py +328 -0
  28. django_cfg/apps/api/dashboard/urls.py +48 -0
  29. django_cfg/apps/api/dashboard/views/__init__.py +27 -0
  30. django_cfg/apps/api/dashboard/views/activity_views.py +81 -0
  31. django_cfg/apps/api/dashboard/views/apizones_views.py +72 -0
  32. django_cfg/apps/api/dashboard/views/charts_views.py +158 -0
  33. django_cfg/apps/api/dashboard/views/commands_views.py +158 -0
  34. django_cfg/apps/api/dashboard/views/config_views.py +69 -0
  35. django_cfg/apps/api/dashboard/views/metrics_views.py +190 -0
  36. django_cfg/apps/api/dashboard/views/overview_views.py +131 -0
  37. django_cfg/apps/api/dashboard/views/statistics_views.py +105 -0
  38. django_cfg/apps/api/dashboard/views/system_views.py +72 -0
  39. django_cfg/apps/api/endpoints/README.md +144 -0
  40. django_cfg/apps/api/endpoints/endpoints_status/__init__.py +13 -0
  41. django_cfg/apps/api/endpoints/endpoints_status/drf_views.py +58 -0
  42. django_cfg/apps/api/endpoints/urls.py +13 -6
  43. django_cfg/apps/api/endpoints/urls_list/__init__.py +10 -0
  44. django_cfg/apps/api/endpoints/urls_list/serializers.py +74 -0
  45. django_cfg/apps/api/endpoints/urls_list/views.py +279 -0
  46. django_cfg/apps/api/health/drf_views.py +36 -0
  47. django_cfg/apps/api/health/serializers.py +7 -0
  48. django_cfg/apps/integrations/centrifugo/__init__.py +74 -0
  49. django_cfg/apps/integrations/centrifugo/_cfg/README_DEPENDENCIES.md +260 -0
  50. django_cfg/apps/integrations/centrifugo/_cfg/__init__.py +25 -0
  51. django_cfg/apps/integrations/centrifugo/_cfg/check_deps.py +34 -0
  52. django_cfg/apps/integrations/centrifugo/_cfg/dependencies.py +309 -0
  53. django_cfg/apps/integrations/centrifugo/admin/__init__.py +13 -0
  54. django_cfg/apps/integrations/centrifugo/admin/centrifugo_log.py +211 -0
  55. django_cfg/apps/integrations/centrifugo/admin/config.py +82 -0
  56. django_cfg/apps/integrations/centrifugo/apps.py +109 -0
  57. django_cfg/apps/integrations/centrifugo/codegen/IMPLEMENTATION_SUMMARY.md +475 -0
  58. django_cfg/apps/integrations/centrifugo/codegen/README.md +242 -0
  59. django_cfg/apps/integrations/centrifugo/codegen/USAGE.md +616 -0
  60. django_cfg/apps/integrations/centrifugo/codegen/__init__.py +24 -0
  61. django_cfg/apps/integrations/centrifugo/codegen/discovery.py +467 -0
  62. django_cfg/apps/integrations/centrifugo/codegen/generators/__init__.py +12 -0
  63. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/__init__.py +5 -0
  64. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/generator.py +217 -0
  65. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/CLAUDE.md.j2 +106 -0
  66. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/README.md.j2 +182 -0
  67. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/client.go.j2 +64 -0
  68. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/go.mod.j2 +10 -0
  69. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/rpc_client.go.j2 +300 -0
  70. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/rpc_client.go.j2.old +267 -0
  71. django_cfg/apps/integrations/centrifugo/codegen/generators/go_thin/templates/types.go.j2 +16 -0
  72. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/__init__.py +7 -0
  73. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/generator.py +278 -0
  74. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/CLAUDE.md.j2 +100 -0
  75. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/README.md.j2 +128 -0
  76. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/__init__.py.j2 +22 -0
  77. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/client.py.j2 +73 -0
  78. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/models.py.j2 +19 -0
  79. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/requirements.txt.j2 +8 -0
  80. django_cfg/apps/integrations/centrifugo/codegen/generators/python_thin/templates/rpc_client.py.j2 +193 -0
  81. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/__init__.py +5 -0
  82. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/generator.py +415 -0
  83. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/AnyCodable.swift.j2 +219 -0
  84. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/CLAUDE.md.j2 +364 -0
  85. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/CentrifugoClient.swift.j2 +223 -0
  86. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/Package.swift.j2 +30 -0
  87. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/README.md.j2 +141 -0
  88. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/RPCClient.swift.j2 +465 -0
  89. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/Subscriptions.swift.j2 +59 -0
  90. django_cfg/apps/integrations/centrifugo/codegen/generators/swift_thin/templates/Types.swift.j2 +73 -0
  91. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/__init__.py +5 -0
  92. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/generator.py +422 -0
  93. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/CLAUDE.md.j2 +123 -0
  94. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/README.md.j2 +38 -0
  95. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/client.ts.j2 +106 -0
  96. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/index.ts.j2 +23 -0
  97. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/package.json.j2 +13 -0
  98. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/rpc-client.ts.j2 +276 -0
  99. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/subscriptions.ts.j2 +43 -0
  100. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/tsconfig.json.j2 +14 -0
  101. django_cfg/apps/integrations/centrifugo/codegen/generators/typescript_thin/templates/types.ts.j2 +19 -0
  102. django_cfg/apps/integrations/centrifugo/codegen/utils/__init__.py +90 -0
  103. django_cfg/apps/integrations/centrifugo/codegen/utils/converters/__init__.py +75 -0
  104. django_cfg/apps/integrations/centrifugo/codegen/utils/converters/base.py +128 -0
  105. django_cfg/apps/integrations/centrifugo/codegen/utils/converters/go.py +157 -0
  106. django_cfg/apps/integrations/centrifugo/codegen/utils/converters/python.py +125 -0
  107. django_cfg/apps/integrations/centrifugo/codegen/utils/converters/swift.py +423 -0
  108. django_cfg/apps/integrations/centrifugo/codegen/utils/converters/typescript.py +286 -0
  109. django_cfg/apps/integrations/centrifugo/codegen/utils/naming.py +287 -0
  110. django_cfg/apps/integrations/centrifugo/codegen/utils/prefix.py +167 -0
  111. django_cfg/apps/integrations/centrifugo/decorators.py +205 -0
  112. django_cfg/apps/integrations/centrifugo/handlers/__init__.py +11 -0
  113. django_cfg/apps/integrations/centrifugo/handlers/system.py +68 -0
  114. django_cfg/apps/integrations/centrifugo/management/__init__.py +1 -0
  115. django_cfg/apps/integrations/centrifugo/management/commands/README.md +131 -0
  116. django_cfg/apps/integrations/centrifugo/management/commands/__init__.py +1 -0
  117. django_cfg/apps/integrations/centrifugo/management/commands/centrifugo_publish.py +147 -0
  118. django_cfg/apps/integrations/centrifugo/management/commands/generate_centrifugo_clients.py +361 -0
  119. django_cfg/apps/integrations/centrifugo/managers/__init__.py +12 -0
  120. django_cfg/apps/integrations/centrifugo/managers/centrifugo_log.py +264 -0
  121. django_cfg/apps/integrations/centrifugo/migrations/0001_initial.py +164 -0
  122. django_cfg/apps/integrations/centrifugo/migrations/__init__.py +3 -0
  123. django_cfg/apps/integrations/centrifugo/models/__init__.py +11 -0
  124. django_cfg/apps/integrations/centrifugo/models/centrifugo_log.py +210 -0
  125. django_cfg/apps/integrations/centrifugo/registry.py +316 -0
  126. django_cfg/apps/integrations/centrifugo/router.py +125 -0
  127. django_cfg/apps/integrations/centrifugo/serializers/__init__.py +48 -0
  128. django_cfg/apps/integrations/centrifugo/serializers/admin_api.py +264 -0
  129. django_cfg/apps/integrations/centrifugo/serializers/channels.py +27 -0
  130. django_cfg/apps/integrations/centrifugo/serializers/health.py +20 -0
  131. django_cfg/apps/integrations/centrifugo/serializers/publishes.py +61 -0
  132. django_cfg/apps/integrations/centrifugo/serializers/stats.py +21 -0
  133. django_cfg/apps/integrations/centrifugo/services/__init__.py +18 -0
  134. django_cfg/apps/integrations/centrifugo/services/channel_validator.py +153 -0
  135. django_cfg/apps/integrations/centrifugo/services/client/__init__.py +34 -0
  136. django_cfg/apps/integrations/centrifugo/services/client/client.py +590 -0
  137. django_cfg/apps/integrations/centrifugo/services/client/config.py +236 -0
  138. django_cfg/apps/integrations/centrifugo/services/client/direct_client.py +296 -0
  139. django_cfg/apps/integrations/centrifugo/services/client/direct_client.py.backup +286 -0
  140. django_cfg/apps/integrations/centrifugo/services/client/exceptions.py +212 -0
  141. django_cfg/apps/integrations/centrifugo/services/config_helper.py +63 -0
  142. django_cfg/apps/integrations/centrifugo/services/dashboard_notifier.py +157 -0
  143. django_cfg/apps/integrations/centrifugo/services/logging.py +753 -0
  144. django_cfg/apps/integrations/centrifugo/services/publisher.py +379 -0
  145. django_cfg/apps/integrations/centrifugo/services/token_generator.py +122 -0
  146. django_cfg/apps/integrations/centrifugo/urls.py +44 -0
  147. django_cfg/apps/integrations/centrifugo/views/__init__.py +15 -0
  148. django_cfg/apps/integrations/centrifugo/views/admin_api.py +374 -0
  149. django_cfg/apps/integrations/centrifugo/views/monitoring.py +385 -0
  150. django_cfg/apps/integrations/centrifugo/views/rpc_proxy.py +199 -0
  151. django_cfg/apps/integrations/centrifugo/views/testing_api.py +406 -0
  152. django_cfg/apps/integrations/centrifugo/views/token_api.py +101 -0
  153. django_cfg/apps/integrations/centrifugo/views/wrapper.py +269 -0
  154. django_cfg/apps/integrations/grpc/__init__.py +9 -0
  155. django_cfg/apps/integrations/grpc/_cfg/README_DEPENDENCIES.md +307 -0
  156. django_cfg/apps/integrations/grpc/_cfg/__init__.py +25 -0
  157. django_cfg/apps/integrations/grpc/_cfg/check_deps.py +34 -0
  158. django_cfg/apps/integrations/grpc/_cfg/dependencies.py +484 -0
  159. django_cfg/apps/integrations/grpc/admin/__init__.py +38 -0
  160. django_cfg/apps/integrations/grpc/admin/config.py +496 -0
  161. django_cfg/apps/integrations/grpc/admin/connection_state.py +257 -0
  162. django_cfg/apps/integrations/grpc/admin/grpc_api_key.py +204 -0
  163. django_cfg/apps/integrations/grpc/admin/grpc_request_log.py +171 -0
  164. django_cfg/apps/integrations/grpc/admin/grpc_server_status.py +211 -0
  165. django_cfg/apps/integrations/grpc/apps.py +108 -0
  166. django_cfg/apps/integrations/grpc/auth/__init__.py +17 -0
  167. django_cfg/apps/integrations/grpc/auth/api_key_auth.py +366 -0
  168. django_cfg/apps/integrations/grpc/configs/__init__.py +90 -0
  169. django_cfg/apps/integrations/grpc/configs/channels.py +324 -0
  170. django_cfg/apps/integrations/grpc/configs/commands.py +126 -0
  171. django_cfg/apps/integrations/grpc/configs/constants.py +403 -0
  172. django_cfg/apps/integrations/grpc/configs/tls.py +297 -0
  173. django_cfg/apps/integrations/grpc/management/__init__.py +1 -0
  174. django_cfg/apps/integrations/grpc/management/commands/compile_proto.py +105 -0
  175. django_cfg/apps/integrations/grpc/management/commands/generate_protos.py +185 -0
  176. django_cfg/apps/integrations/grpc/management/commands/rungrpc.py +844 -0
  177. django_cfg/apps/integrations/grpc/management/commands/test_grpc_integration.py +75 -0
  178. django_cfg/apps/integrations/grpc/management/proto/__init__.py +3 -0
  179. django_cfg/apps/integrations/grpc/management/proto/compiler.py +194 -0
  180. django_cfg/apps/integrations/grpc/managers/__init__.py +26 -0
  181. django_cfg/apps/integrations/grpc/managers/connection_state/__init__.py +22 -0
  182. django_cfg/apps/integrations/grpc/managers/connection_state/event.py +225 -0
  183. django_cfg/apps/integrations/grpc/managers/connection_state/metric.py +235 -0
  184. django_cfg/apps/integrations/grpc/managers/connection_state/state.py +456 -0
  185. django_cfg/apps/integrations/grpc/managers/grpc_api_key.py +186 -0
  186. django_cfg/apps/integrations/grpc/managers/grpc_request_log.py +357 -0
  187. django_cfg/apps/integrations/grpc/managers/grpc_server_status.py +393 -0
  188. django_cfg/apps/integrations/grpc/migrations/0001_initial.py +69 -0
  189. django_cfg/apps/integrations/grpc/migrations/0002_rename_django_cfg__service_4c4a8e_idx_django_cfg__service_584308_idx_and_more.py +38 -0
  190. django_cfg/apps/integrations/grpc/migrations/0003_grpcserverstatus.py +119 -0
  191. django_cfg/apps/integrations/grpc/migrations/0004_grpcserverstatus_registered_services.py +22 -0
  192. django_cfg/apps/integrations/grpc/migrations/0005_grpcapikey.py +143 -0
  193. django_cfg/apps/integrations/grpc/migrations/0006_grpcrequestlog_api_key_and_more.py +34 -0
  194. django_cfg/apps/integrations/grpc/migrations/0007_simplify_grpc_models.py +330 -0
  195. django_cfg/apps/integrations/grpc/migrations/0008_grpcrequestlog_error_details.py +18 -0
  196. django_cfg/apps/integrations/grpc/migrations/0009_grpcagentconnectionstate_grpcagentconnectionmetric_and_more.py +349 -0
  197. django_cfg/apps/integrations/grpc/migrations/0010_grpcapikey_hash_security.py +102 -0
  198. django_cfg/apps/integrations/grpc/migrations/0011_alter_grpcapikey_key.py +27 -0
  199. django_cfg/apps/integrations/grpc/models/__init__.py +23 -0
  200. django_cfg/apps/integrations/grpc/models/connection_state/__init__.py +18 -0
  201. django_cfg/apps/integrations/grpc/models/connection_state/event.py +123 -0
  202. django_cfg/apps/integrations/grpc/models/connection_state/metric.py +200 -0
  203. django_cfg/apps/integrations/grpc/models/connection_state/state.py +275 -0
  204. django_cfg/apps/integrations/grpc/models/grpc_api_key.py +346 -0
  205. django_cfg/apps/integrations/grpc/models/grpc_request_log.py +94 -0
  206. django_cfg/apps/integrations/grpc/models/grpc_server_status.py +136 -0
  207. django_cfg/apps/integrations/grpc/resilience/__init__.py +99 -0
  208. django_cfg/apps/integrations/grpc/resilience/circuit.py +495 -0
  209. django_cfg/apps/integrations/grpc/resilience/config.py +117 -0
  210. django_cfg/apps/integrations/grpc/resilience/logging.py +325 -0
  211. django_cfg/apps/integrations/grpc/resilience/retry.py +273 -0
  212. django_cfg/apps/integrations/grpc/serializers/__init__.py +42 -0
  213. django_cfg/apps/integrations/grpc/serializers/api_keys.py +54 -0
  214. django_cfg/apps/integrations/grpc/serializers/config.py +120 -0
  215. django_cfg/apps/integrations/grpc/serializers/health.py +18 -0
  216. django_cfg/apps/integrations/grpc/serializers/requests.py +24 -0
  217. django_cfg/apps/integrations/grpc/serializers/service_registry.py +271 -0
  218. django_cfg/apps/integrations/grpc/serializers/stats.py +56 -0
  219. django_cfg/apps/integrations/grpc/services/__init__.py +121 -0
  220. django_cfg/apps/integrations/grpc/services/base.py +375 -0
  221. django_cfg/apps/integrations/grpc/services/centrifugo/__init__.py +29 -0
  222. django_cfg/apps/integrations/grpc/services/centrifugo/bridge.py +506 -0
  223. django_cfg/apps/integrations/grpc/services/centrifugo/config.py +167 -0
  224. django_cfg/apps/integrations/grpc/services/centrifugo/demo.py +630 -0
  225. django_cfg/apps/integrations/grpc/services/centrifugo/test_publish.py +229 -0
  226. django_cfg/apps/integrations/grpc/services/centrifugo/transformers.py +89 -0
  227. django_cfg/apps/integrations/grpc/services/client/__init__.py +102 -0
  228. django_cfg/apps/integrations/grpc/services/client/betterproto_client.py +841 -0
  229. django_cfg/apps/integrations/grpc/services/client/client.py +619 -0
  230. django_cfg/apps/integrations/grpc/services/client/pool.py +632 -0
  231. django_cfg/apps/integrations/grpc/services/client/resilient.py +717 -0
  232. django_cfg/apps/integrations/grpc/services/commands/IMPLEMENTATION.md +456 -0
  233. django_cfg/apps/integrations/grpc/services/commands/README.md +252 -0
  234. django_cfg/apps/integrations/grpc/services/commands/__init__.py +114 -0
  235. django_cfg/apps/integrations/grpc/services/commands/base.py +561 -0
  236. django_cfg/apps/integrations/grpc/services/commands/examples/__init__.py +22 -0
  237. django_cfg/apps/integrations/grpc/services/commands/examples/base_client.py +166 -0
  238. django_cfg/apps/integrations/grpc/services/commands/examples/client.py +272 -0
  239. django_cfg/apps/integrations/grpc/services/commands/examples/config.py +177 -0
  240. django_cfg/apps/integrations/grpc/services/commands/examples/start.py +125 -0
  241. django_cfg/apps/integrations/grpc/services/commands/examples/stop.py +101 -0
  242. django_cfg/apps/integrations/grpc/services/commands/helpers/README.md +253 -0
  243. django_cfg/apps/integrations/grpc/services/commands/helpers/__init__.py +43 -0
  244. django_cfg/apps/integrations/grpc/services/commands/helpers/builders.py +114 -0
  245. django_cfg/apps/integrations/grpc/services/commands/helpers/decorators.py +219 -0
  246. django_cfg/apps/integrations/grpc/services/commands/helpers/protocols.py +138 -0
  247. django_cfg/apps/integrations/grpc/services/commands/registry.py +170 -0
  248. django_cfg/apps/integrations/grpc/services/commands/viewset_mixin.py +311 -0
  249. django_cfg/apps/integrations/grpc/services/discovery/__init__.py +70 -0
  250. django_cfg/apps/integrations/grpc/services/discovery/registration.py +127 -0
  251. django_cfg/apps/integrations/grpc/services/discovery/service_discovery.py +274 -0
  252. django_cfg/apps/integrations/grpc/services/discovery/service_registry.py +201 -0
  253. django_cfg/apps/integrations/grpc/services/discovery/statistics.py +215 -0
  254. django_cfg/apps/integrations/grpc/services/discovery/utils.py +166 -0
  255. django_cfg/apps/integrations/grpc/services/interceptors/__init__.py +47 -0
  256. django_cfg/apps/integrations/grpc/services/interceptors/db_logger.py +113 -0
  257. django_cfg/apps/integrations/grpc/services/interceptors/errors.py +248 -0
  258. django_cfg/apps/integrations/grpc/services/interceptors/metrics.py +80 -0
  259. django_cfg/apps/integrations/grpc/services/interceptors/observability.py +578 -0
  260. django_cfg/apps/integrations/grpc/services/interceptors/publishers.py +190 -0
  261. django_cfg/apps/integrations/grpc/services/interceptors/utils.py +107 -0
  262. django_cfg/apps/integrations/grpc/services/interceptors/wrapped_handler.py +29 -0
  263. django_cfg/apps/integrations/grpc/services/management/__init__.py +37 -0
  264. django_cfg/apps/integrations/grpc/services/management/config_helper.py +152 -0
  265. django_cfg/apps/integrations/grpc/services/management/proto_manager.py +268 -0
  266. django_cfg/apps/integrations/grpc/services/monitoring/__init__.py +17 -0
  267. django_cfg/apps/integrations/grpc/services/monitoring/monitoring.py +395 -0
  268. django_cfg/apps/integrations/grpc/services/routing/__init__.py +59 -0
  269. django_cfg/apps/integrations/grpc/services/routing/config.py +83 -0
  270. django_cfg/apps/integrations/grpc/services/routing/router.py +430 -0
  271. django_cfg/apps/integrations/grpc/services/streaming/README.md +463 -0
  272. django_cfg/apps/integrations/grpc/services/streaming/__init__.py +115 -0
  273. django_cfg/apps/integrations/grpc/services/streaming/config.py +487 -0
  274. django_cfg/apps/integrations/grpc/services/streaming/core/__init__.py +21 -0
  275. django_cfg/apps/integrations/grpc/services/streaming/core/connection.py +199 -0
  276. django_cfg/apps/integrations/grpc/services/streaming/core/queue.py +104 -0
  277. django_cfg/apps/integrations/grpc/services/streaming/core/registry.py +299 -0
  278. django_cfg/apps/integrations/grpc/services/streaming/integrations/__init__.py +18 -0
  279. django_cfg/apps/integrations/grpc/services/streaming/integrations/centrifugo.py +228 -0
  280. django_cfg/apps/integrations/grpc/services/streaming/integrations/circuit_breaker.py +247 -0
  281. django_cfg/apps/integrations/grpc/services/streaming/processors/__init__.py +18 -0
  282. django_cfg/apps/integrations/grpc/services/streaming/processors/input.py +390 -0
  283. django_cfg/apps/integrations/grpc/services/streaming/processors/output.py +199 -0
  284. django_cfg/apps/integrations/grpc/services/streaming/service.py +474 -0
  285. django_cfg/apps/integrations/grpc/services/streaming/types.py +316 -0
  286. django_cfg/apps/integrations/grpc/testing/__init__.py +12 -0
  287. django_cfg/apps/integrations/grpc/testing/examples.py +263 -0
  288. django_cfg/apps/integrations/grpc/urls.py +36 -0
  289. django_cfg/apps/integrations/grpc/utils/SERVER_LOGGING.md +164 -0
  290. django_cfg/apps/integrations/grpc/utils/__init__.py +108 -0
  291. django_cfg/apps/integrations/grpc/utils/betterproto_compiler.py +576 -0
  292. django_cfg/apps/integrations/grpc/utils/converters.py +565 -0
  293. django_cfg/apps/integrations/grpc/utils/handlers.py +242 -0
  294. django_cfg/apps/integrations/grpc/utils/integration_test.py +334 -0
  295. django_cfg/apps/integrations/grpc/utils/proto_gen.py +463 -0
  296. django_cfg/apps/integrations/grpc/utils/streaming_logger.py +425 -0
  297. django_cfg/apps/integrations/grpc/views/__init__.py +15 -0
  298. django_cfg/apps/integrations/grpc/views/api_keys.py +235 -0
  299. django_cfg/apps/integrations/grpc/views/config.py +193 -0
  300. django_cfg/apps/integrations/grpc/views/monitoring.py +360 -0
  301. django_cfg/apps/integrations/grpc/views/services.py +298 -0
  302. django_cfg/apps/integrations/rq/__init__.py +9 -0
  303. django_cfg/apps/integrations/rq/_cfg/__init__.py +28 -0
  304. django_cfg/apps/integrations/rq/_cfg/dependencies.py +313 -0
  305. django_cfg/apps/integrations/rq/apps.py +157 -0
  306. django_cfg/apps/integrations/rq/management/__init__.py +1 -0
  307. django_cfg/apps/integrations/rq/management/commands/__init__.py +1 -0
  308. django_cfg/apps/integrations/rq/management/commands/rqscheduler.py +31 -0
  309. django_cfg/apps/integrations/rq/management/commands/rqstats.py +33 -0
  310. django_cfg/apps/integrations/rq/management/commands/rqworker.py +31 -0
  311. django_cfg/apps/integrations/rq/management/commands/rqworker_pool.py +27 -0
  312. django_cfg/apps/integrations/rq/serializers/__init__.py +40 -0
  313. django_cfg/apps/integrations/rq/serializers/health.py +77 -0
  314. django_cfg/apps/integrations/rq/serializers/job.py +104 -0
  315. django_cfg/apps/integrations/rq/serializers/queue.py +80 -0
  316. django_cfg/apps/integrations/rq/serializers/schedule.py +183 -0
  317. django_cfg/apps/integrations/rq/serializers/testing.py +139 -0
  318. django_cfg/apps/integrations/rq/serializers/worker.py +58 -0
  319. django_cfg/apps/integrations/rq/services/__init__.py +25 -0
  320. django_cfg/apps/integrations/rq/services/config_helper.py +323 -0
  321. django_cfg/apps/integrations/rq/services/models/README.md +417 -0
  322. django_cfg/apps/integrations/rq/services/models/__init__.py +30 -0
  323. django_cfg/apps/integrations/rq/services/models/event.py +123 -0
  324. django_cfg/apps/integrations/rq/services/models/job.py +99 -0
  325. django_cfg/apps/integrations/rq/services/models/queue.py +92 -0
  326. django_cfg/apps/integrations/rq/services/models/worker.py +106 -0
  327. django_cfg/apps/integrations/rq/services/rq_converters.py +188 -0
  328. django_cfg/apps/integrations/rq/tasks/__init__.py +21 -0
  329. django_cfg/apps/integrations/rq/tasks/demo_tasks.py +55 -0
  330. django_cfg/apps/integrations/rq/tasks/maintenance.py +259 -0
  331. django_cfg/apps/integrations/rq/urls.py +54 -0
  332. django_cfg/apps/integrations/rq/views/__init__.py +19 -0
  333. django_cfg/apps/integrations/rq/views/jobs.py +900 -0
  334. django_cfg/apps/integrations/rq/views/monitoring.py +248 -0
  335. django_cfg/apps/integrations/rq/views/queues.py +261 -0
  336. django_cfg/apps/integrations/rq/views/schedule.py +408 -0
  337. django_cfg/apps/integrations/rq/views/testing.py +698 -0
  338. django_cfg/apps/integrations/rq/views/workers.py +198 -0
  339. django_cfg/apps/integrations/webpush/__init__.py +18 -0
  340. django_cfg/apps/integrations/webpush/_cfg.py +35 -0
  341. django_cfg/apps/integrations/webpush/admin/__init__.py +13 -0
  342. django_cfg/apps/integrations/webpush/admin/config.py +76 -0
  343. django_cfg/apps/integrations/webpush/admin/push_subscription.py +115 -0
  344. django_cfg/apps/integrations/webpush/apps.py +98 -0
  345. django_cfg/apps/integrations/webpush/management/commands/test_push.py +85 -0
  346. django_cfg/apps/integrations/webpush/migrations/0001_initial.py +73 -0
  347. django_cfg/apps/integrations/webpush/models/__init__.py +5 -0
  348. django_cfg/apps/integrations/webpush/models/push_subscription.py +80 -0
  349. django_cfg/apps/integrations/webpush/serializers/__init__.py +19 -0
  350. django_cfg/apps/integrations/webpush/serializers/subscription.py +78 -0
  351. django_cfg/apps/integrations/webpush/services/__init__.py +33 -0
  352. django_cfg/apps/integrations/webpush/services/exceptions.py +61 -0
  353. django_cfg/apps/integrations/webpush/services/models.py +64 -0
  354. django_cfg/apps/integrations/webpush/services/push_service.py +270 -0
  355. django_cfg/apps/integrations/webpush/urls.py +23 -0
  356. django_cfg/apps/integrations/webpush/views/__init__.py +7 -0
  357. django_cfg/apps/integrations/webpush/views/api.py +175 -0
  358. django_cfg/apps/system/accounts/README.md +333 -0
  359. django_cfg/apps/system/accounts/admin/__init__.py +45 -0
  360. django_cfg/apps/system/accounts/admin/filters.py +128 -0
  361. django_cfg/apps/system/accounts/admin/inlines.py +177 -0
  362. django_cfg/apps/system/accounts/admin/oauth_admin.py +170 -0
  363. django_cfg/apps/system/accounts/admin/resources.py +270 -0
  364. django_cfg/apps/system/accounts/admin/user_admin.py +375 -0
  365. django_cfg/apps/system/accounts/apps.py +19 -0
  366. django_cfg/apps/system/accounts/management/commands/otp_test.py +206 -0
  367. django_cfg/apps/system/accounts/managers/user_manager.py +299 -0
  368. django_cfg/apps/system/accounts/migrations/0001_initial.py +119 -0
  369. django_cfg/apps/system/accounts/migrations/0008_oauth_models.py +180 -0
  370. django_cfg/apps/system/accounts/migrations/0009_delete_twilioresponse.py +22 -0
  371. django_cfg/apps/system/accounts/migrations/0010_twofactorsettings.py +100 -0
  372. django_cfg/apps/system/accounts/migrations/0011_delete_twofactorsettings.py +16 -0
  373. django_cfg/apps/system/accounts/migrations/0012_customuser_is_test_account.py +21 -0
  374. django_cfg/apps/system/accounts/migrations/0013_add_deleted_at.py +22 -0
  375. django_cfg/apps/system/accounts/models/__init__.py +68 -0
  376. django_cfg/apps/system/accounts/models/choices.py +15 -0
  377. django_cfg/apps/system/accounts/models/oauth.py +263 -0
  378. django_cfg/apps/system/accounts/models/settings.py +133 -0
  379. django_cfg/apps/system/accounts/models/user.py +254 -0
  380. django_cfg/apps/system/accounts/serializers/__init__.py +25 -0
  381. django_cfg/apps/system/accounts/serializers/oauth.py +171 -0
  382. django_cfg/apps/system/accounts/serializers/otp.py +171 -0
  383. django_cfg/apps/system/accounts/serializers/profile.py +236 -0
  384. django_cfg/apps/system/accounts/services/github_service.py +418 -0
  385. django_cfg/apps/system/accounts/services/otp_service.py +305 -0
  386. django_cfg/apps/system/accounts/signals.py +162 -0
  387. django_cfg/apps/system/accounts/urls.py +70 -0
  388. django_cfg/apps/system/accounts/utils/notifications.py +346 -0
  389. django_cfg/apps/system/accounts/views/oauth.py +368 -0
  390. django_cfg/apps/system/accounts/views/otp.py +205 -0
  391. django_cfg/apps/system/accounts/views/profile.py +250 -0
  392. django_cfg/apps/system/frontend/JWT_AUTO_INJECTION.md +224 -0
  393. django_cfg/apps/system/frontend/__init__.py +18 -0
  394. django_cfg/apps/system/frontend/apps.py +15 -0
  395. django_cfg/apps/system/frontend/management/commands/download_admin.py +111 -0
  396. django_cfg/apps/system/frontend/setup.py +105 -0
  397. django_cfg/apps/system/frontend/templates/frontend/404.html +23 -0
  398. django_cfg/apps/system/frontend/templates/frontend/route_not_found.html +33 -0
  399. django_cfg/apps/system/frontend/test_routing.py +134 -0
  400. django_cfg/apps/system/frontend/urls.py +12 -0
  401. django_cfg/apps/system/frontend/utils/__init__.py +24 -0
  402. django_cfg/apps/system/frontend/utils/compression.py +75 -0
  403. django_cfg/apps/system/frontend/utils/downloader.py +342 -0
  404. django_cfg/apps/system/frontend/utils/html_link_fixer.py +203 -0
  405. django_cfg/apps/system/frontend/utils/jwt_injection.py +134 -0
  406. django_cfg/apps/system/frontend/utils/spa_path_resolver.py +94 -0
  407. django_cfg/apps/system/frontend/views.py +270 -0
  408. django_cfg/apps/system/totp/README.md +292 -0
  409. django_cfg/apps/system/totp/__init__.py +38 -0
  410. django_cfg/apps/system/totp/admin/__init__.py +22 -0
  411. django_cfg/apps/system/totp/admin/backup_admin.py +44 -0
  412. django_cfg/apps/system/totp/admin/config.py +143 -0
  413. django_cfg/apps/system/totp/admin/device_admin.py +72 -0
  414. django_cfg/apps/system/totp/admin/session_admin.py +58 -0
  415. django_cfg/apps/system/totp/apps.py +20 -0
  416. django_cfg/apps/system/totp/decorators/__init__.py +101 -0
  417. django_cfg/apps/system/totp/middleware/__init__.py +74 -0
  418. django_cfg/apps/system/totp/migrations/0001_initial.py +79 -0
  419. django_cfg/apps/system/totp/migrations/__init__.py +5 -0
  420. django_cfg/apps/system/totp/models/__init__.py +18 -0
  421. django_cfg/apps/system/totp/models/backup_code.py +82 -0
  422. django_cfg/apps/system/totp/models/choices.py +20 -0
  423. django_cfg/apps/system/totp/models/device.py +146 -0
  424. django_cfg/apps/system/totp/models/session.py +172 -0
  425. django_cfg/apps/system/totp/serializers/__init__.py +20 -0
  426. django_cfg/apps/system/totp/serializers/backup.py +51 -0
  427. django_cfg/apps/system/totp/serializers/device.py +66 -0
  428. django_cfg/apps/system/totp/serializers/setup.py +72 -0
  429. django_cfg/apps/system/totp/serializers/verify.py +79 -0
  430. django_cfg/apps/system/totp/services/__init__.py +15 -0
  431. django_cfg/apps/system/totp/services/backup_service.py +181 -0
  432. django_cfg/apps/system/totp/services/session_service.py +267 -0
  433. django_cfg/apps/system/totp/services/totp_service.py +289 -0
  434. django_cfg/apps/system/totp/signals.py +125 -0
  435. django_cfg/apps/system/totp/urls.py +77 -0
  436. django_cfg/apps/system/totp/views/__init__.py +17 -0
  437. django_cfg/apps/system/totp/views/backup.py +134 -0
  438. django_cfg/apps/system/totp/views/device.py +171 -0
  439. django_cfg/apps/system/totp/views/setup.py +171 -0
  440. django_cfg/apps/system/totp/views/verify.py +228 -0
  441. django_cfg/apps/tools/currency/__init__.py +5 -0
  442. django_cfg/apps/tools/currency/admin/__init__.py +23 -0
  443. django_cfg/apps/tools/currency/admin/currency_admin.py +114 -0
  444. django_cfg/apps/tools/currency/admin/currency_rate_admin.py +183 -0
  445. django_cfg/apps/tools/currency/apps.py +37 -0
  446. django_cfg/apps/tools/currency/migrations/0001_initial.py +131 -0
  447. django_cfg/apps/tools/currency/migrations/0002_populate_currencies.py +86 -0
  448. django_cfg/apps/tools/currency/models.py +248 -0
  449. django_cfg/apps/tools/currency/services/__init__.py +36 -0
  450. django_cfg/apps/tools/currency/services/clients/__init__.py +6 -0
  451. django_cfg/apps/tools/currency/services/clients/coinpaprika.py +149 -0
  452. django_cfg/apps/tools/currency/services/clients/hybrid.py +237 -0
  453. django_cfg/apps/tools/currency/services/converter.py +226 -0
  454. django_cfg/apps/tools/currency/services/exceptions.py +21 -0
  455. django_cfg/apps/tools/currency/services/schemas.py +33 -0
  456. django_cfg/apps/tools/currency/services/update.py +166 -0
  457. django_cfg/apps/tools/currency/tasks.py +83 -0
  458. django_cfg/apps/urls.py +65 -119
  459. django_cfg/cli/README.md +2 -2
  460. django_cfg/cli/commands/create_project.py +324 -101
  461. django_cfg/cli/commands/info.py +3 -3
  462. django_cfg/cli/commands/search.py +80 -0
  463. django_cfg/cli/main.py +2 -0
  464. django_cfg/cli/utils.py +1 -3
  465. django_cfg/config.py +60 -5
  466. django_cfg/core/__init__.py +3 -0
  467. django_cfg/core/backends/__init__.py +1 -0
  468. django_cfg/core/backends/smtp.py +69 -0
  469. django_cfg/core/base/config_model.py +310 -270
  470. django_cfg/core/builders/apps_builder.py +58 -88
  471. django_cfg/core/builders/middleware_builder.py +33 -6
  472. django_cfg/core/builders/security_builder.py +404 -16
  473. django_cfg/core/constants.py +8 -0
  474. django_cfg/core/debug/README.md +116 -0
  475. django_cfg/core/debug/__init__.py +7 -0
  476. django_cfg/core/debug/example_config.py +63 -0
  477. django_cfg/core/debug/warnings_helper.py +155 -0
  478. django_cfg/core/decorators/__init__.py +28 -0
  479. django_cfg/core/decorators/cors.py +172 -0
  480. django_cfg/core/decorators/rate_limit.py +525 -0
  481. django_cfg/core/decorators/rate_limit_test.py +188 -0
  482. django_cfg/core/generation/core_generators/settings.py +3 -6
  483. django_cfg/core/generation/core_generators/static.py +7 -2
  484. django_cfg/core/generation/core_generators/templates.py +38 -23
  485. django_cfg/core/generation/data_generators/cache.py +28 -2
  486. django_cfg/core/generation/data_generators/database.py +70 -0
  487. django_cfg/core/generation/integration_generators/__init__.py +7 -3
  488. django_cfg/core/generation/integration_generators/api.py +12 -0
  489. django_cfg/core/generation/integration_generators/django_rq.py +80 -0
  490. django_cfg/core/generation/integration_generators/grpc_generator.py +335 -0
  491. django_cfg/core/generation/integration_generators/oauth.py +64 -0
  492. django_cfg/core/generation/integration_generators/third_party.py +8 -8
  493. django_cfg/core/generation/orchestrator.py +49 -6
  494. django_cfg/core/generation/security_generators/crypto_fields.py +72 -0
  495. django_cfg/core/generation/utility_generators/__init__.py +3 -0
  496. django_cfg/core/generation/utility_generators/i18n.py +1 -1
  497. django_cfg/core/generation/utility_generators/testing.py +79 -0
  498. django_cfg/core/integration/__init__.py +17 -0
  499. django_cfg/core/integration/display/__init__.py +10 -0
  500. django_cfg/core/integration/display/ai_hints.py +182 -0
  501. django_cfg/core/integration/display/banner.py +91 -0
  502. django_cfg/core/integration/display/base.py +73 -0
  503. django_cfg/core/integration/display/grpc_display.py +172 -0
  504. django_cfg/core/integration/display/startup.py +192 -112
  505. django_cfg/core/integration/timing.py +151 -0
  506. django_cfg/core/integration/url_integration.py +123 -9
  507. django_cfg/core/integration/version_checker.py +3 -3
  508. django_cfg/core/middleware/__init__.py +9 -0
  509. django_cfg/core/middleware/noindex.py +71 -0
  510. django_cfg/core/middleware/public_api_cors.py +132 -0
  511. django_cfg/core/utils/__init__.py +5 -0
  512. django_cfg/core/utils/url_helpers.py +73 -0
  513. django_cfg/core/validation.py +4 -6
  514. django_cfg/extensions/__init__.py +80 -0
  515. django_cfg/extensions/configs/__init__.py +9 -0
  516. django_cfg/extensions/configs/apps/__init__.py +39 -0
  517. django_cfg/extensions/configs/apps/agents.py +79 -0
  518. django_cfg/extensions/configs/apps/backup.py +175 -0
  519. django_cfg/extensions/configs/apps/base/__init__.py +18 -0
  520. django_cfg/extensions/configs/apps/base/constants.py +6 -0
  521. django_cfg/extensions/configs/apps/base/navigation.py +57 -0
  522. django_cfg/extensions/configs/apps/base/schedule.py +99 -0
  523. django_cfg/extensions/configs/apps/base/settings.py +208 -0
  524. django_cfg/extensions/configs/apps/currency.py +182 -0
  525. django_cfg/extensions/configs/apps/knowbase.py +103 -0
  526. django_cfg/extensions/configs/apps/leads.py +80 -0
  527. django_cfg/extensions/configs/apps/maintenance.py +68 -0
  528. django_cfg/extensions/configs/apps/newsletter.py +67 -0
  529. django_cfg/extensions/configs/apps/payments.py +138 -0
  530. django_cfg/extensions/configs/apps/support.py +89 -0
  531. django_cfg/extensions/configs/modules/__init__.py +11 -0
  532. django_cfg/extensions/configs/modules/base.py +83 -0
  533. django_cfg/extensions/constance.py +80 -0
  534. django_cfg/extensions/loader.py +284 -0
  535. django_cfg/extensions/manifest.py +57 -0
  536. django_cfg/extensions/mixin.py +157 -0
  537. django_cfg/extensions/module_loader.py +253 -0
  538. django_cfg/extensions/scanner.py +323 -0
  539. django_cfg/extensions/schedules.py +88 -0
  540. django_cfg/extensions/urls.py +214 -0
  541. django_cfg/management/commands/check_endpoints.py +3 -3
  542. django_cfg/management/commands/check_settings.py +3 -10
  543. django_cfg/management/commands/clear_constance.py +3 -10
  544. django_cfg/management/commands/create_token.py +4 -11
  545. django_cfg/management/commands/list_urls.py +6 -72
  546. django_cfg/management/commands/migrate_all.py +22 -103
  547. django_cfg/management/commands/migrator.py +29 -254
  548. django_cfg/management/commands/pool_status.py +153 -0
  549. django_cfg/management/commands/script.py +4 -10
  550. django_cfg/management/commands/show_config.py +8 -16
  551. django_cfg/management/commands/show_urls.py +5 -11
  552. django_cfg/management/commands/superuser.py +4 -43
  553. django_cfg/management/commands/test_db.py +448 -0
  554. django_cfg/management/commands/tree.py +5 -10
  555. django_cfg/management/utils/README.md +402 -0
  556. django_cfg/management/utils/__init__.py +37 -0
  557. django_cfg/management/utils/migration_manager.py +499 -0
  558. django_cfg/management/utils/mixins.py +176 -0
  559. django_cfg/management/utils/postgresql.py +228 -0
  560. django_cfg/middleware/README.md +372 -0
  561. django_cfg/middleware/__init__.py +6 -0
  562. django_cfg/middleware/admin_notifications.py +214 -0
  563. django_cfg/middleware/authentication.py +216 -0
  564. django_cfg/middleware/pagination.py +53 -54
  565. django_cfg/middleware/pool_cleanup.py +261 -0
  566. django_cfg/middleware/public_endpoints.py +0 -1
  567. django_cfg/middleware/user_activity.py +0 -5
  568. django_cfg/mixins/__init__.py +17 -0
  569. django_cfg/mixins/admin_api.py +37 -0
  570. django_cfg/mixins/client_api.py +39 -0
  571. django_cfg/mixins/public_api.py +31 -0
  572. django_cfg/mixins/superadmin_api.py +59 -0
  573. django_cfg/models/__init__.py +30 -2
  574. django_cfg/models/api/__init__.py +10 -0
  575. django_cfg/models/api/config.py +2 -2
  576. django_cfg/models/api/drf/config.py +4 -2
  577. django_cfg/models/api/grpc/__init__.py +75 -0
  578. django_cfg/models/api/grpc/config.py +732 -0
  579. django_cfg/models/api/oauth.py +222 -0
  580. django_cfg/models/api/rate_limiting.py +278 -0
  581. django_cfg/models/api/twofactor.py +110 -0
  582. django_cfg/models/api/webpush/__init__.py +9 -0
  583. django_cfg/models/api/webpush/config.py +68 -0
  584. django_cfg/models/django/__init__.py +7 -0
  585. django_cfg/models/django/axes.py +187 -0
  586. django_cfg/models/django/constance.py +10 -17
  587. django_cfg/models/django/crypto_fields.py +135 -0
  588. django_cfg/models/django/currency.py +69 -0
  589. django_cfg/models/django/django_rq.py +780 -0
  590. django_cfg/models/django/openapi.py +53 -3
  591. django_cfg/models/infrastructure/__init__.py +14 -2
  592. django_cfg/models/infrastructure/backup.py +413 -0
  593. django_cfg/models/infrastructure/database/config.py +16 -0
  594. django_cfg/models/infrastructure/database/converters.py +2 -0
  595. django_cfg/models/ngrok/config.py +7 -6
  596. django_cfg/models/services/email.py +13 -13
  597. django_cfg/modules/base.py +124 -61
  598. django_cfg/modules/django_admin/README.md +1165 -0
  599. django_cfg/modules/django_admin/__init__.py +86 -29
  600. django_cfg/modules/django_admin/apps.py +19 -0
  601. django_cfg/modules/django_admin/base/__init__.py +3 -1
  602. django_cfg/modules/django_admin/base/pydantic_admin/__init__.py +90 -0
  603. django_cfg/modules/django_admin/base/pydantic_admin/actions.py +90 -0
  604. django_cfg/modules/django_admin/base/pydantic_admin/base_class.py +44 -0
  605. django_cfg/modules/django_admin/base/pydantic_admin/display_methods.py +420 -0
  606. django_cfg/modules/django_admin/base/pydantic_admin/import_export.py +111 -0
  607. django_cfg/modules/django_admin/base/pydantic_admin/list_display.py +156 -0
  608. django_cfg/modules/django_admin/base/pydantic_admin/mixin.py +276 -0
  609. django_cfg/modules/django_admin/base/pydantic_admin/views.py +285 -0
  610. django_cfg/modules/django_admin/config/__init__.py +41 -2
  611. django_cfg/modules/django_admin/config/action_config.py +16 -2
  612. django_cfg/modules/django_admin/config/admin_config.py +76 -5
  613. django_cfg/modules/django_admin/config/background_task_config.py +76 -0
  614. django_cfg/modules/django_admin/config/documentation_config.py +529 -0
  615. django_cfg/modules/django_admin/config/field_config/__init__.py +48 -0
  616. django_cfg/modules/django_admin/config/field_config/avatar.py +89 -0
  617. django_cfg/modules/django_admin/config/field_config/badge.py +37 -0
  618. django_cfg/modules/django_admin/config/field_config/base.py +54 -0
  619. django_cfg/modules/django_admin/config/field_config/boolean.py +32 -0
  620. django_cfg/modules/django_admin/config/field_config/counter_badge.py +116 -0
  621. django_cfg/modules/django_admin/config/field_config/currency.py +55 -0
  622. django_cfg/modules/django_admin/config/field_config/datetime.py +34 -0
  623. django_cfg/modules/django_admin/config/field_config/decimal.py +38 -0
  624. django_cfg/modules/django_admin/config/field_config/foreignkey.py +104 -0
  625. django_cfg/modules/django_admin/config/field_config/image.py +66 -0
  626. django_cfg/modules/django_admin/config/field_config/image_preview.py +223 -0
  627. django_cfg/modules/django_admin/config/field_config/link.py +95 -0
  628. django_cfg/modules/django_admin/config/field_config/markdown.py +97 -0
  629. django_cfg/modules/django_admin/config/field_config/money.py +117 -0
  630. django_cfg/modules/django_admin/config/field_config/short_uuid.py +31 -0
  631. django_cfg/modules/django_admin/config/field_config/status_badges.py +151 -0
  632. django_cfg/modules/django_admin/config/field_config/text.py +38 -0
  633. django_cfg/modules/django_admin/config/field_config/user.py +31 -0
  634. django_cfg/modules/django_admin/config/field_config/video.py +84 -0
  635. django_cfg/modules/django_admin/config/fieldset_config.py +24 -0
  636. django_cfg/modules/django_admin/config/resource_config.py +129 -0
  637. django_cfg/modules/django_admin/config/widget_config.py +192 -0
  638. django_cfg/modules/django_admin/models/badge_models.py +16 -2
  639. django_cfg/modules/django_admin/models/display_models.py +1 -0
  640. django_cfg/modules/django_admin/static/django_admin/css/documentation-modal.css +349 -0
  641. django_cfg/modules/django_admin/static/django_admin/css/image_preview.css +129 -0
  642. django_cfg/modules/django_admin/static/django_admin/css/json_editor_theme.css +100 -0
  643. django_cfg/modules/django_admin/templates/django_admin/change_form_docs.html +11 -0
  644. django_cfg/modules/django_admin/templates/django_admin/change_list_docs.html +11 -0
  645. django_cfg/modules/django_admin/templates/django_admin/documentation_block.html +15 -0
  646. django_cfg/modules/django_admin/templates/django_admin/documentation_modal.html +317 -0
  647. django_cfg/modules/django_admin/templates/django_admin/documentation_tree_node.html +124 -0
  648. django_cfg/modules/django_admin/templates/django_admin/markdown_docs_block.html +37 -0
  649. django_cfg/modules/django_admin/templates/django_admin/widgets/avatar_display.html +56 -0
  650. django_cfg/modules/django_admin/templates/django_admin/widgets/counter_badge_display.html +21 -0
  651. django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_field.html +80 -0
  652. django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_password.html +62 -0
  653. django_cfg/modules/django_admin/templates/django_admin/widgets/image_display.html +14 -0
  654. django_cfg/modules/django_admin/templates/django_admin/widgets/image_preview.html +340 -0
  655. django_cfg/modules/django_admin/templates/django_admin/widgets/image_preview_card.html +70 -0
  656. django_cfg/modules/django_admin/templates/django_admin/widgets/image_preview_modal.html +286 -0
  657. django_cfg/modules/django_admin/templates/django_admin/widgets/image_preview_thumbnail.html +38 -0
  658. django_cfg/modules/django_admin/templates/django_admin/widgets/json_display.html +17 -0
  659. django_cfg/modules/django_admin/templates/django_admin/widgets/json_editor.html +153 -0
  660. django_cfg/modules/django_admin/templates/django_admin/widgets/link_display.html +29 -0
  661. django_cfg/modules/django_admin/templates/django_admin/widgets/money_field_input.html +157 -0
  662. django_cfg/modules/django_admin/templates/django_admin/widgets/short_uuid_display.html +13 -0
  663. django_cfg/modules/django_admin/templates/django_admin/widgets/status_badges_display.html +21 -0
  664. django_cfg/modules/django_admin/templates/django_admin/widgets/video_display.html +69 -0
  665. django_cfg/modules/django_admin/utils/__init__.py +70 -3
  666. django_cfg/modules/django_admin/utils/badges/__init__.py +13 -0
  667. django_cfg/modules/django_admin/utils/badges/status_badges.py +179 -0
  668. django_cfg/modules/django_admin/utils/decorators.py +30 -4
  669. django_cfg/modules/django_admin/utils/displays/__init__.py +34 -0
  670. django_cfg/modules/django_admin/utils/displays/avatar_display.py +158 -0
  671. django_cfg/modules/django_admin/utils/displays/counter_badge_display.py +138 -0
  672. django_cfg/modules/django_admin/utils/displays/data_displays.py +316 -0
  673. django_cfg/modules/django_admin/utils/displays/image_display.py +124 -0
  674. django_cfg/modules/django_admin/utils/displays/image_preview.py +225 -0
  675. django_cfg/modules/django_admin/utils/displays/json_display.py +155 -0
  676. django_cfg/modules/django_admin/utils/displays/link_display.py +133 -0
  677. django_cfg/modules/django_admin/utils/displays/short_uuid_display.py +95 -0
  678. django_cfg/modules/django_admin/utils/displays/status_badges_display.py +118 -0
  679. django_cfg/modules/django_admin/utils/displays/text_display.py +136 -0
  680. django_cfg/modules/django_admin/utils/displays/video_display.py +149 -0
  681. django_cfg/modules/django_admin/utils/html/__init__.py +26 -0
  682. django_cfg/modules/django_admin/utils/html/badges.py +55 -0
  683. django_cfg/modules/django_admin/utils/html/base.py +198 -0
  684. django_cfg/modules/django_admin/utils/html/code.py +87 -0
  685. django_cfg/modules/django_admin/utils/html/composition.py +265 -0
  686. django_cfg/modules/django_admin/utils/html/formatting.py +274 -0
  687. django_cfg/modules/django_admin/utils/html/keyvalue.py +219 -0
  688. django_cfg/modules/django_admin/utils/html/markdown_integration.py +108 -0
  689. django_cfg/modules/django_admin/utils/html/progress.py +127 -0
  690. django_cfg/modules/django_admin/utils/html_builder.py +58 -194
  691. django_cfg/modules/django_admin/utils/markdown/__init__.py +21 -0
  692. django_cfg/modules/django_admin/utils/markdown/mermaid_plugin.py +277 -0
  693. django_cfg/modules/django_admin/utils/markdown/renderer.py +366 -0
  694. django_cfg/modules/django_admin/widgets/README.md +148 -0
  695. django_cfg/modules/django_admin/widgets/__init__.py +38 -0
  696. django_cfg/modules/django_admin/widgets/encrypted_field_widget.py +66 -0
  697. django_cfg/modules/django_admin/widgets/image_preview_widget.py +131 -0
  698. django_cfg/modules/django_admin/widgets/json_editor_widget.py +91 -0
  699. django_cfg/modules/django_admin/widgets/money_widget.py +452 -0
  700. django_cfg/modules/django_admin/widgets/registry.py +144 -9
  701. django_cfg/modules/django_ai/__init__.py +50 -0
  702. django_cfg/modules/django_ai/client.py +237 -0
  703. django_cfg/modules/django_client/core/__init__.py +19 -7
  704. django_cfg/modules/django_client/core/archiver/manager.py +148 -0
  705. django_cfg/modules/django_client/core/config/config.py +8 -0
  706. django_cfg/modules/django_client/core/config/service.py +1 -1
  707. django_cfg/modules/django_client/core/external/__init__.py +131 -0
  708. django_cfg/modules/django_client/core/external/base.py +388 -0
  709. django_cfg/modules/django_client/core/external/go.py +179 -0
  710. django_cfg/modules/django_client/core/external/python.py +244 -0
  711. django_cfg/modules/django_client/core/external/swift.py +158 -0
  712. django_cfg/modules/django_client/core/generator/__init__.py +120 -2
  713. django_cfg/modules/django_client/core/generator/base.py +3 -0
  714. django_cfg/modules/django_client/core/generator/claude_generator.py +345 -0
  715. django_cfg/modules/django_client/core/generator/go/__init__.py +14 -0
  716. django_cfg/modules/django_client/core/generator/go/client_generator.py +124 -0
  717. django_cfg/modules/django_client/core/generator/go/files_generator.py +133 -0
  718. django_cfg/modules/django_client/core/generator/go/generator.py +207 -0
  719. django_cfg/modules/django_client/core/generator/go/models_generator.py +304 -0
  720. django_cfg/modules/django_client/core/generator/go/naming.py +193 -0
  721. django_cfg/modules/django_client/core/generator/go/operations_generator.py +134 -0
  722. django_cfg/modules/django_client/core/generator/go/templates/Makefile.j2 +38 -0
  723. django_cfg/modules/django_client/core/generator/go/templates/README.md.j2 +55 -0
  724. django_cfg/modules/django_client/core/generator/go/templates/_header.jinja +1 -0
  725. django_cfg/modules/django_client/core/generator/go/templates/client.go.j2 +122 -0
  726. django_cfg/modules/django_client/core/generator/go/templates/enums.go.j2 +49 -0
  727. django_cfg/modules/django_client/core/generator/go/templates/errors.go.j2 +182 -0
  728. django_cfg/modules/django_client/core/generator/go/templates/go.mod.j2 +6 -0
  729. django_cfg/modules/django_client/core/generator/go/templates/main_client.go.j2 +60 -0
  730. django_cfg/modules/django_client/core/generator/go/templates/middleware.go.j2 +388 -0
  731. django_cfg/modules/django_client/core/generator/go/templates/models.go.j2 +28 -0
  732. django_cfg/modules/django_client/core/generator/go/templates/operations_client.go.j2 +142 -0
  733. django_cfg/modules/django_client/core/generator/go/templates/validation.go.j2 +217 -0
  734. django_cfg/modules/django_client/core/generator/go/type_mapper.py +380 -0
  735. django_cfg/modules/django_client/core/generator/proto/ENUM_NAMING_FIX.md +149 -0
  736. django_cfg/modules/django_client/core/generator/proto/__init__.py +19 -0
  737. django_cfg/modules/django_client/core/generator/proto/generator.py +511 -0
  738. django_cfg/modules/django_client/core/generator/proto/messages_generator.py +326 -0
  739. django_cfg/modules/django_client/core/generator/proto/naming.py +216 -0
  740. django_cfg/modules/django_client/core/generator/proto/services_generator.py +299 -0
  741. django_cfg/modules/django_client/core/generator/proto/test_proto_generator.py +262 -0
  742. django_cfg/modules/django_client/core/generator/proto/type_mapper.py +154 -0
  743. django_cfg/modules/django_client/core/generator/python/files_generator.py +5 -13
  744. django_cfg/modules/django_client/core/generator/python/generator.py +34 -1
  745. django_cfg/modules/django_client/core/generator/python/models_generator.py +76 -50
  746. django_cfg/modules/django_client/core/generator/python/operations_generator.py +6 -8
  747. django_cfg/modules/django_client/core/generator/python/templates/__init__.py.jinja +2 -0
  748. django_cfg/modules/django_client/core/generator/python/templates/_header.jinja +1 -0
  749. django_cfg/modules/django_client/core/generator/python/templates/api_wrapper.py.jinja +18 -4
  750. django_cfg/modules/django_client/core/generator/python/templates/app_init.py.jinja +2 -0
  751. django_cfg/modules/django_client/core/generator/python/templates/client/main_client.py.jinja +0 -2
  752. django_cfg/modules/django_client/core/generator/python/templates/client/sync_main_client.py.jinja +0 -1
  753. django_cfg/modules/django_client/core/generator/python/templates/client_file.py.jinja +2 -0
  754. django_cfg/modules/django_client/core/generator/python/templates/main_init.py.jinja +6 -4
  755. django_cfg/modules/django_client/core/generator/python/templates/models/app_models.py.jinja +2 -0
  756. django_cfg/modules/django_client/core/generator/python/templates/models/enums.py.jinja +9 -1
  757. django_cfg/modules/django_client/core/generator/python/templates/models/models.py.jinja +2 -0
  758. django_cfg/modules/django_client/core/generator/python/templates/models/schema_class.py.jinja +1 -1
  759. django_cfg/modules/django_client/core/generator/python/templates/pyproject.toml.jinja +2 -0
  760. django_cfg/modules/django_client/core/generator/python/templates/utils/logger.py.jinja +2 -0
  761. django_cfg/modules/django_client/core/generator/python/templates/utils/retry.py.jinja +2 -0
  762. django_cfg/modules/django_client/core/generator/python/templates/utils/schema.py.jinja +2 -0
  763. django_cfg/modules/django_client/core/generator/swift_codable/__init__.py +30 -0
  764. django_cfg/modules/django_client/core/generator/swift_codable/endpoints_generator.py +284 -0
  765. django_cfg/modules/django_client/core/generator/swift_codable/generator.py +398 -0
  766. django_cfg/modules/django_client/core/generator/swift_codable/models_generator.py +299 -0
  767. django_cfg/modules/django_client/core/generator/swift_codable/naming.py +114 -0
  768. django_cfg/modules/django_client/core/generator/swift_codable/type_mapper.py +120 -0
  769. django_cfg/modules/django_client/core/generator/typescript/client_generator.py +36 -2
  770. django_cfg/modules/django_client/core/generator/typescript/fetchers_generator.py +11 -1
  771. django_cfg/modules/django_client/core/generator/typescript/files_generator.py +18 -5
  772. django_cfg/modules/django_client/core/generator/typescript/generator.py +43 -0
  773. django_cfg/modules/django_client/core/generator/typescript/hooks_generator.py +7 -1
  774. django_cfg/modules/django_client/core/generator/typescript/models_generator.py +16 -0
  775. django_cfg/modules/django_client/core/generator/typescript/naming.py +6 -4
  776. django_cfg/modules/django_client/core/generator/typescript/operations_generator.py +169 -6
  777. django_cfg/modules/django_client/core/generator/typescript/schemas_generator.py +41 -7
  778. django_cfg/modules/django_client/core/generator/typescript/templates/_header.jinja +1 -0
  779. django_cfg/modules/django_client/core/generator/typescript/templates/api_instance.ts.jinja +63 -13
  780. django_cfg/modules/django_client/core/generator/typescript/templates/app_index.ts.jinja +2 -0
  781. django_cfg/modules/django_client/core/generator/typescript/templates/client/client.ts.jinja +284 -25
  782. django_cfg/modules/django_client/core/generator/typescript/templates/client/flat_client.ts.jinja +10 -3
  783. django_cfg/modules/django_client/core/generator/typescript/templates/client_file.ts.jinja +2 -0
  784. django_cfg/modules/django_client/core/generator/typescript/templates/fetchers/fetchers.ts.jinja +3 -1
  785. django_cfg/modules/django_client/core/generator/typescript/templates/fetchers/function.ts.jinja +45 -2
  786. django_cfg/modules/django_client/core/generator/typescript/templates/fetchers/index.ts.jinja +2 -0
  787. django_cfg/modules/django_client/core/generator/typescript/templates/hooks/hooks.ts.jinja +8 -0
  788. django_cfg/modules/django_client/core/generator/typescript/templates/hooks/index.ts.jinja +4 -0
  789. django_cfg/modules/django_client/core/generator/typescript/templates/index.ts.jinja +2 -0
  790. django_cfg/modules/django_client/core/generator/typescript/templates/main_index.ts.jinja +36 -22
  791. django_cfg/modules/django_client/core/generator/typescript/templates/models/app_models.ts.jinja +9 -1
  792. django_cfg/modules/django_client/core/generator/typescript/templates/models/enums.ts.jinja +2 -0
  793. django_cfg/modules/django_client/core/generator/typescript/templates/models/models.ts.jinja +2 -0
  794. django_cfg/modules/django_client/core/generator/typescript/templates/package.json.jinja +5 -1
  795. django_cfg/modules/django_client/core/generator/typescript/templates/schemas/index.ts.jinja +2 -0
  796. django_cfg/modules/django_client/core/generator/typescript/templates/utils/errors.ts.jinja +2 -0
  797. django_cfg/modules/django_client/core/generator/typescript/templates/utils/http.ts.jinja +18 -5
  798. django_cfg/modules/django_client/core/generator/typescript/templates/utils/logger.ts.jinja +2 -0
  799. django_cfg/modules/django_client/core/generator/typescript/templates/utils/retry.ts.jinja +2 -0
  800. django_cfg/modules/django_client/core/generator/typescript/templates/utils/schema.ts.jinja +2 -0
  801. django_cfg/modules/django_client/core/generator/typescript/templates/utils/storage.ts.jinja +5 -0
  802. django_cfg/modules/django_client/core/generator/typescript/templates/utils/validation-events.ts.jinja +135 -0
  803. django_cfg/modules/django_client/core/groups/manager.py +113 -22
  804. django_cfg/modules/django_client/core/ir/context.py +14 -0
  805. django_cfg/modules/django_client/core/ir/schema.py +81 -2
  806. django_cfg/modules/django_client/core/parser/base.py +249 -15
  807. django_cfg/modules/django_client/core/parser/openapi30.py +26 -1
  808. django_cfg/modules/django_client/core/parser/openapi31.py +26 -1
  809. django_cfg/modules/django_client/core/validation/checker.py +23 -1
  810. django_cfg/modules/django_client/core/validation/rules/__init__.py +2 -0
  811. django_cfg/modules/django_client/core/validation/rules/dict_field.py +283 -0
  812. django_cfg/modules/django_client/core/validation/safety.py +4 -4
  813. django_cfg/modules/django_client/generate_client/__init__.py +52 -0
  814. django_cfg/modules/django_client/generate_client/config.py +120 -0
  815. django_cfg/modules/django_client/generate_client/generators/__init__.py +12 -0
  816. django_cfg/modules/django_client/generate_client/generators/external.py +246 -0
  817. django_cfg/modules/django_client/generate_client/generators/internal.py +200 -0
  818. django_cfg/modules/django_client/generate_client/orchestrator.py +566 -0
  819. django_cfg/modules/django_client/generate_client/utils/__init__.py +9 -0
  820. django_cfg/modules/django_client/generate_client/utils/nextjs.py +214 -0
  821. django_cfg/modules/django_client/generate_client/utils/schema.py +97 -0
  822. django_cfg/modules/django_client/generate_client/utils/typescript.py +104 -0
  823. django_cfg/modules/django_client/management/commands/generate_client.py +164 -291
  824. django_cfg/modules/django_client/management/commands/validate_openapi.py +5 -2
  825. django_cfg/modules/django_client/urls.py +38 -5
  826. django_cfg/modules/django_currency/__init__.py +8 -102
  827. django_cfg/modules/django_currency/admin.py +97 -0
  828. django_cfg/modules/django_currency/fields.py +145 -0
  829. django_cfg/modules/django_email/__init__.py +9 -1
  830. django_cfg/modules/django_email/management/commands/test_email.py +4 -10
  831. django_cfg/modules/django_email/service.py +117 -54
  832. django_cfg/modules/django_email/utils.py +167 -1
  833. django_cfg/modules/django_health/service.py +2 -1
  834. django_cfg/modules/django_import_export/README.md +19 -1
  835. django_cfg/modules/django_import_export/__init__.py +8 -0
  836. django_cfg/modules/django_import_export/apps.py +16 -0
  837. django_cfg/modules/django_import_export/templates/admin/import_export/change_list_export.html +6 -0
  838. django_cfg/modules/django_import_export/templates/admin/import_export/change_list_export_item.html +7 -0
  839. django_cfg/modules/django_import_export/templates/admin/import_export/change_list_import.html +6 -0
  840. django_cfg/modules/django_import_export/templates/admin/import_export/change_list_import_export.html +39 -0
  841. django_cfg/modules/django_import_export/templates/admin/import_export/change_list_import_item.html +7 -0
  842. django_cfg/modules/django_llm/llm/__init__.py +33 -2
  843. django_cfg/modules/django_llm/llm/cache_dirs.py +119 -0
  844. django_cfg/modules/django_llm/llm/client.py +8 -0
  845. django_cfg/modules/django_llm/llm/models_cache.py +5 -22
  846. django_cfg/modules/django_llm/llm/vision/__init__.py +21 -0
  847. django_cfg/modules/django_llm/llm/vision/client.py +572 -0
  848. django_cfg/modules/django_llm/llm/vision/image_encoder.py +198 -0
  849. django_cfg/modules/django_llm/llm/vision/models.py +103 -0
  850. django_cfg/modules/django_llm/llm/vision/vision_models.py +370 -0
  851. django_cfg/modules/django_llm_monitoring/README.md +872 -0
  852. django_cfg/modules/django_llm_monitoring/__init__.py +24 -0
  853. django_cfg/modules/django_llm_monitoring/apps.py +11 -0
  854. django_cfg/modules/django_llm_monitoring/balance_checker.py +90 -0
  855. django_cfg/modules/django_llm_monitoring/management/__init__.py +1 -0
  856. django_cfg/modules/django_llm_monitoring/management/commands/__init__.py +1 -0
  857. django_cfg/modules/django_llm_monitoring/management/commands/check_llm_balance.py +143 -0
  858. django_cfg/modules/django_llm_monitoring/models.py +64 -0
  859. django_cfg/modules/django_llm_monitoring/notifier.py +285 -0
  860. django_cfg/modules/django_llm_monitoring/providers/__init__.py +15 -0
  861. django_cfg/modules/django_llm_monitoring/providers/base.py +109 -0
  862. django_cfg/modules/django_llm_monitoring/providers/openai.py +126 -0
  863. django_cfg/modules/django_llm_monitoring/providers/openrouter.py +128 -0
  864. django_cfg/modules/django_logging/__init__.py +2 -0
  865. django_cfg/modules/django_logging/django_logger.py +238 -58
  866. django_cfg/modules/django_ngrok/management/commands/runserver_ngrok.py +17 -14
  867. django_cfg/modules/django_tailwind/templates/django_tailwind/base.html +26 -11
  868. django_cfg/modules/django_tailwind/templates/django_tailwind/components/navbar.html +2 -2
  869. django_cfg/modules/django_tailwind/templates/django_tailwind/simple.html +10 -4
  870. django_cfg/modules/django_telegram/__init__.py +2 -0
  871. django_cfg/modules/django_telegram/management/commands/test_telegram.py +4 -11
  872. django_cfg/modules/django_telegram/service.py +289 -42
  873. django_cfg/modules/django_unfold/__init__.py +5 -24
  874. django_cfg/modules/django_unfold/forms/EXAMPLE.md +48 -0
  875. django_cfg/modules/django_unfold/forms/__init__.py +5 -0
  876. django_cfg/modules/django_unfold/forms/auth.py +48 -0
  877. django_cfg/modules/django_unfold/models/__init__.py +0 -23
  878. django_cfg/modules/django_unfold/models/config.py +149 -136
  879. django_cfg/modules/django_unfold/models/navigation.py +1 -1
  880. django_cfg/modules/django_unfold/navigation.py +338 -0
  881. django_cfg/modules/django_unfold/tailwind.py +29 -79
  882. django_cfg/modules/nextjs_admin/__init__.py +12 -0
  883. django_cfg/modules/nextjs_admin/apps.py +12 -0
  884. django_cfg/modules/nextjs_admin/models/__init__.py +5 -0
  885. django_cfg/modules/nextjs_admin/models/config.py +191 -0
  886. django_cfg/modules/nextjs_admin/templatetags/__init__.py +1 -0
  887. django_cfg/modules/nextjs_admin/templatetags/nextjs_admin.py +164 -0
  888. django_cfg/modules/nextjs_admin/urls.py +19 -0
  889. django_cfg/modules/nextjs_admin/views.py +283 -0
  890. django_cfg/pyproject.toml +394 -41
  891. django_cfg/registry/core.py +26 -3
  892. django_cfg/registry/modules.py +19 -2
  893. django_cfg/registry/services.py +10 -6
  894. django_cfg/registry/third_party.py +0 -9
  895. django_cfg/requirements.txt +52 -0
  896. django_cfg/routing/callbacks.py +1 -43
  897. django_cfg/static/admin/css/constance.css +44 -0
  898. django_cfg/static/admin/css/dashboard.css +6 -170
  899. django_cfg/static/admin/css/layout.css +21 -0
  900. django_cfg/static/admin/css/tabs.css +95 -0
  901. django_cfg/static/admin/css/theme.css +110 -0
  902. django_cfg/templates/TAILWIND.md +170 -0
  903. django_cfg/templates/admin/DUAL_TAB_ARCHITECTURE.md +561 -0
  904. django_cfg/templates/admin/base_site.html +8 -0
  905. django_cfg/templates/admin/constance/includes/results_list.html +68 -11
  906. django_cfg/templates/admin/index.html +813 -61
  907. django_cfg/templates/unfold/layouts/skeleton.html +27 -0
  908. django_cfg/templatetags/django_cfg.py +380 -0
  909. django_cfg/testing/README.md +278 -0
  910. django_cfg/testing/SMART_MIGRATION_MANAGER.md +396 -0
  911. django_cfg/testing/TEST_DB_COMMAND.md +331 -0
  912. django_cfg/testing/__init__.py +14 -0
  913. django_cfg/testing/runners.py +320 -0
  914. django_cfg/utils/__init__.py +5 -1
  915. django_cfg/utils/pool_monitor.py +320 -0
  916. django_cfg/utils/smart_defaults.py +235 -9
  917. django_cfg-1.5.181.dist-info/METADATA +388 -0
  918. django_cfg-1.5.181.dist-info/RECORD +1182 -0
  919. django_cfg-1.5.181.dist-info/WHEEL +4 -0
  920. django_cfg/apps/accounts/README.md +0 -333
  921. django_cfg/apps/accounts/__models.py +0 -286
  922. django_cfg/apps/accounts/admin/__init__.py +0 -45
  923. django_cfg/apps/accounts/admin/filters.py +0 -175
  924. django_cfg/apps/accounts/admin/inlines.py +0 -177
  925. django_cfg/apps/accounts/admin/resources.py +0 -376
  926. django_cfg/apps/accounts/admin/twilio_admin.py +0 -270
  927. django_cfg/apps/accounts/admin/user_admin.py +0 -308
  928. django_cfg/apps/accounts/apps.py +0 -19
  929. django_cfg/apps/accounts/management/commands/otp_test.py +0 -203
  930. django_cfg/apps/accounts/managers/user_manager.py +0 -299
  931. django_cfg/apps/accounts/migrations/0001_initial.py +0 -119
  932. django_cfg/apps/accounts/models/__init__.py +0 -67
  933. django_cfg/apps/accounts/models/choices.py +0 -32
  934. django_cfg/apps/accounts/models/integrations.py +0 -75
  935. django_cfg/apps/accounts/models/user.py +0 -81
  936. django_cfg/apps/accounts/serializers/__init__.py +0 -20
  937. django_cfg/apps/accounts/serializers/otp.py +0 -134
  938. django_cfg/apps/accounts/serializers/profile.py +0 -169
  939. django_cfg/apps/accounts/serializers/webhook.py +0 -94
  940. django_cfg/apps/accounts/services/otp_service.py +0 -205
  941. django_cfg/apps/accounts/signals.py +0 -147
  942. django_cfg/apps/accounts/urls.py +0 -49
  943. django_cfg/apps/accounts/utils/notifications.py +0 -381
  944. django_cfg/apps/accounts/views/otp.py +0 -168
  945. django_cfg/apps/accounts/views/profile.py +0 -165
  946. django_cfg/apps/accounts/views/webhook.py +0 -263
  947. django_cfg/apps/agents/README.md +0 -129
  948. django_cfg/apps/agents/__init__.py +0 -68
  949. django_cfg/apps/agents/admin/__init__.py +0 -29
  950. django_cfg/apps/agents/admin/execution_admin.py +0 -692
  951. django_cfg/apps/agents/admin/registry_admin.py +0 -462
  952. django_cfg/apps/agents/admin/toolsets_admin.py +0 -633
  953. django_cfg/apps/agents/apps.py +0 -29
  954. django_cfg/apps/agents/core/__init__.py +0 -20
  955. django_cfg/apps/agents/core/dependencies.py +0 -155
  956. django_cfg/apps/agents/core/django_agent.py +0 -223
  957. django_cfg/apps/agents/core/exceptions.py +0 -80
  958. django_cfg/apps/agents/core/models.py +0 -107
  959. django_cfg/apps/agents/core/orchestrator.py +0 -406
  960. django_cfg/apps/agents/examples/__init__.py +0 -3
  961. django_cfg/apps/agents/examples/simple_example.py +0 -166
  962. django_cfg/apps/agents/integration/__init__.py +0 -14
  963. django_cfg/apps/agents/integration/middleware.py +0 -81
  964. django_cfg/apps/agents/integration/registry.py +0 -348
  965. django_cfg/apps/agents/integration/signals.py +0 -50
  966. django_cfg/apps/agents/management/__init__.py +0 -3
  967. django_cfg/apps/agents/management/commands/__init__.py +0 -3
  968. django_cfg/apps/agents/management/commands/create_agent.py +0 -366
  969. django_cfg/apps/agents/management/commands/orchestrator_status.py +0 -192
  970. django_cfg/apps/agents/managers/__init__.py +0 -28
  971. django_cfg/apps/agents/managers/execution.py +0 -237
  972. django_cfg/apps/agents/managers/registry.py +0 -255
  973. django_cfg/apps/agents/managers/toolsets.py +0 -497
  974. django_cfg/apps/agents/migrations/0001_initial.py +0 -287
  975. django_cfg/apps/agents/migrations/__init__.py +0 -5
  976. django_cfg/apps/agents/models/__init__.py +0 -15
  977. django_cfg/apps/agents/models/execution.py +0 -216
  978. django_cfg/apps/agents/models/registry.py +0 -221
  979. django_cfg/apps/agents/models/toolsets.py +0 -306
  980. django_cfg/apps/agents/patterns/__init__.py +0 -24
  981. django_cfg/apps/agents/patterns/content_agents.py +0 -235
  982. django_cfg/apps/agents/toolsets/__init__.py +0 -15
  983. django_cfg/apps/agents/toolsets/cache_toolset.py +0 -286
  984. django_cfg/apps/agents/toolsets/django_toolset.py +0 -221
  985. django_cfg/apps/agents/toolsets/file_toolset.py +0 -325
  986. django_cfg/apps/agents/toolsets/orm_toolset.py +0 -320
  987. django_cfg/apps/agents/urls.py +0 -47
  988. django_cfg/apps/agents/urls_admin.py +0 -12
  989. django_cfg/apps/api/endpoints/drf_views.py +0 -55
  990. django_cfg/apps/ipc/README.md +0 -346
  991. django_cfg/apps/ipc/__init__.py +0 -51
  992. django_cfg/apps/ipc/apps.py +0 -28
  993. django_cfg/apps/ipc/serializers/__init__.py +0 -19
  994. django_cfg/apps/ipc/serializers/serializers.py +0 -229
  995. django_cfg/apps/ipc/services/__init__.py +0 -7
  996. django_cfg/apps/ipc/services/client/__init__.py +0 -23
  997. django_cfg/apps/ipc/services/client/client.py +0 -542
  998. django_cfg/apps/ipc/services/client/config.py +0 -214
  999. django_cfg/apps/ipc/services/client/exceptions.py +0 -201
  1000. django_cfg/apps/ipc/services/monitor.py +0 -464
  1001. django_cfg/apps/ipc/static/django_cfg_ipc/js/dashboard.mjs +0 -441
  1002. django_cfg/apps/ipc/templates/django_cfg_ipc/base.html +0 -71
  1003. django_cfg/apps/ipc/templates/django_cfg_ipc/dashboard.html +0 -202
  1004. django_cfg/apps/ipc/urls.py +0 -21
  1005. django_cfg/apps/ipc/urls_admin.py +0 -20
  1006. django_cfg/apps/ipc/views/__init__.py +0 -8
  1007. django_cfg/apps/ipc/views/dashboard.py +0 -15
  1008. django_cfg/apps/ipc/views/viewsets.py +0 -245
  1009. django_cfg/apps/knowbase/README.md +0 -150
  1010. django_cfg/apps/knowbase/__init__.py +0 -27
  1011. django_cfg/apps/knowbase/admin/__init__.py +0 -37
  1012. django_cfg/apps/knowbase/admin/archive_admin.py +0 -767
  1013. django_cfg/apps/knowbase/admin/chat_admin.py +0 -604
  1014. django_cfg/apps/knowbase/admin/document_admin.py +0 -699
  1015. django_cfg/apps/knowbase/admin/external_data_admin.py +0 -543
  1016. django_cfg/apps/knowbase/apps.py +0 -81
  1017. django_cfg/apps/knowbase/config/README.md +0 -176
  1018. django_cfg/apps/knowbase/config/__init__.py +0 -52
  1019. django_cfg/apps/knowbase/config/constance_fields.py +0 -188
  1020. django_cfg/apps/knowbase/config/constance_settings.py +0 -201
  1021. django_cfg/apps/knowbase/config/settings.py +0 -468
  1022. django_cfg/apps/knowbase/examples/__init__.py +0 -3
  1023. django_cfg/apps/knowbase/examples/external_data_usage.py +0 -194
  1024. django_cfg/apps/knowbase/management/commands/knowbase_stats.py +0 -159
  1025. django_cfg/apps/knowbase/management/commands/setup_knowbase.py +0 -57
  1026. django_cfg/apps/knowbase/managers/__init__.py +0 -22
  1027. django_cfg/apps/knowbase/managers/archive.py +0 -427
  1028. django_cfg/apps/knowbase/managers/base.py +0 -32
  1029. django_cfg/apps/knowbase/managers/chat.py +0 -142
  1030. django_cfg/apps/knowbase/managers/document.py +0 -203
  1031. django_cfg/apps/knowbase/managers/external_data.py +0 -472
  1032. django_cfg/apps/knowbase/migrations/0001_initial.py +0 -428
  1033. django_cfg/apps/knowbase/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +0 -435
  1034. django_cfg/apps/knowbase/migrations/0003_alter_documentarchive_archive_type.py +0 -29
  1035. django_cfg/apps/knowbase/migrations/__init__.py +0 -5
  1036. django_cfg/apps/knowbase/mixins/__init__.py +0 -32
  1037. django_cfg/apps/knowbase/mixins/config/__init__.py +0 -14
  1038. django_cfg/apps/knowbase/mixins/config/defaults.py +0 -75
  1039. django_cfg/apps/knowbase/mixins/config/meta_config.py +0 -120
  1040. django_cfg/apps/knowbase/mixins/config.py +0 -109
  1041. django_cfg/apps/knowbase/mixins/creator.py +0 -81
  1042. django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +0 -200
  1043. django_cfg/apps/knowbase/mixins/external_data_mixin.py +0 -516
  1044. django_cfg/apps/knowbase/mixins/generators/__init__.py +0 -16
  1045. django_cfg/apps/knowbase/mixins/generators/content_generator.py +0 -218
  1046. django_cfg/apps/knowbase/mixins/generators/field_analyzer.py +0 -76
  1047. django_cfg/apps/knowbase/mixins/generators/metadata_generator.py +0 -124
  1048. django_cfg/apps/knowbase/mixins/service.py +0 -364
  1049. django_cfg/apps/knowbase/models/__init__.py +0 -41
  1050. django_cfg/apps/knowbase/models/archive.py +0 -599
  1051. django_cfg/apps/knowbase/models/base.py +0 -57
  1052. django_cfg/apps/knowbase/models/chat.py +0 -158
  1053. django_cfg/apps/knowbase/models/document.py +0 -269
  1054. django_cfg/apps/knowbase/models/external_data.py +0 -370
  1055. django_cfg/apps/knowbase/serializers/__init__.py +0 -68
  1056. django_cfg/apps/knowbase/serializers/archive_serializers.py +0 -394
  1057. django_cfg/apps/knowbase/serializers/chat_serializers.py +0 -138
  1058. django_cfg/apps/knowbase/serializers/document_serializers.py +0 -95
  1059. django_cfg/apps/knowbase/serializers/external_data_serializers.py +0 -256
  1060. django_cfg/apps/knowbase/serializers/public_serializers.py +0 -75
  1061. django_cfg/apps/knowbase/services/__init__.py +0 -40
  1062. django_cfg/apps/knowbase/services/archive/__init__.py +0 -43
  1063. django_cfg/apps/knowbase/services/archive/analyzers/__init__.py +0 -17
  1064. django_cfg/apps/knowbase/services/archive/analyzers/complexity_analyzer.py +0 -33
  1065. django_cfg/apps/knowbase/services/archive/analyzers/purpose_detector.py +0 -36
  1066. django_cfg/apps/knowbase/services/archive/analyzers/quality_analyzer.py +0 -39
  1067. django_cfg/apps/knowbase/services/archive/analyzers/tag_generator.py +0 -103
  1068. django_cfg/apps/knowbase/services/archive/archive_service.py +0 -538
  1069. django_cfg/apps/knowbase/services/archive/chunking/__init__.py +0 -19
  1070. django_cfg/apps/knowbase/services/archive/chunking/base.py +0 -82
  1071. django_cfg/apps/knowbase/services/archive/chunking/json_chunker.py +0 -63
  1072. django_cfg/apps/knowbase/services/archive/chunking/markdown_chunker.py +0 -108
  1073. django_cfg/apps/knowbase/services/archive/chunking/python_chunker.py +0 -249
  1074. django_cfg/apps/knowbase/services/archive/chunking/text_chunker.py +0 -71
  1075. django_cfg/apps/knowbase/services/archive/chunking_service.py +0 -168
  1076. django_cfg/apps/knowbase/services/archive/context/__init__.py +0 -14
  1077. django_cfg/apps/knowbase/services/archive/context/builders.py +0 -221
  1078. django_cfg/apps/knowbase/services/archive/context/models.py +0 -39
  1079. django_cfg/apps/knowbase/services/archive/exceptions.py +0 -52
  1080. django_cfg/apps/knowbase/services/archive/extraction_service.py +0 -509
  1081. django_cfg/apps/knowbase/services/archive/vectorization_service.py +0 -365
  1082. django_cfg/apps/knowbase/services/base.py +0 -55
  1083. django_cfg/apps/knowbase/services/chat_service.py +0 -240
  1084. django_cfg/apps/knowbase/services/document_service.py +0 -145
  1085. django_cfg/apps/knowbase/services/embedding/__init__.py +0 -43
  1086. django_cfg/apps/knowbase/services/embedding/async_processor.py +0 -242
  1087. django_cfg/apps/knowbase/services/embedding/batch_processor.py +0 -253
  1088. django_cfg/apps/knowbase/services/embedding/batch_result.py +0 -62
  1089. django_cfg/apps/knowbase/services/embedding/models.py +0 -234
  1090. django_cfg/apps/knowbase/services/embedding/processors.py +0 -152
  1091. django_cfg/apps/knowbase/services/embedding/utils.py +0 -176
  1092. django_cfg/apps/knowbase/services/prompt_builder.py +0 -192
  1093. django_cfg/apps/knowbase/services/search_service.py +0 -374
  1094. django_cfg/apps/knowbase/signals/__init__.py +0 -18
  1095. django_cfg/apps/knowbase/signals/archive_signals.py +0 -212
  1096. django_cfg/apps/knowbase/signals/chat_signals.py +0 -38
  1097. django_cfg/apps/knowbase/signals/document_signals.py +0 -143
  1098. django_cfg/apps/knowbase/signals/external_data_signals.py +0 -157
  1099. django_cfg/apps/knowbase/tasks/__init__.py +0 -38
  1100. django_cfg/apps/knowbase/tasks/archive_tasks.py +0 -316
  1101. django_cfg/apps/knowbase/tasks/document_processing.py +0 -354
  1102. django_cfg/apps/knowbase/tasks/external_data_tasks.py +0 -343
  1103. django_cfg/apps/knowbase/tasks/maintenance.py +0 -197
  1104. django_cfg/apps/knowbase/urls.py +0 -23
  1105. django_cfg/apps/knowbase/urls_admin.py +0 -26
  1106. django_cfg/apps/knowbase/urls_system.py +0 -25
  1107. django_cfg/apps/knowbase/utils/__init__.py +0 -12
  1108. django_cfg/apps/knowbase/utils/chunk_settings.py +0 -263
  1109. django_cfg/apps/knowbase/utils/text_processing.py +0 -376
  1110. django_cfg/apps/knowbase/utils/validation.py +0 -99
  1111. django_cfg/apps/knowbase/views/__init__.py +0 -28
  1112. django_cfg/apps/knowbase/views/archive_views.py +0 -472
  1113. django_cfg/apps/knowbase/views/base.py +0 -46
  1114. django_cfg/apps/knowbase/views/chat_views.py +0 -197
  1115. django_cfg/apps/knowbase/views/document_views.py +0 -183
  1116. django_cfg/apps/knowbase/views/public_views.py +0 -129
  1117. django_cfg/apps/leads/README.md +0 -113
  1118. django_cfg/apps/leads/admin/__init__.py +0 -11
  1119. django_cfg/apps/leads/admin/actions.py +0 -29
  1120. django_cfg/apps/leads/admin/leads_admin.py +0 -255
  1121. django_cfg/apps/leads/admin/resources.py +0 -119
  1122. django_cfg/apps/leads/admin.py +0 -68
  1123. django_cfg/apps/leads/apps.py +0 -16
  1124. django_cfg/apps/leads/migrations/0001_initial.py +0 -127
  1125. django_cfg/apps/leads/models.py +0 -86
  1126. django_cfg/apps/leads/serializers.py +0 -48
  1127. django_cfg/apps/leads/signals.py +0 -67
  1128. django_cfg/apps/leads/tests.py +0 -271
  1129. django_cfg/apps/leads/urls.py +0 -19
  1130. django_cfg/apps/leads/urls_admin.py +0 -12
  1131. django_cfg/apps/leads/views.py +0 -91
  1132. django_cfg/apps/maintenance/__init__.py +0 -56
  1133. django_cfg/apps/maintenance/admin/__init__.py +0 -17
  1134. django_cfg/apps/maintenance/admin/actions.py +0 -159
  1135. django_cfg/apps/maintenance/admin/api_key_admin.py +0 -211
  1136. django_cfg/apps/maintenance/admin/log_admin.py +0 -208
  1137. django_cfg/apps/maintenance/admin/scheduled_admin.py +0 -226
  1138. django_cfg/apps/maintenance/admin/site_admin.py +0 -286
  1139. django_cfg/apps/maintenance/apps.py +0 -18
  1140. django_cfg/apps/maintenance/management/commands/maintenance.py +0 -262
  1141. django_cfg/apps/maintenance/management/commands/process_scheduled_maintenance.py +0 -241
  1142. django_cfg/apps/maintenance/management/commands/sync_cloudflare.py +0 -209
  1143. django_cfg/apps/maintenance/managers/__init__.py +0 -15
  1144. django_cfg/apps/maintenance/managers/cloudflare_site_manager.py +0 -193
  1145. django_cfg/apps/maintenance/managers/maintenance_log_manager.py +0 -152
  1146. django_cfg/apps/maintenance/migrations/0001_initial.py +0 -380
  1147. django_cfg/apps/maintenance/migrations/0002_cloudflaresite_maintenance_url.py +0 -21
  1148. django_cfg/apps/maintenance/migrations/0003_cloudflaresite_include_subdomains_and_more.py +0 -27
  1149. django_cfg/apps/maintenance/models/__init__.py +0 -29
  1150. django_cfg/apps/maintenance/models/cloudflare_api_key.py +0 -109
  1151. django_cfg/apps/maintenance/models/cloudflare_site.py +0 -168
  1152. django_cfg/apps/maintenance/models/maintenance_log.py +0 -132
  1153. django_cfg/apps/maintenance/models/scheduled_maintenance.py +0 -308
  1154. django_cfg/apps/maintenance/services/__init__.py +0 -42
  1155. django_cfg/apps/maintenance/services/bulk_operations_service.py +0 -400
  1156. django_cfg/apps/maintenance/services/maintenance_service.py +0 -320
  1157. django_cfg/apps/maintenance/services/scheduled_maintenance_service.py +0 -381
  1158. django_cfg/apps/maintenance/services/site_sync_service.py +0 -434
  1159. django_cfg/apps/maintenance/urls.py +0 -12
  1160. django_cfg/apps/maintenance/urls_admin.py +0 -12
  1161. django_cfg/apps/maintenance/utils/__init__.py +0 -12
  1162. django_cfg/apps/maintenance/utils/retry_utils.py +0 -109
  1163. django_cfg/apps/newsletter/README.md +0 -92
  1164. django_cfg/apps/newsletter/admin/__init__.py +0 -35
  1165. django_cfg/apps/newsletter/admin/filters.py +0 -124
  1166. django_cfg/apps/newsletter/admin/newsletter_admin.py +0 -814
  1167. django_cfg/apps/newsletter/admin/resources.py +0 -241
  1168. django_cfg/apps/newsletter/admin.py +0 -241
  1169. django_cfg/apps/newsletter/admin_filters.py +0 -124
  1170. django_cfg/apps/newsletter/apps.py +0 -22
  1171. django_cfg/apps/newsletter/management/commands/test_newsletter.py +0 -139
  1172. django_cfg/apps/newsletter/managers/README.md +0 -120
  1173. django_cfg/apps/newsletter/managers/__init__.py +0 -1
  1174. django_cfg/apps/newsletter/migrations/0001_initial.py +0 -100
  1175. django_cfg/apps/newsletter/migrations/__init__.py +0 -0
  1176. django_cfg/apps/newsletter/models.py +0 -260
  1177. django_cfg/apps/newsletter/serializers.py +0 -154
  1178. django_cfg/apps/newsletter/services/email_service.py +0 -392
  1179. django_cfg/apps/newsletter/signals.py +0 -76
  1180. django_cfg/apps/newsletter/urls.py +0 -41
  1181. django_cfg/apps/newsletter/urls_admin.py +0 -12
  1182. django_cfg/apps/newsletter/utils/__init__.py +0 -1
  1183. django_cfg/apps/newsletter/views/__init__.py +0 -42
  1184. django_cfg/apps/newsletter/views/campaigns.py +0 -138
  1185. django_cfg/apps/newsletter/views/emails.py +0 -129
  1186. django_cfg/apps/newsletter/views/newsletters.py +0 -44
  1187. django_cfg/apps/newsletter/views/subscriptions.py +0 -146
  1188. django_cfg/apps/newsletter/views/tracking.py +0 -75
  1189. django_cfg/apps/payments/CONFIGURATION.md +0 -280
  1190. django_cfg/apps/payments/__init__.py +0 -14
  1191. django_cfg/apps/payments/admin/__init__.py +0 -35
  1192. django_cfg/apps/payments/admin/actions.py +0 -17
  1193. django_cfg/apps/payments/admin/balance_actions.py +0 -18
  1194. django_cfg/apps/payments/admin/balance_admin.py +0 -385
  1195. django_cfg/apps/payments/admin/currency_admin.py +0 -130
  1196. django_cfg/apps/payments/admin/filters.py +0 -196
  1197. django_cfg/apps/payments/admin/payment_actions.py +0 -65
  1198. django_cfg/apps/payments/admin/payment_admin.py +0 -313
  1199. django_cfg/apps/payments/admin/withdrawal_actions.py +0 -61
  1200. django_cfg/apps/payments/admin/withdrawal_admin.py +0 -355
  1201. django_cfg/apps/payments/api/__init__.py +0 -5
  1202. django_cfg/apps/payments/api/serializers.py +0 -223
  1203. django_cfg/apps/payments/api/urls.py +0 -38
  1204. django_cfg/apps/payments/api/views.py +0 -397
  1205. django_cfg/apps/payments/apps.py +0 -23
  1206. django_cfg/apps/payments/config.py +0 -104
  1207. django_cfg/apps/payments/management/README.md +0 -375
  1208. django_cfg/apps/payments/management/__init__.py +0 -0
  1209. django_cfg/apps/payments/management/commands/__init__.py +0 -0
  1210. django_cfg/apps/payments/management/commands/check_payment_status.py +0 -290
  1211. django_cfg/apps/payments/management/commands/create_payment.py +0 -346
  1212. django_cfg/apps/payments/management/commands/sync_currencies.py +0 -254
  1213. django_cfg/apps/payments/migrations/0001_initial.py +0 -159
  1214. django_cfg/apps/payments/migrations/__init__.py +0 -0
  1215. django_cfg/apps/payments/models/__init__.py +0 -23
  1216. django_cfg/apps/payments/models/balance.py +0 -255
  1217. django_cfg/apps/payments/models/base.py +0 -84
  1218. django_cfg/apps/payments/models/currency.py +0 -123
  1219. django_cfg/apps/payments/models/managers/__init__.py +0 -25
  1220. django_cfg/apps/payments/models/managers/balance_managers.py +0 -421
  1221. django_cfg/apps/payments/models/managers/payment_managers.py +0 -412
  1222. django_cfg/apps/payments/models/payment.py +0 -362
  1223. django_cfg/apps/payments/models/withdrawal.py +0 -331
  1224. django_cfg/apps/payments/services/__init__.py +0 -41
  1225. django_cfg/apps/payments/services/balance_service.py +0 -214
  1226. django_cfg/apps/payments/services/payment_service.py +0 -514
  1227. django_cfg/apps/payments/services/providers/__init__.py +0 -17
  1228. django_cfg/apps/payments/services/providers/models.py +0 -86
  1229. django_cfg/apps/payments/services/providers/nowpayments/__init__.py +0 -16
  1230. django_cfg/apps/payments/services/providers/nowpayments/config.py +0 -135
  1231. django_cfg/apps/payments/services/providers/nowpayments/parser.py +0 -206
  1232. django_cfg/apps/payments/services/providers/nowpayments/provider.py +0 -347
  1233. django_cfg/apps/payments/urls.py +0 -14
  1234. django_cfg/apps/support/__init__.py +0 -0
  1235. django_cfg/apps/support/admin/__init__.py +0 -19
  1236. django_cfg/apps/support/admin/actions.py +0 -35
  1237. django_cfg/apps/support/admin/filters.py +0 -71
  1238. django_cfg/apps/support/admin/resources.py +0 -183
  1239. django_cfg/apps/support/admin/support_admin.py +0 -396
  1240. django_cfg/apps/support/admin.py +0 -197
  1241. django_cfg/apps/support/admin_filters.py +0 -71
  1242. django_cfg/apps/support/apps.py +0 -11
  1243. django_cfg/apps/support/managers/message_manager.py +0 -34
  1244. django_cfg/apps/support/managers/ticket_manager.py +0 -68
  1245. django_cfg/apps/support/migrations/0001_initial.py +0 -94
  1246. django_cfg/apps/support/migrations/0002_alter_message_ticket.py +0 -23
  1247. django_cfg/apps/support/migrations/__init__.py +0 -0
  1248. django_cfg/apps/support/models.py +0 -68
  1249. django_cfg/apps/support/serializers.py +0 -43
  1250. django_cfg/apps/support/signals.py +0 -86
  1251. django_cfg/apps/support/templates/support/chat/access_denied.html +0 -21
  1252. django_cfg/apps/support/templates/support/chat/ticket_chat.html +0 -210
  1253. django_cfg/apps/support/urls.py +0 -24
  1254. django_cfg/apps/support/urls_admin.py +0 -12
  1255. django_cfg/apps/support/utils/__init__.py +0 -0
  1256. django_cfg/apps/support/utils/support_email_service.py +0 -124
  1257. django_cfg/apps/support/views/__init__.py +0 -20
  1258. django_cfg/apps/support/views/admin.py +0 -50
  1259. django_cfg/apps/support/views/api.py +0 -169
  1260. django_cfg/apps/support/views/chat.py +0 -108
  1261. django_cfg/apps/tasks/__init__.py +0 -5
  1262. django_cfg/apps/tasks/admin/__init__.py +0 -11
  1263. django_cfg/apps/tasks/admin/actions.py +0 -29
  1264. django_cfg/apps/tasks/admin/tasks_admin.py +0 -154
  1265. django_cfg/apps/tasks/apps.py +0 -17
  1266. django_cfg/apps/tasks/serializers.py +0 -82
  1267. django_cfg/apps/tasks/static/tasks/css/dashboard.css +0 -120
  1268. django_cfg/apps/tasks/static/tasks/js/api.js +0 -100
  1269. django_cfg/apps/tasks/static/tasks/js/components/DataManager.js +0 -24
  1270. django_cfg/apps/tasks/static/tasks/js/components/TabManager.js +0 -85
  1271. django_cfg/apps/tasks/static/tasks/js/components/TaskRenderer.js +0 -216
  1272. django_cfg/apps/tasks/static/tasks/js/dashboard/main.mjs +0 -269
  1273. django_cfg/apps/tasks/static/tasks/js/dashboard/overview.mjs +0 -125
  1274. django_cfg/apps/tasks/static/tasks/js/dashboard/queues.mjs +0 -122
  1275. django_cfg/apps/tasks/static/tasks/js/dashboard/tasks.mjs +0 -352
  1276. django_cfg/apps/tasks/static/tasks/js/dashboard/workers.mjs +0 -171
  1277. django_cfg/apps/tasks/tasks/__init__.py +0 -10
  1278. django_cfg/apps/tasks/tasks/demo_tasks.py +0 -134
  1279. django_cfg/apps/tasks/templates/tasks/components/management_actions.html +0 -50
  1280. django_cfg/apps/tasks/templates/tasks/components/overview_content.html +0 -69
  1281. django_cfg/apps/tasks/templates/tasks/components/queues_content.html +0 -19
  1282. django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +0 -33
  1283. django_cfg/apps/tasks/templates/tasks/components/tasks_content.html +0 -51
  1284. django_cfg/apps/tasks/templates/tasks/components/tasks_mjs_integration.html +0 -269
  1285. django_cfg/apps/tasks/templates/tasks/components/workers_content.html +0 -30
  1286. django_cfg/apps/tasks/templates/tasks/layout/base.html +0 -22
  1287. django_cfg/apps/tasks/templates/tasks/pages/dashboard-improved.html +0 -168
  1288. django_cfg/apps/tasks/templates/tasks/pages/dashboard.html +0 -101
  1289. django_cfg/apps/tasks/templates/tasks/partials/task_row_template.html +0 -40
  1290. django_cfg/apps/tasks/templates/tasks/widgets/task_filters.html +0 -37
  1291. django_cfg/apps/tasks/templates/tasks/widgets/task_footer.html +0 -41
  1292. django_cfg/apps/tasks/templates/tasks/widgets/task_table.html +0 -50
  1293. django_cfg/apps/tasks/urls.py +0 -22
  1294. django_cfg/apps/tasks/urls_admin.py +0 -15
  1295. django_cfg/apps/tasks/utils/__init__.py +0 -1
  1296. django_cfg/apps/tasks/utils/simulator.py +0 -353
  1297. django_cfg/apps/tasks/views/__init__.py +0 -16
  1298. django_cfg/apps/tasks/views/api.py +0 -571
  1299. django_cfg/apps/tasks/views/dashboard.py +0 -89
  1300. django_cfg/core/generation/integration_generators/tasks.py +0 -92
  1301. django_cfg/management/commands/rundramatiq.py +0 -24
  1302. django_cfg/management/commands/rundramatiq_simulator.py +0 -22
  1303. django_cfg/management/commands/task_clear.py +0 -25
  1304. django_cfg/management/commands/task_status.py +0 -24
  1305. django_cfg/management/commands/test_twilio.py +0 -24
  1306. django_cfg/models/django/revolution_legacy.py +0 -223
  1307. django_cfg/models/tasks/__init__.py +0 -51
  1308. django_cfg/models/tasks/backends.py +0 -251
  1309. django_cfg/models/tasks/config.py +0 -316
  1310. django_cfg/models/tasks/utils.py +0 -174
  1311. django_cfg/modules/django_admin/base/pydantic_admin.py +0 -274
  1312. django_cfg/modules/django_admin/config/field_config.py +0 -197
  1313. django_cfg/modules/django_admin/utils/badges.py +0 -171
  1314. django_cfg/modules/django_admin/utils/displays.py +0 -203
  1315. django_cfg/modules/django_client/core/archive/manager.py +0 -134
  1316. django_cfg/modules/django_client/system/__init__.py +0 -24
  1317. django_cfg/modules/django_client/system/base_generator.py +0 -123
  1318. django_cfg/modules/django_client/system/generate_mjs_clients.py +0 -174
  1319. django_cfg/modules/django_client/system/mjs_generator.py +0 -219
  1320. django_cfg/modules/django_client/system/schema_parser.py +0 -195
  1321. django_cfg/modules/django_client/system/templates/api_client.js.j2 +0 -87
  1322. django_cfg/modules/django_client/system/templates/app_index.js.j2 +0 -13
  1323. django_cfg/modules/django_client/system/templates/base_client.js.j2 +0 -166
  1324. django_cfg/modules/django_client/system/templates/main_index.js.j2 +0 -80
  1325. django_cfg/modules/django_client/system/templates/types.js.j2 +0 -24
  1326. django_cfg/modules/django_currency/README.md +0 -169
  1327. django_cfg/modules/django_currency/clients/__init__.py +0 -11
  1328. django_cfg/modules/django_currency/clients/coinpaprika_client.py +0 -289
  1329. django_cfg/modules/django_currency/clients/hybrid_client.py +0 -588
  1330. django_cfg/modules/django_currency/core/__init__.py +0 -30
  1331. django_cfg/modules/django_currency/core/converter.py +0 -165
  1332. django_cfg/modules/django_currency/core/exceptions.py +0 -28
  1333. django_cfg/modules/django_currency/core/models.py +0 -166
  1334. django_cfg/modules/django_currency/database/__init__.py +0 -25
  1335. django_cfg/modules/django_currency/database/database_loader.py +0 -438
  1336. django_cfg/modules/django_currency/examples/__init__.py +0 -3
  1337. django_cfg/modules/django_currency/examples/example_database_usage.py +0 -145
  1338. django_cfg/modules/django_currency/utils/__init__.py +0 -9
  1339. django_cfg/modules/django_currency/utils/cache.py +0 -91
  1340. django_cfg/modules/django_dashboard/__init__.py +0 -23
  1341. django_cfg/modules/django_dashboard/components.py +0 -312
  1342. django_cfg/modules/django_dashboard/debug.py +0 -174
  1343. django_cfg/modules/django_dashboard/management/__init__.py +0 -0
  1344. django_cfg/modules/django_dashboard/management/commands/__init__.py +0 -0
  1345. django_cfg/modules/django_dashboard/management/commands/debug_dashboard.py +0 -109
  1346. django_cfg/modules/django_dashboard/sections/__init__.py +0 -1
  1347. django_cfg/modules/django_dashboard/sections/base.py +0 -129
  1348. django_cfg/modules/django_dashboard/sections/commands.py +0 -33
  1349. django_cfg/modules/django_dashboard/sections/documentation.py +0 -393
  1350. django_cfg/modules/django_dashboard/sections/overview.py +0 -398
  1351. django_cfg/modules/django_dashboard/sections/stats.py +0 -48
  1352. django_cfg/modules/django_dashboard/sections/system.py +0 -74
  1353. django_cfg/modules/django_logging/FIXES_SUMMARY.md +0 -276
  1354. django_cfg/modules/django_logging/LOGGING_GUIDE.md +0 -504
  1355. django_cfg/modules/django_tasks/__init__.py +0 -29
  1356. django_cfg/modules/django_tasks/dramatiq_setup.py +0 -20
  1357. django_cfg/modules/django_tasks/factory.py +0 -127
  1358. django_cfg/modules/django_tasks/management/__init__.py +0 -0
  1359. django_cfg/modules/django_tasks/management/commands/__init__.py +0 -0
  1360. django_cfg/modules/django_tasks/management/commands/rundramatiq.py +0 -253
  1361. django_cfg/modules/django_tasks/management/commands/rundramatiq_simulator.py +0 -436
  1362. django_cfg/modules/django_tasks/management/commands/task_clear.py +0 -226
  1363. django_cfg/modules/django_tasks/management/commands/task_status.py +0 -257
  1364. django_cfg/modules/django_tasks/service.py +0 -281
  1365. django_cfg/modules/django_tasks/settings.py +0 -107
  1366. django_cfg/modules/django_twilio/README.md +0 -501
  1367. django_cfg/modules/django_twilio/__init__.py +0 -92
  1368. django_cfg/modules/django_twilio/_imports.py +0 -30
  1369. django_cfg/modules/django_twilio/base.py +0 -196
  1370. django_cfg/modules/django_twilio/email_otp.py +0 -228
  1371. django_cfg/modules/django_twilio/exceptions.py +0 -337
  1372. django_cfg/modules/django_twilio/management/__init__.py +0 -0
  1373. django_cfg/modules/django_twilio/management/commands/__init__.py +0 -0
  1374. django_cfg/modules/django_twilio/management/commands/test_twilio.py +0 -111
  1375. django_cfg/modules/django_twilio/models.py +0 -409
  1376. django_cfg/modules/django_twilio/sendgrid_service.py +0 -502
  1377. django_cfg/modules/django_twilio/simple_service.py +0 -290
  1378. django_cfg/modules/django_twilio/sms.py +0 -95
  1379. django_cfg/modules/django_twilio/templates/guide.md +0 -266
  1380. django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html +0 -213
  1381. django_cfg/modules/django_twilio/templates/sendgrid_test_data.json +0 -14
  1382. django_cfg/modules/django_twilio/twilio_service.py +0 -544
  1383. django_cfg/modules/django_twilio/unified.py +0 -311
  1384. django_cfg/modules/django_twilio/utils.py +0 -189
  1385. django_cfg/modules/django_twilio/whatsapp.py +0 -138
  1386. django_cfg/modules/django_unfold/callbacks/__init__.py +0 -9
  1387. django_cfg/modules/django_unfold/callbacks/actions.py +0 -51
  1388. django_cfg/modules/django_unfold/callbacks/apizones.py +0 -122
  1389. django_cfg/modules/django_unfold/callbacks/base.py +0 -290
  1390. django_cfg/modules/django_unfold/callbacks/charts.py +0 -223
  1391. django_cfg/modules/django_unfold/callbacks/commands.py +0 -40
  1392. django_cfg/modules/django_unfold/callbacks/main.py +0 -294
  1393. django_cfg/modules/django_unfold/callbacks/statistics.py +0 -240
  1394. django_cfg/modules/django_unfold/callbacks/system.py +0 -180
  1395. django_cfg/modules/django_unfold/callbacks/users.py +0 -65
  1396. django_cfg/modules/django_unfold/dashboard.py +0 -338
  1397. django_cfg/modules/django_unfold/models/dashboard.py +0 -207
  1398. django_cfg/modules/django_unfold/models/tabs.py +0 -26
  1399. django_cfg/modules/django_unfold/models.py +0 -98
  1400. django_cfg/modules/django_unfold/templates/unfold/helpers/app_list.html +0 -102
  1401. django_cfg/static/admin/js/commands.js +0 -171
  1402. django_cfg/static/admin/js/dashboard.js +0 -126
  1403. django_cfg/static/js/api/accounts/client.mjs +0 -69
  1404. django_cfg/static/js/api/accounts/index.mjs +0 -13
  1405. django_cfg/static/js/api/base.mjs +0 -166
  1406. django_cfg/static/js/api/index.mjs +0 -100
  1407. django_cfg/static/js/api/ipc/client.mjs +0 -74
  1408. django_cfg/static/js/api/ipc/index.mjs +0 -13
  1409. django_cfg/static/js/api/leads/client.mjs +0 -71
  1410. django_cfg/static/js/api/leads/index.mjs +0 -13
  1411. django_cfg/static/js/api/newsletter/client.mjs +0 -109
  1412. django_cfg/static/js/api/newsletter/index.mjs +0 -13
  1413. django_cfg/static/js/api/payments/client.mjs +0 -1264
  1414. django_cfg/static/js/api/payments/index.mjs +0 -13
  1415. django_cfg/static/js/api/support/client.mjs +0 -84
  1416. django_cfg/static/js/api/support/index.mjs +0 -13
  1417. django_cfg/static/js/api/tasks/client.mjs +0 -74
  1418. django_cfg/static/js/api/tasks/index.mjs +0 -13
  1419. django_cfg/static/js/api/types.mjs +0 -729
  1420. django_cfg/static/js/api-loader.mjs +0 -169
  1421. django_cfg/templates/admin/components/action_grid.html +0 -49
  1422. django_cfg/templates/admin/components/card.html +0 -50
  1423. django_cfg/templates/admin/components/data_table.html +0 -67
  1424. django_cfg/templates/admin/components/management_commands.js +0 -375
  1425. django_cfg/templates/admin/components/metric_card.html +0 -39
  1426. django_cfg/templates/admin/components/modal.html +0 -58
  1427. django_cfg/templates/admin/components/progress_bar.html +0 -20
  1428. django_cfg/templates/admin/components/section_header.html +0 -26
  1429. django_cfg/templates/admin/components/stat_item.html +0 -32
  1430. django_cfg/templates/admin/components/stats_grid.html +0 -72
  1431. django_cfg/templates/admin/components/status_badge.html +0 -28
  1432. django_cfg/templates/admin/components/user_avatar.html +0 -27
  1433. django_cfg/templates/admin/constance/change_list.html +0 -113
  1434. django_cfg/templates/admin/constance/includes/default_value.html +0 -24
  1435. django_cfg/templates/admin/constance/includes/fieldset_header.html +0 -15
  1436. django_cfg/templates/admin/constance/includes/setting_row.html +0 -50
  1437. django_cfg/templates/admin/constance/includes/table_headers.html +0 -10
  1438. django_cfg/templates/admin/examples/component_class_example.html +0 -156
  1439. django_cfg/templates/admin/import_export/change_list_export.html +0 -24
  1440. django_cfg/templates/admin/import_export/change_list_import.html +0 -24
  1441. django_cfg/templates/admin/import_export/change_list_import_export.html +0 -34
  1442. django_cfg/templates/admin/index_new.html +0 -119
  1443. django_cfg/templates/admin/layouts/base_dashboard.html +0 -60
  1444. django_cfg/templates/admin/layouts/dashboard_with_tabs.html +0 -565
  1445. django_cfg/templates/admin/sections/commands_section.html +0 -626
  1446. django_cfg/templates/admin/sections/documentation_section.html +0 -172
  1447. django_cfg/templates/admin/sections/overview_section.html +0 -112
  1448. django_cfg/templates/admin/sections/stats_section.html +0 -35
  1449. django_cfg/templates/admin/sections/system_section.html +0 -99
  1450. django_cfg/templates/admin/snippets/components/CHARTS_GUIDE.md +0 -322
  1451. django_cfg/templates/admin/snippets/components/activity_tracker.html +0 -92
  1452. django_cfg/templates/admin/snippets/components/charts_section.html +0 -179
  1453. django_cfg/templates/admin/snippets/components/django_commands.html +0 -357
  1454. django_cfg/templates/admin/snippets/components/quick_actions.html +0 -66
  1455. django_cfg/templates/admin/snippets/components/recent_activity.html +0 -35
  1456. django_cfg/templates/admin/snippets/components/recent_activity_improved.html +0 -25
  1457. django_cfg/templates/admin/snippets/components/recent_users_table.html +0 -102
  1458. django_cfg/templates/admin/snippets/components/stats_cards.html +0 -4
  1459. django_cfg/templates/admin/snippets/components/stats_tiles.html +0 -92
  1460. django_cfg/templates/admin/snippets/components/system_health.html +0 -22
  1461. django_cfg/templates/admin/snippets/components/system_metrics.html +0 -191
  1462. django_cfg/templates/admin/snippets/components/user_permissions.html +0 -57
  1463. django_cfg/templates/admin/snippets/tabs/app_stats_tab.html +0 -201
  1464. django_cfg/templates/admin/snippets/tabs/commands_tab.html +0 -66
  1465. django_cfg/templates/admin/snippets/tabs/documentation_tab.html +0 -231
  1466. django_cfg/templates/admin/snippets/tabs/overview_tab.html +0 -116
  1467. django_cfg/templates/admin/snippets/tabs/stats_tab.html +0 -89
  1468. django_cfg/templates/admin/snippets/tabs/users_tab.html +0 -51
  1469. django_cfg/templates/admin/snippets/zones/zones_table.html +0 -176
  1470. django_cfg-1.4.46.dist-info/METADATA +0 -533
  1471. django_cfg-1.4.46.dist-info/RECORD +0 -1000
  1472. django_cfg-1.4.46.dist-info/WHEEL +0 -4
  1473. /django_cfg/apps/api/endpoints/{checker.py → endpoints_status/checker.py} +0 -0
  1474. /django_cfg/apps/api/endpoints/{serializers.py → endpoints_status/serializers.py} +0 -0
  1475. /django_cfg/apps/api/endpoints/{tests.py → endpoints_status/tests.py} +0 -0
  1476. /django_cfg/apps/api/endpoints/{views.py → endpoints_status/views.py} +0 -0
  1477. /django_cfg/apps/{accounts/migrations → integrations}/__init__.py +0 -0
  1478. /django_cfg/apps/{knowbase/management → integrations/grpc/management/commands}/__init__.py +0 -0
  1479. /django_cfg/apps/{knowbase/management/commands → integrations/grpc/migrations}/__init__.py +0 -0
  1480. /django_cfg/apps/{leads → integrations/webpush/management}/__init__.py +0 -0
  1481. /django_cfg/apps/{leads/migrations → integrations/webpush/management/commands}/__init__.py +0 -0
  1482. /django_cfg/apps/{maintenance/management → integrations/webpush/migrations}/__init__.py +0 -0
  1483. /django_cfg/apps/{maintenance/management/commands → system}/__init__.py +0 -0
  1484. /django_cfg/apps/{accounts → system/accounts}/__init__.py +0 -0
  1485. /django_cfg/apps/{accounts → system/accounts}/admin/activity_admin.py +0 -0
  1486. /django_cfg/apps/{accounts → system/accounts}/admin/group_admin.py +0 -0
  1487. /django_cfg/apps/{accounts → system/accounts}/admin/otp_admin.py +0 -0
  1488. /django_cfg/apps/{accounts → system/accounts}/admin/registration_admin.py +0 -0
  1489. /django_cfg/apps/{accounts → system/accounts}/managers/__init__.py +0 -0
  1490. /django_cfg/apps/{accounts → system/accounts}/migrations/0002_add_phone_otp_clean.py +0 -0
  1491. /django_cfg/apps/{accounts → system/accounts}/migrations/0003_twilioresponse.py +0 -0
  1492. /django_cfg/apps/{accounts → system/accounts}/migrations/0004_delete_twilioresponse.py +0 -0
  1493. /django_cfg/apps/{accounts → system/accounts}/migrations/0005_twilioresponse.py +0 -0
  1494. /django_cfg/apps/{accounts → system/accounts}/migrations/0006_remove_twilioresponse_otp_secret_and_more.py +0 -0
  1495. /django_cfg/apps/{accounts → system/accounts}/migrations/0007_twilioresponse.py +0 -0
  1496. /django_cfg/apps/{maintenance → system/accounts}/migrations/__init__.py +0 -0
  1497. /django_cfg/apps/{accounts → system/accounts}/models/activity.py +0 -0
  1498. /django_cfg/apps/{accounts → system/accounts}/models/auth.py +0 -0
  1499. /django_cfg/apps/{accounts → system/accounts}/models/base.py +0 -0
  1500. /django_cfg/apps/{accounts → system/accounts}/models/registration.py +0 -0
  1501. /django_cfg/apps/{accounts → system/accounts}/services/__init__.py +0 -0
  1502. /django_cfg/apps/{accounts → system/accounts}/services/activity_service.py +0 -0
  1503. /django_cfg/apps/{accounts → system/accounts}/templates/emails/base_email.html +0 -0
  1504. /django_cfg/apps/{accounts → system/accounts}/templates/emails/base_email.txt +0 -0
  1505. /django_cfg/apps/{accounts → system/accounts}/templates/emails/otp_email.html +0 -0
  1506. /django_cfg/apps/{accounts → system/accounts}/templates/emails/otp_email.txt +0 -0
  1507. /django_cfg/apps/{accounts → system/accounts}/templates/emails/welcome_email.html +0 -0
  1508. /django_cfg/apps/{accounts → system/accounts}/templates/emails/welcome_email.txt +0 -0
  1509. /django_cfg/apps/{accounts → system/accounts}/urls_admin.py +0 -0
  1510. /django_cfg/apps/{accounts → system/accounts}/views/__init__.py +0 -0
  1511. /django_cfg/apps/{newsletter → system/frontend/management}/__init__.py +0 -0
  1512. /django_cfg/apps/{newsletter/management → system/frontend/management/commands}/__init__.py +0 -0
  1513. /django_cfg/apps/{newsletter/management/commands → tools/currency/migrations}/__init__.py +0 -0
  1514. /django_cfg/modules/django_client/core/{archive → archiver}/__init__.py +0 -0
  1515. {django_cfg-1.4.46.dist-info → django_cfg-1.5.181.dist-info}/entry_points.txt +0 -0
  1516. {django_cfg-1.4.46.dist-info → django_cfg-1.5.181.dist-info}/licenses/LICENSE +0 -0
@@ -4,20 +4,13 @@ Test Telegram Command
4
4
  Tests Telegram notification functionality using django_cfg configuration.
5
5
  """
6
6
 
7
- from django.core.management.base import BaseCommand
7
+ from django_cfg.management.utils import SafeCommand
8
8
 
9
- from django_cfg.modules.django_logging import get_logger
10
9
 
11
- logger = get_logger('test_telegram')
12
-
13
- class Command(BaseCommand):
10
+ class Command(SafeCommand):
14
11
  """Command to test Telegram functionality."""
15
12
 
16
- # Web execution metadata
17
- web_executable = True
18
- requires_input = False
19
- is_destructive = False
20
-
13
+ command_name = 'test_telegram'
21
14
  help = "Test Telegram notification functionality"
22
15
 
23
16
  def add_arguments(self, parser):
@@ -29,7 +22,7 @@ class Command(BaseCommand):
29
22
  )
30
23
 
31
24
  def handle(self, *args, **options):
32
- logger.info("Starting test_telegram command")
25
+ self.logger.info("Starting test_telegram command")
33
26
  message = options["message"]
34
27
 
35
28
  self.stdout.write("🚀 Testing Telegram notification service")
@@ -4,7 +4,10 @@ Django Telegram Service for django_cfg.
4
4
  Auto-configuring Telegram notification service that integrates with DjangoConfig.
5
5
  """
6
6
 
7
- import logging
7
+ import itertools
8
+ import queue
9
+ import threading
10
+ import time
8
11
  from enum import Enum
9
12
  from typing import Any, BinaryIO, Dict, Optional, Union
10
13
 
@@ -12,8 +15,177 @@ import telebot
12
15
  import yaml
13
16
 
14
17
  from ..base import BaseCfgModule
18
+ from ..django_logging import get_logger
15
19
 
16
- logger = logging.getLogger(__name__)
20
+ logger = get_logger("django_cfg.telegram")
21
+
22
+
23
+ class MessagePriority:
24
+ """Message priority levels for Telegram queue."""
25
+ CRITICAL = 1 # Security alerts, critical errors
26
+ HIGH = 2 # Errors, important warnings
27
+ NORMAL = 3 # Info, success messages
28
+ LOW = 4 # Debug, non-urgent notifications
29
+
30
+
31
+ class TelegramMessageQueue:
32
+ """
33
+ Global singleton queue for all Telegram messages with rate limiting and auto-cleanup.
34
+
35
+ Ensures we don't hit Telegram API limits:
36
+ - 30 messages/sec to different chats
37
+ - 1 message/sec to same chat
38
+
39
+ We use conservative 20 msg/sec (0.05s delay) to be safe.
40
+
41
+ Queue protection:
42
+ - Max queue size: 1000 messages
43
+ - Auto-cleanup: drops LOW priority messages when > 800
44
+ - Emergency cleanup: drops NORMAL when > 900
45
+ - Critical always kept
46
+ """
47
+
48
+ _instance = None
49
+ _lock = threading.Lock()
50
+
51
+ # Queue size limits
52
+ MAX_QUEUE_SIZE = 1000
53
+ WARNING_THRESHOLD = 800 # Start dropping LOW priority
54
+ CRITICAL_THRESHOLD = 900 # Start dropping NORMAL priority
55
+
56
+ def __new__(cls):
57
+ if cls._instance is None:
58
+ with cls._lock:
59
+ if cls._instance is None:
60
+ cls._instance = super().__new__(cls)
61
+ cls._instance._initialized = False
62
+ return cls._instance
63
+
64
+ def __init__(self):
65
+ if self._initialized:
66
+ return
67
+
68
+ self._initialized = True
69
+ self._queue = queue.PriorityQueue() # Priority queue for message ordering
70
+ self._counter = itertools.count() # Tie-breaker for same-priority items
71
+ self._worker = threading.Thread(target=self._process_queue, daemon=True, name="TelegramQueueWorker")
72
+ self._dropped_count = 0 # Track dropped messages
73
+ self._last_cleanup_warning = 0 # Timestamp of last warning
74
+ self._worker.start()
75
+ logger.info(
76
+ f"Telegram priority queue started: "
77
+ f"rate_limit=20msg/sec, max_size={self.MAX_QUEUE_SIZE}, "
78
+ f"auto_cleanup_at={self.WARNING_THRESHOLD}"
79
+ )
80
+
81
+ def _process_queue(self):
82
+ """Worker thread that processes queued messages with rate limiting."""
83
+ while True:
84
+ try:
85
+ # PriorityQueue returns (priority, count, item)
86
+ priority, _count, (func, args, kwargs) = self._queue.get(timeout=1)
87
+
88
+ try:
89
+ func(*args, **kwargs)
90
+ logger.debug(f"Processed telegram message with priority {priority}")
91
+ except Exception as e:
92
+ logger.error(f"Telegram queue processing error: {e}")
93
+ finally:
94
+ self._queue.task_done()
95
+ # Rate limit: 20 messages per second (0.05s delay)
96
+ time.sleep(0.05)
97
+
98
+ except queue.Empty:
99
+ # No messages, continue waiting
100
+ continue
101
+ except Exception as e:
102
+ logger.error(f"Telegram queue worker error: {e}")
103
+ time.sleep(1) # Back off on errors
104
+
105
+ def enqueue(self, func, priority=MessagePriority.NORMAL, *args, **kwargs):
106
+ """
107
+ Add a message to the queue with priority and smart cleanup.
108
+
109
+ Args:
110
+ func: Function to execute
111
+ priority: Message priority (1=CRITICAL, 2=HIGH, 3=NORMAL, 4=LOW)
112
+ *args: Positional arguments for func
113
+ **kwargs: Keyword arguments for func
114
+ """
115
+ current_size = self._queue.qsize()
116
+
117
+ # Check if we need to drop this message
118
+ if current_size >= self.MAX_QUEUE_SIZE:
119
+ # Queue is full - drop everything except CRITICAL
120
+ if priority > MessagePriority.CRITICAL:
121
+ self._dropped_count += 1
122
+ logger.warning(
123
+ f"Queue FULL ({current_size}/{self.MAX_QUEUE_SIZE}): "
124
+ f"Dropped priority={priority} message. Total dropped: {self._dropped_count}"
125
+ )
126
+ return
127
+ else:
128
+ logger.critical(
129
+ f"Queue FULL but CRITICAL message queued anyway: {current_size}/{self.MAX_QUEUE_SIZE}"
130
+ )
131
+
132
+ elif current_size >= self.CRITICAL_THRESHOLD:
133
+ # Emergency mode: drop NORMAL and LOW
134
+ if priority >= MessagePriority.NORMAL:
135
+ self._dropped_count += 1
136
+ if time.time() - self._last_cleanup_warning > 60: # Warn once per minute
137
+ logger.warning(
138
+ f"Queue CRITICAL ({current_size}/{self.MAX_QUEUE_SIZE}): "
139
+ f"Dropping NORMAL/LOW priority messages. Dropped: {self._dropped_count}"
140
+ )
141
+ self._last_cleanup_warning = time.time()
142
+ return
143
+
144
+ elif current_size >= self.WARNING_THRESHOLD:
145
+ # Warning mode: drop only LOW priority
146
+ if priority == MessagePriority.LOW:
147
+ self._dropped_count += 1
148
+ if time.time() - self._last_cleanup_warning > 60: # Warn once per minute
149
+ logger.warning(
150
+ f"Queue WARNING ({current_size}/{self.MAX_QUEUE_SIZE}): "
151
+ f"Dropping LOW priority messages. Dropped: {self._dropped_count}"
152
+ )
153
+ self._last_cleanup_warning = time.time()
154
+ return
155
+
156
+ # Queue the message with counter for tie-breaking (avoids comparing functions)
157
+ count = next(self._counter)
158
+ self._queue.put((priority, count, (func, args, kwargs)))
159
+ logger.debug(
160
+ f"Telegram message queued with priority {priority} "
161
+ f"(size: {current_size + 1}/{self.MAX_QUEUE_SIZE})"
162
+ )
163
+
164
+ def size(self) -> int:
165
+ """Get current queue size."""
166
+ return self._queue.qsize()
167
+
168
+ def get_stats(self) -> dict:
169
+ """Get queue statistics."""
170
+ current_size = self._queue.qsize()
171
+ return {
172
+ "queue_size": current_size,
173
+ "max_size": self.MAX_QUEUE_SIZE,
174
+ "usage_percent": round((current_size / self.MAX_QUEUE_SIZE) * 100, 1),
175
+ "dropped_total": self._dropped_count,
176
+ "warning_threshold": self.WARNING_THRESHOLD,
177
+ "critical_threshold": self.CRITICAL_THRESHOLD,
178
+ "status": (
179
+ "FULL" if current_size >= self.MAX_QUEUE_SIZE
180
+ else "CRITICAL" if current_size >= self.CRITICAL_THRESHOLD
181
+ else "WARNING" if current_size >= self.WARNING_THRESHOLD
182
+ else "OK"
183
+ ),
184
+ }
185
+
186
+
187
+ # Global singleton instance
188
+ _telegram_queue = TelegramMessageQueue()
17
189
 
18
190
 
19
191
  class TelegramParseMode(Enum):
@@ -45,6 +217,9 @@ class DjangoTelegram(BaseCfgModule):
45
217
 
46
218
  Provides Telegram messaging functionality with automatic configuration
47
219
  from the main DjangoConfig instance.
220
+
221
+ All messages are queued through a global singleton queue with rate limiting
222
+ (20 messages/second) to avoid hitting Telegram API limits.
48
223
  """
49
224
 
50
225
  # Emoji mappings for different message types
@@ -68,6 +243,17 @@ class DjangoTelegram(BaseCfgModule):
68
243
  """Get the DjangoConfig instance."""
69
244
  return self.get_config()
70
245
 
246
+ @property
247
+ def project_prefix(self) -> str:
248
+ """Get project name prefix for messages."""
249
+ try:
250
+ config = self.config
251
+ if config and hasattr(config, 'project_name') and config.project_name:
252
+ return f"[{config.project_name}] "
253
+ except Exception:
254
+ pass
255
+ return ""
256
+
71
257
  @property
72
258
  def is_configured(self) -> bool:
73
259
  """Check if Telegram is properly configured."""
@@ -98,13 +284,16 @@ class DjangoTelegram(BaseCfgModule):
98
284
  return self._bot
99
285
 
100
286
  def get_config_info(self) -> Dict[str, Any]:
101
- """Get Telegram configuration information."""
287
+ """Get Telegram configuration information with queue stats."""
288
+ queue_stats = _telegram_queue.get_stats()
289
+
102
290
  if not self.is_configured:
103
291
  return {
104
292
  "configured": False,
105
293
  "bot_token": "Not configured",
106
294
  "chat_id": "Not configured",
107
295
  "enabled": False,
296
+ **queue_stats,
108
297
  }
109
298
 
110
299
  telegram_config = self.config.telegram
@@ -114,8 +303,32 @@ class DjangoTelegram(BaseCfgModule):
114
303
  "chat_id": telegram_config.chat_id or "Not set",
115
304
  "enabled": True,
116
305
  "parse_mode": telegram_config.parse_mode or "None",
306
+ "rate_limit": "20 messages/second",
307
+ **queue_stats,
117
308
  }
118
309
 
310
+ @staticmethod
311
+ def get_queue_size() -> int:
312
+ """Get current number of messages in the global queue."""
313
+ return _telegram_queue.size()
314
+
315
+ @staticmethod
316
+ def get_queue_stats() -> dict:
317
+ """Get detailed queue statistics."""
318
+ return _telegram_queue.get_stats()
319
+
320
+ def _enqueue_message(self, func, priority=MessagePriority.NORMAL, *args, **kwargs):
321
+ """
322
+ Add message to global queue with priority and rate limiting.
323
+
324
+ Args:
325
+ func: Function to execute
326
+ priority: Message priority (1=CRITICAL, 2=HIGH, 3=NORMAL, 4=LOW)
327
+ *args: Positional arguments for the function
328
+ **kwargs: Keyword arguments for the function
329
+ """
330
+ _telegram_queue.enqueue(func, priority, *args, **kwargs)
331
+
119
332
  def send_message(
120
333
  self,
121
334
  message: str,
@@ -124,9 +337,13 @@ class DjangoTelegram(BaseCfgModule):
124
337
  disable_notification: bool = False,
125
338
  reply_to_message_id: Optional[int] = None,
126
339
  fail_silently: bool = False,
340
+ priority: int = MessagePriority.NORMAL,
127
341
  ) -> bool:
128
342
  """
129
- Send a text message to Telegram.
343
+ Send a text message to Telegram via global queue (non-blocking, rate-limited).
344
+
345
+ Messages are queued and sent at max 20 msg/sec to avoid Telegram API limits.
346
+ Higher priority messages (lower number) are sent first.
130
347
 
131
348
  Args:
132
349
  message: Message text to send
@@ -135,9 +352,10 @@ class DjangoTelegram(BaseCfgModule):
135
352
  disable_notification: Send silently
136
353
  reply_to_message_id: Reply to specific message
137
354
  fail_silently: Don't raise exceptions on failure
355
+ priority: Message priority (1=CRITICAL, 2=HIGH, 3=NORMAL, 4=LOW)
138
356
 
139
357
  Returns:
140
- True if message sent successfully, False otherwise
358
+ True if message queued successfully, False otherwise
141
359
  """
142
360
  try:
143
361
  if not self.is_configured:
@@ -167,15 +385,21 @@ class DjangoTelegram(BaseCfgModule):
167
385
  else:
168
386
  parse_mode_str = None
169
387
 
170
- self.bot.send_message(
171
- chat_id=target_chat_id,
172
- text=message,
173
- parse_mode=parse_mode_str,
174
- disable_notification=disable_notification,
175
- reply_to_message_id=reply_to_message_id,
176
- )
177
-
178
- logger.info(f"Telegram message sent successfully to chat {target_chat_id}")
388
+ def _do_send():
389
+ # Add project prefix to message
390
+ prefixed_message = f"{self.project_prefix}{message}"
391
+
392
+ self.bot.send_message(
393
+ chat_id=target_chat_id,
394
+ text=prefixed_message,
395
+ parse_mode=parse_mode_str,
396
+ disable_notification=disable_notification,
397
+ reply_to_message_id=reply_to_message_id,
398
+ )
399
+ logger.info(f"Telegram message sent successfully to chat {target_chat_id}")
400
+
401
+ # Always enqueue to global queue with rate limiting
402
+ self._enqueue_message(_do_send, priority=priority)
179
403
  return True
180
404
 
181
405
  except Exception as e:
@@ -192,9 +416,13 @@ class DjangoTelegram(BaseCfgModule):
192
416
  chat_id: Optional[Union[int, str]] = None,
193
417
  parse_mode: Optional[TelegramParseMode] = None,
194
418
  fail_silently: bool = False,
419
+ priority: int = MessagePriority.NORMAL,
195
420
  ) -> bool:
196
421
  """
197
- Send a photo to Telegram.
422
+ Send a photo to Telegram via global queue (non-blocking, rate-limited).
423
+
424
+ Messages are queued and sent at max 20 msg/sec to avoid Telegram API limits.
425
+ Higher priority messages (lower number) are sent first.
198
426
 
199
427
  Args:
200
428
  photo: Photo file path, URL, or file-like object
@@ -202,9 +430,10 @@ class DjangoTelegram(BaseCfgModule):
202
430
  chat_id: Target chat ID (uses config default if not provided)
203
431
  parse_mode: Caption parse mode
204
432
  fail_silently: Don't raise exceptions on failure
433
+ priority: Message priority (1=CRITICAL, 2=HIGH, 3=NORMAL, 4=LOW)
205
434
 
206
435
  Returns:
207
- True if photo sent successfully, False otherwise
436
+ True if photo queued successfully, False otherwise
208
437
  """
209
438
  try:
210
439
  if not self.is_configured:
@@ -235,14 +464,20 @@ class DjangoTelegram(BaseCfgModule):
235
464
  else:
236
465
  parse_mode_str = None
237
466
 
238
- self.bot.send_photo(
239
- chat_id=target_chat_id,
240
- photo=photo,
241
- caption=caption,
242
- parse_mode=parse_mode_str,
243
- )
467
+ def _do_send():
468
+ # Add project prefix to caption if present
469
+ prefixed_caption = f"{self.project_prefix}{caption}" if caption else self.project_prefix.strip() if self.project_prefix else None
470
+
471
+ self.bot.send_photo(
472
+ chat_id=target_chat_id,
473
+ photo=photo,
474
+ caption=prefixed_caption,
475
+ parse_mode=parse_mode_str,
476
+ )
477
+ logger.info(f"Telegram photo sent successfully to chat {target_chat_id}")
244
478
 
245
- logger.info(f"Telegram photo sent successfully to chat {target_chat_id}")
479
+ # Always enqueue to global queue with rate limiting
480
+ self._enqueue_message(_do_send, priority=priority)
246
481
  return True
247
482
 
248
483
  except Exception as e:
@@ -259,9 +494,13 @@ class DjangoTelegram(BaseCfgModule):
259
494
  chat_id: Optional[Union[int, str]] = None,
260
495
  parse_mode: Optional[TelegramParseMode] = None,
261
496
  fail_silently: bool = False,
497
+ priority: int = MessagePriority.NORMAL,
262
498
  ) -> bool:
263
499
  """
264
- Send a document to Telegram.
500
+ Send a document to Telegram via global queue (non-blocking, rate-limited).
501
+
502
+ Messages are queued and sent at max 20 msg/sec to avoid Telegram API limits.
503
+ Higher priority messages (lower number) are sent first.
265
504
 
266
505
  Args:
267
506
  document: Document file path, URL, or file-like object
@@ -269,9 +508,10 @@ class DjangoTelegram(BaseCfgModule):
269
508
  chat_id: Target chat ID (uses config default if not provided)
270
509
  parse_mode: Caption parse mode
271
510
  fail_silently: Don't raise exceptions on failure
511
+ priority: Message priority (1=CRITICAL, 2=HIGH, 3=NORMAL, 4=LOW)
272
512
 
273
513
  Returns:
274
- True if document sent successfully, False otherwise
514
+ True if document queued successfully, False otherwise
275
515
  """
276
516
  try:
277
517
  if not self.is_configured:
@@ -302,14 +542,20 @@ class DjangoTelegram(BaseCfgModule):
302
542
  else:
303
543
  parse_mode_str = None
304
544
 
305
- self.bot.send_document(
306
- chat_id=target_chat_id,
307
- document=document,
308
- caption=caption,
309
- parse_mode=parse_mode_str,
310
- )
545
+ def _do_send():
546
+ # Add project prefix to caption if present
547
+ prefixed_caption = f"{self.project_prefix}{caption}" if caption else self.project_prefix.strip() if self.project_prefix else None
548
+
549
+ self.bot.send_document(
550
+ chat_id=target_chat_id,
551
+ document=document,
552
+ caption=prefixed_caption,
553
+ parse_mode=parse_mode_str,
554
+ )
555
+ logger.info(f"Telegram document sent successfully to chat {target_chat_id}")
311
556
 
312
- logger.info(f"Telegram document sent successfully to chat {target_chat_id}")
557
+ # Always enqueue to global queue with rate limiting
558
+ self._enqueue_message(_do_send, priority=priority)
313
559
  return True
314
560
 
315
561
  except Exception as e:
@@ -363,59 +609,59 @@ class DjangoTelegram(BaseCfgModule):
363
609
 
364
610
  @classmethod
365
611
  def send_error(cls, error: str, context: Optional[Dict[str, Any]] = None) -> None:
366
- """Send error notification."""
612
+ """Send error notification with HIGH priority."""
367
613
  try:
368
614
  telegram = cls()
369
615
  text = f"{cls.EMOJI_MAP['error']} <b>Error</b>\n\n{error}"
370
616
  if context:
371
617
  text += "\n\n<pre>" + cls._format_to_yaml(context) + "</pre>"
372
- telegram.send_message(text, parse_mode=TelegramParseMode.HTML)
618
+ telegram.send_message(text, parse_mode=TelegramParseMode.HTML, priority=MessagePriority.HIGH)
373
619
  except Exception:
374
620
  # Silently fail - error notifications should not cause cascading failures
375
621
  pass
376
622
 
377
623
  @classmethod
378
624
  def send_success(cls, message: str, details: Optional[Dict[str, Any]] = None) -> None:
379
- """Send success notification."""
625
+ """Send success notification with NORMAL priority."""
380
626
  try:
381
627
  telegram = cls()
382
628
  text = f"{cls.EMOJI_MAP['success']} <b>Success</b>\n\n{message}"
383
629
  if details:
384
630
  text += "\n\n<pre>" + cls._format_to_yaml(details) + "</pre>"
385
- telegram.send_message(text, parse_mode=TelegramParseMode.HTML)
631
+ telegram.send_message(text, parse_mode=TelegramParseMode.HTML, priority=MessagePriority.NORMAL)
386
632
  except Exception:
387
633
  # Silently fail - success notifications should not cause failures
388
634
  pass
389
635
 
390
636
  @classmethod
391
637
  def send_warning(cls, warning: str, context: Optional[Dict[str, Any]] = None) -> None:
392
- """Send warning notification."""
638
+ """Send warning notification with HIGH priority."""
393
639
  try:
394
640
  telegram = cls()
395
641
  text = f"{cls.EMOJI_MAP['warning']} <b>Warning</b>\n\n{warning}"
396
642
  if context:
397
643
  text += "\n\n<pre>" + cls._format_to_yaml(context) + "</pre>"
398
- telegram.send_message(text, parse_mode=TelegramParseMode.HTML)
644
+ telegram.send_message(text, parse_mode=TelegramParseMode.HTML, priority=MessagePriority.HIGH)
399
645
  except Exception:
400
646
  # Silently fail - warning notifications should not cause failures
401
647
  pass
402
648
 
403
649
  @classmethod
404
650
  def send_info(cls, message: str, data: Optional[Dict[str, Any]] = None) -> None:
405
- """Send informational message."""
651
+ """Send informational message with NORMAL priority."""
406
652
  telegram = cls()
407
653
  text = f"{cls.EMOJI_MAP['info']} <b>Info</b>\n\n{message}"
408
654
  if data:
409
655
  text += "\n\n<pre>" + cls._format_to_yaml(data) + "</pre>"
410
- telegram.send_message(text, parse_mode=TelegramParseMode.HTML)
656
+ telegram.send_message(text, parse_mode=TelegramParseMode.HTML, priority=MessagePriority.NORMAL)
411
657
 
412
658
  @classmethod
413
659
  def send_stats(cls, title: str, stats: Dict[str, Any]) -> None:
414
- """Send statistics data."""
660
+ """Send statistics data with LOW priority."""
415
661
  telegram = cls()
416
662
  text = f"{cls.EMOJI_MAP['stats']} <b>{title}</b>"
417
663
  text += "\n\n<pre>" + cls._format_to_yaml(stats) + "</pre>"
418
- telegram.send_message(text, parse_mode=TelegramParseMode.HTML)
664
+ telegram.send_message(text, parse_mode=TelegramParseMode.HTML, priority=MessagePriority.LOW)
419
665
 
420
666
 
421
667
  __all__ = [
@@ -424,4 +670,5 @@ __all__ = [
424
670
  "TelegramConfigError",
425
671
  "TelegramSendError",
426
672
  "DjangoTelegram",
673
+ "MessagePriority",
427
674
  ]
@@ -1,13 +1,12 @@
1
1
  """
2
2
  Django CFG Unfold Module
3
3
 
4
- Provides complete Unfold admin interface integration with dashboard,
5
- navigation, theming, and callback support.
4
+ Provides complete Unfold admin interface integration with
5
+ navigation and theming support.
6
6
  """
7
7
 
8
- from .callbacks import UnfoldCallbacks
9
- from .dashboard import DashboardManager, get_dashboard_manager
10
8
  from .models import *
9
+ from .navigation import NavigationManager, get_navigation_manager
11
10
  from .system_monitor import SystemMonitor
12
11
  from .tailwind import get_css_variables, get_unfold_colors
13
12
 
@@ -20,19 +19,10 @@ def get_system_monitor() -> SystemMonitor:
20
19
  globals()['_system_monitor'] = SystemMonitor()
21
20
  return globals()['_system_monitor']
22
21
 
23
- def get_unfold_callbacks() -> UnfoldCallbacks:
24
- """Get the global unfold callbacks instance."""
25
- global _unfold_callbacks
26
- if '_unfold_callbacks' not in globals():
27
- globals()['_unfold_callbacks'] = UnfoldCallbacks()
28
- return globals()['_unfold_callbacks']
29
-
30
22
  # Export main components
31
23
  __all__ = [
32
- 'DashboardManager',
33
- 'get_dashboard_manager',
34
- 'UnfoldCallbacks',
35
- 'get_unfold_callbacks',
24
+ 'NavigationManager',
25
+ 'get_navigation_manager',
36
26
  'SystemMonitor',
37
27
  'get_system_monitor',
38
28
  'get_unfold_colors',
@@ -48,15 +38,6 @@ __all__ = [
48
38
  'NavigationSection',
49
39
  'NavigationItemType',
50
40
  'SiteDropdownItem',
51
- 'StatCard',
52
- 'SystemHealthItem',
53
- 'QuickAction',
54
- 'DashboardWidget',
55
- 'DashboardData',
56
- 'ChartDataset',
57
- 'ChartData',
58
- 'TabConfiguration',
59
- 'TabItem',
60
41
  ]
61
42
 
62
43
  # Version info
@@ -0,0 +1,48 @@
1
+ # Login Autofill Example
2
+
3
+ ## Basic Usage (Development only)
4
+
5
+ ```python
6
+ from django_cfg.models import UnfoldConfig
7
+
8
+ class MyConfig(BaseConfig):
9
+ unfold: UnfoldConfig = Field(
10
+ default_factory=lambda: UnfoldConfig(
11
+ site_title="My Admin",
12
+
13
+ # Auto-enabled only in DEBUG mode
14
+ dev_autofill_email="admin@example.com",
15
+ dev_autofill_password="admin123",
16
+ )
17
+ )
18
+ ```
19
+
20
+ ## Force in Production (Demo/Staging)
21
+
22
+ ```python
23
+ unfold: UnfoldConfig = Field(
24
+ default_factory=lambda: UnfoldConfig(
25
+ site_title="My Admin",
26
+
27
+ # Force autofill even in production
28
+ dev_autofill_email="demo@example.com",
29
+ dev_autofill_password="demo123",
30
+ dev_autofill_force=True, # Works regardless of DEBUG
31
+ )
32
+ )
33
+ ```
34
+
35
+ ## How it works
36
+
37
+ 1. If `dev_autofill_email` or `dev_autofill_password` is set → `DevAuthForm` is auto-enabled
38
+ 2. Autofill is enabled when ANY of these conditions are true:
39
+ - `DEBUG=True` (Django DEBUG mode)
40
+ - `environment.is_development=True` (django-cfg environment detection)
41
+ - `dev_autofill_force=True` (force in production)
42
+ 3. Prefills username/password fields on login page
43
+
44
+ ## Use Cases
45
+
46
+ - ✅ Development: Auto-enabled via `DEBUG=True` or `environment="development"`
47
+ - ✅ Demo/Staging: Use `dev_autofill_force=True`
48
+ - ✅ Production: Don't set autofill fields
@@ -0,0 +1,5 @@
1
+ """Unfold custom forms."""
2
+
3
+ from .auth import DevAuthForm
4
+
5
+ __all__ = ["DevAuthForm"]