django-cfg 1.4.107__py3-none-any.whl → 1.4.108__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 (130) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/accounts/views/profile.py +19 -9
  3. django_cfg/apps/centrifugo/views/admin_api.py +4 -7
  4. django_cfg/apps/centrifugo/views/monitoring.py +3 -6
  5. django_cfg/apps/centrifugo/views/testing_api.py +3 -6
  6. django_cfg/apps/dashboard/services/system_health_service.py +16 -11
  7. django_cfg/apps/dashboard/views/activity_views.py +3 -5
  8. django_cfg/apps/dashboard/views/apizones_views.py +4 -5
  9. django_cfg/apps/dashboard/views/charts_views.py +4 -5
  10. django_cfg/apps/dashboard/views/overview_views.py +4 -5
  11. django_cfg/apps/dashboard/views/statistics_views.py +4 -5
  12. django_cfg/apps/dashboard/views/system_views.py +4 -5
  13. django_cfg/apps/knowbase/__init__.py +2 -2
  14. django_cfg/apps/knowbase/apps.py +2 -8
  15. django_cfg/apps/knowbase/views/base.py +9 -4
  16. django_cfg/apps/support/views/api.py +16 -7
  17. django_cfg/apps/tasks/__init__.py +61 -2
  18. django_cfg/apps/tasks/admin/__init__.py +3 -10
  19. django_cfg/apps/tasks/admin/config.py +98 -0
  20. django_cfg/apps/tasks/admin/task_log.py +265 -0
  21. django_cfg/apps/tasks/apps.py +7 -9
  22. django_cfg/apps/tasks/filters/__init__.py +10 -0
  23. django_cfg/apps/tasks/filters/task_log.py +121 -0
  24. django_cfg/apps/tasks/migrations/0001_initial.py +196 -0
  25. django_cfg/apps/tasks/models/__init__.py +4 -0
  26. django_cfg/apps/tasks/models/task_log.py +246 -0
  27. django_cfg/apps/tasks/serializers/__init__.py +28 -0
  28. django_cfg/apps/tasks/serializers/task_log.py +249 -0
  29. django_cfg/apps/tasks/services/__init__.py +10 -0
  30. django_cfg/apps/tasks/services/client/__init__.py +7 -0
  31. django_cfg/apps/tasks/services/client/client.py +234 -0
  32. django_cfg/apps/tasks/services/config_helper.py +63 -0
  33. django_cfg/apps/tasks/services/sync.py +204 -0
  34. django_cfg/apps/tasks/urls.py +7 -13
  35. django_cfg/apps/tasks/views/__init__.py +4 -10
  36. django_cfg/apps/tasks/views/task_log.py +41 -0
  37. django_cfg/apps/tasks/views/task_log_base.py +41 -0
  38. django_cfg/apps/tasks/views/task_log_overview.py +100 -0
  39. django_cfg/apps/tasks/views/task_log_related.py +41 -0
  40. django_cfg/apps/tasks/views/task_log_stats.py +91 -0
  41. django_cfg/apps/tasks/views/task_log_timeline.py +81 -0
  42. django_cfg/apps/urls.py +0 -1
  43. django_cfg/cli/commands/info.py +1 -1
  44. django_cfg/cli/utils.py +1 -1
  45. django_cfg/core/base/config_model.py +1 -1
  46. django_cfg/core/builders/apps_builder.py +1 -1
  47. django_cfg/core/generation/integration_generators/__init__.py +1 -1
  48. django_cfg/core/generation/integration_generators/tasks.py +14 -18
  49. django_cfg/core/generation/security_generators/crypto_fields.py +2 -1
  50. django_cfg/core/integration/display/startup.py +1 -1
  51. django_cfg/mixins/__init__.py +12 -0
  52. django_cfg/mixins/admin_api.py +37 -0
  53. django_cfg/mixins/client_api.py +39 -0
  54. django_cfg/models/django/constance.py +2 -8
  55. django_cfg/models/django/crypto_fields.py +13 -48
  56. django_cfg/models/tasks/__init__.py +8 -10
  57. django_cfg/models/tasks/backends.py +76 -207
  58. django_cfg/models/tasks/config.py +20 -127
  59. django_cfg/models/tasks/utils.py +17 -29
  60. django_cfg/modules/django_client/management/commands/generate_client.py +13 -1
  61. django_cfg/modules/django_unfold/navigation.py +121 -22
  62. django_cfg/pyproject.toml +2 -2
  63. django_cfg/registry/core.py +1 -1
  64. django_cfg/static/frontend/admin.zip +0 -0
  65. {django_cfg-1.4.107.dist-info → django_cfg-1.4.108.dist-info}/METADATA +3 -3
  66. {django_cfg-1.4.107.dist-info → django_cfg-1.4.108.dist-info}/RECORD +70 -107
  67. django_cfg/apps/tasks/admin/actions.py +0 -29
  68. django_cfg/apps/tasks/admin/tasks_admin.py +0 -154
  69. django_cfg/apps/tasks/api/serializers.py +0 -82
  70. django_cfg/apps/tasks/api/views.py +0 -571
  71. django_cfg/apps/tasks/serializers.py +0 -82
  72. django_cfg/apps/tasks/static/tasks/css/dashboard-alpine.css +0 -299
  73. django_cfg/apps/tasks/static/tasks/css/dashboard.css +0 -120
  74. django_cfg/apps/tasks/static/tasks/js/alpine/README.md +0 -47
  75. django_cfg/apps/tasks/static/tasks/js/alpine/actions/index.js +0 -8
  76. django_cfg/apps/tasks/static/tasks/js/alpine/actions/management.js +0 -123
  77. django_cfg/apps/tasks/static/tasks/js/alpine/actions/pagination.js +0 -21
  78. django_cfg/apps/tasks/static/tasks/js/alpine/actions/tasks.js +0 -101
  79. django_cfg/apps/tasks/static/tasks/js/alpine/actions/workers.js +0 -59
  80. django_cfg/apps/tasks/static/tasks/js/alpine/computed.js +0 -35
  81. django_cfg/apps/tasks/static/tasks/js/alpine/index.js +0 -148
  82. django_cfg/apps/tasks/static/tasks/js/alpine/loaders/index.js +0 -36
  83. django_cfg/apps/tasks/static/tasks/js/alpine/loaders/overview.js +0 -37
  84. django_cfg/apps/tasks/static/tasks/js/alpine/loaders/queues.js +0 -27
  85. django_cfg/apps/tasks/static/tasks/js/alpine/loaders/tasks.js +0 -32
  86. django_cfg/apps/tasks/static/tasks/js/alpine/loaders/workers.js +0 -21
  87. django_cfg/apps/tasks/static/tasks/js/alpine/state.js +0 -36
  88. django_cfg/apps/tasks/static/tasks/js/alpine/utils/formatters.js +0 -42
  89. django_cfg/apps/tasks/static/tasks/js/alpine/utils/helpers.js +0 -68
  90. django_cfg/apps/tasks/static/tasks/js/dashboard-alpine.js +0 -725
  91. django_cfg/apps/tasks/tasks/__init__.py +0 -10
  92. django_cfg/apps/tasks/tasks/demo_tasks.py +0 -127
  93. django_cfg/apps/tasks/templates/tasks/components/management_actions.html +0 -71
  94. django_cfg/apps/tasks/templates/tasks/components/overview_content.html +0 -94
  95. django_cfg/apps/tasks/templates/tasks/components/queues_content.html +0 -44
  96. django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +0 -45
  97. django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html +0 -151
  98. django_cfg/apps/tasks/templates/tasks/components/tasks_content.html +0 -61
  99. django_cfg/apps/tasks/templates/tasks/components/tasks_mjs_integration.html +0 -269
  100. django_cfg/apps/tasks/templates/tasks/components/workers_content.html +0 -60
  101. django_cfg/apps/tasks/templates/tasks/layout/base.html +0 -20
  102. django_cfg/apps/tasks/templates/tasks/pages/dashboard-improved.html +0 -168
  103. django_cfg/apps/tasks/templates/tasks/pages/dashboard.html +0 -77
  104. django_cfg/apps/tasks/templates/tasks/partials/task_row_template.html +0 -40
  105. django_cfg/apps/tasks/templates/tasks/widgets/task_filters.html +0 -40
  106. django_cfg/apps/tasks/templates/tasks/widgets/task_footer.html +0 -86
  107. django_cfg/apps/tasks/templates/tasks/widgets/task_table.html +0 -90
  108. django_cfg/apps/tasks/urls_admin.py +0 -15
  109. django_cfg/apps/tasks/utils/__init__.py +0 -1
  110. django_cfg/apps/tasks/utils/simulator.py +0 -353
  111. django_cfg/apps/tasks/views/api.py +0 -571
  112. django_cfg/apps/tasks/views/dashboard.py +0 -89
  113. django_cfg/management/commands/rundramatiq.py +0 -24
  114. django_cfg/management/commands/rundramatiq_simulator.py +0 -22
  115. django_cfg/management/commands/task_clear.py +0 -25
  116. django_cfg/management/commands/task_status.py +0 -24
  117. django_cfg/modules/django_tasks/__init__.py +0 -29
  118. django_cfg/modules/django_tasks/dramatiq_setup.py +0 -20
  119. django_cfg/modules/django_tasks/factory.py +0 -127
  120. django_cfg/modules/django_tasks/management/commands/__init__.py +0 -0
  121. django_cfg/modules/django_tasks/management/commands/rundramatiq.py +0 -253
  122. django_cfg/modules/django_tasks/management/commands/rundramatiq_simulator.py +0 -436
  123. django_cfg/modules/django_tasks/management/commands/task_clear.py +0 -226
  124. django_cfg/modules/django_tasks/management/commands/task_status.py +0 -257
  125. django_cfg/modules/django_tasks/service.py +0 -281
  126. django_cfg/modules/django_tasks/settings.py +0 -107
  127. /django_cfg/{modules/django_tasks/management → apps/tasks/migrations}/__init__.py +0 -0
  128. {django_cfg-1.4.107.dist-info → django_cfg-1.4.108.dist-info}/WHEEL +0 -0
  129. {django_cfg-1.4.107.dist-info → django_cfg-1.4.108.dist-info}/entry_points.txt +0 -0
  130. {django_cfg-1.4.107.dist-info → django_cfg-1.4.108.dist-info}/licenses/LICENSE +0 -0
@@ -4,15 +4,19 @@ Default Navigation Configuration for Django CFG Unfold
4
4
  Provides default navigation sections based on enabled django-cfg modules.
5
5
  """
6
6
 
7
- from typing import Any, Dict, List
7
+ import logging
8
+ import traceback
9
+ from typing import Any, Dict, List, Optional
8
10
 
9
- from django.urls import reverse_lazy
11
+ from django.urls import reverse_lazy, NoReverseMatch
10
12
 
11
13
  from django_cfg.modules.django_admin.icons import Icons
12
14
  from django_cfg.modules.base import BaseCfgModule
13
15
 
14
16
  from .models.navigation import NavigationItem, NavigationSection
15
17
 
18
+ logger = logging.getLogger(__name__)
19
+
16
20
 
17
21
  class NavigationManager(BaseCfgModule):
18
22
  """
