modify my task

This commit is contained in:
2026-03-01 11:30:40 +08:00
parent de59b57ee7
commit c8c4c99a6e
14 changed files with 696 additions and 91 deletions
@@ -0,0 +1,34 @@
## ADDED Requirements
### Requirement: My Tasks page uses Shot Task style header
The My Tasks page SHALL use a header layout consistent with the Shot Task page, including title, filter bar, and action buttons.
#### Scenario: My Tasks header matches Shot Task style
- **WHEN** the My Tasks page is rendered
- **THEN** the header SHALL contain a title section, filter controls, and action buttons arranged similarly to the Shot Task page
#### Scenario: Header includes project filter
- **WHEN** the My Tasks header is displayed
- **THEN** there SHALL be a project dropdown filter to select which project's tasks to view (or all projects)
### Requirement: My Tasks data table columns match Shot Task configuration
The My Tasks page SHALL display task data in columns that align with the Shot Task page table structure, with the addition of a Project column.
#### Scenario: Table columns follow Shot Task pattern
- **WHEN** the My Tasks data table is rendered
- **THEN** it SHALL display columns similar to Shot Task (e.g., Name, Status, Priority, Due Date, Assignee) plus a Project column
#### Scenario: Column ordering is consistent with Shot Task
- **WHEN** the columns are displayed
- **THEN** they SHALL be ordered to match Shot Task conventions with Project column prominently placed
### Requirement: My Tasks visual styling matches Shot Task page
The My Tasks page SHALL use visual styling (colors, spacing, typography) consistent with the Shot Task page.
#### Scenario: Visual consistency with Shot Task
- **WHEN** the My Tasks page is rendered
- **THEN** it SHALL use the same color scheme, spacing, and typography as the Shot Task page
#### Scenario: Component styling matches Shot Task
- **WHEN** UI components (buttons, inputs, dropdowns) are rendered
- **THEN** they SHALL use the same styling as corresponding Shot Task components
@@ -0,0 +1,55 @@
## 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