django-cfg 1.4.114__py3-none-any.whl → 1.5.8__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.

Potentially problematic release.


This version of django-cfg might be problematic. Click here for more details.

Files changed (701) hide show
  1. django_cfg/__init__.py +6 -1
  2. django_cfg/apps/{accounts → business/accounts}/admin/inlines.py +2 -2
  3. django_cfg/apps/{accounts → business/accounts}/admin/user_admin.py +2 -2
  4. django_cfg/apps/{accounts → business/accounts}/apps.py +2 -2
  5. django_cfg/apps/{accounts → business/accounts}/managers/user_manager.py +2 -2
  6. django_cfg/apps/{accounts → business/accounts}/migrations/0001_initial.py +4 -4
  7. django_cfg/apps/{agents → business/agents}/__init__.py +1 -1
  8. django_cfg/apps/{agents → business/agents}/apps.py +1 -1
  9. django_cfg/apps/{agents → business/agents}/management/commands/create_agent.py +1 -1
  10. django_cfg/apps/{agents → business/agents}/management/commands/orchestrator_status.py +3 -3
  11. django_cfg/apps/{knowbase → business/knowbase}/__init__.py +1 -1
  12. django_cfg/apps/{knowbase → business/knowbase}/apps.py +3 -3
  13. django_cfg/apps/business/knowbase/examples/__init__.py +3 -0
  14. django_cfg/apps/{knowbase → business/knowbase}/examples/external_data_usage.py +1 -1
  15. django_cfg/apps/{knowbase → business/knowbase}/mixins/examples/vehicle_model_example.py +2 -2
  16. django_cfg/apps/{knowbase → business/knowbase}/mixins/service.py +1 -1
  17. django_cfg/apps/{knowbase → business/knowbase}/models/external_data.py +1 -1
  18. django_cfg/apps/{knowbase → business/knowbase}/services/archive/vectorization_service.py +1 -1
  19. django_cfg/apps/{knowbase → business/knowbase}/services/embedding/async_processor.py +1 -1
  20. django_cfg/apps/{knowbase → business/knowbase}/services/embedding/batch_processor.py +2 -2
  21. django_cfg/apps/{knowbase → business/knowbase}/services/embedding/processors.py +1 -1
  22. django_cfg/apps/{knowbase → business/knowbase}/services/embedding/utils.py +1 -1
  23. django_cfg/apps/{knowbase → business/knowbase}/tasks/document_processing.py +1 -1
  24. django_cfg/apps/{knowbase → business/knowbase}/utils/chunk_settings.py +6 -5
  25. django_cfg/apps/{knowbase → business/knowbase}/views/archive_views.py +2 -2
  26. django_cfg/apps/{leads → business/leads}/apps.py +2 -2
  27. django_cfg/apps/{newsletter → business/newsletter}/admin/newsletter_admin.py +12 -11
  28. django_cfg/apps/{newsletter → business/newsletter}/apps.py +2 -2
  29. django_cfg/apps/{newsletter → business/newsletter}/management/commands/test_newsletter.py +2 -2
  30. django_cfg/apps/{payments → business/payments}/__init__.py +2 -2
  31. django_cfg/apps/{payments → business/payments}/admin/balance_admin.py +26 -36
  32. django_cfg/apps/{payments → business/payments}/admin/payment_admin.py +65 -85
  33. django_cfg/apps/{payments → business/payments}/admin/withdrawal_admin.py +65 -100
  34. django_cfg/apps/{payments → business/payments}/apps.py +1 -1
  35. django_cfg/apps/{payments → business/payments}/management/commands/check_payment_status.py +4 -4
  36. django_cfg/apps/{payments → business/payments}/management/commands/create_payment.py +3 -3
  37. django_cfg/apps/{payments → business/payments}/management/commands/sync_currencies.py +2 -2
  38. django_cfg/apps/{payments → business/payments}/urls.py +1 -1
  39. django_cfg/apps/{support → business/support}/apps.py +1 -1
  40. django_cfg/apps/{support → business/support}/managers/message_manager.py +1 -1
  41. django_cfg/apps/{support → business/support}/managers/ticket_manager.py +1 -1
  42. django_cfg/apps/{centrifugo → integrations/centrifugo}/__init__.py +2 -2
  43. django_cfg/apps/integrations/centrifugo/_cfg/README_DEPENDENCIES.md +260 -0
  44. django_cfg/apps/integrations/centrifugo/_cfg/__init__.py +25 -0
  45. django_cfg/apps/integrations/centrifugo/_cfg/check_deps.py +34 -0
  46. django_cfg/apps/integrations/centrifugo/_cfg/dependencies.py +309 -0
  47. django_cfg/apps/{centrifugo → integrations/centrifugo}/admin/centrifugo_log.py +33 -71
  48. django_cfg/apps/integrations/centrifugo/apps.py +100 -0
  49. django_cfg/apps/{centrifugo → integrations/centrifugo}/management/commands/generate_centrifugo_clients.py +5 -5
  50. django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/__init__.py +2 -2
  51. django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/stats.py +2 -2
  52. django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/client.py +2 -2
  53. django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/config.py +1 -1
  54. django_cfg/apps/{centrifugo → integrations/centrifugo}/views/monitoring.py +3 -3
  55. django_cfg/apps/integrations/grpc/__init__.py +9 -0
  56. django_cfg/apps/integrations/grpc/_cfg/README_DEPENDENCIES.md +307 -0
  57. django_cfg/apps/integrations/grpc/_cfg/__init__.py +25 -0
  58. django_cfg/apps/integrations/grpc/_cfg/check_deps.py +34 -0
  59. django_cfg/apps/integrations/grpc/_cfg/dependencies.py +484 -0
  60. django_cfg/apps/integrations/grpc/admin/__init__.py +11 -0
  61. django_cfg/apps/integrations/grpc/admin/config.py +157 -0
  62. django_cfg/apps/integrations/grpc/admin/grpc_request_log.py +252 -0
  63. django_cfg/apps/integrations/grpc/apps.py +108 -0
  64. django_cfg/apps/integrations/grpc/auth/__init__.py +9 -0
  65. django_cfg/apps/integrations/grpc/auth/jwt_auth.py +295 -0
  66. django_cfg/apps/integrations/grpc/interceptors/__init__.py +19 -0
  67. django_cfg/apps/integrations/grpc/interceptors/errors.py +241 -0
  68. django_cfg/apps/integrations/grpc/interceptors/logging.py +270 -0
  69. django_cfg/apps/integrations/grpc/interceptors/metrics.py +306 -0
  70. django_cfg/apps/integrations/grpc/interceptors/request_logger.py +515 -0
  71. django_cfg/apps/integrations/grpc/management/__init__.py +1 -0
  72. django_cfg/apps/integrations/grpc/management/commands/rungrpc.py +443 -0
  73. django_cfg/apps/integrations/grpc/managers/__init__.py +12 -0
  74. django_cfg/apps/integrations/grpc/managers/grpc_request_log.py +310 -0
  75. django_cfg/apps/integrations/grpc/managers/grpc_server_status.py +288 -0
  76. django_cfg/apps/integrations/grpc/migrations/0001_initial.py +69 -0
  77. django_cfg/apps/integrations/grpc/migrations/0002_rename_django_cfg__service_4c4a8e_idx_django_cfg__service_584308_idx_and_more.py +38 -0
  78. django_cfg/apps/integrations/grpc/migrations/0003_grpcserverstatus.py +119 -0
  79. django_cfg/apps/integrations/grpc/migrations/0004_grpcserverstatus_registered_services.py +22 -0
  80. django_cfg/apps/integrations/grpc/models/__init__.py +11 -0
  81. django_cfg/apps/integrations/grpc/models/grpc_request_log.py +219 -0
  82. django_cfg/apps/integrations/grpc/models/grpc_server_status.py +270 -0
  83. django_cfg/apps/integrations/grpc/serializers/__init__.py +67 -0
  84. django_cfg/apps/integrations/grpc/serializers/charts.py +218 -0
  85. django_cfg/apps/integrations/grpc/serializers/config.py +106 -0
  86. django_cfg/apps/integrations/grpc/serializers/health.py +18 -0
  87. django_cfg/apps/integrations/grpc/serializers/requests.py +18 -0
  88. django_cfg/apps/integrations/grpc/serializers/service_registry.py +191 -0
  89. django_cfg/apps/integrations/grpc/serializers/services.py +50 -0
  90. django_cfg/apps/integrations/grpc/serializers/stats.py +22 -0
  91. django_cfg/apps/integrations/grpc/serializers/testing.py +105 -0
  92. django_cfg/apps/integrations/grpc/services/__init__.py +39 -0
  93. django_cfg/apps/integrations/grpc/services/base.py +375 -0
  94. django_cfg/apps/integrations/grpc/services/chart_generator.py +475 -0
  95. django_cfg/apps/integrations/grpc/services/config_helper.py +146 -0
  96. django_cfg/apps/integrations/grpc/services/discovery.py +571 -0
  97. django_cfg/apps/integrations/grpc/services/grpc_client.py +590 -0
  98. django_cfg/apps/integrations/grpc/services/monitoring_service.py +291 -0
  99. django_cfg/apps/integrations/grpc/services/service_registry.py +328 -0
  100. django_cfg/apps/integrations/grpc/services/testing_service.py +326 -0
  101. django_cfg/apps/integrations/grpc/testing/__init__.py +12 -0
  102. django_cfg/apps/integrations/grpc/testing/examples.py +263 -0
  103. django_cfg/apps/integrations/grpc/urls.py +39 -0
  104. django_cfg/apps/integrations/grpc/utils/__init__.py +18 -0
  105. django_cfg/apps/integrations/grpc/utils/proto_gen.py +423 -0
  106. django_cfg/apps/integrations/grpc/views/__init__.py +15 -0
  107. django_cfg/apps/integrations/grpc/views/charts.py +217 -0
  108. django_cfg/apps/integrations/grpc/views/config.py +191 -0
  109. django_cfg/apps/integrations/grpc/views/monitoring.py +388 -0
  110. django_cfg/apps/integrations/grpc/views/services.py +289 -0
  111. django_cfg/apps/integrations/grpc/views/testing.py +306 -0
  112. django_cfg/apps/integrations/rq/__init__.py +9 -0
  113. django_cfg/apps/integrations/rq/_cfg/__init__.py +28 -0
  114. django_cfg/apps/integrations/rq/_cfg/dependencies.py +313 -0
  115. django_cfg/apps/integrations/rq/apps.py +157 -0
  116. django_cfg/apps/integrations/rq/management/__init__.py +1 -0
  117. django_cfg/apps/integrations/rq/management/commands/__init__.py +1 -0
  118. django_cfg/apps/integrations/rq/management/commands/rqscheduler.py +31 -0
  119. django_cfg/apps/integrations/rq/management/commands/rqstats.py +33 -0
  120. django_cfg/apps/integrations/rq/management/commands/rqworker.py +31 -0
  121. django_cfg/apps/integrations/rq/management/commands/rqworker_pool.py +27 -0
  122. django_cfg/apps/integrations/rq/serializers/__init__.py +40 -0
  123. django_cfg/apps/integrations/rq/serializers/health.py +60 -0
  124. django_cfg/apps/integrations/rq/serializers/job.py +100 -0
  125. django_cfg/apps/integrations/rq/serializers/queue.py +80 -0
  126. django_cfg/apps/integrations/rq/serializers/schedule.py +178 -0
  127. django_cfg/apps/integrations/rq/serializers/testing.py +139 -0
  128. django_cfg/apps/integrations/rq/serializers/worker.py +58 -0
  129. django_cfg/apps/integrations/rq/services/__init__.py +25 -0
  130. django_cfg/apps/integrations/rq/services/config_helper.py +233 -0
  131. django_cfg/apps/integrations/rq/services/models/README.md +417 -0
  132. django_cfg/apps/integrations/rq/services/models/__init__.py +30 -0
  133. django_cfg/apps/integrations/rq/services/models/event.py +123 -0
  134. django_cfg/apps/integrations/rq/services/models/job.py +99 -0
  135. django_cfg/apps/integrations/rq/services/models/queue.py +92 -0
  136. django_cfg/apps/integrations/rq/services/models/worker.py +104 -0
  137. django_cfg/apps/integrations/rq/services/rq_converters.py +183 -0
  138. django_cfg/apps/integrations/rq/tasks/__init__.py +23 -0
  139. django_cfg/apps/integrations/rq/tasks/demo_tasks.py +284 -0
  140. django_cfg/apps/integrations/rq/urls.py +54 -0
  141. django_cfg/apps/integrations/rq/views/__init__.py +19 -0
  142. django_cfg/apps/integrations/rq/views/jobs.py +882 -0
  143. django_cfg/apps/integrations/rq/views/monitoring.py +248 -0
  144. django_cfg/apps/integrations/rq/views/queues.py +261 -0
  145. django_cfg/apps/integrations/rq/views/schedule.py +400 -0
  146. django_cfg/apps/integrations/rq/views/testing.py +761 -0
  147. django_cfg/apps/integrations/rq/views/workers.py +195 -0
  148. django_cfg/apps/system/__init__.py +0 -0
  149. django_cfg/apps/system/dashboard/TRANSACTION_FIX.md +73 -0
  150. django_cfg/apps/{dashboard → system/dashboard}/__init__.py +1 -1
  151. django_cfg/apps/{dashboard → system/dashboard}/apps.py +1 -1
  152. django_cfg/apps/{dashboard → system/dashboard}/serializers/__init__.py +4 -11
  153. django_cfg/apps/{dashboard → system/dashboard}/serializers/activity.py +1 -1
  154. django_cfg/apps/system/dashboard/serializers/config.py +245 -0
  155. django_cfg/apps/{dashboard → system/dashboard}/services/__init__.py +2 -2
  156. django_cfg/apps/{dashboard → system/dashboard}/services/charts_service.py +4 -3
  157. django_cfg/apps/system/dashboard/services/config_service.py +393 -0
  158. django_cfg/apps/{dashboard → system/dashboard}/services/statistics_service.py +11 -2
  159. django_cfg/apps/{dashboard → system/dashboard}/services/system_health_service.py +64 -106
  160. django_cfg/apps/{dashboard → system/dashboard}/urls.py +3 -2
  161. django_cfg/apps/{dashboard → system/dashboard}/views/__init__.py +2 -2
  162. django_cfg/apps/{dashboard → system/dashboard}/views/commands_views.py +3 -6
  163. django_cfg/apps/system/dashboard/views/config_views.py +69 -0
  164. django_cfg/apps/{dashboard → system/dashboard}/views/overview_views.py +14 -13
  165. django_cfg/apps/{frontend → system/frontend}/__init__.py +1 -1
  166. django_cfg/apps/{frontend → system/frontend}/apps.py +1 -1
  167. django_cfg/apps/{frontend → system/frontend}/setup.py +5 -5
  168. django_cfg/apps/{frontend → system/frontend}/views.py +18 -3
  169. django_cfg/apps/system/maintenance/__init__.py +56 -0
  170. django_cfg/apps/{maintenance → system/maintenance}/admin/api_key_admin.py +10 -12
  171. django_cfg/apps/{maintenance → system/maintenance}/admin/scheduled_admin.py +3 -3
  172. django_cfg/apps/{maintenance → system/maintenance}/admin/site_admin.py +10 -9
  173. django_cfg/apps/{maintenance → system/maintenance}/apps.py +1 -1
  174. django_cfg/apps/system/maintenance/management/__init__.py +0 -0
  175. django_cfg/apps/system/maintenance/management/commands/__init__.py +0 -0
  176. django_cfg/apps/system/maintenance/migrations/__init__.py +0 -0
  177. django_cfg/apps/{maintenance → system/maintenance}/models/__init__.py +4 -4
  178. django_cfg/apps/system/maintenance/services/__init__.py +42 -0
  179. django_cfg/apps/urls.py +54 -115
  180. django_cfg/config.py +3 -0
  181. django_cfg/core/base/config_model.py +27 -28
  182. django_cfg/core/builders/apps_builder.py +19 -21
  183. django_cfg/core/constants.py +1 -0
  184. django_cfg/core/debug/README.md +116 -0
  185. django_cfg/core/debug/__init__.py +7 -0
  186. django_cfg/core/debug/example_config.py +63 -0
  187. django_cfg/core/debug/warnings_helper.py +121 -0
  188. django_cfg/core/generation/integration_generators/__init__.py +3 -6
  189. django_cfg/core/generation/integration_generators/django_rq.py +80 -0
  190. django_cfg/core/generation/integration_generators/grpc_generator.py +318 -0
  191. django_cfg/core/generation/orchestrator.py +15 -15
  192. django_cfg/core/integration/display/__init__.py +2 -0
  193. django_cfg/core/integration/display/base.py +51 -0
  194. django_cfg/core/integration/display/grpc_display.py +144 -0
  195. django_cfg/core/integration/display/startup.py +24 -58
  196. django_cfg/middleware/authentication.py +1 -1
  197. django_cfg/mixins/__init__.py +2 -0
  198. django_cfg/mixins/superadmin_api.py +59 -0
  199. django_cfg/models/__init__.py +3 -3
  200. django_cfg/models/api/grpc/__init__.py +59 -0
  201. django_cfg/models/api/grpc/config.py +364 -0
  202. django_cfg/models/django/__init__.py +3 -3
  203. django_cfg/models/django/constance.py +1 -1
  204. django_cfg/models/django/django_rq.py +632 -0
  205. django_cfg/models/django/revolution_legacy.py +8 -8
  206. django_cfg/modules/base.py +19 -6
  207. django_cfg/modules/django_admin/__init__.py +2 -0
  208. django_cfg/modules/django_admin/apps.py +19 -0
  209. django_cfg/modules/django_admin/base/pydantic_admin.py +23 -12
  210. django_cfg/modules/django_admin/config/__init__.py +2 -0
  211. django_cfg/modules/django_admin/config/admin_config.py +7 -0
  212. django_cfg/modules/django_admin/config/background_task_config.py +4 -4
  213. django_cfg/modules/django_admin/config/field_config.py +24 -0
  214. django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_field.html +80 -0
  215. django_cfg/modules/django_admin/templates/django_admin/widgets/encrypted_password.html +62 -0
  216. django_cfg/modules/django_admin/utils/__init__.py +41 -3
  217. django_cfg/modules/django_admin/utils/badges/__init__.py +13 -0
  218. django_cfg/modules/django_admin/utils/{badges.py → badges/status_badges.py} +3 -3
  219. django_cfg/modules/django_admin/utils/displays/__init__.py +13 -0
  220. django_cfg/modules/django_admin/utils/{displays.py → displays/data_displays.py} +2 -2
  221. django_cfg/modules/django_admin/utils/html/__init__.py +26 -0
  222. django_cfg/modules/django_admin/utils/html/badges.py +55 -0
  223. django_cfg/modules/django_admin/utils/html/base.py +167 -0
  224. django_cfg/modules/django_admin/utils/html/code.py +87 -0
  225. django_cfg/modules/django_admin/utils/html/composition.py +205 -0
  226. django_cfg/modules/django_admin/utils/html/formatting.py +231 -0
  227. django_cfg/modules/django_admin/utils/html/keyvalue.py +219 -0
  228. django_cfg/modules/django_admin/utils/html/markdown_integration.py +108 -0
  229. django_cfg/modules/django_admin/utils/html/progress.py +127 -0
  230. django_cfg/modules/django_admin/utils/html_builder.py +55 -408
  231. django_cfg/modules/django_admin/utils/markdown/__init__.py +21 -0
  232. django_cfg/modules/django_admin/widgets/__init__.py +3 -0
  233. django_cfg/modules/django_admin/widgets/encrypted_field_widget.py +66 -0
  234. django_cfg/modules/django_admin/widgets/registry.py +42 -0
  235. django_cfg/modules/django_client/core/generator/typescript/operations_generator.py +13 -4
  236. django_cfg/modules/django_client/core/parser/base.py +49 -0
  237. django_cfg/modules/django_currency/examples/example_database_usage.py +1 -1
  238. django_cfg/modules/django_logging/__init__.py +2 -0
  239. django_cfg/modules/django_logging/django_logger.py +78 -8
  240. django_cfg/modules/django_twilio/sendgrid_service.py +1 -1
  241. django_cfg/modules/django_unfold/navigation.py +21 -18
  242. django_cfg/modules/nextjs_admin/views.py +1 -1
  243. django_cfg/pyproject.toml +10 -10
  244. django_cfg/registry/core.py +4 -7
  245. django_cfg/registry/modules.py +7 -1
  246. django_cfg/static/frontend/admin.zip +0 -0
  247. django_cfg/templates/admin/constance/includes/results_list.html +73 -0
  248. django_cfg/templates/admin/index.html +187 -62
  249. django_cfg/templatetags/django_cfg.py +61 -1
  250. {django_cfg-1.4.114.dist-info → django_cfg-1.5.8.dist-info}/METADATA +106 -60
  251. django_cfg-1.5.8.dist-info/RECORD +1161 -0
  252. django_cfg/apps/centrifugo/apps.py +0 -31
  253. django_cfg/apps/dashboard/permissions.py +0 -48
  254. django_cfg/apps/dashboard/serializers/django_q2.py +0 -50
  255. django_cfg/apps/dashboard/services/django_q2_service.py +0 -159
  256. django_cfg/apps/dashboard/views/django_q2_views.py +0 -79
  257. django_cfg/apps/knowbase/examples/__init__.py +0 -3
  258. django_cfg/apps/maintenance/__init__.py +0 -56
  259. django_cfg/apps/maintenance/services/__init__.py +0 -42
  260. django_cfg/apps/tasks/__init__.py +0 -64
  261. django_cfg/apps/tasks/admin/__init__.py +0 -4
  262. django_cfg/apps/tasks/admin/config.py +0 -98
  263. django_cfg/apps/tasks/admin/task_log.py +0 -265
  264. django_cfg/apps/tasks/apps.py +0 -15
  265. django_cfg/apps/tasks/filters/__init__.py +0 -10
  266. django_cfg/apps/tasks/filters/task_log.py +0 -121
  267. django_cfg/apps/tasks/migrations/0001_initial.py +0 -196
  268. django_cfg/apps/tasks/migrations/0002_delete_tasklog.py +0 -16
  269. django_cfg/apps/tasks/models/__init__.py +0 -4
  270. django_cfg/apps/tasks/models/task_log.py +0 -246
  271. django_cfg/apps/tasks/serializers/__init__.py +0 -28
  272. django_cfg/apps/tasks/serializers/task_log.py +0 -249
  273. django_cfg/apps/tasks/services/__init__.py +0 -10
  274. django_cfg/apps/tasks/services/client/__init__.py +0 -7
  275. django_cfg/apps/tasks/services/client/client.py +0 -234
  276. django_cfg/apps/tasks/services/config_helper.py +0 -63
  277. django_cfg/apps/tasks/services/sync.py +0 -204
  278. django_cfg/apps/tasks/urls.py +0 -16
  279. django_cfg/apps/tasks/views/__init__.py +0 -10
  280. django_cfg/apps/tasks/views/task_log.py +0 -41
  281. django_cfg/apps/tasks/views/task_log_base.py +0 -41
  282. django_cfg/apps/tasks/views/task_log_overview.py +0 -100
  283. django_cfg/apps/tasks/views/task_log_related.py +0 -41
  284. django_cfg/apps/tasks/views/task_log_stats.py +0 -91
  285. django_cfg/apps/tasks/views/task_log_timeline.py +0 -81
  286. django_cfg/core/generation/integration_generators/django_q2.py +0 -133
  287. django_cfg/core/generation/integration_generators/tasks.py +0 -88
  288. django_cfg/models/django/django_q2.py +0 -491
  289. django_cfg/models/tasks/__init__.py +0 -49
  290. django_cfg/models/tasks/backends.py +0 -122
  291. django_cfg/models/tasks/config.py +0 -209
  292. django_cfg/models/tasks/utils.py +0 -162
  293. django_cfg/modules/django_admin/utils/CODE_BLOCK_DOCS.md +0 -396
  294. django_cfg/modules/django_logging/FIXES_SUMMARY.md +0 -276
  295. django_cfg/modules/django_logging/LOGGING_GUIDE.md +0 -504
  296. django_cfg-1.4.114.dist-info/RECORD +0 -1068
  297. /django_cfg/apps/{accounts/migrations → business}/__init__.py +0 -0
  298. /django_cfg/apps/{accounts → business/accounts}/README.md +0 -0
  299. /django_cfg/apps/{accounts → business/accounts}/__init__.py +0 -0
  300. /django_cfg/apps/{accounts → business/accounts}/__models.py +0 -0
  301. /django_cfg/apps/{accounts → business/accounts}/admin/__init__.py +0 -0
  302. /django_cfg/apps/{accounts → business/accounts}/admin/activity_admin.py +0 -0
  303. /django_cfg/apps/{accounts → business/accounts}/admin/filters.py +0 -0
  304. /django_cfg/apps/{accounts → business/accounts}/admin/group_admin.py +0 -0
  305. /django_cfg/apps/{accounts → business/accounts}/admin/otp_admin.py +0 -0
  306. /django_cfg/apps/{accounts → business/accounts}/admin/registration_admin.py +0 -0
  307. /django_cfg/apps/{accounts → business/accounts}/admin/resources.py +0 -0
  308. /django_cfg/apps/{accounts → business/accounts}/admin/twilio_admin.py +0 -0
  309. /django_cfg/apps/{accounts → business/accounts}/management/commands/otp_test.py +0 -0
  310. /django_cfg/apps/{accounts → business/accounts}/managers/__init__.py +0 -0
  311. /django_cfg/apps/{accounts → business/accounts}/migrations/0002_add_phone_otp_clean.py +0 -0
  312. /django_cfg/apps/{accounts → business/accounts}/migrations/0003_twilioresponse.py +0 -0
  313. /django_cfg/apps/{accounts → business/accounts}/migrations/0004_delete_twilioresponse.py +0 -0
  314. /django_cfg/apps/{accounts → business/accounts}/migrations/0005_twilioresponse.py +0 -0
  315. /django_cfg/apps/{accounts → business/accounts}/migrations/0006_remove_twilioresponse_otp_secret_and_more.py +0 -0
  316. /django_cfg/apps/{accounts → business/accounts}/migrations/0007_twilioresponse.py +0 -0
  317. /django_cfg/apps/{knowbase/management → business/accounts/migrations}/__init__.py +0 -0
  318. /django_cfg/apps/{accounts → business/accounts}/models/__init__.py +0 -0
  319. /django_cfg/apps/{accounts → business/accounts}/models/activity.py +0 -0
  320. /django_cfg/apps/{accounts → business/accounts}/models/auth.py +0 -0
  321. /django_cfg/apps/{accounts → business/accounts}/models/base.py +0 -0
  322. /django_cfg/apps/{accounts → business/accounts}/models/choices.py +0 -0
  323. /django_cfg/apps/{accounts → business/accounts}/models/integrations.py +0 -0
  324. /django_cfg/apps/{accounts → business/accounts}/models/registration.py +0 -0
  325. /django_cfg/apps/{accounts → business/accounts}/models/user.py +0 -0
  326. /django_cfg/apps/{accounts → business/accounts}/serializers/__init__.py +0 -0
  327. /django_cfg/apps/{accounts → business/accounts}/serializers/otp.py +0 -0
  328. /django_cfg/apps/{accounts → business/accounts}/serializers/profile.py +0 -0
  329. /django_cfg/apps/{accounts → business/accounts}/serializers/webhook.py +0 -0
  330. /django_cfg/apps/{accounts → business/accounts}/services/__init__.py +0 -0
  331. /django_cfg/apps/{accounts → business/accounts}/services/activity_service.py +0 -0
  332. /django_cfg/apps/{accounts → business/accounts}/services/otp_service.py +0 -0
  333. /django_cfg/apps/{accounts → business/accounts}/signals.py +0 -0
  334. /django_cfg/apps/{accounts → business/accounts}/templates/emails/base_email.html +0 -0
  335. /django_cfg/apps/{accounts → business/accounts}/templates/emails/base_email.txt +0 -0
  336. /django_cfg/apps/{accounts → business/accounts}/templates/emails/otp_email.html +0 -0
  337. /django_cfg/apps/{accounts → business/accounts}/templates/emails/otp_email.txt +0 -0
  338. /django_cfg/apps/{accounts → business/accounts}/templates/emails/welcome_email.html +0 -0
  339. /django_cfg/apps/{accounts → business/accounts}/templates/emails/welcome_email.txt +0 -0
  340. /django_cfg/apps/{accounts → business/accounts}/urls.py +0 -0
  341. /django_cfg/apps/{accounts → business/accounts}/urls_admin.py +0 -0
  342. /django_cfg/apps/{accounts → business/accounts}/utils/notifications.py +0 -0
  343. /django_cfg/apps/{accounts → business/accounts}/views/__init__.py +0 -0
  344. /django_cfg/apps/{accounts → business/accounts}/views/otp.py +0 -0
  345. /django_cfg/apps/{accounts → business/accounts}/views/profile.py +0 -0
  346. /django_cfg/apps/{accounts → business/accounts}/views/webhook.py +0 -0
  347. /django_cfg/apps/{agents → business/agents}/README.md +0 -0
  348. /django_cfg/apps/{agents → business/agents}/admin/__init__.py +0 -0
  349. /django_cfg/apps/{agents → business/agents}/admin/execution_actions.py +0 -0
  350. /django_cfg/apps/{agents → business/agents}/admin/execution_admin.py +0 -0
  351. /django_cfg/apps/{agents → business/agents}/admin/registry_actions.py +0 -0
  352. /django_cfg/apps/{agents → business/agents}/admin/registry_admin.py +0 -0
  353. /django_cfg/apps/{agents → business/agents}/admin/toolsets_actions.py +0 -0
  354. /django_cfg/apps/{agents → business/agents}/admin/toolsets_admin.py +0 -0
  355. /django_cfg/apps/{agents → business/agents}/core/__init__.py +0 -0
  356. /django_cfg/apps/{agents → business/agents}/core/dependencies.py +0 -0
  357. /django_cfg/apps/{agents → business/agents}/core/django_agent.py +0 -0
  358. /django_cfg/apps/{agents → business/agents}/core/exceptions.py +0 -0
  359. /django_cfg/apps/{agents → business/agents}/core/models.py +0 -0
  360. /django_cfg/apps/{agents → business/agents}/core/orchestrator.py +0 -0
  361. /django_cfg/apps/{agents → business/agents}/examples/__init__.py +0 -0
  362. /django_cfg/apps/{agents → business/agents}/examples/simple_example.py +0 -0
  363. /django_cfg/apps/{agents → business/agents}/integration/__init__.py +0 -0
  364. /django_cfg/apps/{agents → business/agents}/integration/middleware.py +0 -0
  365. /django_cfg/apps/{agents → business/agents}/integration/registry.py +0 -0
  366. /django_cfg/apps/{agents → business/agents}/integration/signals.py +0 -0
  367. /django_cfg/apps/{agents → business/agents}/management/__init__.py +0 -0
  368. /django_cfg/apps/{agents → business/agents}/management/commands/__init__.py +0 -0
  369. /django_cfg/apps/{agents → business/agents}/managers/__init__.py +0 -0
  370. /django_cfg/apps/{agents → business/agents}/managers/execution.py +0 -0
  371. /django_cfg/apps/{agents → business/agents}/managers/registry.py +0 -0
  372. /django_cfg/apps/{agents → business/agents}/managers/toolsets.py +0 -0
  373. /django_cfg/apps/{agents → business/agents}/migrations/0001_initial.py +0 -0
  374. /django_cfg/apps/{agents → business/agents}/migrations/__init__.py +0 -0
  375. /django_cfg/apps/{agents → business/agents}/models/__init__.py +0 -0
  376. /django_cfg/apps/{agents → business/agents}/models/execution.py +0 -0
  377. /django_cfg/apps/{agents → business/agents}/models/registry.py +0 -0
  378. /django_cfg/apps/{agents → business/agents}/models/toolsets.py +0 -0
  379. /django_cfg/apps/{agents → business/agents}/patterns/__init__.py +0 -0
  380. /django_cfg/apps/{agents → business/agents}/patterns/content_agents.py +0 -0
  381. /django_cfg/apps/{agents → business/agents}/toolsets/__init__.py +0 -0
  382. /django_cfg/apps/{agents → business/agents}/toolsets/cache_toolset.py +0 -0
  383. /django_cfg/apps/{agents → business/agents}/toolsets/django_toolset.py +0 -0
  384. /django_cfg/apps/{agents → business/agents}/toolsets/file_toolset.py +0 -0
  385. /django_cfg/apps/{agents → business/agents}/toolsets/orm_toolset.py +0 -0
  386. /django_cfg/apps/{agents → business/agents}/urls.py +0 -0
  387. /django_cfg/apps/{agents → business/agents}/urls_admin.py +0 -0
  388. /django_cfg/apps/{knowbase → business/knowbase}/README.md +0 -0
  389. /django_cfg/apps/{knowbase → business/knowbase}/admin/__init__.py +0 -0
  390. /django_cfg/apps/{knowbase → business/knowbase}/admin/archive_actions.py +0 -0
  391. /django_cfg/apps/{knowbase → business/knowbase}/admin/archive_admin.py +0 -0
  392. /django_cfg/apps/{knowbase → business/knowbase}/admin/chat_actions.py +0 -0
  393. /django_cfg/apps/{knowbase → business/knowbase}/admin/chat_admin.py +0 -0
  394. /django_cfg/apps/{knowbase → business/knowbase}/admin/document_actions.py +0 -0
  395. /django_cfg/apps/{knowbase → business/knowbase}/admin/document_admin.py +0 -0
  396. /django_cfg/apps/{knowbase → business/knowbase}/admin/external_data_actions.py +0 -0
  397. /django_cfg/apps/{knowbase → business/knowbase}/admin/external_data_admin.py +0 -0
  398. /django_cfg/apps/{knowbase → business/knowbase}/config/README.md +0 -0
  399. /django_cfg/apps/{knowbase → business/knowbase}/config/__init__.py +0 -0
  400. /django_cfg/apps/{knowbase → business/knowbase}/config/constance_fields.py +0 -0
  401. /django_cfg/apps/{knowbase → business/knowbase}/config/constance_settings.py +0 -0
  402. /django_cfg/apps/{knowbase → business/knowbase}/config/settings.py +0 -0
  403. /django_cfg/apps/{knowbase/management/commands → business/knowbase/management}/__init__.py +0 -0
  404. /django_cfg/apps/{leads → business/knowbase/management/commands}/__init__.py +0 -0
  405. /django_cfg/apps/{knowbase → business/knowbase}/management/commands/knowbase_stats.py +0 -0
  406. /django_cfg/apps/{knowbase → business/knowbase}/management/commands/setup_knowbase.py +0 -0
  407. /django_cfg/apps/{knowbase → business/knowbase}/managers/__init__.py +0 -0
  408. /django_cfg/apps/{knowbase → business/knowbase}/managers/archive.py +0 -0
  409. /django_cfg/apps/{knowbase → business/knowbase}/managers/base.py +0 -0
  410. /django_cfg/apps/{knowbase → business/knowbase}/managers/chat.py +0 -0
  411. /django_cfg/apps/{knowbase → business/knowbase}/managers/document.py +0 -0
  412. /django_cfg/apps/{knowbase → business/knowbase}/managers/external_data.py +0 -0
  413. /django_cfg/apps/{knowbase → business/knowbase}/migrations/0001_initial.py +0 -0
  414. /django_cfg/apps/{knowbase → business/knowbase}/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +0 -0
  415. /django_cfg/apps/{knowbase → business/knowbase}/migrations/0003_alter_documentarchive_archive_type.py +0 -0
  416. /django_cfg/apps/{knowbase → business/knowbase}/migrations/__init__.py +0 -0
  417. /django_cfg/apps/{knowbase → business/knowbase}/mixins/__init__.py +0 -0
  418. /django_cfg/apps/{knowbase → business/knowbase}/mixins/config/__init__.py +0 -0
  419. /django_cfg/apps/{knowbase → business/knowbase}/mixins/config/defaults.py +0 -0
  420. /django_cfg/apps/{knowbase → business/knowbase}/mixins/config/meta_config.py +0 -0
  421. /django_cfg/apps/{knowbase → business/knowbase}/mixins/config.py +0 -0
  422. /django_cfg/apps/{knowbase → business/knowbase}/mixins/creator.py +0 -0
  423. /django_cfg/apps/{knowbase → business/knowbase}/mixins/external_data_mixin.py +0 -0
  424. /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/__init__.py +0 -0
  425. /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/content_generator.py +0 -0
  426. /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/field_analyzer.py +0 -0
  427. /django_cfg/apps/{knowbase → business/knowbase}/mixins/generators/metadata_generator.py +0 -0
  428. /django_cfg/apps/{knowbase → business/knowbase}/models/__init__.py +0 -0
  429. /django_cfg/apps/{knowbase → business/knowbase}/models/archive.py +0 -0
  430. /django_cfg/apps/{knowbase → business/knowbase}/models/base.py +0 -0
  431. /django_cfg/apps/{knowbase → business/knowbase}/models/chat.py +0 -0
  432. /django_cfg/apps/{knowbase → business/knowbase}/models/document.py +0 -0
  433. /django_cfg/apps/{knowbase → business/knowbase}/serializers/__init__.py +0 -0
  434. /django_cfg/apps/{knowbase → business/knowbase}/serializers/archive_serializers.py +0 -0
  435. /django_cfg/apps/{knowbase → business/knowbase}/serializers/chat_serializers.py +0 -0
  436. /django_cfg/apps/{knowbase → business/knowbase}/serializers/document_serializers.py +0 -0
  437. /django_cfg/apps/{knowbase → business/knowbase}/serializers/external_data_serializers.py +0 -0
  438. /django_cfg/apps/{knowbase → business/knowbase}/serializers/public_serializers.py +0 -0
  439. /django_cfg/apps/{knowbase → business/knowbase}/services/__init__.py +0 -0
  440. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/__init__.py +0 -0
  441. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/__init__.py +0 -0
  442. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/complexity_analyzer.py +0 -0
  443. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/purpose_detector.py +0 -0
  444. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/quality_analyzer.py +0 -0
  445. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/analyzers/tag_generator.py +0 -0
  446. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/archive_service.py +0 -0
  447. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/__init__.py +0 -0
  448. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/base.py +0 -0
  449. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/json_chunker.py +0 -0
  450. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/markdown_chunker.py +0 -0
  451. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/python_chunker.py +0 -0
  452. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking/text_chunker.py +0 -0
  453. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/chunking_service.py +0 -0
  454. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/context/__init__.py +0 -0
  455. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/context/builders.py +0 -0
  456. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/context/models.py +0 -0
  457. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/exceptions.py +0 -0
  458. /django_cfg/apps/{knowbase → business/knowbase}/services/archive/extraction_service.py +0 -0
  459. /django_cfg/apps/{knowbase → business/knowbase}/services/base.py +0 -0
  460. /django_cfg/apps/{knowbase → business/knowbase}/services/chat_service.py +0 -0
  461. /django_cfg/apps/{knowbase → business/knowbase}/services/document_service.py +0 -0
  462. /django_cfg/apps/{knowbase → business/knowbase}/services/embedding/__init__.py +0 -0
  463. /django_cfg/apps/{knowbase → business/knowbase}/services/embedding/batch_result.py +0 -0
  464. /django_cfg/apps/{knowbase → business/knowbase}/services/embedding/models.py +0 -0
  465. /django_cfg/apps/{knowbase → business/knowbase}/services/prompt_builder.py +0 -0
  466. /django_cfg/apps/{knowbase → business/knowbase}/services/search_service.py +0 -0
  467. /django_cfg/apps/{knowbase → business/knowbase}/signals/__init__.py +0 -0
  468. /django_cfg/apps/{knowbase → business/knowbase}/signals/archive_signals.py +0 -0
  469. /django_cfg/apps/{knowbase → business/knowbase}/signals/chat_signals.py +0 -0
  470. /django_cfg/apps/{knowbase → business/knowbase}/signals/document_signals.py +0 -0
  471. /django_cfg/apps/{knowbase → business/knowbase}/signals/external_data_signals.py +0 -0
  472. /django_cfg/apps/{knowbase → business/knowbase}/tasks/__init__.py +0 -0
  473. /django_cfg/apps/{knowbase → business/knowbase}/tasks/archive_tasks.py +0 -0
  474. /django_cfg/apps/{knowbase → business/knowbase}/tasks/external_data_tasks.py +0 -0
  475. /django_cfg/apps/{knowbase → business/knowbase}/tasks/maintenance.py +0 -0
  476. /django_cfg/apps/{knowbase → business/knowbase}/urls.py +0 -0
  477. /django_cfg/apps/{knowbase → business/knowbase}/urls_admin.py +0 -0
  478. /django_cfg/apps/{knowbase → business/knowbase}/urls_system.py +0 -0
  479. /django_cfg/apps/{knowbase → business/knowbase}/utils/__init__.py +0 -0
  480. /django_cfg/apps/{knowbase → business/knowbase}/utils/text_processing.py +0 -0
  481. /django_cfg/apps/{knowbase → business/knowbase}/utils/validation.py +0 -0
  482. /django_cfg/apps/{knowbase → business/knowbase}/views/__init__.py +0 -0
  483. /django_cfg/apps/{knowbase → business/knowbase}/views/base.py +0 -0
  484. /django_cfg/apps/{knowbase → business/knowbase}/views/chat_views.py +0 -0
  485. /django_cfg/apps/{knowbase → business/knowbase}/views/document_views.py +0 -0
  486. /django_cfg/apps/{knowbase → business/knowbase}/views/public_views.py +0 -0
  487. /django_cfg/apps/{leads → business/leads}/README.md +0 -0
  488. /django_cfg/apps/{leads/migrations → business/leads}/__init__.py +0 -0
  489. /django_cfg/apps/{leads → business/leads}/admin/__init__.py +0 -0
  490. /django_cfg/apps/{leads → business/leads}/admin/actions.py +0 -0
  491. /django_cfg/apps/{leads → business/leads}/admin/leads_admin.py +0 -0
  492. /django_cfg/apps/{leads → business/leads}/admin/resources.py +0 -0
  493. /django_cfg/apps/{leads → business/leads}/admin.py +0 -0
  494. /django_cfg/apps/{leads → business/leads}/migrations/0001_initial.py +0 -0
  495. /django_cfg/apps/{maintenance/management → business/leads/migrations}/__init__.py +0 -0
  496. /django_cfg/apps/{leads → business/leads}/models.py +0 -0
  497. /django_cfg/apps/{leads → business/leads}/serializers.py +0 -0
  498. /django_cfg/apps/{leads → business/leads}/signals.py +0 -0
  499. /django_cfg/apps/{leads → business/leads}/tests.py +0 -0
  500. /django_cfg/apps/{leads → business/leads}/urls.py +0 -0
  501. /django_cfg/apps/{leads → business/leads}/urls_admin.py +0 -0
  502. /django_cfg/apps/{leads → business/leads}/views.py +0 -0
  503. /django_cfg/apps/{newsletter → business/newsletter}/README.md +0 -0
  504. /django_cfg/apps/{maintenance/management/commands → business/newsletter}/__init__.py +0 -0
  505. /django_cfg/apps/{newsletter → business/newsletter}/admin/__init__.py +0 -0
  506. /django_cfg/apps/{newsletter → business/newsletter}/admin/actions.py +0 -0
  507. /django_cfg/apps/{newsletter → business/newsletter}/admin/filters.py +0 -0
  508. /django_cfg/apps/{newsletter → business/newsletter}/admin/resources.py +0 -0
  509. /django_cfg/apps/{newsletter → business/newsletter}/admin.py +0 -0
  510. /django_cfg/apps/{newsletter → business/newsletter}/admin_filters.py +0 -0
  511. /django_cfg/apps/{maintenance/migrations → business/newsletter/management}/__init__.py +0 -0
  512. /django_cfg/apps/{newsletter → business/newsletter/management/commands}/__init__.py +0 -0
  513. /django_cfg/apps/{newsletter → business/newsletter}/managers/README.md +0 -0
  514. /django_cfg/apps/{newsletter → business/newsletter}/managers/__init__.py +0 -0
  515. /django_cfg/apps/{newsletter → business/newsletter}/migrations/0001_initial.py +0 -0
  516. /django_cfg/apps/{newsletter/management → business/newsletter/migrations}/__init__.py +0 -0
  517. /django_cfg/apps/{newsletter → business/newsletter}/models.py +0 -0
  518. /django_cfg/apps/{newsletter → business/newsletter}/serializers.py +0 -0
  519. /django_cfg/apps/{newsletter → business/newsletter}/services/email_service.py +0 -0
  520. /django_cfg/apps/{newsletter → business/newsletter}/signals.py +0 -0
  521. /django_cfg/apps/{newsletter → business/newsletter}/urls.py +0 -0
  522. /django_cfg/apps/{maintenance → business/newsletter}/urls_admin.py +0 -0
  523. /django_cfg/apps/{newsletter → business/newsletter}/utils/__init__.py +0 -0
  524. /django_cfg/apps/{newsletter → business/newsletter}/views/__init__.py +0 -0
  525. /django_cfg/apps/{newsletter → business/newsletter}/views/campaigns.py +0 -0
  526. /django_cfg/apps/{newsletter → business/newsletter}/views/emails.py +0 -0
  527. /django_cfg/apps/{newsletter → business/newsletter}/views/newsletters.py +0 -0
  528. /django_cfg/apps/{newsletter → business/newsletter}/views/subscriptions.py +0 -0
  529. /django_cfg/apps/{newsletter → business/newsletter}/views/tracking.py +0 -0
  530. /django_cfg/apps/{payments → business/payments}/CONFIGURATION.md +0 -0
  531. /django_cfg/apps/{payments → business/payments}/admin/__init__.py +0 -0
  532. /django_cfg/apps/{payments → business/payments}/admin/actions.py +0 -0
  533. /django_cfg/apps/{payments → business/payments}/admin/balance_actions.py +0 -0
  534. /django_cfg/apps/{payments → business/payments}/admin/currency_admin.py +0 -0
  535. /django_cfg/apps/{payments → business/payments}/admin/filters.py +0 -0
  536. /django_cfg/apps/{payments → business/payments}/admin/payment_actions.py +0 -0
  537. /django_cfg/apps/{payments → business/payments}/admin/withdrawal_actions.py +0 -0
  538. /django_cfg/apps/{payments → business/payments}/api/__init__.py +0 -0
  539. /django_cfg/apps/{payments → business/payments}/api/serializers.py +0 -0
  540. /django_cfg/apps/{payments → business/payments}/api/urls.py +0 -0
  541. /django_cfg/apps/{payments → business/payments}/api/views.py +0 -0
  542. /django_cfg/apps/{payments → business/payments}/config.py +0 -0
  543. /django_cfg/apps/{payments → business/payments}/management/README.md +0 -0
  544. /django_cfg/apps/{newsletter/management/commands → business/payments/management}/__init__.py +0 -0
  545. /django_cfg/apps/{newsletter/migrations → business/payments/management/commands}/__init__.py +0 -0
  546. /django_cfg/apps/{payments → business/payments}/migrations/0001_initial.py +0 -0
  547. /django_cfg/apps/{payments/management → business/payments/migrations}/__init__.py +0 -0
  548. /django_cfg/apps/{payments → business/payments}/models/__init__.py +0 -0
  549. /django_cfg/apps/{payments → business/payments}/models/balance.py +0 -0
  550. /django_cfg/apps/{payments → business/payments}/models/base.py +0 -0
  551. /django_cfg/apps/{payments → business/payments}/models/currency.py +0 -0
  552. /django_cfg/apps/{payments → business/payments}/models/managers/__init__.py +0 -0
  553. /django_cfg/apps/{payments → business/payments}/models/managers/balance_managers.py +0 -0
  554. /django_cfg/apps/{payments → business/payments}/models/managers/payment_managers.py +0 -0
  555. /django_cfg/apps/{payments → business/payments}/models/payment.py +0 -0
  556. /django_cfg/apps/{payments → business/payments}/models/withdrawal.py +0 -0
  557. /django_cfg/apps/{payments → business/payments}/services/__init__.py +0 -0
  558. /django_cfg/apps/{payments → business/payments}/services/balance_service.py +0 -0
  559. /django_cfg/apps/{payments → business/payments}/services/payment_service.py +0 -0
  560. /django_cfg/apps/{payments → business/payments}/services/providers/__init__.py +0 -0
  561. /django_cfg/apps/{payments → business/payments}/services/providers/models.py +0 -0
  562. /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/__init__.py +0 -0
  563. /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/config.py +0 -0
  564. /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/parser.py +0 -0
  565. /django_cfg/apps/{payments → business/payments}/services/providers/nowpayments/provider.py +0 -0
  566. /django_cfg/apps/{payments/management/commands → business/support}/__init__.py +0 -0
  567. /django_cfg/apps/{support → business/support}/admin/__init__.py +0 -0
  568. /django_cfg/apps/{support → business/support}/admin/actions.py +0 -0
  569. /django_cfg/apps/{support → business/support}/admin/filters.py +0 -0
  570. /django_cfg/apps/{support → business/support}/admin/resources.py +0 -0
  571. /django_cfg/apps/{support → business/support}/admin/support_admin.py +0 -0
  572. /django_cfg/apps/{support → business/support}/admin.py +0 -0
  573. /django_cfg/apps/{support → business/support}/admin_filters.py +0 -0
  574. /django_cfg/apps/{support → business/support}/migrations/0001_initial.py +0 -0
  575. /django_cfg/apps/{support → business/support}/migrations/0002_alter_message_ticket.py +0 -0
  576. /django_cfg/apps/{payments → business/support}/migrations/__init__.py +0 -0
  577. /django_cfg/apps/{support → business/support}/models.py +0 -0
  578. /django_cfg/apps/{support → business/support}/serializers.py +0 -0
  579. /django_cfg/apps/{support → business/support}/signals.py +0 -0
  580. /django_cfg/apps/{support → business/support}/templates/support/chat/access_denied.html +0 -0
  581. /django_cfg/apps/{support → business/support}/templates/support/chat/ticket_chat.html +0 -0
  582. /django_cfg/apps/{support → business/support}/urls.py +0 -0
  583. /django_cfg/apps/{newsletter → business/support}/urls_admin.py +0 -0
  584. /django_cfg/apps/{support → business/support/utils}/__init__.py +0 -0
  585. /django_cfg/apps/{support → business/support}/utils/support_email_service.py +0 -0
  586. /django_cfg/apps/{support → business/support}/views/__init__.py +0 -0
  587. /django_cfg/apps/{support → business/support}/views/admin.py +0 -0
  588. /django_cfg/apps/{support → business/support}/views/api.py +0 -0
  589. /django_cfg/apps/{support → business/support}/views/chat.py +0 -0
  590. /django_cfg/apps/{support/migrations → integrations}/__init__.py +0 -0
  591. /django_cfg/apps/{centrifugo → integrations/centrifugo}/admin/__init__.py +0 -0
  592. /django_cfg/apps/{centrifugo → integrations/centrifugo}/admin/config.py +0 -0
  593. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/IMPLEMENTATION_SUMMARY.md +0 -0
  594. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/README.md +0 -0
  595. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/USAGE.md +0 -0
  596. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/__init__.py +0 -0
  597. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/discovery.py +0 -0
  598. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/__init__.py +0 -0
  599. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/generator.py +0 -0
  600. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/README.md.j2 +0 -0
  601. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/client.go.j2 +0 -0
  602. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/go.mod.j2 +0 -0
  603. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/rpc_client.go.j2 +0 -0
  604. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/rpc_client.go.j2.old +0 -0
  605. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/go_thin/templates/types.go.j2 +0 -0
  606. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/__init__.py +0 -0
  607. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/generator.py +0 -0
  608. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/README.md.j2 +0 -0
  609. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/__init__.py.j2 +0 -0
  610. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/client.py.j2 +0 -0
  611. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/models.py.j2 +0 -0
  612. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/requirements.txt.j2 +0 -0
  613. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/python_thin/templates/rpc_client.py.j2 +0 -0
  614. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/__init__.py +0 -0
  615. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/generator.py +0 -0
  616. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/README.md.j2 +0 -0
  617. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/client.ts.j2 +0 -0
  618. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/index.ts.j2 +0 -0
  619. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/package.json.j2 +0 -0
  620. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/rpc-client.ts.j2 +0 -0
  621. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/tsconfig.json.j2 +0 -0
  622. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/generators/typescript_thin/templates/types.ts.j2 +0 -0
  623. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/utils/__init__.py +0 -0
  624. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/utils/naming.py +0 -0
  625. /django_cfg/apps/{centrifugo → integrations/centrifugo}/codegen/utils/type_converter.py +0 -0
  626. /django_cfg/apps/{centrifugo → integrations/centrifugo}/decorators.py +0 -0
  627. /django_cfg/apps/{centrifugo → integrations/centrifugo}/management/__init__.py +0 -0
  628. /django_cfg/apps/{centrifugo → integrations/centrifugo}/management/commands/__init__.py +0 -0
  629. /django_cfg/apps/{centrifugo → integrations/centrifugo}/managers/__init__.py +0 -0
  630. /django_cfg/apps/{centrifugo → integrations/centrifugo}/managers/centrifugo_log.py +0 -0
  631. /django_cfg/apps/{centrifugo → integrations/centrifugo}/migrations/0001_initial.py +0 -0
  632. /django_cfg/apps/{centrifugo → integrations/centrifugo}/migrations/__init__.py +0 -0
  633. /django_cfg/apps/{centrifugo → integrations/centrifugo}/models/__init__.py +0 -0
  634. /django_cfg/apps/{centrifugo → integrations/centrifugo}/models/centrifugo_log.py +0 -0
  635. /django_cfg/apps/{centrifugo → integrations/centrifugo}/registry.py +0 -0
  636. /django_cfg/apps/{centrifugo → integrations/centrifugo}/router.py +0 -0
  637. /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/admin_api.py +0 -0
  638. /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/channels.py +0 -0
  639. /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/health.py +0 -0
  640. /django_cfg/apps/{centrifugo → integrations/centrifugo}/serializers/publishes.py +0 -0
  641. /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/__init__.py +0 -0
  642. /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/__init__.py +0 -0
  643. /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/client/exceptions.py +0 -0
  644. /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/config_helper.py +0 -0
  645. /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/dashboard_notifier.py +0 -0
  646. /django_cfg/apps/{centrifugo → integrations/centrifugo}/services/logging.py +0 -0
  647. /django_cfg/apps/{centrifugo → integrations/centrifugo}/urls.py +0 -0
  648. /django_cfg/apps/{centrifugo → integrations/centrifugo}/views/__init__.py +0 -0
  649. /django_cfg/apps/{centrifugo → integrations/centrifugo}/views/admin_api.py +0 -0
  650. /django_cfg/apps/{centrifugo → integrations/centrifugo}/views/testing_api.py +0 -0
  651. /django_cfg/apps/{support/utils → integrations/grpc/management/commands}/__init__.py +0 -0
  652. /django_cfg/apps/{tasks → integrations/grpc}/migrations/__init__.py +0 -0
  653. /django_cfg/apps/{dashboard → system/dashboard}/serializers/apizones.py +0 -0
  654. /django_cfg/apps/{dashboard → system/dashboard}/serializers/base.py +0 -0
  655. /django_cfg/apps/{dashboard → system/dashboard}/serializers/charts.py +0 -0
  656. /django_cfg/apps/{dashboard → system/dashboard}/serializers/commands.py +0 -0
  657. /django_cfg/apps/{dashboard → system/dashboard}/serializers/overview.py +0 -0
  658. /django_cfg/apps/{dashboard → system/dashboard}/serializers/statistics.py +0 -0
  659. /django_cfg/apps/{dashboard → system/dashboard}/serializers/system.py +0 -0
  660. /django_cfg/apps/{dashboard → system/dashboard}/services/apizones_service.py +0 -0
  661. /django_cfg/apps/{dashboard → system/dashboard}/services/commands_security.py +0 -0
  662. /django_cfg/apps/{dashboard → system/dashboard}/services/commands_service.py +0 -0
  663. /django_cfg/apps/{dashboard → system/dashboard}/services/overview_service.py +0 -0
  664. /django_cfg/apps/{dashboard → system/dashboard}/views/activity_views.py +0 -0
  665. /django_cfg/apps/{dashboard → system/dashboard}/views/apizones_views.py +0 -0
  666. /django_cfg/apps/{dashboard → system/dashboard}/views/charts_views.py +0 -0
  667. /django_cfg/apps/{dashboard → system/dashboard}/views/statistics_views.py +0 -0
  668. /django_cfg/apps/{dashboard → system/dashboard}/views/system_views.py +0 -0
  669. /django_cfg/apps/{frontend → system/frontend}/JWT_AUTO_INJECTION.md +0 -0
  670. /django_cfg/apps/{frontend → system/frontend}/templates/frontend/404.html +0 -0
  671. /django_cfg/apps/{frontend → system/frontend}/test_routing.py +0 -0
  672. /django_cfg/apps/{frontend → system/frontend}/urls.py +0 -0
  673. /django_cfg/apps/{maintenance → system/maintenance}/admin/__init__.py +0 -0
  674. /django_cfg/apps/{maintenance → system/maintenance}/admin/actions.py +0 -0
  675. /django_cfg/apps/{maintenance → system/maintenance}/admin/log_admin.py +0 -0
  676. /django_cfg/apps/{maintenance → system/maintenance}/management/commands/maintenance.py +0 -0
  677. /django_cfg/apps/{maintenance → system/maintenance}/management/commands/process_scheduled_maintenance.py +0 -0
  678. /django_cfg/apps/{maintenance → system/maintenance}/management/commands/sync_cloudflare.py +0 -0
  679. /django_cfg/apps/{maintenance → system/maintenance}/managers/__init__.py +0 -0
  680. /django_cfg/apps/{maintenance → system/maintenance}/managers/cloudflare_site_manager.py +0 -0
  681. /django_cfg/apps/{maintenance → system/maintenance}/managers/maintenance_log_manager.py +0 -0
  682. /django_cfg/apps/{maintenance → system/maintenance}/migrations/0001_initial.py +0 -0
  683. /django_cfg/apps/{maintenance → system/maintenance}/migrations/0002_cloudflaresite_maintenance_url.py +0 -0
  684. /django_cfg/apps/{maintenance → system/maintenance}/migrations/0003_cloudflaresite_include_subdomains_and_more.py +0 -0
  685. /django_cfg/apps/{maintenance → system/maintenance}/models/cloudflare_api_key.py +0 -0
  686. /django_cfg/apps/{maintenance → system/maintenance}/models/cloudflare_site.py +0 -0
  687. /django_cfg/apps/{maintenance → system/maintenance}/models/maintenance_log.py +0 -0
  688. /django_cfg/apps/{maintenance → system/maintenance}/models/scheduled_maintenance.py +0 -0
  689. /django_cfg/apps/{maintenance → system/maintenance}/services/bulk_operations_service.py +0 -0
  690. /django_cfg/apps/{maintenance → system/maintenance}/services/maintenance_service.py +0 -0
  691. /django_cfg/apps/{maintenance → system/maintenance}/services/scheduled_maintenance_service.py +0 -0
  692. /django_cfg/apps/{maintenance → system/maintenance}/services/site_sync_service.py +0 -0
  693. /django_cfg/apps/{maintenance → system/maintenance}/urls.py +0 -0
  694. /django_cfg/apps/{support → system/maintenance}/urls_admin.py +0 -0
  695. /django_cfg/apps/{maintenance → system/maintenance}/utils/__init__.py +0 -0
  696. /django_cfg/apps/{maintenance → system/maintenance}/utils/retry_utils.py +0 -0
  697. /django_cfg/modules/django_admin/utils/{mermaid_plugin.py → markdown/mermaid_plugin.py} +0 -0
  698. /django_cfg/modules/django_admin/utils/{markdown_renderer.py → markdown/renderer.py} +0 -0
  699. {django_cfg-1.4.114.dist-info → django_cfg-1.5.8.dist-info}/WHEEL +0 -0
  700. {django_cfg-1.4.114.dist-info → django_cfg-1.5.8.dist-info}/entry_points.txt +0 -0
  701. {django_cfg-1.4.114.dist-info → django_cfg-1.5.8.dist-info}/licenses/LICENSE +0 -0
