django-cfg 1.2.3__tar.gz → 1.2.6__tar.gz

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 (453) hide show
  1. {django_cfg-1.2.3 → django_cfg-1.2.6}/PKG-INFO +2 -1
  2. {django_cfg-1.2.3 → django_cfg-1.2.6}/pyproject.toml +4 -2
  3. {django_cfg-1.2.3 → django_cfg-1.2.6}/requirements-dev.txt +1 -0
  4. {django_cfg-1.2.3 → django_cfg-1.2.6}/requirements-test.txt +1 -0
  5. {django_cfg-1.2.3 → django_cfg-1.2.6}/requirements.txt +1 -0
  6. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/__init__.py +1 -1
  7. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/twilio_response.py +1 -2
  8. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/user.py +6 -1
  9. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/models.py +83 -0
  10. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/admin/leads_admin.py +1 -2
  11. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/admin/newsletter_admin.py +1 -2
  12. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/admin/support_admin.py +1 -2
  13. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/generation.py +2 -0
  14. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/constance.py +52 -5
  15. django_cfg-1.2.6/src/django_cfg/modules/django_import_export/README.md +81 -0
  16. django_cfg-1.2.6/src/django_cfg/modules/django_import_export/__init__.py +43 -0
  17. django_cfg-1.2.6/src/django_cfg/registry/modules.py +22 -0
  18. django_cfg-1.2.6/src/django_cfg/templates/admin/import_export/change_list_export.html +24 -0
  19. django_cfg-1.2.6/src/django_cfg/templates/admin/import_export/change_list_import.html +24 -0
  20. django_cfg-1.2.6/src/django_cfg/templates/admin/import_export/change_list_import_export.html +34 -0
  21. django_cfg-1.2.3/src/django_cfg/registry/modules.py +0 -12
  22. {django_cfg-1.2.3 → django_cfg-1.2.6}/.gitignore +0 -0
  23. {django_cfg-1.2.3 → django_cfg-1.2.6}/LICENSE +0 -0
  24. {django_cfg-1.2.3 → django_cfg-1.2.6}/MANIFEST.in +0 -0
  25. {django_cfg-1.2.3 → django_cfg-1.2.6}/README.md +0 -0
  26. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/README.md +0 -0
  27. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/__init__.py +0 -0
  28. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/README.md +0 -0
  29. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/__init__.py +0 -0
  30. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/__init__.py +0 -0
  31. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/activity.py +0 -0
  32. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/filters.py +0 -0
  33. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/group.py +0 -0
  34. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/inlines.py +0 -0
  35. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/otp.py +0 -0
  36. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/registration_source.py +0 -0
  37. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/admin/resources.py +0 -0
  38. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/apps.py +0 -0
  39. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/management/commands/test_otp.py +0 -0
  40. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/managers/__init__.py +0 -0
  41. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/managers/user_manager.py +0 -0
  42. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/0001_initial.py +0 -0
  43. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/0002_add_phone_otp_clean.py +0 -0
  44. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/0003_twilioresponse.py +0 -0
  45. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/0004_delete_twilioresponse.py +0 -0
  46. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/0005_twilioresponse.py +0 -0
  47. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/0006_remove_twilioresponse_otp_secret_and_more.py +0 -0
  48. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/migrations/__init__.py +0 -0
  49. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/serializers/__init__.py +0 -0
  50. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/serializers/otp.py +0 -0
  51. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/serializers/profile.py +0 -0
  52. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/serializers/webhook.py +0 -0
  53. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/services/__init__.py +0 -0
  54. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/services/activity_service.py +0 -0
  55. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/services/otp_service.py +0 -0
  56. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/signals.py +0 -0
  57. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/templates/emails/base_email.html +0 -0
  58. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/templates/emails/base_email.txt +0 -0
  59. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/templates/emails/otp_email.html +0 -0
  60. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/templates/emails/otp_email.txt +0 -0
  61. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/templates/emails/welcome_email.html +0 -0
  62. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/templates/emails/welcome_email.txt +0 -0
  63. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/urls.py +0 -0
  64. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/utils/auth_email_service.py +0 -0
  65. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/utils/notifications.py +0 -0
  66. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/views/__init__.py +0 -0
  67. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/views/otp.py +0 -0
  68. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/views/profile.py +0 -0
  69. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/accounts/views/webhook.py +0 -0
  70. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/README.md +0 -0
  71. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/__init__.py +0 -0
  72. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/admin/__init__.py +0 -0
  73. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/admin/execution_admin.py +0 -0
  74. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/admin/registry_admin.py +0 -0
  75. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/admin/toolsets_admin.py +0 -0
  76. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/apps.py +0 -0
  77. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/core/__init__.py +0 -0
  78. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/core/agent.py +0 -0
  79. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/core/dependencies.py +0 -0
  80. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/core/exceptions.py +0 -0
  81. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/core/models.py +0 -0
  82. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/core/orchestrator.py +0 -0
  83. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/examples/__init__.py +0 -0
  84. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/examples/simple_example.py +0 -0
  85. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/integration/__init__.py +0 -0
  86. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/integration/middleware.py +0 -0
  87. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/integration/registry.py +0 -0
  88. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/integration/signals.py +0 -0
  89. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/management/__init__.py +0 -0
  90. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/management/commands/__init__.py +0 -0
  91. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/management/commands/create_agent.py +0 -0
  92. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/management/commands/orchestrator_status.py +0 -0
  93. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/managers/__init__.py +0 -0
  94. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/managers/execution.py +0 -0
  95. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/managers/registry.py +0 -0
  96. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/managers/toolsets.py +0 -0
  97. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/migrations/0001_initial.py +0 -0
  98. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/migrations/__init__.py +0 -0
  99. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/models/__init__.py +0 -0
  100. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/models/execution.py +0 -0
  101. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/models/registry.py +0 -0
  102. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/models/toolsets.py +0 -0
  103. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/patterns/__init__.py +0 -0
  104. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/patterns/content_agents.py +0 -0
  105. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/toolsets/__init__.py +0 -0
  106. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/toolsets/cache_toolset.py +0 -0
  107. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/toolsets/django_toolset.py +0 -0
  108. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/toolsets/file_toolset.py +0 -0
  109. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/toolsets/orm_toolset.py +0 -0
  110. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/agents/urls.py +0 -0
  111. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/__init__.py +0 -0
  112. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/commands/__init__.py +0 -0
  113. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/commands/urls.py +0 -0
  114. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/commands/views.py +0 -0
  115. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/health/__init__.py +0 -0
  116. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/health/urls.py +0 -0
  117. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/api/health/views.py +0 -0
  118. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/README.md +0 -0
  119. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/__init__.py +0 -0
  120. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/admin/__init__.py +0 -0
  121. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/admin/archive_admin.py +0 -0
  122. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/admin/chat_admin.py +0 -0
  123. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/admin/document_admin.py +0 -0
  124. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/admin/external_data_admin.py +0 -0
  125. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/apps.py +0 -0
  126. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/config/README.md +0 -0
  127. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/config/__init__.py +0 -0
  128. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/config/constance_fields.py +0 -0
  129. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/config/constance_settings.py +0 -0
  130. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/config/settings.py +0 -0
  131. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/examples/__init__.py +0 -0
  132. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/examples/external_data_usage.py +0 -0
  133. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/management/__init__.py +0 -0
  134. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/management/commands/__init__.py +0 -0
  135. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/management/commands/knowbase_stats.py +0 -0
  136. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/management/commands/setup_knowbase.py +0 -0
  137. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/managers/__init__.py +0 -0
  138. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/managers/archive.py +0 -0
  139. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/managers/base.py +0 -0
  140. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/managers/chat.py +0 -0
  141. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/managers/document.py +0 -0
  142. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/managers/external_data.py +0 -0
  143. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/migrations/0001_initial.py +0 -0
  144. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/migrations/0002_archiveitem_archiveitemchunk_documentarchive_and_more.py +0 -0
  145. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/migrations/__init__.py +0 -0
  146. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/mixins/__init__.py +0 -0
  147. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/mixins/config.py +0 -0
  148. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/mixins/creator.py +0 -0
  149. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/mixins/examples/vehicle_model_example.py +0 -0
  150. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/mixins/external_data_mixin.py +0 -0
  151. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/mixins/service.py +0 -0
  152. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/models/__init__.py +0 -0
  153. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/models/archive.py +0 -0
  154. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/models/base.py +0 -0
  155. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/models/chat.py +0 -0
  156. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/models/document.py +0 -0
  157. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/models/external_data.py +0 -0
  158. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/serializers/__init__.py +0 -0
  159. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/serializers/archive_serializers.py +0 -0
  160. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/serializers/chat_serializers.py +0 -0
  161. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/serializers/document_serializers.py +0 -0
  162. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/serializers/external_data_serializers.py +0 -0
  163. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/serializers/public_serializers.py +0 -0
  164. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/__init__.py +0 -0
  165. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/archive/__init__.py +0 -0
  166. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/archive/archive_service.py +0 -0
  167. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/archive/chunking_service.py +0 -0
  168. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/archive/exceptions.py +0 -0
  169. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/archive/extraction_service.py +0 -0
  170. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/archive/vectorization_service.py +0 -0
  171. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/base.py +0 -0
  172. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/chat_service.py +0 -0
  173. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/document_service.py +0 -0
  174. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/__init__.py +0 -0
  175. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/async_processor.py +0 -0
  176. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/batch_processor.py +0 -0
  177. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/batch_result.py +0 -0
  178. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/models.py +0 -0
  179. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/processors.py +0 -0
  180. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/embedding/utils.py +0 -0
  181. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/prompt_builder.py +0 -0
  182. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/services/search_service.py +0 -0
  183. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/signals/__init__.py +0 -0
  184. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/signals/archive_signals.py +0 -0
  185. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/signals/chat_signals.py +0 -0
  186. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/signals/document_signals.py +0 -0
  187. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/signals/external_data_signals.py +0 -0
  188. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/tasks/__init__.py +0 -0
  189. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/tasks/archive_tasks.py +0 -0
  190. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/tasks/document_processing.py +0 -0
  191. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/tasks/external_data_tasks.py +0 -0
  192. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/tasks/maintenance.py +0 -0
  193. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/urls.py +0 -0
  194. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/utils/__init__.py +0 -0
  195. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/utils/chunk_settings.py +0 -0
  196. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/utils/text_processing.py +0 -0
  197. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/utils/validation.py +0 -0
  198. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/views/__init__.py +0 -0
  199. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/views/archive_views.py +0 -0
  200. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/views/base.py +0 -0
  201. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/views/chat_views.py +0 -0
  202. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/views/document_views.py +0 -0
  203. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/knowbase/views/public_views.py +0 -0
  204. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/README.md +0 -0
  205. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/__init__.py +0 -0
  206. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/admin/__init__.py +0 -0
  207. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/admin/resources.py +0 -0
  208. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/admin.py +0 -0
  209. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/apps.py +0 -0
  210. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/migrations/0001_initial.py +0 -0
  211. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/migrations/__init__.py +0 -0
  212. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/models.py +0 -0
  213. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/serializers.py +0 -0
  214. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/signals.py +0 -0
  215. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/tests.py +0 -0
  216. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/urls.py +0 -0
  217. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/leads/views.py +0 -0
  218. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/README.md +0 -0
  219. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/__init__.py +0 -0
  220. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/admin/__init__.py +0 -0
  221. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/admin/filters.py +0 -0
  222. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/admin/resources.py +0 -0
  223. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/admin.py +0 -0
  224. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/admin_filters.py +0 -0
  225. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/apps.py +0 -0
  226. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/management/__init__.py +0 -0
  227. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/management/commands/__init__.py +0 -0
  228. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/management/commands/test_newsletter.py +0 -0
  229. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/managers/README.md +0 -0
  230. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/managers/__init__.py +0 -0
  231. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/migrations/0001_initial.py +0 -0
  232. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/migrations/__init__.py +0 -0
  233. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/models.py +0 -0
  234. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/serializers.py +0 -0
  235. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/services/email_service.py +0 -0
  236. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/signals.py +0 -0
  237. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/urls.py +0 -0
  238. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/utils/__init__.py +0 -0
  239. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/views/__init__.py +0 -0
  240. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/views/campaigns.py +0 -0
  241. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/views/emails.py +0 -0
  242. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/views/newsletters.py +0 -0
  243. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/views/subscriptions.py +0 -0
  244. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/newsletter/views/tracking.py +0 -0
  245. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/__init__.py +0 -0
  246. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/admin/__init__.py +0 -0
  247. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/admin/filters.py +0 -0
  248. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/admin/resources.py +0 -0
  249. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/admin.py +0 -0
  250. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/admin_filters.py +0 -0
  251. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/apps.py +0 -0
  252. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/managers/message_manager.py +0 -0
  253. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/managers/ticket_manager.py +0 -0
  254. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/migrations/0001_initial.py +0 -0
  255. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/migrations/0002_alter_message_ticket.py +0 -0
  256. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/migrations/__init__.py +0 -0
  257. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/models.py +0 -0
  258. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/serializers.py +0 -0
  259. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/signals.py +0 -0
  260. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/templates/support/chat/access_denied.html +0 -0
  261. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/templates/support/chat/ticket_chat.html +0 -0
  262. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/urls.py +0 -0
  263. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/utils/__init__.py +0 -0
  264. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/utils/support_email_service.py +0 -0
  265. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/views/__init__.py +0 -0
  266. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/views/admin.py +0 -0
  267. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/views/api.py +0 -0
  268. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/support/views/chat.py +0 -0
  269. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/__init__.py +0 -0
  270. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/admin.py +0 -0
  271. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/apps.py +0 -0
  272. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/serializers.py +0 -0
  273. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/css/dashboard.css +0 -0
  274. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/js/api.js +0 -0
  275. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/js/dashboard.js +0 -0
  276. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/js/modals.js +0 -0
  277. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/js/notifications.js +0 -0
  278. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/js/task-monitor.js +0 -0
  279. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/static/tasks/js/theme.js +0 -0
  280. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/base.html +0 -0
  281. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/info_cards.html +0 -0
  282. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/management_actions.html +0 -0
  283. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/overview_tab.html +0 -0
  284. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/queues_tab.html +0 -0
  285. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/status_cards.html +0 -0
  286. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +0 -0
  287. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html +0 -0
  288. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html +0 -0
  289. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/components/workers_tab.html +0 -0
  290. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/templates/tasks/dashboard.html +0 -0
  291. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/urls.py +0 -0
  292. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/tasks/views.py +0 -0
  293. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps/urls.py +0 -0
  294. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/apps.py +0 -0
  295. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/README.md +0 -0
  296. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/__init__.py +0 -0
  297. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/commands/__init__.py +0 -0
  298. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/commands/create_project.py +0 -0
  299. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/commands/info.py +0 -0
  300. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/main.py +0 -0
  301. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/cli/utils.py +0 -0
  302. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/config.py +0 -0
  303. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/__init__.py +0 -0
  304. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/config.py +0 -0
  305. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/environment.py +0 -0
  306. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/exceptions.py +0 -0
  307. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/integration.py +0 -0
  308. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/core/validation.py +0 -0
  309. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/__init__.py +0 -0
  310. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/__init__.py +0 -0
  311. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/auto_generate.py +0 -0
  312. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/check_settings.py +0 -0
  313. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/clear_constance.py +0 -0
  314. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/create_token.py +0 -0
  315. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/generate.py +0 -0
  316. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/list_urls.py +0 -0
  317. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/migrate_all.py +0 -0
  318. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/migrator.py +0 -0
  319. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/rundramatiq.py +0 -0
  320. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/runserver_ngrok.py +0 -0
  321. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/script.py +0 -0
  322. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/show_config.py +0 -0
  323. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/show_urls.py +0 -0
  324. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/superuser.py +0 -0
  325. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/task_clear.py +0 -0
  326. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/task_status.py +0 -0
  327. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/test_email.py +0 -0
  328. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/test_telegram.py +0 -0
  329. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/test_twilio.py +0 -0
  330. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/tree.py +0 -0
  331. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/management/commands/validate_config.py +0 -0
  332. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/middleware/README.md +0 -0
  333. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/middleware/__init__.py +0 -0
  334. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/middleware/public_endpoints.py +0 -0
  335. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/middleware/user_activity.py +0 -0
  336. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/__init__.py +0 -0
  337. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/api.py +0 -0
  338. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/base.py +0 -0
  339. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/cache.py +0 -0
  340. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/cfg.py +0 -0
  341. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/cors.py +0 -0
  342. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/database.py +0 -0
  343. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/drf.py +0 -0
  344. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/email.py +0 -0
  345. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/environment.py +0 -0
  346. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/jwt.py +0 -0
  347. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/limits.py +0 -0
  348. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/logging.py +0 -0
  349. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/ngrok.py +0 -0
  350. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/revolution.py +0 -0
  351. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/security.py +0 -0
  352. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/services.py +0 -0
  353. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/models/tasks.py +0 -0
  354. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/__init__.py +0 -0
  355. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/base.py +0 -0
  356. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_currency/README.md +0 -0
  357. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_currency/__init__.py +0 -0
  358. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_currency/cache.py +0 -0
  359. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_currency/converter.py +0 -0
  360. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_currency/service.py +0 -0
  361. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_email.py +0 -0
  362. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_health.py +0 -0
  363. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/README.md +0 -0
  364. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/__init__.py +0 -0
  365. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/example.py +0 -0
  366. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/__init__.py +0 -0
  367. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/cache.py +0 -0
  368. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/client.py +0 -0
  369. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/costs.py +0 -0
  370. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/extractor.py +0 -0
  371. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/models.py +0 -0
  372. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/models_cache.py +0 -0
  373. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/llm/tokenizer.py +0 -0
  374. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/translator/__init__.py +0 -0
  375. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/translator/cache.py +0 -0
  376. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_llm/translator/translator.py +0 -0
  377. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_logger.py +0 -0
  378. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_ngrok.py +0 -0
  379. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_tasks.py +0 -0
  380. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_telegram.py +0 -0
  381. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/README.md +0 -0
  382. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/__init__.py +0 -0
  383. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/exceptions.py +0 -0
  384. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/models.py +0 -0
  385. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/sendgrid_service.py +0 -0
  386. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/service.py +0 -0
  387. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/simple_service.py +0 -0
  388. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/templates/guide.md +0 -0
  389. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html +0 -0
  390. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/templates/sendgrid_test_data.json +0 -0
  391. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_twilio/twilio_service.py +0 -0
  392. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/__init__.py +0 -0
  393. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/callbacks.py +0 -0
  394. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/dashboard.py +0 -0
  395. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/icons/README.md +0 -0
  396. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/icons/__init__.py +0 -0
  397. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/icons/constants.py +0 -0
  398. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/icons/generate_icons.py +0 -0
  399. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models/__init__.py +0 -0
  400. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models/config.py +0 -0
  401. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models/dashboard.py +0 -0
  402. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models/dropdown.py +0 -0
  403. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models/navigation.py +0 -0
  404. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models/tabs.py +0 -0
  405. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/models.py +0 -0
  406. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/system_monitor.py +0 -0
  407. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/tailwind.py +0 -0
  408. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/django_unfold/utils.py +0 -0
  409. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/dramatiq_setup.py +0 -0
  410. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/modules/logger.py +0 -0
  411. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/registry/__init__.py +0 -0
  412. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/registry/core.py +0 -0
  413. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/registry/exceptions.py +0 -0
  414. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/registry/services.py +0 -0
  415. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/registry/third_party.py +0 -0
  416. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/routing/__init__.py +0 -0
  417. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/routing/callbacks.py +0 -0
  418. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/routing/routers.py +0 -0
  419. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/__init__.py +0 -0
  420. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/constance/change_list.html +0 -0
  421. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/constance/includes/default_value.html +0 -0
  422. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/constance/includes/fieldset_header.html +0 -0
  423. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/constance/includes/results_list.html +0 -0
  424. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/constance/includes/setting_row.html +0 -0
  425. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/constance/includes/table_headers.html +0 -0
  426. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/index.html +0 -0
  427. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/layouts/dashboard_with_tabs.html +0 -0
  428. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/activity_tracker.html +0 -0
  429. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/charts_section.html +0 -0
  430. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/django_commands.html +0 -0
  431. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/quick_actions.html +0 -0
  432. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/recent_activity.html +0 -0
  433. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/recent_users_table.html +0 -0
  434. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/stats_cards.html +0 -0
  435. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/stats_tiles.html +0 -0
  436. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/system_health.html +0 -0
  437. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/system_metrics.html +0 -0
  438. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/components/user_permissions.html +0 -0
  439. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/tabs/app_stats_tab.html +0 -0
  440. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/tabs/commands_tab.html +0 -0
  441. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/tabs/overview_tab.html +0 -0
  442. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/tabs/stats_tab.html +0 -0
  443. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/tabs/users_tab.html +0 -0
  444. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/admin/snippets/zones/zones_table.html +0 -0
  445. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templates/emails/base_email.html +0 -0
  446. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templatetags/__init__.py +0 -0
  447. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/templatetags/django_cfg.py +0 -0
  448. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/urls.py +0 -0
  449. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/utils/__init__.py +0 -0
  450. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/utils/path_resolution.py +0 -0
  451. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/utils/smart_defaults.py +0 -0
  452. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/utils/toolkit.py +0 -0
  453. {django_cfg-1.2.3 → django_cfg-1.2.6}/src/django_cfg/utils/version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-cfg
