django-cfg 1.3.9__py3-none-any.whl → 1.3.13__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.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/accounts/admin/inlines.py +11 -5
- django_cfg/apps/payments/admin/networks_admin.py +12 -1
- django_cfg/apps/payments/admin/payments_admin.py +13 -0
- django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +62 -14
- django_cfg/apps/payments/admin_interface/templates/payments/components/payment_card.html +121 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/payment_qr_code.html +95 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/progress_bar.html +37 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/provider_stats.html +60 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/status_badge.html +41 -0
- django_cfg/apps/payments/admin_interface/templates/payments/components/status_overview.html +83 -0
- django_cfg/apps/payments/admin_interface/templates/payments/payment_detail.html +363 -0
- django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +33 -3
- django_cfg/apps/payments/admin_interface/views/api/payments.py +102 -0
- django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +96 -45
- django_cfg/apps/payments/admin_interface/views/forms.py +5 -1
- django_cfg/apps/payments/config/__init__.py +14 -15
- django_cfg/apps/payments/config/django_cfg_integration.py +59 -1
- django_cfg/apps/payments/config/helpers.py +8 -13
- django_cfg/apps/payments/migrations/0001_initial.py +33 -46
- django_cfg/apps/payments/migrations/0002_rename_payments_un_user_id_7f6e79_idx_payments_un_user_id_8ce187_idx_and_more.py +46 -0
- django_cfg/apps/payments/migrations/0003_universalpayment_status_changed_at.py +25 -0
- django_cfg/apps/payments/models/managers/payment_managers.py +142 -25
- django_cfg/apps/payments/models/payments.py +94 -0
- django_cfg/apps/payments/services/core/base.py +4 -4
- django_cfg/apps/payments/services/core/payment_service.py +265 -38
- django_cfg/apps/payments/services/providers/base.py +209 -3
- django_cfg/apps/payments/services/providers/models/__init__.py +2 -0
- django_cfg/apps/payments/services/providers/models/base.py +25 -2
- django_cfg/apps/payments/services/providers/nowpayments/models.py +2 -2
- django_cfg/apps/payments/services/providers/nowpayments/provider.py +57 -9
- django_cfg/apps/payments/services/providers/registry.py +5 -5
- django_cfg/apps/payments/services/types/requests.py +19 -7
- django_cfg/apps/payments/signals/payment_signals.py +31 -2
- django_cfg/apps/payments/static/payments/js/api-client.js +6 -1
- django_cfg/apps/payments/static/payments/js/payment-detail.js +167 -0
- django_cfg/apps/payments/static/payments/js/payment-form.js +35 -26
- django_cfg/apps/payments/templatetags/payment_tags.py +8 -0
- django_cfg/apps/payments/urls.py +3 -2
- django_cfg/apps/payments/views/api/currencies.py +3 -0
- django_cfg/apps/payments/views/serializers/currencies.py +18 -5
- django_cfg/apps/tasks/admin/tasks_admin.py +2 -2
- django_cfg/apps/tasks/static/tasks/css/dashboard.css +68 -217
- django_cfg/apps/tasks/static/tasks/js/api.js +40 -84
- django_cfg/apps/tasks/static/tasks/js/components/DataManager.js +24 -0
- django_cfg/apps/tasks/static/tasks/js/components/TabManager.js +85 -0
- django_cfg/apps/tasks/static/tasks/js/components/TaskRenderer.js +216 -0
- django_cfg/apps/tasks/static/tasks/js/dashboard/main.mjs +245 -0
- django_cfg/apps/tasks/static/tasks/js/dashboard/overview.mjs +123 -0
- django_cfg/apps/tasks/static/tasks/js/dashboard/queues.mjs +120 -0
- django_cfg/apps/tasks/static/tasks/js/dashboard/tasks.mjs +350 -0
- django_cfg/apps/tasks/static/tasks/js/dashboard/workers.mjs +169 -0
- django_cfg/apps/tasks/tasks/__init__.py +10 -0
- django_cfg/apps/tasks/tasks/demo_tasks.py +133 -0
- django_cfg/apps/tasks/templates/tasks/components/management_actions.html +42 -45
- django_cfg/apps/tasks/templates/tasks/components/{status_cards.html → overview_content.html} +30 -11
- django_cfg/apps/tasks/templates/tasks/components/queues_content.html +19 -0
- django_cfg/apps/tasks/templates/tasks/components/tab_navigation.html +16 -10
- django_cfg/apps/tasks/templates/tasks/components/tasks_content.html +51 -0
- django_cfg/apps/tasks/templates/tasks/components/workers_content.html +30 -0
- django_cfg/apps/tasks/templates/tasks/layout/base.html +117 -0
- django_cfg/apps/tasks/templates/tasks/pages/dashboard.html +82 -0
- django_cfg/apps/tasks/templates/tasks/partials/task_row_template.html +40 -0
- django_cfg/apps/tasks/templates/tasks/widgets/task_filters.html +37 -0
- django_cfg/apps/tasks/templates/tasks/widgets/task_footer.html +41 -0
- django_cfg/apps/tasks/templates/tasks/widgets/task_table.html +50 -0
- django_cfg/apps/tasks/urls.py +2 -2
- django_cfg/apps/tasks/urls_admin.py +2 -2
- django_cfg/apps/tasks/utils/__init__.py +1 -0
- django_cfg/apps/tasks/utils/simulator.py +356 -0
- django_cfg/apps/tasks/views/__init__.py +16 -0
- django_cfg/apps/tasks/views/api.py +569 -0
- django_cfg/apps/tasks/views/dashboard.py +58 -0
- django_cfg/core/integration/__init__.py +21 -0
- django_cfg/management/commands/rundramatiq_simulator.py +430 -0
- django_cfg/models/constance.py +0 -11
- django_cfg/models/payments.py +137 -3
- django_cfg/modules/django_tasks.py +54 -21
- django_cfg/registry/core.py +4 -9
- django_cfg/template_archive/django_sample.zip +0 -0
- {django_cfg-1.3.9.dist-info → django_cfg-1.3.13.dist-info}/METADATA +2 -2
- {django_cfg-1.3.9.dist-info → django_cfg-1.3.13.dist-info}/RECORD +85 -153
- django_cfg/apps/payments/config/constance/__init__.py +0 -22
- django_cfg/apps/payments/config/constance/config_service.py +0 -123
- django_cfg/apps/payments/config/constance/fields.py +0 -69
- django_cfg/apps/payments/config/constance/settings.py +0 -160
- django_cfg/apps/payments/migrations/0002_currency_usd_rate_currency_usd_rate_updated_at.py +0 -26
- django_cfg/apps/payments/migrations/0003_remove_provider_currency_fields.py +0 -28
- django_cfg/apps/payments/migrations/0004_add_reserved_usd_field.py +0 -30
- django_cfg/apps/tasks/static/tasks/js/dashboard.js +0 -614
- django_cfg/apps/tasks/static/tasks/js/modals.js +0 -452
- django_cfg/apps/tasks/static/tasks/js/notifications.js +0 -144
- django_cfg/apps/tasks/static/tasks/js/task-monitor.js +0 -454
- django_cfg/apps/tasks/static/tasks/js/theme.js +0 -77
- django_cfg/apps/tasks/templates/tasks/base.html +0 -96
- django_cfg/apps/tasks/templates/tasks/components/info_cards.html +0 -85
- django_cfg/apps/tasks/templates/tasks/components/overview_tab.html +0 -22
- django_cfg/apps/tasks/templates/tasks/components/queues_tab.html +0 -19
- django_cfg/apps/tasks/templates/tasks/components/task_details_modal.html +0 -103
- django_cfg/apps/tasks/templates/tasks/components/tasks_tab.html +0 -32
- django_cfg/apps/tasks/templates/tasks/components/workers_tab.html +0 -29
- django_cfg/apps/tasks/templates/tasks/dashboard.html +0 -29
- django_cfg/apps/tasks/views.py +0 -461
- django_cfg/management/commands/app_agent_diagnose.py +0 -470
- django_cfg/management/commands/app_agent_generate.py +0 -342
- django_cfg/management/commands/app_agent_info.py +0 -308
- django_cfg/management/commands/auto_generate.py +0 -486
- django_cfg/modules/django_app_agent/__init__.py +0 -87
- django_cfg/modules/django_app_agent/agents/__init__.py +0 -40
- django_cfg/modules/django_app_agent/agents/base/__init__.py +0 -24
- django_cfg/modules/django_app_agent/agents/base/agent.py +0 -354
- django_cfg/modules/django_app_agent/agents/base/context.py +0 -236
- django_cfg/modules/django_app_agent/agents/base/executor.py +0 -430
- django_cfg/modules/django_app_agent/agents/generation/__init__.py +0 -12
- django_cfg/modules/django_app_agent/agents/generation/app_generator/__init__.py +0 -15
- django_cfg/modules/django_app_agent/agents/generation/app_generator/config_validator.py +0 -147
- django_cfg/modules/django_app_agent/agents/generation/app_generator/main.py +0 -99
- django_cfg/modules/django_app_agent/agents/generation/app_generator/models.py +0 -32
- django_cfg/modules/django_app_agent/agents/generation/app_generator/prompt_manager.py +0 -290
- django_cfg/modules/django_app_agent/agents/interfaces.py +0 -376
- django_cfg/modules/django_app_agent/core/__init__.py +0 -33
- django_cfg/modules/django_app_agent/core/config.py +0 -300
- django_cfg/modules/django_app_agent/core/exceptions.py +0 -359
- django_cfg/modules/django_app_agent/models/__init__.py +0 -71
- django_cfg/modules/django_app_agent/models/base.py +0 -283
- django_cfg/modules/django_app_agent/models/context.py +0 -496
- django_cfg/modules/django_app_agent/models/enums.py +0 -481
- django_cfg/modules/django_app_agent/models/requests.py +0 -500
- django_cfg/modules/django_app_agent/models/responses.py +0 -585
- django_cfg/modules/django_app_agent/pytest.ini +0 -6
- django_cfg/modules/django_app_agent/services/__init__.py +0 -42
- django_cfg/modules/django_app_agent/services/app_generator/__init__.py +0 -30
- django_cfg/modules/django_app_agent/services/app_generator/ai_integration.py +0 -133
- django_cfg/modules/django_app_agent/services/app_generator/context.py +0 -40
- django_cfg/modules/django_app_agent/services/app_generator/main.py +0 -202
- django_cfg/modules/django_app_agent/services/app_generator/structure.py +0 -316
- django_cfg/modules/django_app_agent/services/app_generator/validation.py +0 -125
- django_cfg/modules/django_app_agent/services/base.py +0 -437
- django_cfg/modules/django_app_agent/services/context_builder/__init__.py +0 -34
- django_cfg/modules/django_app_agent/services/context_builder/code_extractor.py +0 -141
- django_cfg/modules/django_app_agent/services/context_builder/context_generator.py +0 -276
- django_cfg/modules/django_app_agent/services/context_builder/main.py +0 -272
- django_cfg/modules/django_app_agent/services/context_builder/models.py +0 -40
- django_cfg/modules/django_app_agent/services/context_builder/pattern_analyzer.py +0 -85
- django_cfg/modules/django_app_agent/services/project_scanner/__init__.py +0 -31
- django_cfg/modules/django_app_agent/services/project_scanner/app_discovery.py +0 -311
- django_cfg/modules/django_app_agent/services/project_scanner/main.py +0 -221
- django_cfg/modules/django_app_agent/services/project_scanner/models.py +0 -59
- django_cfg/modules/django_app_agent/services/project_scanner/pattern_detection.py +0 -94
- django_cfg/modules/django_app_agent/services/questioning_service/__init__.py +0 -28
- django_cfg/modules/django_app_agent/services/questioning_service/main.py +0 -273
- django_cfg/modules/django_app_agent/services/questioning_service/models.py +0 -111
- django_cfg/modules/django_app_agent/services/questioning_service/question_generator.py +0 -251
- django_cfg/modules/django_app_agent/services/questioning_service/response_processor.py +0 -347
- django_cfg/modules/django_app_agent/services/questioning_service/session_manager.py +0 -356
- django_cfg/modules/django_app_agent/services/report_service.py +0 -332
- django_cfg/modules/django_app_agent/services/template_manager/__init__.py +0 -18
- django_cfg/modules/django_app_agent/services/template_manager/jinja_engine.py +0 -236
- django_cfg/modules/django_app_agent/services/template_manager/main.py +0 -159
- django_cfg/modules/django_app_agent/services/template_manager/models.py +0 -36
- django_cfg/modules/django_app_agent/services/template_manager/template_loader.py +0 -100
- django_cfg/modules/django_app_agent/services/template_manager/templates/admin.py.j2 +0 -105
- django_cfg/modules/django_app_agent/services/template_manager/templates/apps.py.j2 +0 -31
- django_cfg/modules/django_app_agent/services/template_manager/templates/cfg_config.py.j2 +0 -44
- django_cfg/modules/django_app_agent/services/template_manager/templates/cfg_module.py.j2 +0 -81
- django_cfg/modules/django_app_agent/services/template_manager/templates/forms.py.j2 +0 -107
- django_cfg/modules/django_app_agent/services/template_manager/templates/models.py.j2 +0 -139
- django_cfg/modules/django_app_agent/services/template_manager/templates/serializers.py.j2 +0 -91
- django_cfg/modules/django_app_agent/services/template_manager/templates/tests.py.j2 +0 -195
- django_cfg/modules/django_app_agent/services/template_manager/templates/urls.py.j2 +0 -35
- django_cfg/modules/django_app_agent/services/template_manager/templates/views.py.j2 +0 -211
- django_cfg/modules/django_app_agent/services/template_manager/variable_processor.py +0 -200
- django_cfg/modules/django_app_agent/services/validation_service/__init__.py +0 -25
- django_cfg/modules/django_app_agent/services/validation_service/django_validator.py +0 -333
- django_cfg/modules/django_app_agent/services/validation_service/main.py +0 -242
- django_cfg/modules/django_app_agent/services/validation_service/models.py +0 -66
- django_cfg/modules/django_app_agent/services/validation_service/quality_validator.py +0 -352
- django_cfg/modules/django_app_agent/services/validation_service/security_validator.py +0 -272
- django_cfg/modules/django_app_agent/services/validation_service/syntax_validator.py +0 -203
- django_cfg/modules/django_app_agent/ui/__init__.py +0 -25
- django_cfg/modules/django_app_agent/ui/cli.py +0 -419
- django_cfg/modules/django_app_agent/ui/rich_components.py +0 -622
- django_cfg/modules/django_app_agent/utils/__init__.py +0 -38
- django_cfg/modules/django_app_agent/utils/logging.py +0 -360
- django_cfg/modules/django_app_agent/utils/validation.py +0 -417
- {django_cfg-1.3.9.dist-info → django_cfg-1.3.13.dist-info}/WHEEL +0 -0
- {django_cfg-1.3.9.dist-info → django_cfg-1.3.13.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.3.9.dist-info → django_cfg-1.3.13.dist-info}/licenses/LICENSE +0 -0
@@ -1,85 +0,0 @@
|
|
1
|
-
<!-- Info Cards -->
|
2
|
-
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-8">
|
3
|
-
<!-- Quick Info Card -->
|
4
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 hover:shadow-md transition-shadow duration-300">
|
5
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700">
|
6
|
-
<h3 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
7
|
-
<span class="material-icons text-primary-600 dark:text-primary-400 mr-2">info</span>
|
8
|
-
Quick Info
|
9
|
-
</h3>
|
10
|
-
</div>
|
11
|
-
<div class="p-6">
|
12
|
-
<ul class="space-y-3 text-sm text-gray-600 dark:text-gray-300">
|
13
|
-
<li class="flex items-start">
|
14
|
-
<span class="flex-shrink-0 w-2 h-2 bg-primary-500 rounded-full mt-2 mr-3"></span>
|
15
|
-
<span>Workers process tasks from queues</span>
|
16
|
-
</li>
|
17
|
-
<li class="flex items-start">
|
18
|
-
<span class="flex-shrink-0 w-2 h-2 bg-primary-500 rounded-full mt-2 mr-3"></span>
|
19
|
-
<span>Failed tasks can be retried or cleared</span>
|
20
|
-
</li>
|
21
|
-
<li class="flex items-start">
|
22
|
-
<span class="flex-shrink-0 w-2 h-2 bg-primary-500 rounded-full mt-2 mr-3"></span>
|
23
|
-
<span>Monitor Redis connection status</span>
|
24
|
-
</li>
|
25
|
-
<li class="flex items-start">
|
26
|
-
<span class="flex-shrink-0 w-2 h-2 bg-primary-500 rounded-full mt-2 mr-3"></span>
|
27
|
-
<span>Auto-refresh every 30 seconds</span>
|
28
|
-
</li>
|
29
|
-
</ul>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
|
33
|
-
<!-- Best Practices Card -->
|
34
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 hover:shadow-md transition-shadow duration-300">
|
35
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700">
|
36
|
-
<h3 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
37
|
-
<span class="material-icons text-green-600 dark:text-green-400 mr-2">tips_and_updates</span>
|
38
|
-
Best Practices
|
39
|
-
</h3>
|
40
|
-
</div>
|
41
|
-
<div class="p-6">
|
42
|
-
<ul class="space-y-3 text-sm text-gray-600 dark:text-gray-300">
|
43
|
-
<li class="flex items-start">
|
44
|
-
<span class="flex-shrink-0 w-2 h-2 bg-green-500 rounded-full mt-2 mr-3"></span>
|
45
|
-
<span>Start 1-4 worker processes</span>
|
46
|
-
</li>
|
47
|
-
<li class="flex items-start">
|
48
|
-
<span class="flex-shrink-0 w-2 h-2 bg-green-500 rounded-full mt-2 mr-3"></span>
|
49
|
-
<span>Use 4-16 threads per process</span>
|
50
|
-
</li>
|
51
|
-
<li class="flex items-start">
|
52
|
-
<span class="flex-shrink-0 w-2 h-2 bg-green-500 rounded-full mt-2 mr-3"></span>
|
53
|
-
<span>Monitor failed task counts</span>
|
54
|
-
</li>
|
55
|
-
<li class="flex items-start">
|
56
|
-
<span class="flex-shrink-0 w-2 h-2 bg-green-500 rounded-full mt-2 mr-3"></span>
|
57
|
-
<span>Clear failed tasks regularly</span>
|
58
|
-
</li>
|
59
|
-
</ul>
|
60
|
-
</div>
|
61
|
-
</div>
|
62
|
-
|
63
|
-
<!-- CLI Commands Card -->
|
64
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 hover:shadow-md transition-shadow duration-300">
|
65
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700">
|
66
|
-
<h3 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
67
|
-
<span class="material-icons text-amber-600 dark:text-amber-400 mr-2">terminal</span>
|
68
|
-
CLI Commands
|
69
|
-
</h3>
|
70
|
-
</div>
|
71
|
-
<div class="p-6">
|
72
|
-
<div class="space-y-3">
|
73
|
-
<div class="bg-gray-50 dark:bg-gray-900 rounded-lg p-3 font-mono text-xs text-gray-700 dark:text-gray-300">
|
74
|
-
python manage.py rundramatiq
|
75
|
-
</div>
|
76
|
-
<div class="bg-gray-50 dark:bg-gray-900 rounded-lg p-3 font-mono text-xs text-gray-700 dark:text-gray-300">
|
77
|
-
python manage.py task_status
|
78
|
-
</div>
|
79
|
-
<div class="bg-gray-50 dark:bg-gray-900 rounded-lg p-3 font-mono text-xs text-gray-700 dark:text-gray-300">
|
80
|
-
python manage.py task_clear
|
81
|
-
</div>
|
82
|
-
</div>
|
83
|
-
</div>
|
84
|
-
</div>
|
85
|
-
</div>
|
@@ -1,22 +0,0 @@
|
|
1
|
-
<!-- Overview Tab -->
|
2
|
-
<div id="overview-tab" class="tab-panel active">
|
3
|
-
{% include 'tasks/components/status_cards.html' %}
|
4
|
-
|
5
|
-
<!-- Real-time Status -->
|
6
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700 mb-8">
|
7
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700">
|
8
|
-
<h2 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
9
|
-
<span class="material-icons text-primary-600 dark:text-primary-400 mr-2">monitor_heart</span>
|
10
|
-
System Status
|
11
|
-
</h2>
|
12
|
-
</div>
|
13
|
-
<div class="p-6">
|
14
|
-
<div id="system-status-container">
|
15
|
-
<div class="flex items-center justify-center py-12">
|
16
|
-
<div class="animate-spin rounded-full h-8 w-8 border-b-2 border-primary-600"></div>
|
17
|
-
<span class="ml-3 text-gray-600 dark:text-gray-400">Loading status...</span>
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
</div>
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<!-- Queues Tab -->
|
2
|
-
<div id="queues-tab" class="tab-panel hidden">
|
3
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700">
|
4
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
5
|
-
<h2 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
6
|
-
<span class="material-icons text-blue-600 dark:text-blue-400 mr-2">queue</span>
|
7
|
-
Queue Details
|
8
|
-
</h2>
|
9
|
-
<button id="refresh-queues-btn" class="text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 transition-colors">
|
10
|
-
<span class="material-icons text-sm">refresh</span>
|
11
|
-
</button>
|
12
|
-
</div>
|
13
|
-
<div class="p-6">
|
14
|
-
<div id="queues-container">
|
15
|
-
<p class="text-gray-500 dark:text-gray-400">Loading queues...</p>
|
16
|
-
</div>
|
17
|
-
</div>
|
18
|
-
</div>
|
19
|
-
</div>
|
@@ -1,103 +0,0 @@
|
|
1
|
-
<!-- Task Details Modal -->
|
2
|
-
<div id="task-details-modal" class="fixed inset-0 bg-black bg-opacity-50 hidden z-50 flex items-center justify-center p-4">
|
3
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-2xl max-w-4xl w-full max-h-[90vh] overflow-hidden">
|
4
|
-
<!-- Modal Header -->
|
5
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
6
|
-
<h2 class="text-xl font-semibold text-gray-900 dark:text-white flex items-center">
|
7
|
-
<span class="material-icons text-blue-600 dark:text-blue-400 mr-2">analytics</span>
|
8
|
-
Task Monitor
|
9
|
-
<span id="task-count-badge" class="ml-3 px-2 py-1 bg-blue-100 dark:bg-blue-900 text-blue-800 dark:text-blue-200 text-sm rounded-full">0 tasks</span>
|
10
|
-
</h2>
|
11
|
-
<div class="flex items-center space-x-2">
|
12
|
-
<button id="auto-refresh-toggle" class="px-3 py-1 text-sm bg-green-100 dark:bg-green-900 text-green-800 dark:text-green-200 rounded-lg hover:bg-green-200 dark:hover:bg-green-800 transition-colors">
|
13
|
-
<span class="material-icons text-sm mr-1">refresh</span>
|
14
|
-
Auto: ON
|
15
|
-
</button>
|
16
|
-
<button id="refresh-tasks-modal" class="p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 transition-colors">
|
17
|
-
<span class="material-icons">refresh</span>
|
18
|
-
</button>
|
19
|
-
<button id="close-task-modal" class="p-2 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 transition-colors">
|
20
|
-
<span class="material-icons">close</span>
|
21
|
-
</button>
|
22
|
-
</div>
|
23
|
-
</div>
|
24
|
-
|
25
|
-
<!-- Modal Filters -->
|
26
|
-
<div class="px-6 py-3 bg-gray-50 dark:bg-gray-900 border-b border-gray-200 dark:border-gray-700">
|
27
|
-
<div class="flex flex-wrap items-center gap-3">
|
28
|
-
<select id="modal-status-filter" class="text-sm border border-gray-300 dark:border-gray-600 rounded-lg px-3 py-2 bg-white dark:bg-gray-700 text-gray-900 dark:text-white">
|
29
|
-
<option value="">All Status</option>
|
30
|
-
<option value="pending">Pending</option>
|
31
|
-
<option value="running">Running</option>
|
32
|
-
<option value="done">Completed</option>
|
33
|
-
<option value="failed">Failed</option>
|
34
|
-
</select>
|
35
|
-
<select id="modal-queue-filter" class="text-sm border border-gray-300 dark:border-gray-600 rounded-lg px-3 py-2 bg-white dark:bg-gray-700 text-gray-900 dark:text-white">
|
36
|
-
<option value="">All Queues</option>
|
37
|
-
<option value="default">Default</option>
|
38
|
-
<option value="high">High Priority</option>
|
39
|
-
<option value="low">Low Priority</option>
|
40
|
-
<option value="vehicles">Vehicles</option>
|
41
|
-
</select>
|
42
|
-
<input id="modal-search-input" type="text" placeholder="Search tasks..." class="text-sm border border-gray-300 dark:border-gray-600 rounded-lg px-3 py-2 bg-white dark:bg-gray-700 text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400">
|
43
|
-
<div class="flex items-center text-sm text-gray-600 dark:text-gray-400">
|
44
|
-
<span class="material-icons text-sm mr-1">schedule</span>
|
45
|
-
Last updated: <span id="last-update-time">--:--:--</span>
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
</div>
|
49
|
-
|
50
|
-
<!-- Modal Content -->
|
51
|
-
<div class="flex-1 overflow-hidden">
|
52
|
-
<div id="task-details-content" class="h-[60vh] overflow-y-auto p-6">
|
53
|
-
<!-- Loading State -->
|
54
|
-
<div id="tasks-loading" class="flex items-center justify-center h-32">
|
55
|
-
<div class="animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"></div>
|
56
|
-
<span class="ml-3 text-gray-600 dark:text-gray-400">Loading tasks...</span>
|
57
|
-
</div>
|
58
|
-
|
59
|
-
<!-- Empty State -->
|
60
|
-
<div id="tasks-empty" class="hidden text-center py-12">
|
61
|
-
<span class="material-icons text-6xl text-gray-400 dark:text-gray-600 mb-4">inbox</span>
|
62
|
-
<h3 class="text-lg font-medium text-gray-900 dark:text-white mb-2">No tasks found</h3>
|
63
|
-
<p class="text-gray-500 dark:text-gray-400">No tasks match your current filters.</p>
|
64
|
-
</div>
|
65
|
-
|
66
|
-
<!-- Tasks List -->
|
67
|
-
<div id="tasks-list" class="space-y-3">
|
68
|
-
<!-- Tasks will be populated here -->
|
69
|
-
</div>
|
70
|
-
</div>
|
71
|
-
</div>
|
72
|
-
|
73
|
-
<!-- Modal Footer -->
|
74
|
-
<div class="px-6 py-4 bg-gray-50 dark:bg-gray-900 border-t border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
75
|
-
<div class="flex items-center space-x-4 text-sm text-gray-600 dark:text-gray-400">
|
76
|
-
<div class="flex items-center">
|
77
|
-
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div>
|
78
|
-
<span>Completed</span>
|
79
|
-
</div>
|
80
|
-
<div class="flex items-center">
|
81
|
-
<div class="w-3 h-3 bg-blue-500 rounded-full mr-2"></div>
|
82
|
-
<span>Running</span>
|
83
|
-
</div>
|
84
|
-
<div class="flex items-center">
|
85
|
-
<div class="w-3 h-3 bg-yellow-500 rounded-full mr-2"></div>
|
86
|
-
<span>Pending</span>
|
87
|
-
</div>
|
88
|
-
<div class="flex items-center">
|
89
|
-
<div class="w-3 h-3 bg-red-500 rounded-full mr-2"></div>
|
90
|
-
<span>Failed</span>
|
91
|
-
</div>
|
92
|
-
</div>
|
93
|
-
<div class="flex space-x-2">
|
94
|
-
<button id="clear-completed-tasks" class="px-4 py-2 text-sm bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 rounded-lg hover:bg-gray-300 dark:hover:bg-gray-600 transition-colors">
|
95
|
-
Clear Completed
|
96
|
-
</button>
|
97
|
-
<button id="export-tasks" class="px-4 py-2 text-sm bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors">
|
98
|
-
Export CSV
|
99
|
-
</button>
|
100
|
-
</div>
|
101
|
-
</div>
|
102
|
-
</div>
|
103
|
-
</div>
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<!-- Tasks Tab -->
|
2
|
-
<div id="tasks-tab" class="tab-panel hidden">
|
3
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700">
|
4
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
5
|
-
<h2 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
6
|
-
<span class="material-icons text-purple-600 dark:text-purple-400 mr-2">list</span>
|
7
|
-
Task History
|
8
|
-
</h2>
|
9
|
-
<div class="flex space-x-2">
|
10
|
-
<select id="task-status-filter" class="text-sm border border-gray-300 dark:border-gray-600 rounded-lg px-3 py-2 bg-white dark:bg-gray-700 text-gray-900 dark:text-white">
|
11
|
-
<option value="">All Status</option>
|
12
|
-
<option value="pending">Pending</option>
|
13
|
-
<option value="running">Running</option>
|
14
|
-
<option value="done">Completed</option>
|
15
|
-
<option value="failed">Failed</option>
|
16
|
-
</select>
|
17
|
-
<button id="refresh-tasks-btn" class="text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 transition-colors">
|
18
|
-
<span class="material-icons text-sm">refresh</span>
|
19
|
-
</button>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
|
-
<div class="p-6">
|
23
|
-
<div id="tasks-container">
|
24
|
-
<div class="animate-pulse space-y-4">
|
25
|
-
<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded w-full"></div>
|
26
|
-
<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded w-5/6"></div>
|
27
|
-
<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded w-4/6"></div>
|
28
|
-
</div>
|
29
|
-
</div>
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
</div>
|
@@ -1,29 +0,0 @@
|
|
1
|
-
<!-- Workers Tab -->
|
2
|
-
<div id="workers-tab" class="tab-panel hidden">
|
3
|
-
<div class="bg-white dark:bg-gray-800 rounded-xl shadow-sm border border-gray-200 dark:border-gray-700">
|
4
|
-
<div class="px-6 py-4 border-b border-gray-200 dark:border-gray-700 flex items-center justify-between">
|
5
|
-
<h2 class="text-lg font-semibold text-gray-900 dark:text-white flex items-center">
|
6
|
-
<span class="material-icons text-green-600 dark:text-green-400 mr-2">engineering</span>
|
7
|
-
Worker Management
|
8
|
-
</h2>
|
9
|
-
<div class="flex space-x-2">
|
10
|
-
<button id="start-workers-btn" class="inline-flex items-center px-3 py-2 bg-green-600 hover:bg-green-700 text-white text-sm rounded-lg transition-colors">
|
11
|
-
<span class="material-icons text-sm mr-1">play_arrow</span>
|
12
|
-
Start
|
13
|
-
</button>
|
14
|
-
<button id="stop-workers-btn" class="inline-flex items-center px-3 py-2 bg-red-600 hover:bg-red-700 text-white text-sm rounded-lg transition-colors">
|
15
|
-
<span class="material-icons text-sm mr-1">stop</span>
|
16
|
-
Stop
|
17
|
-
</button>
|
18
|
-
</div>
|
19
|
-
</div>
|
20
|
-
<div class="p-6">
|
21
|
-
<div id="workers-container">
|
22
|
-
<div class="animate-pulse space-y-4">
|
23
|
-
<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded w-3/4"></div>
|
24
|
-
<div class="h-4 bg-gray-200 dark:bg-gray-700 rounded w-1/2"></div>
|
25
|
-
</div>
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
</div>
|
29
|
-
</div>
|
@@ -1,29 +0,0 @@
|
|
1
|
-
{% extends 'tasks/base.html' %}
|
2
|
-
{% load static %}
|
3
|
-
|
4
|
-
{% block extra_js %}
|
5
|
-
<script src="{% static 'tasks/js/api.js' %}"></script>
|
6
|
-
<script src="{% static 'tasks/js/dashboard.js' %}"></script>
|
7
|
-
<script src="{% static 'tasks/js/modals.js' %}"></script>
|
8
|
-
<script src="{% static 'tasks/js/task-monitor.js' %}"></script>
|
9
|
-
{% endblock %}
|
10
|
-
|
11
|
-
{% block content %}
|
12
|
-
{% csrf_token %}
|
13
|
-
|
14
|
-
{% include 'tasks/components/management_actions.html' %}
|
15
|
-
{% include 'tasks/components/tab_navigation.html' %}
|
16
|
-
|
17
|
-
<!-- Tab Content -->
|
18
|
-
<div class="tab-content">
|
19
|
-
{% include 'tasks/components/overview_tab.html' %}
|
20
|
-
{% include 'tasks/components/queues_tab.html' %}
|
21
|
-
{% include 'tasks/components/workers_tab.html' %}
|
22
|
-
{% include 'tasks/components/tasks_tab.html' %}
|
23
|
-
</div>
|
24
|
-
|
25
|
-
{% include 'tasks/components/info_cards.html' %}
|
26
|
-
|
27
|
-
<!-- Modals -->
|
28
|
-
{% include 'tasks/components/task_details_modal.html' %}
|
29
|
-
{% endblock %}
|