feat(tasks,ui): enhance task management UI; update routes; add tests

Improve task workflows and overall UX, and align backend routes with the
new UI flows. Update docs and development setup accordingly.

- UI: refine task list/view/edit templates, project views, and Kanban
  partial (`_kanban_tailwind.html`)
- CSS: polish `app/static/enhanced-ui.css` for spacing, layout, and
  responsiveness
- Routes: update `app/routes/tasks.py` and `app/routes/clients.py` to
  support new edit/delete/filter behaviors and validations
- Templates: align clients/projects pages for consistency and navigation
- Docs: refresh `docs/GETTING_STARTED.md` and
  `docs/TASK_MANAGEMENT_README.md`
- Dev: adjust `docker-compose.yml` and `setup.py` to match the latest
  runtime/build expectations
- Tests: add coverage for delete actions, task project editing, and task
  filters UI (`tests/test_delete_actions.py`,
  `tests/test_task_edit_project.py`,
  `tests/test_tasks_filters_ui.py`); update existing tests

Why:
- Streamlines common task operations and improves discoverability
- Ensures backend and UI are consistent and well-tested
This commit is contained in:
Dries Peeters
2025-10-21 17:05:00 +02:00
parent 330c4f2b5b
commit 79e826ced2
25 changed files with 850 additions and 30 deletions

View File

@@ -8,6 +8,14 @@ The Task Management feature allows you to break down projects into manageable ta
### Core Functionality
- **Task Creation**: Create tasks within projects with names, descriptions, and priorities
### Markdown Support
Task and project descriptions support Markdown formatting with a rich editor:
- Editing: Task create/edit and Project create/edit pages include a Markdown editor with dark-mode and image uploads
- Rendering: View pages render Markdown via the `markdown` Jinja filter (`app/utils/template_filters.py`), sanitized with Bleach
- Supported: headings, emphasis, lists, links, code blocks, tables, images
- **Status Tracking**: Monitor task progress through different states (To Do, In Progress, Review, Done)
- **Priority Management**: Set and track task priorities (Low, Medium, High, Urgent)
- **Time Estimation**: Estimate and track actual time for tasks
@@ -72,6 +80,21 @@ Task Management migration check completed
- **Project Tasks**: Tasks within a specific project
- **Overdue Tasks**: Admin view of all overdue tasks
### Filters UI
- The **All Tasks** page includes a filter panel that is **collapsible**.
- Use the chevron button near "Filter Tasks" to show/hide the filters.
- Your preference is **remembered** using `localStorage` so the panel stays collapsed or expanded across visits.
### Inline Client Creation (Quality of Life)
When creating a new project on `Projects → Create`, you can now create a new client without losing your filled-in project data:
- Click "Create new client" under the Client dropdown to open a modal
- Fill in the minimal client details and submit
- The newly created client is selected automatically and the default hourly rate is prefilled if available
This flow uses an AJAX request to `POST /clients/create` and updates the client select dynamically, preserving the current project form state.
## Database Schema
### Tasks Table