3
- Version: 1.2.3
3
+ Version: 1.2.6
4
4
  Summary: 🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one.
5
5
  Project-URL: Homepage, https://django-cfg.com
6
6
  Project-URL: Documentation, https://django-cfg.com
@@ -47,6 +47,7 @@ Requires-Dist: django-import-export<5.0,>=4.3.0
47
47
  Requires-Dist: django-json-widget<3.0,>=2.0.0
48
48
  Requires-Dist: django-ratelimit<5.0.0,>=4.1.0
49
49
  Requires-Dist: django-redis<7.0,>=6.0.0
50
+ Requires-Dist: django-revolution<2.0,>=1.0.43
50
51
  Requires-Dist: django-unfold<1.0,>=0.64.0
51
52
  Requires-Dist: djangorestframework-simplejwt<6.0,>=5.5.0
52
53
  Requires-Dist: djangorestframework-simplejwt[token-blacklist]<6.0,>=5.5.0
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "django-cfg"
7
- version = "1.2.3"
7
+ version = "1.2.6"
8
8
  description = "🚀 Next-gen Django configuration: type-safety, AI features, blazing-fast setup, and automated best practices — all in one."
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -116,9 +116,11 @@ dependencies = [
116
116
  "lxml>=6.0.0,<7.0",
117
117
  "pgvector>=0.4.0,<1.0",
118
118
  "pydantic-ai>=1.0.10,<2.0",
119
+
120
+ # Production dependencies
121
+ "django-revolution>=1.0.43,<2.0",
119
122
  ]
