feat: move unfinished tickets between releases
- Bulk editing gets «Release…» (open releases or none), and the list view a release filter, also reachable from each release («Ver en la lista», ?release=). - Archiving a release asks where its unfinished tickets go, as closing a sprint does: ReleaseArchivedEvent carries `moveTo` (an open release of the same project, or none) and the saga moves them there; finished ones stay. In GraphQL, REST and the MCP's archive_release. - Chapter 10 lists the next features and the ideas to weigh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,19 @@
|
||||
import { AutowiredEvent } from '@task-stream/api/shared/domain';
|
||||
import { TrackerEvent } from './tracker.event';
|
||||
|
||||
/** The release was archived. */
|
||||
/**
|
||||
* The release was archived. Its unfinished tickets move to `moveTo` (an
|
||||
* open release of the same project) or, when null, leave it. Events stored
|
||||
* before `moveTo` existed read as null.
|
||||
*/
|
||||
@AutowiredEvent
|
||||
export class ReleaseArchivedEvent extends TrackerEvent {
|
||||
constructor(actorId: string, releaseId: string, projectId: string) {
|
||||
constructor(
|
||||
actorId: string,
|
||||
releaseId: string,
|
||||
projectId: string,
|
||||
readonly moveTo: string | null = null,
|
||||
) {
|
||||
super(actorId, releaseId, projectId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user