Implement "Mark Task as Done" Functionality
Description
This task involves implementing functionality that allows task authors and assigned users to mark tasks as "Done" in the system. This feature is essential for tracking task completion and maintaining an up-to-date view of project progress.
The implementation should update the task status to "Done" and record the modification date when the status change occurs. Only the task author or users assigned to the task should have permission to perform this action.
User Story
As a task author or assigned user, I want to mark a task as "done" so that the team knows when a task has been completed.
BDD Scenario Titles
- Author marks task as done
- Assigned user marks task as done
Acceptance Criteria
-
Task authors can change a task's status from "Open" to "Done" -
Users assigned to a task can change its status from "Open" to "Done" -
When a task status is changed to "Done", the modification date is automatically updated -
Users who are neither authors nor assignees cannot change a task's status to "Done" -
The UI clearly indicates when a task has been marked as "Done" -
Status changes are persisted in the database
Technical Requirements
- Update the task model to handle status changes
- Implement permission checks to verify user authorization
- Ensure modification date is updated automatically
- Update UI components to reflect task status changes
- Add appropriate unit and integration tests
Definition of Done
- Code implements all acceptance criteria
- Code passes all BDD tests
- Unit tests achieve minimum 85% coverage
- Code has been reviewed by at least one team member
- Documentation has been updated to reflect the new functionality
- Changes have been tested in the development environment