120
123
 
121
- django-revolution = "1.0.43"
122
124
  # Local development dependencies
123
125
  # django-revolution = {path = "../django-revolution", develop = true}
124
126
 
@@ -22,6 +22,7 @@ django-import-export>=4.3.0,<5.0
22
22
  django-json-widget>=2.0.0,<3.0
23
23
  django-ratelimit (>=4.1.0,<5.0.0)
24
24
  django-redis>=6.0.0,<7.0
25
+ django-revolution>=1.0.43,<2.0
25
26
  django-unfold>=0.64.0,<1.0
26
27
  django>=5.2,<6.0
27
28
  djangorestframework-simplejwt>=5.5.0,<6.0
@@ -20,6 +20,7 @@ django-import-export>=4.3.0,<5.0
20
20
  django-json-widget>=2.0.0,<3.0
21
21
  django-ratelimit (>=4.1.0,<5.0.0)
22
22
  django-redis>=6.0.0,<7.0
23
+ django-revolution>=1.0.43,<2.0
23
24
  django-unfold>=0.64.0,<1.0
24
25
  django>=5.2,<6.0
25
26
  djangorestframework-simplejwt>=5.5.0,<6.0
@@ -20,6 +20,7 @@ django-import-export>=4.3.0,<5.0
20
20
  django-json-widget>=2.0.0,<3.0
