feat(5.21): Tasks Plugin — activities with status, priority, due dates, ARQ reminders

- New builtin plugin app/plugins/builtins/tasks/ with full CRUD
- Task model with TenantMixin (title, description, status, priority, due_date, assigned_to, contact_id)
- Routes: GET/POST /tasks, GET/PATCH/DELETE /tasks/{id}, POST /tasks/{id}/assign, POST /tasks/{id}/status
- All routes RBAC-protected (tasks:read, tasks:write, tasks:delete)
- ARQ cron job tasks_due_reminder (daily 8:00) sends notifications for due tasks
- Migration 0001_initial.sql creates tasks table with indexes
- Frontend: Tasks.tsx page with list, filter, create/edit modal, detail modal
- Frontend: api/tasks.ts with React Query hooks
- Route /tasks in routes/index.tsx, sidebar entry via plugin manifest
- i18n keys for nav.tasks and tasks.* in de.json and en.json
- Tests: test_tasks.py (11 tests) + Tasks.test.tsx (3 tests)
- Registered TasksPlugin in conftest.py and worker.py
This commit is contained in:
Agent Zero
2026-07-23 23:41:34 +02:00
parent bdad91a649
commit 2c9e74776e
17 changed files with 1536 additions and 2 deletions
+27 -1
View File
@@ -18,7 +18,8 @@
"settings": "Einstellungen",
"aiAssistant": "KI Assistent",
"mcpSettings": "MCP Einstellungen",
"reports": "Reports"
"reports": "Reports",
"tasks": "Aufgaben"
},
"auth": {
"login": "Anmelden",
@@ -996,5 +997,30 @@
"selectTemplateHint": "Wählen Sie eine Vorlage aus der Liste",
"downloadHistory": "Download-Verlauf",
"noDownloads": "Noch keine Downloads"
},
"tasks": {
"title": "Aufgaben",
"create": "Neue Aufgabe",
"edit": "Aufgabe bearbeiten",
"deleteConfirm": "Diese Aufgabe löschen?",
"created": "Aufgabe erstellt",
"updated": "Aufgabe aktualisiert",
"deleted": "Aufgabe gelöscht",
"statusUpdated": "Status aktualisiert",
"noTasks": "Keine Aufgaben",
"noTasksDesc": "Es wurden noch keine Aufgaben erstellt.",
"markDone": "Erledigt",
"dueDate": "Fälligkeitsdatum",
"title_field": "Titel",
"description": "Beschreibung",
"status_field": "Status",
"priority_field": "Priorität",
"statusOpen": "Offen",
"statusInProgress": "In Bearbeitung",
"statusDone": "Erledigt",
"priorityLow": "Niedrig",
"priorityMedium": "Mittel",
"priorityHigh": "Hoch",
"priorityUrgent": "Dringend"
}
}
+27 -1
View File
@@ -18,7 +18,8 @@
"settings": "Settings",
"aiAssistant": "AI Assistant",
"mcpSettings": "MCP Settings",
"reports": "Reports"
"reports": "Reports",
"tasks": "Tasks"
},
"auth": {
"login": "Sign In",
@@ -996,5 +997,30 @@
"selectTemplateHint": "Select a template from the list",
"downloadHistory": "Download History",
"noDownloads": "No downloads yet"
},
"tasks": {
"title": "Tasks",
"create": "New Task",
"edit": "Edit Task",
"deleteConfirm": "Delete this task?",
"created": "Task created",
"updated": "Task updated",
"deleted": "Task deleted",
"statusUpdated": "Status updated",
"noTasks": "No tasks",
"noTasksDesc": "No tasks have been created yet.",
"markDone": "Mark Done",
"dueDate": "Due Date",
"title_field": "Title",
"description": "Description",
"status_field": "Status",
"priority_field": "Priority",
"statusOpen": "Open",
"statusInProgress": "In Progress",
"statusDone": "Done",
"priorityLow": "Low",
"priorityMedium": "Medium",
"priorityHigh": "High",
"priorityUrgent": "Urgent"
}
}