56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: My Tasks View uses Shot Task page layout instead of project task page layout
|
|
The system SHALL use the Shot Task page layout and styling for the My Tasks page to ensure visual consistency across the application.
|
|
|
|
#### Scenario: My Tasks uses Shot Task layout style
|
|
- **WHEN** the My Tasks page is rendered
|
|
- **THEN** it SHALL use the same layout structure as the Shot Task page (header with filters, data table, pagination)
|
|
|
|
#### Scenario: My Tasks uses Shot Task visual styling
|
|
- **WHEN** the My Tasks page components are rendered
|
|
- **THEN** they SHALL use the same visual styling (colors, spacing, typography) as the Shot Task page
|
|
|
|
### Requirement: My Tasks View displays all tasks assigned to the current user across projects
|
|
The system SHALL provide a My Tasks page that displays a unified list of all tasks assigned to the currently logged-in user, aggregated from all projects where the user has access.
|
|
|
|
#### Scenario: User accesses My Tasks page
|
|
- **WHEN** the user navigates to the My Tasks page (e.g., /my-tasks)
|
|
- **THEN** the system SHALL display a list of all tasks assigned to the user across all accessible projects
|
|
|
|
#### Scenario: My Tasks page shows task details
|
|
- **WHEN** the My Tasks list is displayed
|
|
- **THEN** each task item SHALL display at minimum: task name, project name, status, due date, and assignee
|
|
|
|
#### Scenario: User can filter tasks by project
|
|
- **WHEN** the user selects a specific project from the project filter dropdown
|
|
- **THEN** the list SHALL display only tasks from the selected project
|
|
|
|
#### Scenario: User can filter tasks by status
|
|
- **WHEN** the user selects a specific status from the status filter dropdown
|
|
- **THEN** the list SHALL display only tasks with the selected status
|
|
|
|
#### Scenario: User can sort tasks
|
|
- **WHEN** the user clicks a column header to sort
|
|
- **THEN** the list SHALL be sorted by that column in ascending/descending order
|
|
|
|
#### Scenario: User clicks on a task
|
|
- **WHEN** the user clicks on a task row in the My Tasks list
|
|
- **THEN** the system SHALL navigate to the task detail page in its project (e.g., /projects/{project_id}/tasks/{task_id})
|
|
|
|
#### Scenario: User sees only accessible tasks
|
|
- **WHEN** the My Tasks list is loaded
|
|
- **THEN** tasks from projects where the user lacks access SHALL NOT be displayed
|
|
|
|
#### Scenario: API returns user's tasks
|
|
- **WHEN** a authenticated user requests GET /api/tasks/my-tasks
|
|
- **THEN** the system SHALL return a list of tasks assigned to that user
|
|
|
|
#### Scenario: API supports project filter
|
|
- **WHEN** the user requests GET /api/tasks/my-tasks?project_id={id}
|
|
- **THEN** the system SHALL return only tasks from the specified project
|
|
|
|
#### Scenario: API supports status filter
|
|
- **WHEN** the user requests GET /api/tasks/my-tasks?status={status}
|
|
- **THEN** the system SHALL return only tasks with the selected status
|