21
21
  django-ratelimit (>=4.1.0,<5.0.0)
22
22
  django-redis>=6.0.0,<7.0
23
+ django-revolution>=1.0.43,<2.0
23
24
  django-unfold>=0.64.0,<1.0
24
25
  djangorestframework-simplejwt>=5.5.0,<6.0
25
26
  djangorestframework-simplejwt[token-blacklist]>=5.5.0,<6.0
@@ -32,7 +32,7 @@ Example:
32
32
  default_app_config = "django_cfg.apps.DjangoCfgConfig"
33
33
 
34
34
  # Version information
35
- __version__ = "1.2.3"
35
+ __version__ = "1.2.6"
36
36
  __license__ = "MIT"
37
37
 
38
38
  # Import registry for organized lazy loading
@@ -6,8 +6,7 @@ from django.contrib import admin
6
6
  from django.contrib.humanize.templatetags.humanize import naturaltime
7
7
  from django.utils.html import format_html
8
8
  from unfold.admin import ModelAdmin
9
- from import_export.admin import ExportMixin
10
- from unfold.contrib.import_export.forms import ExportForm
9
+ from django_cfg import ExportMixin, ExportForm
11
10
 
12
11
  from ..models import TwilioResponse
13
12
  from .filters import TwilioResponseStatusFilter, TwilioResponseTypeFilter