@@ -39,19 +43,92 @@ class NavigationManager(BaseCfgModule):
39
43
  self._config_loaded = True
40
44
  return self._config
41
45
 
46
+ def _safe_reverse(self, url_name: str, fallback: Optional[str] = None) -> Optional[str]:
47
+ """
48
+ Safely resolve URL with error logging.
49
+
50
+ Args:
51
+ url_name: Django URL name to reverse
52
+ fallback: Optional fallback URL if reverse fails
53
+
54
+ Returns:
55
+ Resolved URL string or fallback, None if both fail
56
+ """
57
+ try:
58
+ return str(reverse_lazy(url_name))
59
+ except NoReverseMatch as e:
60
+ logger.error(
61
+ f"Failed to reverse URL '{url_name}': {e}\n"
62
+ f"Traceback:\n{''.join(traceback.format_tb(e.__traceback__))}"
63
+ )
64
+ if fallback:
65
+ logger.warning(f"Using fallback URL: {fallback}")
66
+ return fallback
67
+ return None
68
+ except Exception as e:
69
+ logger.error(
70
+ f"Unexpected error reversing URL '{url_name}': {e}\n"
71
+ f"Traceback:\n{''.join(traceback.format_exc())}"
72
+ )
73
+ return fallback
74
+
75
+ def _create_nav_item(
76
+ self,
77
+ title: str,
78
+ icon: str,
79
+ url_name: str,
80
+ fallback_link: Optional[str] = None
81
+ ) -> Optional[NavigationItem]:
82
+ """
83
+ Create NavigationItem with safe URL resolution.
84
+
85
+ Args:
86
+ title: Navigation item title
87
+ icon: Icon identifier
88
+ url_name: Django URL name to reverse
89
+ fallback_link: Optional fallback URL
90
+
91
+ Returns:
92
+ NavigationItem or None if URL resolution fails
93
+ """
94
+ link = self._safe_reverse(url_name, fallback_link)
95
+ if link is None:
96
+ logger.warning(f"Skipping navigation item '{title}' - URL '{url_name}' could not be resolved")
97
+ return None
98
+
99
+ return NavigationItem(title=title, icon=icon, link=link)
100
+
42
101
  def get_navigation_config(self) -> List[Dict[str, Any]]:
43
102
  """Get complete default navigation configuration for Unfold sidebar."""
103
+ # Dashboard section with safe URL resolution
104
+ dashboard_items = []
105
+
106
+ # Overview
107
+ overview_item = self._create_nav_item("Overview", Icons.DASHBOARD, "admin:index")
108
+ if overview_item:
109
+ dashboard_items.append(overview_item)
110
+
111
+ # Settings
112
+ settings_item = self._create_nav_item("Settings", Icons.SETTINGS, "admin:constance_config_changelist")
113
+ if settings_item:
114
+ dashboard_items.append(settings_item)
115
+
116
+ # Health Check
117
+ health_item = self._create_nav_item("Health Check", Icons.HEALTH_AND_SAFETY, "django_cfg_drf_health", "/cfg/health/")
118
+ if health_item:
119
+ dashboard_items.append(health_item)
120
+
121
+ # Endpoints Status
122
+ endpoints_item = self._create_nav_item("Endpoints Status", Icons.API, "endpoints_status_drf", "/cfg/endpoints/")
123
+ if endpoints_item:
124
+ dashboard_items.append(endpoints_item)
125
+
44
126
  navigation_sections = [
45
127
  NavigationSection(
46
128
  title="Dashboard",
47
129
  separator=True,
48
130
  collapsible=True,
49
- items=[
50
- NavigationItem(title="Overview", icon=Icons.DASHBOARD, link=str(reverse_lazy("admin:index"))),
51
- NavigationItem(title="Settings", icon=Icons.SETTINGS, link=str(reverse_lazy("admin:constance_config_changelist"))),
52
- NavigationItem(title="Health Check", icon=Icons.HEALTH_AND_SAFETY, link=str(reverse_lazy("django_cfg_drf_health"))),
53
- NavigationItem(title="Endpoints Status", icon=Icons.API, link=str(reverse_lazy("endpoints_status_drf"))),
54
- ]
131
+ items=dashboard_items
55
132
  ),
56
133
  ]
57
134
 
@@ -69,29 +146,51 @@ class NavigationManager(BaseCfgModule):
69
146
  )
70
147
  )
71
148
 
72
- # Add Operations section (System & Monitoring tools)
73
- operations_items = []
74
-
75
- # Background Tasks (if enabled)
149
+ # Background Tasks section (if enabled)
76
150
  if self.should_enable_tasks():
77
- operations_items.extend([
78
- NavigationItem(title="Background Tasks", icon=Icons.TASK, link=str(reverse_lazy("admin:django_dramatiq_task_changelist"))),
79
- NavigationItem(title="Task Dashboard", icon=Icons.SETTINGS_APPLICATIONS, link=str(reverse_lazy("dashboard"))),
80
- ])
151
+ tasks_items = []
152
+
153
+ tasks_items.append(
154
+ NavigationItem(title="Dashboard", icon=Icons.SETTINGS_APPLICATIONS, link="/cfg/admin/admin/tasks")
155
+ )
156
+
157
+ # Try to add Tasks Logs with safe URL resolution
158
+ logs_item = self._create_nav_item(
159
+ title="Logs",
160
+ icon=Icons.TASK,
161
+ url_name="admin:django_cfg_tasks_tasklog_changelist",
162
+ fallback_link="/admin/django_cfg_tasks/tasklog/"
163
+ )
164
+ if logs_item:
165
+ tasks_items.append(logs_item)
166
+
167
+ navigation_sections.append(NavigationSection(
168
+ title="Background Tasks",
169
+ separator=True,
170
+ collapsible=True,
171
+ items=tasks_items
172
+ ))
173
+
174
+ # System Operations section
175
+ system_items = []
81
176
 
82
177
  # Maintenance Mode (if enabled)
83
178
  if self.is_maintenance_enabled():