@@ -11,7 +11,7 @@ from .activity_views import ActivityViewSet
11
11
  from .charts_views import ChartsViewSet
12
12
  from .commands_views import CommandsViewSet
13
13
  from .apizones_views import APIZonesViewSet
14
- from .django_q2_views import DjangoQ2ViewSet
14
+ from .config_views import ConfigViewSet
15
15
 
16
16
  __all__ = [
17
17
  'OverviewViewSet',
@@ -21,5 +21,5 @@ __all__ = [
21
21
  'ChartsViewSet',
22
22
  'CommandsViewSet',
23
23
  'APIZonesViewSet',
24
- 'DjangoQ2ViewSet',
24
+ 'ConfigViewSet',
25
25
  ]
@@ -12,14 +12,12 @@ import json
12
12
  import logging
13
13
 
14
14
  from django.http import StreamingHttpResponse
15
+ from django_cfg.mixins import SuperAdminAPIMixin
15
16
  from drf_spectacular.utils import extend_schema
16
17
  from rest_framework import status, viewsets
17
- from rest_framework.authentication import BasicAuthentication, SessionAuthentication
18
18
  from rest_framework.decorators import action
19
19
  from rest_framework.response import Response
20
- from rest_framework_simplejwt.authentication import JWTAuthentication
21
20
 
22
- from ..permissions import IsSuperAdmin
23
21
  from ..services import CommandsService
24
22
  from ..serializers import (
25
23
  CommandSerializer,
@@ -31,15 +29,14 @@ from ..serializers import (
31
29
  logger = logging.getLogger(__name__)
32
30
 
33
31
 
34
- class CommandsViewSet(viewsets.GenericViewSet):
32
+ class CommandsViewSet(SuperAdminAPIMixin, viewsets.GenericViewSet):
35
33
  """
36
34
  Commands ViewSet
37
35
 
38
36
  Provides endpoints for Django management commands discovery.
37
+ Requires superuser privileges for all operations.
39
38
  """
40
39
 
41
- authentication_classes = [JWTAuthentication, SessionAuthentication, BasicAuthentication]
42
- permission_classes = [IsSuperAdmin] # Only superusers can access commands
43
40
  serializer_class = CommandSerializer
44
41
  pagination_class = None # Disable pagination for commands list
45
42
 
@@ -0,0 +1,69 @@
1
+ """
2
+ Config ViewSet
3
+
4
+ Endpoint for viewing Django configuration:
5
+ - GET /config/ - Get DjangoConfig and Django settings
6
+ """
7
+
8
+ import logging
9
+
10
+ from django.db import transaction
11
+ from drf_spectacular.utils import extend_schema
12
+ from rest_framework import status, viewsets
13
+
14
+ from django_cfg.mixins import AdminAPIMixin
15
+ from rest_framework.decorators import action
16
+ from rest_framework.response import Response
17
+
18
+ from ..services import ConfigService
19
+ from ..serializers import ConfigDataSerializer
20
+
21
+ logger = logging.getLogger(__name__)
22
+
23
+
24
+ class ConfigViewSet(AdminAPIMixin, viewsets.GenericViewSet):
25
+ """
26
+ Configuration ViewSet
27
+
28
+ Provides endpoint to view user's DjangoConfig settings and Django settings.
29
+ Requires admin authentication (JWT, Session, or Basic Auth).
30
+ """
31
+
32
+ serializer_class = ConfigDataSerializer
33
+
34
+ @transaction.non_atomic_requests
35
+ def dispatch(self, request, *args, **kwargs):
36
+ """Disable atomic requests for this viewset."""
37
+ return super().dispatch(request, *args, **kwargs)
38
+
39
+ @extend_schema(
40
+ summary="Get configuration data",
41
+ description="Retrieve user's DjangoConfig settings and complete Django settings (sanitized)",
42
+ responses={200: ConfigDataSerializer},
43
+ tags=["Dashboard - Config"]
44
+ )
45
+ @action(detail=False, methods=['get'], url_path='', url_name='config')
46
+ def config(self, request):
47
+ """Get configuration data with validation."""
48
+ try:
49
+ config_service = ConfigService()
50
+
51
+ django_config = config_service.get_config_data()
52
+ django_settings = config_service.get_django_settings()
53
+
54
+ # Validate serializer against actual config
55
+ validation_result = config_service.validate_serializer(django_config)
56
+
57
+ data = {
58
+ 'django_config': django_config,
59
+ 'django_settings': django_settings,
60
+ '_validation': validation_result,
61
+ }
62
+
63
+ return Response(data)
64
+
65
+ except Exception as e:
66
+ logger.error(f"Config API error: {e}", exc_info=True)
67
+ return Response({
68
+ 'error': str(e)
69
+ }, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@@ -8,6 +8,7 @@ Endpoint for complete dashboard overview:
8
8
  import logging
9
9
  from datetime import datetime
10
10
 
11
+ from django.db import transaction
11
12
  from drf_spectacular.utils import extend_schema
12
13
  from rest_framework import status, viewsets
13
14
 
@@ -32,6 +33,11 @@ class OverviewViewSet(AdminAPIMixin, viewsets.GenericViewSet):
32
33
 
33
34
  serializer_class = DashboardOverviewSerializer
34
35
 
36
+ @transaction.non_atomic_requests
37
+ def dispatch(self, request, *args, **kwargs):
38
+ """Disable atomic requests for this viewset."""
39
+ return super().dispatch(request, *args, **kwargs)
40
+
35
41
  @extend_schema(
36
42
  summary="Get dashboard overview",
37
43
  description="Retrieve complete dashboard data including stats, health, actions, and metrics",
@@ -40,24 +46,19 @@ class OverviewViewSet(AdminAPIMixin, viewsets.GenericViewSet):
40
46
  )
41
47
  @action(detail=False, methods=['get'], url_path='', url_name='overview')
42
48
  def overview(self, request):
43
- """
44
- Get complete dashboard overview.
45
-
46
- Returns all dashboard data in a single request:
47
- - Statistics cards
48
- - System health status
49
- - Quick actions
50
- - Recent activity
51
- - System metrics
52
- - User statistics
53
- """
49
+ """Get complete dashboard overview."""
54
50
  try:
55
51
  stats_service = StatisticsService()
56
52
  health_service = SystemHealthService()
57
53
  charts_service = ChartsService()
58
54
 
59
- # Get app statistics and convert to list format
60
- app_stats_dict = stats_service.get_app_statistics()
55
+ # Get app statistics - wrapped in try/except since it queries all models
56
+ try:
57
+ app_stats_dict = stats_service.get_app_statistics()
58
+ except Exception as e:
59
+ logger.error(f"Error getting app stats: {e}")
60
+ app_stats_dict = {'apps': {}}
61
+
61
62
  app_statistics_list = [
62
63
  {
63
64
  'app_name': app_label,
@@ -1,6 +1,6 @@
1
1
  """Django CFG Frontend App - Serves Next.js static builds."""
2
2
 
3
- default_app_config = 'django_cfg.apps.frontend.apps.FrontendConfig'
3
+ default_app_config = 'django_cfg.apps.system.frontend.apps.FrontendConfig'
4
4
 
5
5
  # Convenience imports
6
6
  from .setup import (
@@ -7,7 +7,7 @@ class FrontendConfig(AppConfig):
7
7
  """Configuration for Django CFG Frontend app."""
8
8
 
9
9
  default_auto_field = 'django.db.models.BigAutoField'
10
- name = 'django_cfg.apps.frontend'
10
+ name = 'django_cfg.apps.system.frontend'
11
11
  verbose_name = 'Frontend Applications'
12
12
 
13
13
  def ready(self):
@@ -19,7 +19,7 @@ def setup_frontend_serving(settings: 'Settings' = None) -> dict:
19
19
 
20
20
  Usage in settings.py:
21
21
  ```python
22
- from django_cfg.apps.frontend.setup import setup_frontend_serving
22
+ from django_cfg.apps.system.frontend.setup import setup_frontend_serving
23
23
 
24
24
  # Apply frontend configuration
25
25
  frontend_config = setup_frontend_serving()
@@ -36,7 +36,7 @@ def setup_frontend_serving(settings: 'Settings' = None) -> dict:
36
36
 
37
37
  config = {
38
38
  'INSTALLED_APPS': [
39
- 'django_cfg.apps.frontend',
39
+ 'django_cfg.apps.system.frontend',
40
40
  ],
41
41
  }
42
42
 
@@ -54,7 +54,7 @@ def get_frontend_path(app_name: str = 'admin') -> Path:
54
54
  Path: Absolute path to the frontend build directory
55
55
 
56
56
  Example:
57
- >>> from django_cfg.apps.frontend.setup import get_frontend_path
57
+ >>> from django_cfg.apps.system.frontend.setup import get_frontend_path
58
58
  >>> admin_path = get_frontend_path('admin')
59
59
  >>> print(admin_path)
60
60
  /path/to/django_cfg/static/frontend/admin
@@ -84,7 +84,7 @@ def get_frontend_urls():
84
84
 
85
85
  Usage in urls.py:
86
86
  ```python
87
- from django_cfg.apps.frontend.setup import get_frontend_urls
87
+ from django_cfg.apps.system.frontend.setup import get_frontend_urls
88
88
 
89
89
  urlpatterns = [
90
90
  # Your URLs here
@@ -101,5 +101,5 @@ def get_frontend_urls():
101
101
  from django.urls import path, include
102
102
 
103
103
  return [
104
- path('', include('django_cfg.apps.frontend.urls', namespace='frontend')),
104
+ path('', include('django_cfg.apps.system.frontend.urls', namespace='frontend')),
105
105
  ]
@@ -22,7 +22,8 @@ from django.views.static import serve
22
22
  from django.views import View
23
23
  from django.views.decorators.clickjacking import xframe_options_exempt
24
24
  from django.utils.decorators import method_decorator
25
- from django.shortcuts import render
25
+ from django.shortcuts import render, redirect
26
+ from django.contrib.auth.mixins import UserPassesTestMixin
26
27
  from rest_framework_simplejwt.tokens import RefreshToken
27
28
 
28
29
  logger = logging.getLogger(__name__)
@@ -356,6 +357,20 @@ class NextJSStaticView(ZipExtractionMixin, View):
356
357
  logger.error(f"Failed to inject JWT tokens for user {request.user.pk}: {e}", exc_info=True)
357
358
 
358
359
 
359
- class AdminView(NextJSStaticView):
360
- """Serve Next.js Admin Panel."""
360
+ class AdminView(UserPassesTestMixin, NextJSStaticView):
361
+ """Serve Next.js Admin Panel. Only accessible to admin users."""
361
362
  app_name = 'admin'
363
+
364
+ def test_func(self):
365
+ """Check if user is admin (staff or superuser)."""
366
+ return self.request.user.is_authenticated and (
367
+ self.request.user.is_staff or self.request.user.is_superuser
368
+ )
369
+
370
+ def handle_no_permission(self):
371
+ """Redirect to admin login if not authenticated, otherwise 403."""
372
+ if not self.request.user.is_authenticated:
373
+ from django.contrib.auth.views import redirect_to_login
374
+ return redirect_to_login(self.request.get_full_path())
375
+ # User is authenticated but not admin - show 403
376
+ return render(self.request, 'frontend/403.html', status=403)
@@ -0,0 +1,56 @@
1
+ """
2
+ Simplified Django-CFG Maintenance Application.
3
+
4
+ A simple maintenance mode management app with Cloudflare integration.
5
+ Refactored from 119 files to ~10 files following KISS principles.
6
+
7
+ Proper structure:
8
+ - models/ - CloudflareSite and MaintenanceLog models
9
+ - services/ - MaintenanceService for Cloudflare operations
10
+ - admin/ - Simple admin interfaces
11
+ - management/commands/ - CLI commands
12
+ """
13
+
14
+ __version__ = "2.0.0"
15
+ __author__ = "Django-CFG Team"
16
+
17
+ # Lazy import registry to avoid Django initialization issues
18
+ _LAZY_IMPORTS = {
19
+ # Models
20
+ 'CloudflareApiKey': ('django_cfg.apps.system.maintenance.models', 'CloudflareApiKey'),
21
+ 'CloudflareSite': ('django_cfg.apps.system.maintenance.models', 'CloudflareSite'),
22
+ 'MaintenanceLog': ('django_cfg.apps.system.maintenance.models', 'MaintenanceLog'),
23
+ 'ScheduledMaintenance': ('django_cfg.apps.system.maintenance.models', 'ScheduledMaintenance'),
24
+
25
+ # Services
26
+ 'MaintenanceService': ('django_cfg.apps.system.maintenance.services', 'MaintenanceService'),
27
+ 'SiteSyncService': ('django_cfg.apps.system.maintenance.services', 'SiteSyncService'),
28
+ 'BulkOperationsService': ('django_cfg.apps.system.maintenance.services', 'BulkOperationsService'),
29
+ 'ScheduledMaintenanceService': ('django_cfg.apps.system.maintenance.services', 'ScheduledMaintenanceService'),
30
+ 'bulk_operations': ('django_cfg.apps.system.maintenance.services', 'bulk_operations'),
31
+ 'scheduled_maintenance_service': ('django_cfg.apps.system.maintenance.services', 'scheduled_maintenance_service'),
32
+ 'enable_maintenance_for_domain': ('django_cfg.apps.system.maintenance.services', 'enable_maintenance_for_domain'),
33
+ 'disable_maintenance_for_domain': ('django_cfg.apps.system.maintenance.services', 'disable_maintenance_for_domain'),
34
+ 'sync_site_from_cloudflare': ('django_cfg.apps.system.maintenance.services', 'sync_site_from_cloudflare'),
35
+ 'enable_maintenance_for_domains': ('django_cfg.apps.system.maintenance.services', 'enable_maintenance_for_domains'),
36
+ 'disable_maintenance_for_domains': ('django_cfg.apps.system.maintenance.services', 'disable_maintenance_for_domains'),
37
+ 'bulk_sync_all_sites': ('django_cfg.apps.system.maintenance.services', 'bulk_sync_all_sites'),
38
+ 'get_maintenance_status_report': ('django_cfg.apps.system.maintenance.services', 'get_maintenance_status_report'),
39
+ 'schedule_maintenance_for_sites': ('django_cfg.apps.system.maintenance.services', 'schedule_maintenance_for_sites'),
40
+ 'process_scheduled_maintenances': ('django_cfg.apps.system.maintenance.services', 'process_scheduled_maintenances'),
41
+ }
42
+
43
+
44
+ def __getattr__(name: str):
45
+ """Lazy import mechanism to avoid Django initialization issues."""
46
+ if name in _LAZY_IMPORTS:
47
+ module_path, attr_name = _LAZY_IMPORTS[name]
48
+
49
+ import importlib
50
+ module = importlib.import_module(module_path)
51
+ return getattr(module, attr_name)
52
+
53
+ raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
54
+
55
+
56
+ __all__ = list(_LAZY_IMPORTS.keys())
@@ -143,19 +143,19 @@ cloudflare_apikey_config = AdminConfig(
143
143
  name="make_default",
144
144
  description="Make default API key",
145
145
  variant="primary",
146
- handler="django_cfg.apps.maintenance.admin.actions.make_default_key"
146
+ handler="django_cfg.apps.system.maintenance.admin.actions.make_default_key"
147
147
  ),
148
148
  ActionConfig(
149
149
  name="activate_keys",
150
150
  description="Activate API keys",
151
151
  variant="success",
152
- handler="django_cfg.apps.maintenance.admin.actions.activate_keys"
152
+ handler="django_cfg.apps.system.maintenance.admin.actions.activate_keys"
153
153
  ),
154
154
  ActionConfig(
155
155
  name="deactivate_keys",
156
156
  description="Deactivate API keys",
157
157
  variant="warning",
158
- handler="django_cfg.apps.maintenance.admin.actions.deactivate_keys"
158
+ handler="django_cfg.apps.system.maintenance.admin.actions.deactivate_keys"
159
159
  ),
160
160
  ],
161
161
 
@@ -177,18 +177,16 @@ class CloudflareApiKeyAdmin(PydanticAdmin):
177
177
  if not sites:
178
178
  return "No sites using this key"
179
179
 
180
- site_list = []
181
- for site in sites:
182
- status_emoji = "Maintenance" if site.maintenance_active else "Active"
183
- site_list.append(f"{status_emoji} {site.name} ({site.domain})")
184
-
185
- result = "\n".join(site_list)
180
+ # Declarative site list generation
181
+ site_items = [
182
+ f"{'🔧 Maintenance' if site.maintenance_active else '✅ Active'} {site.name} ({site.domain})"
183
+ for site in sites
184
+ ]
186
185
 
187
186
  total_count = obj.cloudflaresite_set.count()
188
- if total_count > 10:
189
- result += f"\n... and {total_count - 10} more sites"
187
+ overflow_item = [f"... and {total_count - 10} more sites"] if total_count > 10 else []
190
188
 
191
- return result
189
+ return "\n".join(site_items + overflow_item)
192
190
  sites_using_key.short_description = "Sites Using This Key"
193
191
 
194
192
  def changelist_view(self, request, extra_context=None):
@@ -156,19 +156,19 @@ scheduled_maintenance_config = AdminConfig(
156
156
  name="execute_maintenance",
157
157
  description="Execute maintenance",
158
158
  variant="info",
159
- handler="django_cfg.apps.maintenance.admin.actions.execute_maintenance"
159
+ handler="django_cfg.apps.system.maintenance.admin.actions.execute_maintenance"
160
160
  ),
161
161
  ActionConfig(
162
162
  name="cancel_maintenance",
163
163
  description="Cancel maintenance",
164
164
  variant="warning",
165
- handler="django_cfg.apps.maintenance.admin.actions.cancel_maintenance"
165
+ handler="django_cfg.apps.system.maintenance.admin.actions.cancel_maintenance"
166
166
  ),
167
167
  ActionConfig(
168
168
  name="reschedule_maintenance",
169
169
  description="Reschedule maintenance",
170
170
  variant="primary",
171
- handler="django_cfg.apps.maintenance.admin.actions.reschedule_maintenance"
171
+ handler="django_cfg.apps.system.maintenance.admin.actions.reschedule_maintenance"
172
172
  ),
173
173
  ],
174
174
 
@@ -208,31 +208,31 @@ cloudflare_site_config = AdminConfig(
208
208
  name="enable_maintenance",
209
209
  description="Enable maintenance mode",
210
210
  variant="warning",
211
- handler="django_cfg.apps.maintenance.admin.actions.enable_maintenance_mode"
211
+ handler="django_cfg.apps.system.maintenance.admin.actions.enable_maintenance_mode"
212
212
  ),
213
213
  ActionConfig(
214
214
  name="disable_maintenance",
215
215
  description="Disable maintenance mode",
216
216
  variant="success",
217
- handler="django_cfg.apps.maintenance.admin.actions.disable_maintenance_mode"
217
+ handler="django_cfg.apps.system.maintenance.admin.actions.disable_maintenance_mode"
218
218
  ),
219
219
  ActionConfig(
220
220
  name="activate_sites",
221
221
  description="Activate sites",
222
222
  variant="success",
223
- handler="django_cfg.apps.maintenance.admin.actions.activate_sites"
223
+ handler="django_cfg.apps.system.maintenance.admin.actions.activate_sites"
224
224
  ),
225
225
  ActionConfig(
226
226
  name="deactivate_sites",
227
227
  description="Deactivate sites",
228
228
  variant="warning",
229
- handler="django_cfg.apps.maintenance.admin.actions.deactivate_sites"
229
+ handler="django_cfg.apps.system.maintenance.admin.actions.deactivate_sites"
230
230
  ),
231
231
  ActionConfig(
232
232
  name="sync_with_cloudflare",
233
233
  description="Sync with Cloudflare",
234
234
  variant="info",
235
- handler="django_cfg.apps.maintenance.admin.actions.sync_with_cloudflare"
235
+ handler="django_cfg.apps.system.maintenance.admin.actions.sync_with_cloudflare"
236
236
  ),
237
237
  ],
238
238
 
@@ -256,10 +256,11 @@ class CloudflareSiteAdmin(PydanticAdmin):
256
256
  if not logs:
257
257
  return "No maintenance logs yet"
258
258
 
259
- log_list = []
260
- for log in logs:
261
- status_text = "Success" if log.status == MaintenanceLog.Status.SUCCESS else "Failed" if log.status == MaintenanceLog.Status.FAILED else "Pending"
262
- log_list.append(f"{status_text} {log.action} - {log.created_at.strftime('%Y-%m-%d %H:%M')}")
259
+ # Declarative log list generation
260
+ log_list = [
261
+ f"{('✅ Success' if log.status == MaintenanceLog.Status.SUCCESS else '❌ Failed' if log.status == MaintenanceLog.Status.FAILED else '⏳ Pending')} {log.action} - {log.created_at.strftime('%Y-%m-%d %H:%M')}"
262
+ for log in logs
263
+ ]
263
264
 
264
265
  return "\n".join(log_list)
265
266
  logs_preview.short_description = "Recent Logs"
@@ -9,7 +9,7 @@ class MaintenanceConfig(AppConfig):
9
9
  """Configuration for the simplified maintenance app."""
10
10
 
11
11
  default_auto_field = 'django.db.models.BigAutoField'
12
- name = 'django_cfg.apps.maintenance'
12
+ name = 'django_cfg.apps.system.maintenance'
13
13
  verbose_name = 'Maintenance Mode'
14
14
 
15
15
  def ready(self):
@@ -7,10 +7,10 @@ Uses lazy imports to avoid Django initialization issues.
7
7
 
8
8
  # Lazy import registry to avoid Django initialization issues
9
9
  _LAZY_IMPORTS = {
10
- 'CloudflareApiKey': ('django_cfg.apps.maintenance.models.cloudflare_api_key', 'CloudflareApiKey'),
11
- 'CloudflareSite': ('django_cfg.apps.maintenance.models.cloudflare_site', 'CloudflareSite'),
12
- 'MaintenanceLog': ('django_cfg.apps.maintenance.models.maintenance_log', 'MaintenanceLog'),
13
- 'ScheduledMaintenance': ('django_cfg.apps.maintenance.models.scheduled_maintenance', 'ScheduledMaintenance'),
10
+ 'CloudflareApiKey': ('django_cfg.apps.system.maintenance.models.cloudflare_api_key', 'CloudflareApiKey'),
11
+ 'CloudflareSite': ('django_cfg.apps.system.maintenance.models.cloudflare_site', 'CloudflareSite'),
12
+ 'MaintenanceLog': ('django_cfg.apps.system.maintenance.models.maintenance_log', 'MaintenanceLog'),
13
+ 'ScheduledMaintenance': ('django_cfg.apps.system.maintenance.models.scheduled_maintenance', 'ScheduledMaintenance'),
14
14
  }
15
15
 
16
16
 
@@ -0,0 +1,42 @@
1
+ """
2
+ Simplified maintenance services.
3
+
4
+ Clean imports for the service classes with lazy loading.
5
+ """
6
+
7
+ # Lazy import registry to avoid Django initialization issues
8
+ _LAZY_IMPORTS = {
9
+ # Services
10
+ 'MaintenanceService': ('django_cfg.apps.system.maintenance.services.maintenance_service', 'MaintenanceService'),
11
+ 'SiteSyncService': ('django_cfg.apps.system.maintenance.services.site_sync_service', 'SiteSyncService'),
12
+ 'BulkOperationsService': ('django_cfg.apps.system.maintenance.services.bulk_operations_service', 'BulkOperationsService'),
13
+ 'ScheduledMaintenanceService': ('django_cfg.apps.system.maintenance.services.scheduled_maintenance_service', 'ScheduledMaintenanceService'),
14
+
15
+ # Service functions
16
+ 'enable_maintenance_for_domain': ('django_cfg.apps.system.maintenance.services.maintenance_service', 'enable_maintenance_for_domain'),
17
+ 'disable_maintenance_for_domain': ('django_cfg.apps.system.maintenance.services.maintenance_service', 'disable_maintenance_for_domain'),
18
+ 'sync_site_from_cloudflare': ('django_cfg.apps.system.maintenance.services.site_sync_service', 'sync_site_from_cloudflare'),
19
+ 'bulk_operations': ('django_cfg.apps.system.maintenance.services.bulk_operations_service', 'bulk_operations'),
20
+ 'scheduled_maintenance_service': ('django_cfg.apps.system.maintenance.services.scheduled_maintenance_service', 'scheduled_maintenance_service'),
21
+ 'enable_maintenance_for_domains': ('django_cfg.apps.system.maintenance.services.bulk_operations_service', 'enable_maintenance_for_domains'),
22
+ 'disable_maintenance_for_domains': ('django_cfg.apps.system.maintenance.services.bulk_operations_service', 'disable_maintenance_for_domains'),
23
+ 'bulk_sync_all_sites': ('django_cfg.apps.system.maintenance.services.bulk_operations_service', 'bulk_sync_all_sites'),
24
+ 'get_maintenance_status_report': ('django_cfg.apps.system.maintenance.services.bulk_operations_service', 'get_maintenance_status_report'),
25
+ 'schedule_maintenance_for_sites': ('django_cfg.apps.system.maintenance.services.scheduled_maintenance_service', 'schedule_maintenance_for_sites'),
26
+ 'process_scheduled_maintenances': ('django_cfg.apps.system.maintenance.services.scheduled_maintenance_service', 'process_scheduled_maintenances'),
27
+ }
28
+
29
+
30
+ def __getattr__(name: str):
31
+ """Lazy import mechanism to avoid Django initialization issues."""
32
+ if name in _LAZY_IMPORTS:
33
+ module_path, attr_name = _LAZY_IMPORTS[name]
34
+
35
+ import importlib
36
+ module = importlib.import_module(module_path)
37
+ return getattr(module, attr_name)
38
+
39
+ raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
40
+
41
+
42
+ __all__ = list(_LAZY_IMPORTS.keys())