@@ -12,14 +12,19 @@ from unfold.admin import ModelAdmin
12
12
  from unfold.forms import AdminPasswordChangeForm, UserChangeForm, UserCreationForm
13
13
  from unfold.decorators import action
14
14
  from unfold.enums import ActionVariant
15
+ from django_cfg import ImportExportModelAdmin
15
16
 
16
17
  from ..models import CustomUser
17
18
  from .filters import UserStatusFilter
18
19
  from .inlines import UserRegistrationSourceInline, UserActivityInline, UserEmailLogInline, UserSupportTicketsInline
20
+ from .resources import CustomUserResource
19
21
 
20
22
 
21
23
  @admin.register(CustomUser)
22
- class CustomUserAdmin(BaseUserAdmin, ModelAdmin):
24
+ class CustomUserAdmin(BaseUserAdmin, ModelAdmin, ImportExportModelAdmin):
25
+ # Import/Export configuration
26
+ resource_class = CustomUserResource
27
+
23
28
  # Forms loaded from `unfold.forms`
24
29
  form = UserChangeForm
25
30
  add_form = UserCreationForm
@@ -200,3 +200,86 @@ class UserActivity(models.Model):
200
200
 
201
201
  def __str__(self):
202
202
  return f"{self.user.username} - {self.get_activity_type_display()}"
203
+
204
+
205
+ class TwilioResponse(models.Model):
206
+ """Model for storing Twilio API responses and webhook data."""
207
+
208
+ RESPONSE_TYPES = [
209
+ ('api_send', 'API Send Request'),
210
+ ('api_verify', 'API Verify Request'),
211
+ ('webhook_status', 'Webhook Status Update'),
212
+ ('webhook_delivery', 'Webhook Delivery Report'),
213
+ ]
214
+
215
+ SERVICE_TYPES = [
216
+ ('whatsapp', 'WhatsApp'),
217
+ ('sms', 'SMS'),
218
+ ('voice', 'Voice'),
219
+ ('email', 'Email'),
220
+ ('verify', 'Verify API'),
221
+ ]
222
+
223
+ response_type = models.CharField(max_length=20, choices=RESPONSE_TYPES)
224
+ service_type = models.CharField(max_length=10, choices=SERVICE_TYPES)
225
+
226
+ # Twilio identifiers
227
+ message_sid = models.CharField(max_length=34, blank=True, help_text="Twilio Message SID")
228
+ verification_sid = models.CharField(max_length=34, blank=True, help_text="Twilio Verification SID")
229
+
230
+ # Request/Response data
231
+ request_data = models.JSONField(default=dict, help_text="Original request parameters")
232
+ response_data = models.JSONField(default=dict, help_text="Twilio API response")
233
+
234
+ # Status and error handling
235
+ status = models.CharField(max_length=20, blank=True, help_text="Message/Verification status")
236
+ error_code = models.CharField(max_length=10, blank=True, help_text="Twilio error code")
237
+ error_message = models.TextField(blank=True, help_text="Error description")
238
+
239
+ # Contact information
240
+ to_number = models.CharField(max_length=20, blank=True, help_text="Recipient phone/email")
241
+ from_number = models.CharField(max_length=20, blank=True, help_text="Sender phone/email")
242
+
243
+ # Pricing
244
+ price = models.DecimalField(max_digits=10, decimal_places=6, null=True, blank=True)
245
+ price_unit = models.CharField(max_length=3, blank=True, help_text="Currency code")
246
+
247
+ # Timestamps
248
+ created_at = models.DateTimeField(auto_now_add=True)
249
+ updated_at = models.DateTimeField(auto_now=True)
250
+ twilio_created_at = models.DateTimeField(null=True, blank=True, help_text="Timestamp from Twilio")
251
+
252
+ # Relations
253
+ otp_secret = models.ForeignKey(
254
+ 'OTPSecret',
255
+ on_delete=models.SET_NULL,
256
+ null=True,
257
+ blank=True,
258
+ related_name='twilio_responses',
259
+ help_text="Related OTP if applicable"
260
+ )
261
+
262
+ class Meta:
263
+ app_label = 'django_cfg_accounts'
264
+ verbose_name = 'Twilio Response'
265
+ verbose_name_plural = 'Twilio Responses'
266
+ ordering = ['-created_at']
267
+ indexes = [
268
+ models.Index(fields=['message_sid']),
269
+ models.Index(fields=['verification_sid']),
270
+ models.Index(fields=['status', 'created_at']),
271
+ models.Index(fields=['response_type', 'service_type']),
272
+ ]
273
+
274
+ def __str__(self):
275
+ return f"{self.get_response_type_display()} - {self.get_service_type_display()}"
276
+
277
+ @property
278
+ def has_error(self):
279
+ """Check if response has error."""
280
+ return bool(self.error_code or self.error_message)
281
+
282
+ @property
283
+ def is_successful(self):
284
+ """Check if response is successful."""
285
+ return not self.has_error and self.status in ['sent', 'delivered', 'approved']
@@ -4,8 +4,7 @@ from django.utils.html import format_html
4
4
  from django.http import HttpResponseRedirect