84
- operations_items.append(
85
- NavigationItem(title="Maintenance", icon=Icons.BUILD, link=str(reverse_lazy("admin:maintenance_cloudflaresite_changelist")))
179
+ maintenance_item = self._create_nav_item(
180
+ title="Maintenance",
181
+ icon=Icons.BUILD,
182
+ url_name="admin:maintenance_cloudflaresite_changelist"
86
183
  )
184
+ if maintenance_item:
185
+ system_items.append(maintenance_item)
87
186
 
88
- # Add Operations section if there are any items
89
- if operations_items:
187
+ # Add System Operations section if there are any items
188
+ if system_items:
90
189
  navigation_sections.append(NavigationSection(
91
- title="Operations",
190
+ title="System Operations",
92
191
  separator=True,
93
192
  collapsible=True,
94
- items=operations_items
193
+ items=system_items
95
194
  ))
96
195
 
97
196
  # Add Accounts section if enabled
django_cfg/pyproject.toml CHANGED
@@ -4,13 +4,13 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "django-cfg"
7
- version = "1.4.107"
7
+ version = "1.4.108"
8
8
  description = "Modern Django framework with type-safe Pydantic v2 configuration, Next.js admin integration, real-time WebSockets, and 8 enterprise apps. Replace settings.py with validated models, 90% less code. Production-ready with AI agents, auto-generated TypeScript clients, and zero-config features."
9
9
  readme = "README.md"
10
10
  keywords = [ "django", "configuration", "pydantic", "settings", "type-safety", "pydantic-settings", "django-environ", "startup-validation", "ide-autocomplete", "nextjs-admin", "react-admin", "websocket", "centrifugo", "real-time", "typescript-generation", "ai-agents", "enterprise-django", "django-settings", "type-safe-config", "modern-django",]
11
11
  classifiers = [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 5.2", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Systems Administration", "Typing :: Typed",]
12
12
  requires-python = ">=3.12,<3.14"
13
- dependencies = [ "pydantic>=2.11.0,<3.0", "pydantic[email]>=2.11.0,<3.0", "PyYAML>=6.0,<7.0", "click>=8.2.0,<9.0", "questionary>=2.1.0,<3.0", "rich>=14.0.0,<15.0", "cloudflare>=4.3.0,<5.0", "loguru>=0.7.0,<1.0", "colorlog>=6.9.0,<7.0", "cachetools>=5.3.0,<7.0", "toml>=0.10.2,<0.11.0", "ngrok>=1.5.1; python_version>='3.12'", "psycopg[binary,pool]>=3.2.0,<4.0", "dj-database-url>=3.0.0,<4.0", "whitenoise>=6.8.0,<7.0", "django-cors-headers>=4.7.0,<5.0", "djangorestframework>=3.16.0,<4.0", "djangorestframework-simplejwt>=5.5.0,<6.0", "djangorestframework-simplejwt[token-blacklist]>=5.5.0,<6.0", "drf-nested-routers>=0.94.0,<1.0", "django-filter>=25.0,<26.0", "django-ratelimit>=4.1.0,<5.0.0", "drf-spectacular>=0.28.0,<1.0", "drf-spectacular-sidecar>=2025.8.0,<2026.0", "django-json-widget>=2.0.0,<3.0", "django-import-export>=4.3.0,<5.0", "django-extensions>=4.1.0,<5.0", "django-constance>=4.3.0,<5.0", "django-unfold>=0.64.0,<1.0", "django-redis>=6.0.0,<7.0", "redis>=6.4.0,<7.0", "hiredis>=2.0.0,<4.0", "dramatiq[redis]>=1.18.0,<2.0", "django-dramatiq>=0.14.0,<1.0", "pyTelegramBotAPI>=4.28.0,<5.0", "coolname>=2.2.0,<3.0", "django-admin-rangefilter>=0.13.0,<1.0", "python-json-logger>=3.3.0,<4.0", "requests>=2.32.0,<3.0", "tiktoken>=0.11.0,<1.0", "openai>=1.107.0,<2.0", "twilio>=9.8.0,<10.0", "sendgrid>=6.12.0,<7.0", "beautifulsoup4>=4.13.0,<5.0", "lxml>=6.0.0,<7.0", "pgvector>=0.4.0,<1.0", "tenacity>=9.1.2,<10.0.0", "mypy (>=1.18.2,<2.0.0)", "django-tailwind[reload] (>=4.2.0,<5.0.0)", "jinja2 (>=3.1.6,<4.0.0)", "django-axes[ipware] (>=8.0.0,<9.0.0)", "pydantic-settings (>=2.11.0,<3.0.0)", "pytz>=2025.1", "httpx>=0.28.1,<1.0",]
13
+ dependencies = [ "pydantic>=2.11.0,<3.0", "pydantic[email]>=2.11.0,<3.0", "PyYAML>=6.0,<7.0", "click>=8.2.0,<9.0", "questionary>=2.1.0,<3.0", "rich>=14.0.0,<15.0", "cloudflare>=4.3.0,<5.0", "loguru>=0.7.0,<1.0", "colorlog>=6.9.0,<7.0", "cachetools>=5.3.0,<7.0", "toml>=0.10.2,<0.11.0", "ngrok>=1.5.1; python_version>='3.12'", "psycopg[binary,pool]>=3.2.0,<4.0", "dj-database-url>=3.0.0,<4.0", "whitenoise>=6.8.0,<7.0", "django-cors-headers>=4.7.0,<5.0", "djangorestframework>=3.16.0,<4.0", "djangorestframework-simplejwt>=5.5.0,<6.0", "djangorestframework-simplejwt[token-blacklist]>=5.5.0,<6.0", "drf-nested-routers>=0.94.0,<1.0", "django-filter>=25.0,<26.0", "django-ratelimit>=4.1.0,<5.0.0", "drf-spectacular>=0.28.0,<1.0", "drf-spectacular-sidecar>=2025.8.0,<2026.0", "django-json-widget>=2.0.0,<3.0", "django-import-export>=4.3.0,<5.0", "django-extensions>=4.1.0,<5.0", "django-constance>=4.3.0,<5.0", "django-unfold>=0.64.0,<1.0", "django-redis>=6.0.0,<7.0", "redis>=6.4.0,<7.0", "hiredis>=2.0.0,<4.0", "rearq>=0.2.0,<1.0", "setuptools>=75.0.0; python_version>='3.13'", "pyTelegramBotAPI>=4.28.0,<5.0", "coolname>=2.2.0,<3.0", "django-admin-rangefilter>=0.13.0,<1.0", "python-json-logger>=3.3.0,<4.0", "requests>=2.32.0,<3.0", "tiktoken>=0.11.0,<1.0", "openai>=1.107.0,<2.0", "twilio>=9.8.0,<10.0", "sendgrid>=6.12.0,<7.0", "beautifulsoup4>=4.13.0,<5.0", "lxml>=6.0.0,<7.0", "pgvector>=0.4.0,<1.0", "tenacity>=9.1.2,<10.0.0", "mypy (>=1.18.2,<2.0.0)", "django-tailwind[reload] (>=4.2.0,<5.0.0)", "jinja2 (>=3.1.6,<4.0.0)", "django-axes[ipware] (>=8.0.0,<9.0.0)", "pydantic-settings (>=2.11.0,<3.0.0)", "pytz>=2025.1", "httpx>=0.28.1,<1.0",]
14
14
  [[project.authors]]
15
15
  name = "Django-CFG Team"
16
16
  email = "info@djangocfg.com"
@@ -49,7 +49,7 @@ CORE_REGISTRY = {
49
49
 
50
50
  # Task and queue models
51
51
  "TaskConfig": ("django_cfg.models.tasks.config", "TaskConfig"),
52
- "DramatiqConfig": ("django_cfg.models.tasks.config", "DramatiqConfig"),
52
+ "RearqConfig": ("django_cfg.models.tasks.config", "RearqConfig"),
53
53
 
54
54
  # Payment system models (BaseCfgAutoModule)
55
55
  "PaymentsConfig": ("django_cfg.models.payments.config", "PaymentsConfig"),
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-cfg
3
- Version: 1.4.107
3
+ Version: 1.4.108
4
4
  Summary: Modern Django framework with type-safe Pydantic v2 configuration, Next.js admin integration, real-time WebSockets, and 8 enterprise apps. Replace settings.py with validated models, 90% less code. Production-ready with AI agents, auto-generated TypeScript clients, and zero-config features.
5
5
  Project-URL: Homepage, https://djangocfg.com
6
6
  Project-URL: Documentation, https://djangocfg.com
@@ -39,7 +39,6 @@ Requires-Dist: django-admin-rangefilter<1.0,>=0.13.0
39
39
  Requires-Dist: django-axes[ipware]<9.0.0,>=8.0.0
40
40
  Requires-Dist: django-constance<5.0,>=4.3.0
41
41
  Requires-Dist: django-cors-headers<5.0,>=4.7.0
42
- Requires-Dist: django-dramatiq<1.0,>=0.14.0
43
42
  Requires-Dist: django-extensions<5.0,>=4.1.0
44
43
  Requires-Dist: django-filter<26.0,>=25.0
45
44
  Requires-Dist: django-import-export<5.0,>=4.3.0
@@ -51,7 +50,6 @@ Requires-Dist: django-unfold<1.0,>=0.64.0
51
50
  Requires-Dist: djangorestframework-simplejwt<6.0,>=5.5.0
52
51
  Requires-Dist: djangorestframework-simplejwt[token-blacklist]<6.0,>=5.5.0
53
52
  Requires-Dist: djangorestframework<4.0,>=3.16.0
54
- Requires-Dist: dramatiq[redis]<2.0,>=1.18.0
55
53
  Requires-Dist: drf-nested-routers<1.0,>=0.94.0
56
54
  Requires-Dist: drf-spectacular-sidecar<2026.0,>=2025.8.0
57
55
  Requires-Dist: drf-spectacular<1.0,>=0.28.0
@@ -73,10 +71,12 @@ Requires-Dist: python-json-logger<4.0,>=3.3.0
73
71
  Requires-Dist: pytz>=2025.1
74
72
  Requires-Dist: pyyaml<7.0,>=6.0
75
73
  Requires-Dist: questionary<3.0,>=2.1.0
74
+ Requires-Dist: rearq<1.0,>=0.2.0
76
75
  Requires-Dist: redis<7.0,>=6.4.0
77
76
  Requires-Dist: requests<3.0,>=2.32.0
78
77
  Requires-Dist: rich<15.0,>=14.0.0
79
78
  Requires-Dist: sendgrid<7.0,>=6.12.0
79
+ Requires-Dist: setuptools>=75.0.0; python_version >= '3.13'
80
80
  Requires-Dist: tenacity<10.0.0,>=9.1.2
81
81
  Requires-Dist: tiktoken<1.0,>=0.11.0
82
82
  Requires-Dist: toml<0.11.0,>=0.10.2
@@ -1,9 +1,9 @@
1
1
  django_cfg/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- django_cfg/__init__.py,sha256=KYlYkP_W1VDKzLgBVLlALZylOST7Myun4rcy-Sa-_80,1621
2
+ django_cfg/__init__.py,sha256=IOva6NUiepfrbs-A0jIjuXF_Ukn76RAB97unffae6Tw,1621
3
3
  django_cfg/apps.py,sha256=72m3uuvyqGiLx6gOfE-BD3P61jddCCERuBOYpxTX518,1605
4
4
  django_cfg/config.py,sha256=y4Z3rnYsHBE0TehpwAIPaxr---mkvyKrZGGsNwYso74,1398
5
5
  django_cfg/apps/__init__.py,sha256=JtDmEYt1OcleWM2ZaeX0LKDnRQzPOavfaXBWG4ECB5Q,26
6
- django_cfg/apps/urls.py,sha256=J9C92ra4iPVkm4k3Eu6JrJMd-htDeR3JUyYxqDf0pGY,6759
6
+ django_cfg/apps/urls.py,sha256=oUmBXmhZp6BwXUs8R_H9rYWskbpVTs1wQDqyGfMnIt4,6693
7
7
  django_cfg/apps/accounts/README.md,sha256=YkUYJ3iKMYTmm9ALK2PDnX75SDqZxgnkzNLCD5efxRs,8227
8
8
  django_cfg/apps/accounts/__init__.py,sha256=I9pq6H5oOFv59Du0VP-g7KsAUDhjKeUcP0spMvhtIjk,99
9
9
  django_cfg/apps/accounts/__models.py,sha256=fYhobXbGIYKnG4mZ_pwNePei8O-SHHqgBMhe6qhH3KQ,10075
@@ -56,7 +56,7 @@ django_cfg/apps/accounts/templates/emails/welcome_email.txt,sha256=jVIr4O9_jOOSU
56
56
  django_cfg/apps/accounts/utils/notifications.py,sha256=6ex83E3Gm9t1qwWePxfFRhmoZDIXOLPT4_UfKoYYmjU,16875
57
57
  django_cfg/apps/accounts/views/__init__.py,sha256=rSrlJyZH8hXdURzwil49M7iJ_zmWHPAxPrezRDPbrBw,239
58
58
  django_cfg/apps/accounts/views/otp.py,sha256=PVAQYCEuAKo-kPVAFvgvehjJN5G7PWZP3LHBPj2EkTw,6798
59
- django_cfg/apps/accounts/views/profile.py,sha256=q4tDkl4chB6t1-EbDO0Y0NnkiDMGOzcIBFWT_D0UL8I,5478
59
+ django_cfg/apps/accounts/views/profile.py,sha256=4MHrhF9q4vyHQen1IaC2BGRiPpfNc7w9BgBbRZcvWnY,5589
60
60
  django_cfg/apps/accounts/views/webhook.py,sha256=F1Xtz_5hQXiMNCdVmwCz11WXwbXuM70dqXWTO6PftXc,10334
61
61
  django_cfg/apps/agents/README.md,sha256=CTK46bM6AgxoV8AkoH_t6HkGI6OUduL0oqrseQTCFeQ,3077
62
62
  django_cfg/apps/agents/__init__.py,sha256=GOtWo1RGWMrRmYKdjZFk5VTl5umuPz-kdypDvQML9fc,2003
@@ -190,9 +190,9 @@ django_cfg/apps/centrifugo/services/client/client.py,sha256=2WhzoYr__DP0eH70f4M3
190
190
  django_cfg/apps/centrifugo/services/client/config.py,sha256=udkAhLCq1J0GSCupta9N3LwAdSa1mGkZid1GFVjsc00,6952
191
191
  django_cfg/apps/centrifugo/services/client/exceptions.py,sha256=VsYExbk_H-qOaPa3iFUWBa1HMgw1IObil73JI1FhcDM,6263
192
192
  django_cfg/apps/centrifugo/views/__init__.py,sha256=QdYKO9AY6t-2bwwy78Kw1mAOpe-t3ZZX1KSs5NmrE8I,304
193
- django_cfg/apps/centrifugo/views/admin_api.py,sha256=4IUaPuzUSB9oN4wbpVUKsOZiYK6ZQGGWLmt-XfRvkfg,13970
194
- django_cfg/apps/centrifugo/views/monitoring.py,sha256=eFjoZDvnfwZh-Fw2OwFDii-SZTReHswi_hqAQeVOLk4,14502
195
- django_cfg/apps/centrifugo/views/testing_api.py,sha256=fOGc1I7XxOuRIIOnDQ9T1E0GwS5UuyR_YVJxw685UdE,16954
193
+ django_cfg/apps/centrifugo/views/admin_api.py,sha256=ECD7W7v0o6cvo4OShZ0K5OgluNxKqReRcNn9aIZjcg4,13888
194
+ django_cfg/apps/centrifugo/views/monitoring.py,sha256=TPudsIR4fnGp2w9RteH6Tm8ckXr-FQN5q9-AjD4g9fw,14416
195
+ django_cfg/apps/centrifugo/views/testing_api.py,sha256=sNBmYoRD7VBXZmoHEw9BmPbDa0BA5mnVZg6asqgKb8Y,16868
196
196
  django_cfg/apps/dashboard/__init__.py,sha256=TirqQji7p39fA15jGBswWSt6ML2K1SP96Iq-7Sw7NFI,236
197
197
  django_cfg/apps/dashboard/apps.py,sha256=OvB_C5qTq-QcLvvrRpbBxJPL-DCtA-pGVK8ir2y-hKk,508
198
198
  django_cfg/apps/dashboard/permissions.py,sha256=LJGza0pjVfoR2rQjKYZWnkgGcyzSHr43RMYiCibrokQ,1360
@@ -213,15 +213,15 @@ django_cfg/apps/dashboard/services/commands_security.py,sha256=kFADVoYNbqb2DwzFf
213
213
  django_cfg/apps/dashboard/services/commands_service.py,sha256=OnvZBUv2GDUWq3JA3UVrHu-gMc2eJm0-MT_WTdM27uk,11644
214
214
  django_cfg/apps/dashboard/services/overview_service.py,sha256=Dl_y89_waG9onDC9PHGWx0ci7m3NOdrMoEKSdv3Fves,6382
215
215
  django_cfg/apps/dashboard/services/statistics_service.py,sha256=cX20DB0VrjDLaaLCp8YQUcBw_N34VzZKqY4Ly2Qal0M,14023
216
- django_cfg/apps/dashboard/services/system_health_service.py,sha256=OUhy8iIWV6hURIkmP1t06hEZB6NF9iDQvPL9HeNNNqM,9188
216
+ django_cfg/apps/dashboard/services/system_health_service.py,sha256=NUTmZrqc9ifQqwRcD54zGQb5Hrv63pvTj6QsYeYeLvI,9406
217
217
  django_cfg/apps/dashboard/views/__init__.py,sha256=tgsvzkwnIr3bL35LOpZl8o-2aRLFSKbjfRFMqhZUPjA,561
218
- django_cfg/apps/dashboard/views/activity_views.py,sha256=3YBvsbQuUSFrcbE_Xr8GXg8Xpq0rjUH7IT2kMQXUXBI,2922
219
- django_cfg/apps/dashboard/views/apizones_views.py,sha256=SMqlsyMDNZXBiOOu5MYJxiIToxmOQ1sAZ6qMX3XKf_M,2453
220
- django_cfg/apps/dashboard/views/charts_views.py,sha256=FKUC6KMPDCI_r8abTqqrfoUSb3Dj3KOWqhrlhJpvLg8,5638
218
+ django_cfg/apps/dashboard/views/activity_views.py,sha256=UsGTnFABCJdZZID8kmG2J6grVRx18G9xSKfl7nKVz3w,2797
219
+ django_cfg/apps/dashboard/views/apizones_views.py,sha256=FtEEeNQD7aFBejmuTfdtjvRCLwCJyjD7AWDR1ouBo2k,2329
220
+ django_cfg/apps/dashboard/views/charts_views.py,sha256=XDV3lTfoP65UuW_HIgNnp_80k35DVcicXXPLzIB6neU,5514
221
221
  django_cfg/apps/dashboard/views/commands_views.py,sha256=eJw3U4CtLUMZn2YdENr3HwhzHcqygo8HW92vjRg1sYQ,6099
222
- django_cfg/apps/dashboard/views/overview_views.py,sha256=3HWHz-N76zRm0veKKX1Iize6N9nyhTY31C4mVqLaKwI,3217
223
- django_cfg/apps/dashboard/views/statistics_views.py,sha256=IfA_87tR4Rh6oNfuUHiIKpfT5xYPpzWl5P1f6oKBscg,3635
224
- django_cfg/apps/dashboard/views/system_views.py,sha256=KZ9L6WSYkgUNTKYmS61y3MP7fPAirnFD7rzssPYOJKk,2583
222
+ django_cfg/apps/dashboard/views/overview_views.py,sha256=sCGldHXoW-lgGSfFiAY9BNTBSmHiQznPlrlj_duoJDg,3093
223
+ django_cfg/apps/dashboard/views/statistics_views.py,sha256=CISWM8A5lkIqTK2dWifTBJD4RdFI9Hu-_RCFl3kMoiA,3511
224
+ django_cfg/apps/dashboard/views/system_views.py,sha256=PSEGZuHhexgBiKVOlrNlDV9_t2kEwS2arBT8h2KFxds,2459
225
225
  django_cfg/apps/frontend/JWT_AUTO_INJECTION.md,sha256=vw4M49mijxjd1ANlumPbye3d2XIaYuc_3jYRbmWsb-8,8018
226
226
  django_cfg/apps/frontend/__init__.py,sha256=QMFJM9mpjiPcU0e5EnuLZb6xpCWi3cbSnihyPS9U2Ik,394
227
227
  django_cfg/apps/frontend/apps.py,sha256=9eEK0Tq2nOsol7xSK5aobdwTDJTJrWx6Iy1I1DQb_Yk,391
@@ -231,8 +231,8 @@ django_cfg/apps/frontend/urls.py,sha256=Vz22_2i2w1J0KQYDCxHnTF5rUf32kUUSBDJZrP07
231
231
  django_cfg/apps/frontend/views.py,sha256=JPTJRPCGY3zLLiiz1F9CsZiLkXbQ5RfnViJZzBUpV7o,15023
232
232
  django_cfg/apps/frontend/templates/frontend/404.html,sha256=LCFig_dcgDDmYKhgOLu8R2KDs_aQS6Es6rAxLTAEXWs,2175
233
233
  django_cfg/apps/knowbase/README.md,sha256=HXt_J6WCN-LsMhA7p9mdvih07_vp_r_hkPdmqHhNEeo,3965
234
- django_cfg/apps/knowbase/__init__.py,sha256=cfGnxDQwjajPhUoleKkgvdabJcB0LdXEglnsBojKkPo,1045
235
- django_cfg/apps/knowbase/apps.py,sha256=GAYw98_rQdGHoak58xN-0vjdDcRNpJuND3kV-FfM1II,3290
234
+ django_cfg/apps/knowbase/__init__.py,sha256=XLhl7_wweUm1nqmA_xVlPxiCSuARxtCro-uY41JFQgs,1039
235
+ django_cfg/apps/knowbase/apps.py,sha256=Y1n4ZoEP5oL-lDGLNRHtxhPClEcBElMX8iXFFS4OsPE,3052
236
236
  django_cfg/apps/knowbase/urls.py,sha256=r5Ak_fp1bWpW01hcstZsJK5F9RhuRFyhR6bUmuoJOA4,643
237
237
  django_cfg/apps/knowbase/urls_admin.py,sha256=fu6KG-nat8ay7buB8t255-Ye_5uiQYibZ1NzhNiyvtg,640
238
238
  django_cfg/apps/knowbase/urls_system.py,sha256=ZW7TOf_7Svt5V-83EBiN9qnm1Y4fQE5YspYRkAJFyVA,736
@@ -340,7 +340,7 @@ django_cfg/apps/knowbase/utils/text_processing.py,sha256=t2PZn6roWd51oYMny0Q23Dp
340
340
  django_cfg/apps/knowbase/utils/validation.py,sha256=pubQwxNayuVvgybMuLdz0roSzMLKfHX-pMEwhuIa1uk,2452
341
341
  django_cfg/apps/knowbase/views/__init__.py,sha256=y0PbF5HnFVri6oWv59mMcJl3laMbOS2xSJzfc5DUuNI,493
342
342
  django_cfg/apps/knowbase/views/archive_views.py,sha256=r8HguQY7GNo49tFxTPbntxyJvIqSXuO59A21oXU-qEc,17176
343
- django_cfg/apps/knowbase/views/base.py,sha256=mq9vxxX9duaGcF9HKqmDA_TILlQjKP8WP_VylHBuFMg,1506
343
+ django_cfg/apps/knowbase/views/base.py,sha256=9w6pnAWanEM1gipvADksF9o5jSVwzgStkDNqFW8shxc,1601
344
344
  django_cfg/apps/knowbase/views/chat_views.py,sha256=UqRAo128dt03eSTU6d86GybTbEaYMWVVrZR1xROd7Ik,6793
345
345
  django_cfg/apps/knowbase/views/document_views.py,sha256=k4sAPAqgqGA1O-pZvZpAPwp-c57WXkZOXB9DAH9iyuk,6477
346
346
  django_cfg/apps/knowbase/views/public_views.py,sha256=0g__UAu7pJ1bQGXiNT3dfpo3EyxW2HyaJscGv_N324o,4508
@@ -495,66 +495,41 @@ django_cfg/apps/support/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
495
495
  django_cfg/apps/support/utils/support_email_service.py,sha256=x-RtNym5uqvILnmktR4UUK5QLv1edhehPf1Swj-K8A0,4943
496
496
  django_cfg/apps/support/views/__init__.py,sha256=0-6pYFqa2aDioxVImPt_-HHe4z_2x6N1SMf9Kw7Ooc0,447
497
497
  django_cfg/apps/support/views/admin.py,sha256=3bofdyoFWPhip0kia7WTFW_4y4-2FtOraOQSMElaemA,1585
498
- django_cfg/apps/support/views/api.py,sha256=0eLFTmHwC8uaELZ0SXVIwGcCI2rOP5WC4U5fNxWG-o4,5301
498
+ django_cfg/apps/support/views/api.py,sha256=8hHY-j6EZpSdYkT6JA8_yo7LJKPpSon3DVNWl6jfGRw,5506
499
499
  django_cfg/apps/support/views/chat.py,sha256=wbWR_UgvdgYBYlhHJBLJRPpVm7V44bNy5NZWHqBx2AE,3255
500
- django_cfg/apps/tasks/__init__.py,sha256=nY0Mp7b64LfuMB1Pbv_C6SBEdueMIYdfFvbORM81OQM,85
501
- django_cfg/apps/tasks/apps.py,sha256=t0IgHRz5W79hjC0N0IZQAZD3yWghteC6riKlBqMHOS8,375
502
- django_cfg/apps/tasks/serializers.py,sha256=zmh99EM2rkPW21vlnwUupruxLWFdehnq0H0joimUfBQ,2703
503
- django_cfg/apps/tasks/urls.py,sha256=Ht76XmUCzZhhr2OAUOFHIuhSKI8VEwgFvWOrbhxKoZw,514
504
- django_cfg/apps/tasks/urls_admin.py,sha256=qSKV-Oo1TRwS1i_f9tXLL7uU6HSxGFKrQx2O5hHsNzE,300
505
- django_cfg/apps/tasks/admin/__init__.py,sha256=vn7ddiQYGTl3HA9C_WixLmhmRF0W13Mtu2O9up1cGjc,208
506
- django_cfg/apps/tasks/admin/actions.py,sha256=csxHx2UALp4iiqlHPHf-QSovE3zkPYaEAy158tTQGGA,860
507
- django_cfg/apps/tasks/admin/tasks_admin.py,sha256=kzDA5hBULAZEBy8lQMxRxGsJOoa5tweTlY8UMoMv7TQ,6669
508
- django_cfg/apps/tasks/api/serializers.py,sha256=zmh99EM2rkPW21vlnwUupruxLWFdehnq0H0joimUfBQ,2703
509
- django_cfg/apps/tasks/api/views.py,sha256=ft8eaRoMYz_iStPxcHg7d_3dvjaNxNZyzyh0RJq8f1g,21869
510
- django_cfg/apps/tasks/static/tasks/css/dashboard-alpine.css,sha256=NKuZh8Qcq3zt_hoTiJyrpS2dh8p7q4A9MPpNwmq5PpQ,5242
511
- django_cfg/apps/tasks/static/tasks/css/dashboard.css,sha256=1ULA4LGX40dWrpiv86my0ATmixkyIpGLyRjMfPmqy-0,2166
512
- django_cfg/apps/tasks/static/tasks/js/dashboard-alpine.js,sha256=pw2vlekIdzsePW9x4_7Ybk7UcXM1d-tXVhzr09hHMJY,25506
513
- django_cfg/apps/tasks/static/tasks/js/alpine/README.md,sha256=swg362BNAZljHFy65k0ziEpYWKzjP0c6l0K6CHh8xus,2070
514
- django_cfg/apps/tasks/static/tasks/js/alpine/computed.js,sha256=KldC7f626gNvJYHUxGZdNNxSns0UGFjHIk8n8HvlF1I,1090
515
- django_cfg/apps/tasks/static/tasks/js/alpine/index.js,sha256=NHdNQXXR5M3wU8191ZEH7XlWTnUqdECMeZz9N9WYYHk,3163
516
- django_cfg/apps/tasks/static/tasks/js/alpine/state.js,sha256=3m7ZM-DxORqvMULWDmXuQbtsny7oKnNs4t98PbtDklg,670
517
- django_cfg/apps/tasks/static/tasks/js/alpine/actions/index.js,sha256=navMGnyjqjCHc1VZfMlffVLkky6kRV9h5LR7QYjUK54,155
518
- django_cfg/apps/tasks/static/tasks/js/alpine/actions/management.js,sha256=Ex5pM7o5BDnMJlVcWVYqxUtbjHl4zGyhhJNHZ6sY2tg,3916
519
- django_cfg/apps/tasks/static/tasks/js/alpine/actions/pagination.js,sha256=Ipg0ceenr9BuoOO4kMSn7IpGvKWWaHw1wmOAhsErtHo,418
520
- django_cfg/apps/tasks/static/tasks/js/alpine/actions/tasks.js,sha256=yDOSeutx5eP3j7zmsxvXf75Wmb3Vo-O8BuxQFSi5V5s,3346
521
- django_cfg/apps/tasks/static/tasks/js/alpine/actions/workers.js,sha256=rs5uoc0OCtfk1usaFSnhGp9ST-zvUreGvImPfevJUA0,1865
522
- django_cfg/apps/tasks/static/tasks/js/alpine/loaders/index.js,sha256=Te9GrAPxEZTe5r9tG1A1W06l6VgMU3quUCyJ8kIjRtE,982
523
- django_cfg/apps/tasks/static/tasks/js/alpine/loaders/overview.js,sha256=DZZiC38KBEnb8dTvY2Aij4eFCAXUWcYsMxIZ0W1kaek,1328
524
- django_cfg/apps/tasks/static/tasks/js/alpine/loaders/queues.js,sha256=qHwU-Xt1ThepK2lhaaDEHr0CeEowXJu8IYEaiWoYWyQ,818
525
- django_cfg/apps/tasks/static/tasks/js/alpine/loaders/tasks.js,sha256=vFaf9-Lm4CAYw27Q-zLCN9fpdkudY_CcAAUSVdclV1s,1120
526
- django_cfg/apps/tasks/static/tasks/js/alpine/loaders/workers.js,sha256=slDkfrOhphb39ENEqo9eUkXMnBNRuuN5QZALxCcY1HM,651
527
- django_cfg/apps/tasks/static/tasks/js/alpine/utils/formatters.js,sha256=ImJ_5R0hSTpoKcz6_Rnb3hlcErLzN20RUPEuYgo3CCQ,893
528
- django_cfg/apps/tasks/static/tasks/js/alpine/utils/helpers.js,sha256=uFxWWCexZwpyCRqxNBt8fwPYfMjP6RHX11Xp2jSks0g,1687
529
- django_cfg/apps/tasks/tasks/__init__.py,sha256=leHz5YglzX8Crk3vQvpmOysSwDNkVOjK9ibH5FON3uQ,229
530
- django_cfg/apps/tasks/tasks/demo_tasks.py,sha256=nd5KxNjNeuzKQnBKq-_yfZ050__OktiEtaV80mR0CZI,4451
531
- django_cfg/apps/tasks/templates/tasks/components/management_actions.html,sha256=WWK-m-I03XmMlCo8f2z9SQtXoqgUzDr21E6ALxgwhko,4330
532
- django_cfg/apps/tasks/templates/tasks/components/overview_content.html,sha256=pKe1KbBcLETQfydSRdfGZLlWpHVGHt8U_zgFNMofbic,5065
533
- django_cfg/apps/tasks/templates/tasks/components/queues_content.html,sha256=NDmOh1l52UajC0vc9NQ4brA15t7wQ70uXXPZXVS1AkY,2370
534
- django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html,sha256=_Zl5PgKOIh8lUU1lFyXTL3EVknfzScGltDHwL0HW614,3141
535
- django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html,sha256=x6LdkWSKKPVtw4NartiIzEtnXtl-o2Kf5NwWE9oWfs0,9664
536
- django_cfg/apps/tasks/templates/tasks/components/tasks_content.html,sha256=zCa2R7Xh_dzLDHIj3T1fRLhGwsxvi-MU12R0eByXphY,3070
537
- django_cfg/apps/tasks/templates/tasks/components/tasks_mjs_integration.html,sha256=uXBhajnDQzxGYY6nxbuWWD6nElAAVrolAb7KrD1yr5g,8718
538
- django_cfg/apps/tasks/templates/tasks/components/workers_content.html,sha256=okA_LvhSSHnBmYwpenLakI5k_haWBo57_uCItTqJxC4,3299
539
- django_cfg/apps/tasks/templates/tasks/layout/base.html,sha256=BI50z3QkGRAIR_HJg_U9l34E2-3-zrVOC36pk-S4Nv0,689
540
- django_cfg/apps/tasks/templates/tasks/pages/dashboard-improved.html,sha256=qhiDZjKUazA5Mzqt_Vg1Iap6JybYZrJa6D3_NIzpLbk,5313
541
- django_cfg/apps/tasks/templates/tasks/pages/dashboard.html,sha256=7DbczXKnscJ0082bFYqTYCTBvaF2GBrJiLTTn-aj-bs,2349
542
- django_cfg/apps/tasks/templates/tasks/partials/task_row_template.html,sha256=9XxjxDrveeR4ZE5hop0PsIA31hYyq-mVL1HBY54uu1c,1897
543
- django_cfg/apps/tasks/templates/tasks/widgets/task_filters.html,sha256=5md0X43X9EH3lnzOK7QN14KMVJVWBy0WZ9FGXNnEAT8,2090
544
- django_cfg/apps/tasks/templates/tasks/widgets/task_footer.html,sha256=CpXwOG_ZScT6TUp8cmrr274Qm1xHV6a2ySgpjDYv5Ls,5273
545
- django_cfg/apps/tasks/templates/tasks/widgets/task_table.html,sha256=QqVYAX10NFF38grz9zwwgp4FFDmUC-rhCCB0f3tIzss,4985
546
- django_cfg/apps/tasks/utils/__init__.py,sha256=42NlvFq4SYQ5ZEWUVvyU3A1_bQfYEn-m7VXeNus_X8s,18
547
- django_cfg/apps/tasks/utils/simulator.py,sha256=p-wcVDyI-EfqdjkNAHv8j06uXCoi5xc5s5wThtO9Dhk,13046
548
- django_cfg/apps/tasks/views/__init__.py,sha256=hQrAc5ZnJCxr3vSzF-txnpS3FDeaX-4bBVI-I21fCHw,344
549
- django_cfg/apps/tasks/views/api.py,sha256=hd6ficsmljDMrEtWyCMJIP2Op-RdMaRNyesEo-HWwB4,21870
550
- django_cfg/apps/tasks/views/dashboard.py,sha256=WmmbRMxpEw8-67tDWQv-Vy7vipm0FX1eIVGzuZ6FxMo,2474
500
+ django_cfg/apps/tasks/__init__.py,sha256=_k1_FJbPDmsKGXgaL6oFvZKj31u3uItDBR53kTUiuLM,1932
501
+ django_cfg/apps/tasks/apps.py,sha256=jcl4NO8t37_RNHyaCh2GJXXlZqYIMLwpiAY26lnMO8M,459
502
+ django_cfg/apps/tasks/urls.py,sha256=4KA6on-Hii-4mQLJaSQ58iPrYBZL4apSsvksLbyhzWU,344
503
+ django_cfg/apps/tasks/admin/__init__.py,sha256=h4Hx8VGvbohLLS6nt0OFE7mi0JBx1pHA0lbjjcaXPgU,106
504
+ django_cfg/apps/tasks/admin/config.py,sha256=SZ4gh2omc5sPEa3VLz7ewUjV-_O4qPFgHe_e0AkEm9c,2161
505
+ django_cfg/apps/tasks/admin/task_log.py,sha256=H7gv8k7J_1rd31jmbMU6TKuDkzH_mx2beNbju--VycQ,8255
506
+ django_cfg/apps/tasks/filters/__init__.py,sha256=9H6dh9ryI_zJ0_tPENjsSS2V3Mx8MMcWze8hyHokfhc,151
507
+ django_cfg/apps/tasks/filters/task_log.py,sha256=BY67R3jyzHR6XdhNty8gjGmLTC5VDTx2_tGeGODOJXE,4929
508
+ django_cfg/apps/tasks/migrations/0001_initial.py,sha256=dVbEPP7umgjsJsubxaTYsrDq7dvwv2xf6_K8hfju-lE,7367
509
+ django_cfg/apps/tasks/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
510
+ django_cfg/apps/tasks/models/__init__.py,sha256=4tvTev7IYkcjBrll3eLUFLJCDNlyG9c_863qoe_Fzu0,72
511
+ django_cfg/apps/tasks/models/task_log.py,sha256=PxcQ7D3LNwQPy9IYLaBYL08buMHeakbmmXyr4Vgaqa0,7967
512
+ django_cfg/apps/tasks/serializers/__init__.py,sha256=VcsKMRI4fOE1zajh-IOC0X5NwK2e5ytFh18w-43lXl0,675
513
+ django_cfg/apps/tasks/serializers/task_log.py,sha256=XEjWsnojxN2j55PYyoDw1KfXhb_-Ng8VnCeSJJDaL8w,7777
514
+ django_cfg/apps/tasks/services/__init__.py,sha256=VRFnirt868_jFvCzvLD3vLNa2HFi4zqFQFXQG9Nm4Kg,268
515
+ django_cfg/apps/tasks/services/config_helper.py,sha256=-Iv7EK1fNAydlk6IzvOFvk4TRBBp9IngYBt7tmansRI,1447
516
+ django_cfg/apps/tasks/services/sync.py,sha256=wA-gRvqRsElfdP9XD6PosQIwOOJQwy6dUtQbIlb2W2o,5783
517
+ django_cfg/apps/tasks/services/client/__init__.py,sha256=pQ6eJPbdj8P9q7qq4XcxtAgEisXjVrT1KTdoqHI5zMI,135
518
+ django_cfg/apps/tasks/services/client/client.py,sha256=je4j4Yw0v3fR1PijajoAptAbP7Zx06yAykV21MxAMlQ,6437
519
+ django_cfg/apps/tasks/views/__init__.py,sha256=nfwn_GtoZ-H83YeL2BvhWYn9VdBjPM3QiNIivzLiKUw,151
520
+ django_cfg/apps/tasks/views/task_log.py,sha256=cyywdhBaLgEFpwc9YaxQSU7or1whSTfDnXA7l8P5iq8,1312
521
+ django_cfg/apps/tasks/views/task_log_base.py,sha256=MJ1UzSpYzV75KyQBVSUHyQ0ejYe91h3douXt2osCPf8,1499
522
+ django_cfg/apps/tasks/views/task_log_overview.py,sha256=ch7nPu6k9JCDOUh7Z8TQXGrqLGT1X6m-n9HhHFF32yY,3291
523
+ django_cfg/apps/tasks/views/task_log_related.py,sha256=mXtDfzfkNpNc2vYPKRV9zNGlsOPV2MOx-xwj1-a6yik,1194
524
+ django_cfg/apps/tasks/views/task_log_stats.py,sha256=UhoXFmIsb6utWIuighLuPnFjWcz0BPbkKCCfvHYJyrQ,3046
525
+ django_cfg/apps/tasks/views/task_log_timeline.py,sha256=8tTAGNAbKseLmljx6SSr-ATDHuvnUZYQlcG51Wk73fs,2710
551
526
  django_cfg/cli/README.md,sha256=-fZmNv8OUc1OAwwiDnhkUmhTVhEEXX7CXwJQlSRwgQ8,2118
552
527
  django_cfg/cli/__init__.py,sha256=i3ksFngCqZCBvaimQcBD1P2_gr5PiM--4efLScCjvvU,152
553
528
  django_cfg/cli/main.py,sha256=GOmMubPoMpcA0XcRJn4VG2cX9tuhE0i_ioy_d3ujzRQ,883
554
- django_cfg/cli/utils.py,sha256=lh8SUvZgCMA-K8nmMljIzbMKRzz7VUU842CX_M4fnu0,5654
529
+ django_cfg/cli/utils.py,sha256=_R713bZ181qIXP0-nik3FXLsTcWRA9i_S7eEIqDiOa4,5648
555
530
  django_cfg/cli/commands/__init__.py,sha256=EKLXDAx-QttnGmdjsmVANAfhxWplxl2V_2I0SZaJOoI,98
556
531
  django_cfg/cli/commands/create_project.py,sha256=cENwRIG7zX_95lY7Kt_xKGULZWqfwni5HcL66JALBeM,7576
557
- django_cfg/cli/commands/info.py,sha256=8B59i-eOKDGiETkZCPCxG1E29UhRTQYZ57hGWB3yOC4,4797
532
+ django_cfg/cli/commands/info.py,sha256=JNLt9gUTZopR-D7FUDIeEyOQR9-2LTpHntHi_h-7Mho,4794
558
533
  django_cfg/core/__init__.py,sha256=bZ3hgN9SX6l3DXEN-cMyOGwwXMu4UFkWyR0ds_yEnVs,1784
559
534
  django_cfg/core/config.py,sha256=0xwXf0cPiRGM8paUPXjECHdYqwuRLy4WkunavWl9Igw,679
560
535
  django_cfg/core/constants.py,sha256=ool-h1MXDtgRKj8-e8aYcM6XY_Uzy1dgx-xLy0gsk10,2686
@@ -563,9 +538,9 @@ django_cfg/core/validation.py,sha256=QmwGlNDa0MFG2OUmgykIUAaEotT55YNh-wAWSVxOAos
563
538
  django_cfg/core/backends/__init__.py,sha256=5Qfza7oKQ8_UIHOs4ibhYvwtgAjngUqLrlwjKl_q124,38
564
539
  django_cfg/core/backends/smtp.py,sha256=kWkNMG7UwLsHcFYSKRgrk1HbP9mU1fxzWYnalHXqoL8,2308
565
540
  django_cfg/core/base/__init__.py,sha256=Z3bZvxejxk4vvWqmqTBLUi9XJpo6A_5Bq4R0J8q81Y4,116
566
- django_cfg/core/base/config_model.py,sha256=AmlI9ZJzMkJxXv77M685ovdrx9e5vyu8FUSQ9U8CWpk,21139
541
+ django_cfg/core/base/config_model.py,sha256=xaiLLBEH3MgQ2uIcahYz7WGYbdrFUAuTSrPfBZ2yqtE,21136
567
542
  django_cfg/core/builders/__init__.py,sha256=jkInI7_jbxcjitapohw6QmbJPpacnnID6V1JovqtOFM,282
568
- django_cfg/core/builders/apps_builder.py,sha256=AzcYnex96ZDfk7tZeTAU_BOHM0DqeuTQ_1UsN3zBOkQ,6512
543
+ django_cfg/core/builders/apps_builder.py,sha256=Bud1KkBnUblbbYvCyT46eYJ-HA_hbG636KC8j2SIOuA,6497
569
544
  django_cfg/core/builders/middleware_builder.py,sha256=OwqQRoJKYWlXsQNPFBfUvVMYdppUHCPw-UDczV_esYg,3101
570
545
  django_cfg/core/builders/security_builder.py,sha256=W8Lk9eTMi3PuNK5qH-BIHegeE0cbvmuHKTumLcwOAh8,23961
571
546
  django_cfg/core/environment/__init__.py,sha256=sMOIe9z1i51j8B1VGjpLHJMaeDsBfsgn1TmL03FIeNo,141
@@ -581,14 +556,14 @@ django_cfg/core/generation/core_generators/templates.py,sha256=XeGKzF790_zKwFdRw
581
556
  django_cfg/core/generation/data_generators/__init__.py,sha256=O7cmt_k34hWRgrdaAzCRPudcaowaOwMgaoXmZY8HG54,298
582
557
  django_cfg/core/generation/data_generators/cache.py,sha256=bdcbnaDarl_8UQ18gk7bIKrQ9PDZOhpDAVjCEgYVeUU,3840
583
558
  django_cfg/core/generation/data_generators/database.py,sha256=mYR2mBvqWU93YP9XUUVlcZaQJtSNeAQ7Dk4Vj6Tu95k,3481
584
- django_cfg/core/generation/integration_generators/__init__.py,sha256=-H4xlNAp_3yytmAnh7HuGJCloLL7C_WWlEJw3KZt4VY,599
559
+ django_cfg/core/generation/integration_generators/__init__.py,sha256=LCdlrvM6LDGtvtRYATvRIOYSqBwhqkoThDhfMxWLFiQ,596
585
560
  django_cfg/core/generation/integration_generators/api.py,sha256=Xsyu3mYyq9mje8QGNSU0Yp4tLbtF0ckq4lEf_Rj5pLc,11062
586
561
  django_cfg/core/generation/integration_generators/sessions.py,sha256=GbRC72Gny4dzj7oTIrbuhYyvhCQBoWI-0GxB8ZHTrEU,1644
587
562
  django_cfg/core/generation/integration_generators/tailwind.py,sha256=YgiV5c-l0DDJnMKx6mWcUtH5zyMdewAJXjLDwmHrSuc,1208
588
- django_cfg/core/generation/integration_generators/tasks.py,sha256=B-oeneUUdvjiE6N5MVC98imptlj4dkAxeoxfv50sbkM,2514
563
+ django_cfg/core/generation/integration_generators/tasks.py,sha256=fMbuIdjRenuZQ6rfco7imLzDbCdX4WEO1aLslBpxjTQ,2253
589
564
  django_cfg/core/generation/integration_generators/third_party.py,sha256=ef3sdpfDIf6B_dRuRjoIYc9rlqMYoKgTH4luFvjy9UM,3971
590
565
  django_cfg/core/generation/security_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
591
- django_cfg/core/generation/security_generators/crypto_fields.py,sha256=5HcvXM2NKW7t-yPGCaXGsKOlAv5SLbwu_agPrlYU7d8,1923
566
+ django_cfg/core/generation/security_generators/crypto_fields.py,sha256=CCNP4UxsSXMTRhB83KqAvtOyEGXb9qpooFg-gXwngYY,1980
592
567
  django_cfg/core/generation/utility_generators/__init__.py,sha256=6zbvaE2g8p42w0jHFeFHyIyPsDuoCuyeKm-Z74msmpo,593
593
568
  django_cfg/core/generation/utility_generators/email.py,sha256=444q8uMmvLdubjwqmTWGTBQcyHwMMhIZ4XNCsto3-Ak,1236
594
569
  django_cfg/core/generation/utility_generators/i18n.py,sha256=RhAD1Yw_gOHc2CHWWCR3-F-Xf4BUbxWyCEyC80ekW_Y,1533
@@ -605,7 +580,7 @@ django_cfg/core/integration/version_checker.py,sha256=VJo7CWjNjj_XYE2YqIWGSnxnos
605
580
  django_cfg/core/integration/display/__init__.py,sha256=8vvW7rdKEnPO9iVMHUazGmVCE0gwClsK10mDz6_FCt0,314
606
581
  django_cfg/core/integration/display/base.py,sha256=ElP8XtUGhtQm3LrSrLf-fgESi10G8EKevxku85nWyAU,5541
607
582
  django_cfg/core/integration/display/ngrok.py,sha256=IAuZzh1swfQwPl-wadVpooEvAqe085HYrTPSEGgYfr8,5899
608
- django_cfg/core/integration/display/startup.py,sha256=shMK9d4af9Wa9reqsI50zWZmwSmDuN7E6A-7_7aHtpM,34691
583
+ django_cfg/core/integration/display/startup.py,sha256=R2PhEJVBkxCM4SNtycEZZVOzi_64vRuYYqpFAAwGHpw,34688
609
584
  django_cfg/core/services/__init__.py,sha256=Eb-F6qqQ-qkep1O-JkaT96IpuxxqtGdT_MIwGXafqSE,117
610
585
  django_cfg/core/services/config_service.py,sha256=leo6i6QDq25Bst8PIhBoRVIorPNupLHJub2IwhumAjo,3579
611
586
  django_cfg/core/state/__init__.py,sha256=0jAOD0WHpq_W8L5Gh2084D0V5nhb-RAB3t8Akr2SX8M,225
@@ -625,15 +600,11 @@ django_cfg/management/commands/generate_clients.py,sha256=Ziyo1i9QGFVULPHf1iosp8
625
600
  django_cfg/management/commands/list_urls.py,sha256=d1JFz0eLGgJqT5hKxsbEyYc7LnyhyQbOof0biE-vukI,10901
626
601
  django_cfg/management/commands/migrate_all.py,sha256=mo9tpa4F19hoA0y4Z1x1KMvHfzEG2ux4hkXTq7Q3JMc,5380
627
602
  django_cfg/management/commands/migrator.py,sha256=-6CzwrfGbx4DbyxwCvZaTUv2VCfDc1mcUgZwmzhFo-Y,16376
628
- django_cfg/management/commands/rundramatiq.py,sha256=wr5UzCtF4k8olBwkpqVaj6yrxKbfFrnYweLzN835B84,597
629
- django_cfg/management/commands/rundramatiq_simulator.py,sha256=CFtSqr-pp5i9NmTApDYL9ahStY16dRaJ5-HOQGeWES0,527
630
603
  django_cfg/management/commands/runserver_ngrok.py,sha256=FEkYBkAssUNp9JPbJl6yCxaiM3xuFt12XMV8fA36Pnc,591
631
604
  django_cfg/management/commands/script.py,sha256=l7pjYMOiuSCbrR107Gd1LJPlR2SHytLH85MEqUT7VlM,17048
632
605
  django_cfg/management/commands/show_config.py,sha256=G40gyZb6R8GklRb55MAEIYaGBYXffaudnlbuZke5cOU,8777
633
606
  django_cfg/management/commands/show_urls.py,sha256=oTtx081JprbD0IJLMYrAg05bXxkQ6FMTi6ZemloNHb8,12606
634
607
  django_cfg/management/commands/superuser.py,sha256=RDgNyTW1wuEu4kdD-5UX0hv4wwAj2IobdEL-BHjIKBs,9544
635
- django_cfg/management/commands/task_clear.py,sha256=ZDmYkVfXepINmG18pHD_nXxx7_NykIjdqrVOcew-lQw,608
636
- django_cfg/management/commands/task_status.py,sha256=tRcZ-_nX6rHTLmgOa8vVu4FYRVY3I7pHY89lAzmj_QI,570
637
608
  django_cfg/management/commands/test_email.py,sha256=FpABZAMKuWACkYpQbBWrEXhzkp0ToOlVUDbF47vYnp0,611
638
609
  django_cfg/management/commands/test_telegram.py,sha256=aLnGM4oArXhQekNNWoPMU5vu6xU4b6NKEZGy7tRgagQ,570
639
610
  django_cfg/management/commands/test_twilio.py,sha256=Wn-vp9pI1gDyl1rmuvzk-s2NSarGaQOsyua53nJG6QI,632
@@ -646,6 +617,9 @@ django_cfg/middleware/authentication.py,sha256=1deekm3lyAMJ2pK7Usd5q1FtUN1aDq_CG
646
617
  django_cfg/middleware/pagination.py,sha256=xnaFH1olDH_m4ecwpTTUyFWV6jKoF6IxJvagSZSJR0E,8603
647
618
  django_cfg/middleware/public_endpoints.py,sha256=p-VCjeu0k7B4OuQIe2OVUx7Onh9gsM2HweWcYNxEaRA,6775
648
619
  django_cfg/middleware/user_activity.py,sha256=bgftHXXeGBS-jCa8mLzTx4Gcz2fHTaQz_nbRCR5Yqio,5980
620
+ django_cfg/mixins/__init__.py,sha256=1IErIlF4QWqt9VLFD8yoTiGWHobsDjLL6rqcEqMLbw4,211
621
+ django_cfg/mixins/admin_api.py,sha256=3GRfAty6YXGbZp4ZFsNFt1Gs_e5T4xBOLnRPoc5vaq0,1116
622
+ django_cfg/mixins/client_api.py,sha256=KeGK_f2xR08l0ckGpMmXHHpVLDQ7SnSbZn4WP5bSsvI,1200
649
623
  django_cfg/models/__init__.py,sha256=HNWzUAj19jtNtPMfgnJgcZCrvVWAIIlTMizkm5q8XiA,2762
650
624
  django_cfg/models/api/__init__.py,sha256=VWkiYs38A7Tx5ZWePeBxL1lMiXKsonb5TQfoVRRCBac,605
651
625
  django_cfg/models/api/config.py,sha256=KzaDn2Ubc7SpZ_8xt6-Q-XxnZbf9Glu1xJhJWbAI--o,4455
@@ -663,8 +637,8 @@ django_cfg/models/base/config.py,sha256=hfpf35yMR8oOE1J0SBPNNSBwXckK3F2-Iv0Vw6cN
663
637
  django_cfg/models/base/module.py,sha256=nxN1Y9J4l94kOfSXLQJ2eGgIGWTq8kyh7hUGvCQNyIs,2674
664
638
  django_cfg/models/django/__init__.py,sha256=xY_ts1oGmMROXfKHLuERqwG35dQf3EpsZxqj9DcRYwI,397
665
639
  django_cfg/models/django/axes.py,sha256=-4nk2gSfpj7lNY5vnm_2jHVLz8VAKoEd9yF2TuCR8O8,5624
666
- django_cfg/models/django/constance.py,sha256=E4U3HS_gFq5_q2nhI1R8inONGtD7IgvSwxOEGNGGrEI,9127
667
- django_cfg/models/django/crypto_fields.py,sha256=EritHX2V8q5zHoVznGIO0sX78GPYif6NQDS_CiXvSKo,6238
640
+ django_cfg/models/django/constance.py,sha256=6x57bi40mDX0fKcKeQKgV2BO3WIVYPQllAchWsj4KvM,8847
641
+ django_cfg/models/django/crypto_fields.py,sha256=OguITidM4Mp564p_gbsokeNCZxjL9hrK1Vw0McuA3yo,4700
668
642
  django_cfg/models/django/environment.py,sha256=lBCHBs1lphv9tlu1BCTfLZeH_kUame0p66A_BIjBY7M,9440
669
643
  django_cfg/models/django/openapi.py,sha256=avE3iapaCj8eyOqVUum_v2EExR3V-hwHrexqtXMHtTQ,3739
670
644
  django_cfg/models/django/revolution_legacy.py,sha256=Z4SPUS7QSv62EuPAeFFoXGEgqLmdXnVEr7Ofk1IDtVc,8918
@@ -688,10 +662,10 @@ django_cfg/models/services/__init__.py,sha256=K3mit3rKumqC4XiCUU0BziZC3143j1SM9j
688
662
  django_cfg/models/services/base.py,sha256=q_QggR8i_6qoiIvbAubddCklpfjVfeLP3Bv2bsdT4BQ,1607
689
663
  django_cfg/models/services/email.py,sha256=JigMJaJA26MT_Euc4q_OfmZYJYzaGyHb0JXsNFOS0uY,5119
690
664
  django_cfg/models/services/telegram.py,sha256=wrMqOGZCp1KAxRmCn5oxMU0BMBgbzsQD6o0Fi_7kfIY,4810
691
- django_cfg/models/tasks/__init__.py,sha256=6t33r91zv_nyve1NfZeEziF0_mwgfAFuJpsnm38Ps3k,1320
692
- django_cfg/models/tasks/backends.py,sha256=JH04ljOHe-2Tw5wZ58v-HQtlaelDZqAxoGEKdjbdSA8,6946
693
- django_cfg/models/tasks/config.py,sha256=dqDoiqMWsSdKJrLAyGcKyzBukZdjhz7kR5_LKFZBiss,9305
694
- django_cfg/models/tasks/utils.py,sha256=5CR_d6dD6vYZ9UpI3kKD9EJwuPdWWuqiA_hhxXzmogs,4811
665
+ django_cfg/models/tasks/__init__.py,sha256=1cZH-P022je3FGSaus6kwxSzMAKBLkIetZ8qp4Dy46I,1228
666
+ django_cfg/models/tasks/backends.py,sha256=r5VcuAxyyxqd5grpktEd-0yJNvSJu2jv0IBgrK32ENs,3369
667
+ django_cfg/models/tasks/config.py,sha256=0Tc7O2mVQLc8IYXMm__cdeP0ytYn_NucL2xyA95wyT4,5892
668
+ django_cfg/models/tasks/utils.py,sha256=9TEbdxgd0N_O2T_7GGwkyPeDg4H7tSKLHoHG_n8edqg,4459
695
669
  django_cfg/modules/__init__.py,sha256=Ip9WMpzImEwIAywpFwU056_v0O9oIGG7nCT1YSArxkw,316
696
670
  django_cfg/modules/base.py,sha256=Grmgxc5dvnAEM1sudWEWO4kv8L0Ks-y32nxTk2vwdjQ,6272
697
671
  django_cfg/modules/django_admin/CHANGELOG_CODE_METHODS.md,sha256=HfE_rUlovx1zX_1hkzQsjwghaFvIvUWjZ_Aume8lhIs,3823
@@ -865,7 +839,7 @@ django_cfg/modules/django_client/core/validation/rules/base.py,sha256=xVJli0eSEz
865
839
  django_cfg/modules/django_client/core/validation/rules/type_hints.py,sha256=hwjTMADillsTPruDvXZQeZMj4LVV443zxY9o0Gqgg6k,10200
866
840
  django_cfg/modules/django_client/management/__init__.py,sha256=mCTPP_bIOmqNnn0WAG2n4BuF6zwc9PTgdZr_dORfNDk,54
867
841
  django_cfg/modules/django_client/management/commands/__init__.py,sha256=CJ55pHUNYQ5h-QHUe3axeTtxzlUJv7wbEuZmGN21iCM,36
868
- django_cfg/modules/django_client/management/commands/generate_client.py,sha256=JShicezcxeUJ8_5l5HJtINbDwsdhoK_4gljyaPlfXGM,30910
842
+ django_cfg/modules/django_client/management/commands/generate_client.py,sha256=bChdPqqgklRV74s3Qr9xC5ZDX2QwYG4n4SFYimkzSXE,31357
869
843
  django_cfg/modules/django_client/management/commands/validate_openapi.py,sha256=IBKk7oRP3tMQzXjvZNIgQtMPk3k_mB2diNS7bkaSLz4,11011
870
844
  django_cfg/modules/django_client/spectacular/__init__.py,sha256=M8fG-odu2ltkG36aMMr0KDkCKGX676TwdrJO8vky2cI,345
871
845
  django_cfg/modules/django_client/spectacular/async_detection.py,sha256=S_pwGR7_2SIWHjZJyiu7SCfySF3Nr3P8eqjDyBSkkLs,5731
@@ -984,17 +958,6 @@ django_cfg/modules/django_tailwind/templates/django_tailwind/components/theme_to
984
958
  django_cfg/modules/django_tailwind/templates/django_tailwind/components/user_menu.html,sha256=uMr8QDfSJ_48CGjvSCbyclVxEBBwLhh7knFlQ_9vz-E,5704
985
959
  django_cfg/modules/django_tailwind/templatetags/__init__.py,sha256=LC6UNzB7KcoLsTIUMaiwb-D1tMCnTBYr3Ppmg9Cho7c,44
986
960
  django_cfg/modules/django_tailwind/templatetags/tailwind_info.py,sha256=v1HuLihRYsEtlDQ04UlZWvF3lmu29ttIrWSvkm0qSRM,4530
987
- django_cfg/modules/django_tasks/__init__.py,sha256=wqiXQtvL8TvkRuXd_e5XuCGnGsmrga_mbvu9yMk-F1Y,671
988
- django_cfg/modules/django_tasks/dramatiq_setup.py,sha256=0JJ2oO_ppWWM4KSh-2scFYQqNMGknPeKwwSsPIehNYE,548
989
- django_cfg/modules/django_tasks/factory.py,sha256=GtSCC02R_IwUSFDoGIviMTdxL5RMoXTsce07XTIwn04,4336
990
- django_cfg/modules/django_tasks/service.py,sha256=3Sht1YA3qo4VslKwFCBuFYO9bTC7D3c84CQFNWGL4Gg,10008
991
- django_cfg/modules/django_tasks/settings.py,sha256=03QWuBkI0-PQVjvW6W2atOBD9VBPoO-zdh-mZ1IFGVU,3728
992
- django_cfg/modules/django_tasks/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
993
- django_cfg/modules/django_tasks/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
994
- django_cfg/modules/django_tasks/management/commands/rundramatiq.py,sha256=i8JrUWI5RL2gn8YGmEiPk8wg6WlBasQYRSWtIIdT2nI,9098
995
- django_cfg/modules/django_tasks/management/commands/rundramatiq_simulator.py,sha256=OxDoK3BAEK78J364SEiKQj1hqm3JgdtMULbCna7Icng,15402
996
- django_cfg/modules/django_tasks/management/commands/task_clear.py,sha256=g9ptNweO6tstOGddlWo96gx37A4QtHGm1W8X5aF-HSg,7747
997
- django_cfg/modules/django_tasks/management/commands/task_status.py,sha256=4YSNpAOvoj6TDjcAd--pmPp2H6bqRJuNbBNpM5Neitw,8897
998
961
  django_cfg/modules/django_telegram/__init__.py,sha256=H92RqWPLMiuChlmc0wUtTG4uUvGJjfTyDVd5cVO2yhc,591
999
962
  django_cfg/modules/django_telegram/service.py,sha256=oPuz7sW6KetqPFqicq92TWbpICVCMMAKFP4rrPRziTg,14520
1000
963
  django_cfg/modules/django_telegram/utils.py,sha256=O8kd7IPzbxr0-ypx3JFmBw1Pc38wX8dYpoieO4w8GJk,1575
@@ -1022,7 +985,7 @@ django_cfg/modules/django_twilio/templates/guide.md,sha256=nZfwx-sgWyK5NApm93zOe
1022
985
  django_cfg/modules/django_twilio/templates/sendgrid_otp_email.html,sha256=sXR6_D9hmOFfk9CrfPizpLddVhkRirBWpZd_ioEsxVk,6671
1023
986
  django_cfg/modules/django_twilio/templates/sendgrid_test_data.json,sha256=fh1VyuSiDELHsS_CIz9gp7tlsMAEjaDOoqbAPSZ3yyo,339
1024
987
  django_cfg/modules/django_unfold/__init__.py,sha256=Uquez6xgPUIc8FBMP7qif-adRYQSjQ2dBHxnJPom3eQ,1337
1025
- django_cfg/modules/django_unfold/navigation.py,sha256=4lEFyL-qB0aYMYDsqSU24XOIuMGaBDHci6f6adbQjTU,11519
988
+ django_cfg/modules/django_unfold/navigation.py,sha256=MqMA7-sfQpaH3T8V3eI0fJY1gPKd5AVx1eJenqwJWNg,14428
1026
989
  django_cfg/modules/django_unfold/system_monitor.py,sha256=KcrTa5irstdB1pDKe3sC0zl4tz9LVjhp7xvbqUM4YVk,6781
1027
990
  django_cfg/modules/django_unfold/tailwind.py,sha256=NY8nWcUdQw61oNmjPoPl7agcTb-r5IqcpFYy35MNsTM,9107
1028
991
  django_cfg/modules/django_unfold/utils.py,sha256=5aFaceRc9B3eXfpOVyKRD2wWqFt8KcHxjQg54oD7Oyg,4482
@@ -1039,7 +1002,7 @@ django_cfg/modules/nextjs_admin/models/config.py,sha256=75iM81aaTlDQdhfvdlCzj6o9
1039
1002
  django_cfg/modules/nextjs_admin/templatetags/__init__.py,sha256=ChVBnJggCIY8rMhfyJFoA8k0qKo-8FtJknrk54Vx4wM,51
1040
1003
  django_cfg/modules/nextjs_admin/templatetags/nextjs_admin.py,sha256=aAekrlu3pvvx3I4uJGT3S2ie8QfF94umDBjgAF71EII,4483
1041
1004
  django_cfg/registry/__init__.py,sha256=CaiL9KwqPzXlIe5-4Qr7PQu5ZxAW1HtuDIXZ7-ktRQg,538
1042
- django_cfg/registry/core.py,sha256=Vn7Q1-1MzkKAWsWzkALr8jO7gQSFfAzz17h9ZR5OtSU,3346
1005
+ django_cfg/registry/core.py,sha256=muO6Klp4uoZ0yGar6zrZ7PIpPn-kvewXZ-6ZFZlXeAU,3340
1043
1006
  django_cfg/registry/exceptions.py,sha256=b4pIakeRxhT1-ST3lbAnmAQaASRBARCoah_w6vb3VF0,399
1044
1007
  django_cfg/registry/modules.py,sha256=DC9veh6DdnqOa_KPNwDhnxvvNKRNF0Um2isHn1XGoxU,1915
1045
1008
  django_cfg/registry/services.py,sha256=l0V2twGpF9BwVlo-TTfFu8dV7GVBS7XKCsScIZXWWbc,2457
@@ -1062,7 +1025,7 @@ django_cfg/static/admin/js/alpine/commands-section.js,sha256=8z2MQNwZF9Tx_2EK1AY
1062
1025
  django_cfg/static/admin/js/alpine/dashboard-tabs.js,sha256=ob8Q_I9lFLDv_hFERXgTyvqMDBspAGfzCxI_7slRur4,1354
1063
1026
  django_cfg/static/admin/js/alpine/system-metrics.js,sha256=m-Fg55K_vpHXToD46PXL9twl4OBF_V9MONvbSWbQqDw,440
1064
1027
  django_cfg/static/admin/js/alpine/toggle-section.js,sha256=T141NFmy0fRJyGGuuaCJRjJXwPam-xxtQNW1hi8BJbc,672
1065
- django_cfg/static/frontend/admin.zip,sha256=w-E-vlsWyPlx3PpmwTxPenibUWXNSlhN7Hu0oPlhFP8,15272375
1028
+ django_cfg/static/frontend/admin.zip,sha256=pLsFyDXNjsrLStXYZBYw820gPayTk8fYGZAy8_6kVtM,7645824
1066
1029
  django_cfg/static/js/api-loader.mjs,sha256=boGqqRGnFR-Mzo_RQOjhAzNvsb7QxZddSwMKROzkk9Q,5163
1067
1030
  django_cfg/static/js/api/base.mjs,sha256=KUxZHHdELAV8mNnACpwJRvaQhdJxp-n5LFEQ4oUZxBo,4707
1068
1031
  django_cfg/static/js/api/index.mjs,sha256=_-Q04jjHcgwi4CGfiaLyiOR6NW7Yu1HBhJWp2J1cjpc,2538
@@ -1097,9 +1060,9 @@ django_cfg/utils/version_check.py,sha256=WO51J2m2e-wVqWCRwbultEwu3q1lQasV67Mw2aa
1097
1060
  django_cfg/CHANGELOG.md,sha256=jtT3EprqEJkqSUh7IraP73vQ8PmKUMdRtznQsEnqDZk,2052
1098
1061
  django_cfg/CONTRIBUTING.md,sha256=DU2kyQ6PU0Z24ob7O_OqKWEYHcZmJDgzw-lQCmu6uBg,3041
1099
1062
  django_cfg/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
1100
- django_cfg/pyproject.toml,sha256=ejHs8Z6myjIm2T37CZ34T6AZZsJQokkCICbzWwZTS4s,8611
1101
- django_cfg-1.4.107.dist-info/METADATA,sha256=1wc8DsLeaO5VvXTAWpExOOqhKuT7Q_LXw4NNAp4znOo,23796
1102
- django_cfg-1.4.107.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1103
- django_cfg-1.4.107.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
1104
- django_cfg-1.4.107.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
1105
- django_cfg-1.4.107.dist-info/RECORD,,
1063
+ django_cfg/pyproject.toml,sha256=Ut3Yvuw83bf3FmZzYAJL24fp1zbblv_c2p61XF7318A,8614
1064
+ django_cfg-1.4.108.dist-info/METADATA,sha256=IOJxCR_vzoWD4SuFisznEMmiEkvpx-mg_ktcf-TB81U,23801
1065
+ django_cfg-1.4.108.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1066
+ django_cfg-1.4.108.dist-info/entry_points.txt,sha256=Ucmde4Z2wEzgb4AggxxZ0zaYDb9HpyE5blM3uJ0_VNg,56
1067
+ django_cfg-1.4.108.dist-info/licenses/LICENSE,sha256=xHuytiUkSZCRG3N11nk1X6q1_EGQtv6aL5O9cqNRhKE,1071
1068
+ django_cfg-1.4.108.dist-info/RECORD,,