5
5
  from unfold.admin import ModelAdmin
6
6
  from unfold.decorators import action
7
- from import_export.admin import ImportExportModelAdmin
8
- from unfold.contrib.import_export.forms import ImportForm, ExportForm
7
+ from django_cfg import ImportExportModelAdmin, ImportForm, ExportForm
9
8
 
10
9
  from ..models import Lead
11
10
  from .resources import LeadResource
@@ -7,8 +7,7 @@ from unfold.admin import ModelAdmin
7
7
  from unfold.decorators import action
8
8
  from unfold.contrib.forms.widgets import WysiwygWidget
9
9
  from unfold.enums import ActionVariant
10
- from import_export.admin import ImportExportModelAdmin, ExportMixin
11
- from unfold.contrib.import_export.forms import ImportForm, ExportForm
10
+ from django_cfg import ImportExportModelAdmin, ExportMixin, ImportForm, ExportForm
12
11
 
13
12
  from ..models import EmailLog, Newsletter, NewsletterSubscription, NewsletterCampaign
14
13
  from .filters import UserEmailFilter, UserNameFilter, HasUserFilter, EmailOpenedFilter, EmailClickedFilter
@@ -7,8 +7,7 @@ from django.urls import reverse
7
7
  from django.shortcuts import redirect
8
8
  from django.http import HttpRequest
9
9
  from django.utils.translation import gettext_lazy as _
10
- from import_export.admin import ExportMixin
11
- from unfold.contrib.import_export.forms import ExportForm
10
+ from django_cfg import ExportMixin, ExportForm
12
11
 
13
12
  from ..models import Ticket, Message
14
13
  from .filters import TicketUserEmailFilter, TicketUserNameFilter, MessageSenderEmailFilter
@@ -404,6 +404,8 @@ class SettingsGenerator:
404
404
 
405
405
  # Check for Constance configuration
406
406
  if hasattr(config, "constance") and config.constance:
407
+ # Set config reference for app fields detection
408
+ config.constance.set_config(config)
407
409
  constance_settings = config.constance.to_django_settings()
408
410
  settings.update(constance_settings)
409
411
  integrations.append("constance")
@@ -8,6 +8,7 @@ Unfold admin integration and smart field grouping.
8
8
  from typing import Dict, List, Optional, Any, Union, Literal
9
9
  from pydantic import BaseModel, Field, field_validator
10
10
  from pathlib import Path
11
+ from django_cfg.models.cfg import BaseCfgAutoModule
11
12
 
12
13
 
13
14
  class ConstanceField(BaseModel):
@@ -37,7 +38,7 @@ class ConstanceField(BaseModel):
37
38
  max_length=500,
38
39
  )
39
40
 
40
- field_type: Literal["str", "int", "float", "bool", "choice"] = Field(
41
+ field_type: Literal["str", "int", "float", "bool", "choice", "longtext"] = Field(
41
42
  default="str",
42
43
  description="Field type for form rendering and validation",
43
44
  )
@@ -87,6 +88,10 @@ class ConstanceField(BaseModel):
87
88
  "django.forms.CharField",
88
89
  {"widget": "unfold.widgets.UnfoldAdminTextInputWidget"},
89
90
  ],
91
+ "longtext": [
92
+ "django.forms.CharField",
93
+ {"widget": "unfold.widgets.UnfoldAdminTextareaWidget"},
94
+ ],
90
95
  "int": [
91
96
  "django.forms.IntegerField",
92
97
  {"widget": "unfold.widgets.UnfoldAdminIntegerFieldWidget"},
@@ -104,7 +109,7 @@ class ConstanceField(BaseModel):
104
109
  return field_mapping.get(self.field_type, field_mapping["str"])
105
110
 
106
111
 
107
- class ConstanceConfig(BaseModel):
112
+ class ConstanceConfig(BaseModel, BaseCfgAutoModule):
108
113
  """
109
114
  Django Constance configuration with automatic Unfold integration.
110
115
 
@@ -146,15 +151,46 @@ class ConstanceConfig(BaseModel):
146
151
  description="List of Constance fields",
147
152
  )
148
153
 
154
+ def _get_app_constance_fields(self) -> List[ConstanceField]:
155
+ """Automatically collect constance fields from django-cfg apps."""
156
+ app_fields = []
157
+ config = self.get_config()
158
+
159
+ # Get fields from knowbase app (only if enabled)
160
+ if config and getattr(config, 'enable_knowbase', False):
161
+ try:
162
+ from django_cfg.apps.knowbase.config import get_django_cfg_knowbase_constance_fields
163
+ knowbase_fields = get_django_cfg_knowbase_constance_fields()
164
+ app_fields.extend(knowbase_fields)
165
+ except (ImportError, Exception):
166
+ pass
167
+
168
+ # Get fields from tasks app (only if knowbase or agents are enabled)
169
+ if config and (getattr(config, 'enable_knowbase', False) or getattr(config, 'enable_agents', False)):
170
+ try:
171
+ from django_cfg.modules.django_tasks import extend_constance_config_with_tasks
172
+ tasks_fields = extend_constance_config_with_tasks()
173
+ app_fields.extend(tasks_fields)
174
+ except (ImportError, Exception):
175
+ pass
176
+
177
+ return app_fields
178
+
179
+ def get_all_fields(self) -> List[ConstanceField]:
180
+ """Get all constance fields including app fields."""
181
+ all_fields = list(self.fields) # User-defined fields
182
+ all_fields.extend(self._get_app_constance_fields()) # App fields
183
+ return all_fields
184
+
149
185
  def get_config_dict(self) -> Dict[str, tuple[Any, str]]:
150
186
  """Generate CONSTANCE_CONFIG dictionary."""
151
- return {field.name: field.to_constance_config() for field in self.fields}
187
+ return {field.name: field.to_constance_config() for field in self.get_all_fields()}
152
188
 
153
189
  def get_fieldsets_dict(self) -> Dict[str, List[str]]:
154
190
  """Generate CONSTANCE_FIELDSETS dictionary grouped by field groups."""
155
191
  fieldsets = {}
156
192
 
157
- for field in self.fields:
193
+ for field in self.get_all_fields():
158
194
  group = field.group
159
195
  if group not in fieldsets:
160
196
  fieldsets[group] = []
@@ -178,13 +214,16 @@ class ConstanceConfig(BaseModel):
178
214
 
179
215
  def to_django_settings(self) -> Dict[str, Any]:
180
216
  """Generate Django settings for Constance."""
181
- if not self.fields:
217
+ all_fields = self.get_all_fields()
218
+ if not all_fields:
182
219
  return {}
183
220
 
184
221
  settings = {
185
222
  # Main configuration
186
223
  "CONSTANCE_CONFIG": self.get_config_dict(),
187
224
  "CONSTANCE_FIELDSETS": self.get_fieldsets_dict(),
225
+ # Constance internal fieldsets (for admin)
226
+ "CONSTANCE_CONFIG_FIELDSETS": self.get_fieldsets_dict(),
188
227
  # Backend settings (using default database backend)
189
228
  "CONSTANCE_BACKEND": "constance.backends.database.DatabaseBackend",
190
229
  # Cache settings
@@ -203,4 +242,12 @@ class ConstanceConfig(BaseModel):
203
242
  # Remove None values
204
243
  return {k: v for k, v in settings.items() if v is not None}
205
244
 
245
+ def get_smart_defaults(self):
246
+ """Get smart default configuration for this module."""
247
+ return ConstanceConfig()
248
+
249
+ def get_module_config(self):
250
+ """Get the final configuration for this module."""
251
+ return self
252
+
206
253
 
@@ -0,0 +1,81 @@
1
+ # Django Import/Export Integration
2
+
3
+ Simple integration with `django-import-export` package through django-cfg registry system.
4
+
5
+ ## Features
6
+
7
+ - 🔗 **Registry Integration**: Access django-import-export components through django-cfg imports
8
+ - 🎨 **Unfold Styling**: Automatic beautiful styling through unfold admin interface
9
+ - 📦 **Zero Overhead**: Direct re-exports without unnecessary wrappers
10
+ - 🚀 **Full Compatibility**: 100% compatible with original django-import-export
11
+
12
+ ## Quick Start
13
+
14
+ ```python
15
+ from django_cfg import ImportExportModelAdmin, BaseResource
16
+
17
+ class VehicleResource(BaseResource):
18
+ class Meta:
19
+ model = Vehicle
20
+ fields = ('id', 'brand', 'model', 'year', 'price')
21
+
22
+ @admin.register(Vehicle)
23
+ class VehicleAdmin(ImportExportModelAdmin):
24
+ resource_class = VehicleResource
25
+ list_display = ('brand', 'model', 'year', 'price')
26
+ ```
27
+
28
+ ## Available Components
29
+
30
+ All components are direct re-exports from `django-import-export`:
31
+
32
+ ### Admin Classes
33
+ - `ImportExportMixin` - Mixin for adding import/export to existing admin
34
+ - `ImportExportModelAdmin` - Complete admin class with import/export
35
+
36
+ ### Forms
37
+ - `ImportForm` - Standard import form
38
+ - `ExportForm` - Standard export form
39
+ - `SelectableFieldsExportForm` - Form for selecting fields to export
40
+
41
+ ### Resources
42
+ - `BaseResource` - Base resource class (alias for `ModelResource`)
43
+
44
+ ## Why This Approach?
45
+
46
+ Instead of creating unnecessary wrappers, this module simply:
47
+
48
+ 1. **Re-exports** original django-import-export components
49
+ 2. **Integrates** them into django-cfg registry for consistent imports
50
+ 3. **Relies** on unfold for beautiful styling
51
+ 4. **Maintains** 100% compatibility with original package
52
+
53
+ ## Usage
54
+
55
+ ```python
56
+ # Instead of:
57
+ from import_export.admin import ImportExportModelAdmin
58
+ from import_export.resources import ModelResource
59
+
60
+ # Use:
61
+ from django_cfg import ImportExportModelAdmin, BaseResource
62
+ ```
63
+
64
+ ## Configuration
65
+
66
+ No additional configuration needed. Just install `django-import-export`:
67
+
68
+ ```bash
69
+ pip install django-import-export
70
+ ```
71
+
72
+ The module automatically works with:
73
+ - Unfold admin interface styling
74
+ - Django-cfg configuration system
75
+ - All original django-import-export features
76
+
77
+ ## Full Documentation
78
+
79
+ For complete documentation, see the official [django-import-export docs](https://django-import-export.readthedocs.io/).
80
+
81
+ This module adds no additional functionality - it's purely for convenience and consistency within the django-cfg ecosystem.
@@ -0,0 +1,43 @@
1
+ """
2
+ Django Import/Export Integration for Django CFG
3
+
4
+ Simple re-export of django-import-export components through django-cfg registry.
5
+ Provides seamless integration without unnecessary wrappers.
6
+ """
7
+
8
+ # Re-export original classes through django-cfg registry
9
+ from import_export.admin import ImportExportMixin as BaseImportExportMixin, ImportExportModelAdmin as BaseImportExportModelAdmin, ExportMixin as BaseExportMixin, ImportMixin as BaseImportMixin
10
+ from import_export.resources import ModelResource as BaseResource
11
+ from import_export.forms import ImportForm, ExportForm, SelectableFieldsExportForm
12
+
13
+
14
+ class ImportExportMixin(BaseImportExportMixin):
15
+ """Django-CFG enhanced ImportExportMixin with custom templates."""
16
+ change_list_template = 'admin/import_export/change_list_import_export.html'
17
+
18
+
19
+ class ImportExportModelAdmin(BaseImportExportModelAdmin):
20
+ """Django-CFG enhanced ImportExportModelAdmin with custom templates."""
21
+ change_list_template = 'admin/import_export/change_list_import_export.html'
22
+
23
+
24
+ class ExportMixin(BaseExportMixin):
25
+ """Django-CFG enhanced ExportMixin with custom templates."""
26
+ change_list_template = 'admin/import_export/change_list_export.html'
27
+
28
+
29
+ class ImportMixin(BaseImportMixin):
30
+ """Django-CFG enhanced ImportMixin with custom templates."""
31
+ change_list_template = 'admin/import_export/change_list_import.html'
32
+
33
+
34
+ __all__ = [
35
+ 'ImportExportMixin',
36
+ 'ImportExportModelAdmin',
37
+ 'ExportMixin',
38
+ 'ImportMixin',
39
+ 'BaseResource',
40
+ 'ImportForm',
41
+ 'ExportForm',
42
+ 'SelectableFieldsExportForm',
43
+ ]
@@ -0,0 +1,22 @@
1
+ """
2
+ Django-CFG modules and utilities registry.
3
+ """
4
+
5
+ MODULES_REGISTRY = {
6
+ # URL integration
7
+ "add_django_cfg_urls": ("django_cfg.core.integration", "add_django_cfg_urls"),
8
+ "get_django_cfg_urls_info": ("django_cfg.core.integration", "get_django_cfg_urls_info"),
9
+
10
+ # Configuration utilities
11
+ "set_current_config": ("django_cfg.core.config", "set_current_config"),
12
+
13
+ # Import/Export integration (simple re-exports)
14
+ "ImportForm": ("django_cfg.modules.django_import_export", "ImportForm"),
15
+ "ExportForm": ("django_cfg.modules.django_import_export", "ExportForm"),
16
+ "SelectableFieldsExportForm": ("django_cfg.modules.django_import_export", "SelectableFieldsExportForm"),
17
+ "ImportExportMixin": ("django_cfg.modules.django_import_export", "ImportExportMixin"),
18
+ "ImportExportModelAdmin": ("django_cfg.modules.django_import_export", "ImportExportModelAdmin"),
19
+ "ExportMixin": ("django_cfg.modules.django_import_export", "ExportMixin"),
20
+ "ImportMixin": ("django_cfg.modules.django_import_export", "ImportMixin"),
21
+ "BaseResource": ("django_cfg.modules.django_import_export", "BaseResource"),
22
+ }
@@ -0,0 +1,24 @@
1
+ {% extends "admin/change_list.html" %}
2
+ {% load admin_urls i18n %}
3
+
4
+ {% block object-tools %}
5
+ {# Export only button #}
6
+ <div class="ml-2 flex flex-row items-center gap-2">
7
+ {% if has_export_permission %}
8
+ <a href="{% url opts|admin_urlname:'export' %}{{ cl.get_query_string }}"
9
+ class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
10
+ <span class="material-symbols-outlined">download</span>
11
+ {% trans "Export" %}
12
+ </a>
13
+ {% endif %}
14
+
15
+ {# Add button and other standard tools #}
16
+ {% if has_add_permission %}
17
+ <a href="{% url cl.opts|admin_urlname:'add' %}{% if is_popup %}?{{ popup_var }}=1{% endif %}"
18
+ class="addlink bg-primary-600 flex items-center h-9 justify-center -my-1 rounded-full w-9"
19
+ title="{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}">
20
+ <span class="material-symbols-outlined text-white">add</span>
21
+ </a>
22
+ {% endif %}
23
+ </div>
24
+ {% endblock %}
@@ -0,0 +1,24 @@
1
+ {% extends "admin/change_list.html" %}
2
+ {% load admin_urls i18n %}
3
+
4
+ {% block object-tools %}
5
+ {# Import only button #}
6
+ <div class="ml-2 flex flex-row items-center gap-2">
7
+ {% if has_import_permission %}
8
+ <a href="{% url opts|admin_urlname:"import" %}"
9
+ class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
10
+ <span class="material-symbols-outlined">upload</span>
11
+ {% trans "Import" %}
12
+ </a>
13
+ {% endif %}
14
+
15
+ {# Add button and other standard tools #}
16
+ {% if has_add_permission %}
17
+ <a href="{% url cl.opts|admin_urlname:'add' %}{% if is_popup %}?{{ popup_var }}=1{% endif %}"
18
+ class="addlink bg-primary-600 flex items-center h-9 justify-center -my-1 rounded-full w-9"
19
+ title="{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}">
20
+ <span class="material-symbols-outlined text-white">add</span>
21
+ </a>
22
+ {% endif %}
23
+ </div>
24
+ {% endblock %}
@@ -0,0 +1,34 @@
1
+ {% extends "admin/change_list.html" %}
2
+ {% load admin_urls i18n %}
3
+
4
+ {% block object-tools %}
5
+ {# Override object-tools to integrate import/export buttons into unfold header #}
6
+ <div class="ml-2 flex flex-row items-center gap-2">
7
+ {# Import button #}
8
+ {% if has_import_permission %}
9
+ <a href="{% url opts|admin_urlname:"import" %}"
10
+ class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
11
+ <span class="material-symbols-outlined">upload</span>
12
+ {% trans "Import" %}
13
+ </a>
14
+ {% endif %}
15
+
16
+ {# Export button #}
17
+ {% if has_export_permission %}
18
+ <a href="{% url opts|admin_urlname:'export' %}{{ cl.get_query_string }}"
19
+ class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
20
+ <span class="material-symbols-outlined">download</span>
21
+ {% trans "Export" %}
22
+ </a>
23
+ {% endif %}
24
+
25
+ {# Add button and other standard tools #}
26
+ {% if has_add_permission %}
27
+ <a href="{% url cl.opts|admin_urlname:'add' %}{% if is_popup %}?{{ popup_var }}=1{% endif %}"
28
+ class="addlink bg-primary-600 flex items-center h-9 justify-center -my-1 rounded-full w-9"
29
+ title="{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}">
30
+ <span class="material-symbols-outlined text-white">add</span>
31
+ </a>
32
+ {% endif %}
33
+ </div>
34
+ {% endblock %}
@@ -1,12 +0,0 @@
1
- """
2
- Django-CFG modules and utilities registry.
3
- """
4
-
5
- MODULES_REGISTRY = {
6
- # URL integration
7
- "add_django_cfg_urls": ("django_cfg.core.integration", "add_django_cfg_urls"),
8
- "get_django_cfg_urls_info": ("django_cfg.core.integration", "get_django_cfg_urls_info"),
9
-
10
- # Configuration utilities
11
- "set_current_config": ("django_cfg.core.config", "set_current_config"),
12
- }
File without changes
File without changes
File without changes
File without changes