feat: epics, subtasks and checklists
Tickets can hang from another one of the same project, three levels deep at most (epic → ticket → subtask). The ticket page lists its subtasks with their progress, creates new ones and moves the ticket under an epic; a new Épicas tab shows every epic and how far it has got. Each ticket also gets a checklist for the small steps that don't deserve a ticket. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,35 @@ export class AttachmentReadModel {
|
||||
commentId!: string | null;
|
||||
}
|
||||
|
||||
export class ChecklistItemReadModel {
|
||||
id!: string;
|
||||
text!: string;
|
||||
done!: boolean;
|
||||
}
|
||||
|
||||
/** The ticket another one hangs from. */
|
||||
export class IssueParentReadModel {
|
||||
id!: string;
|
||||
key!: string;
|
||||
title!: string;
|
||||
}
|
||||
|
||||
/** How far the tickets hanging from one have got. */
|
||||
export class ChildProgressReadModel {
|
||||
total!: number;
|
||||
/** Done or cancelled. */
|
||||
finished!: number;
|
||||
percent!: number;
|
||||
storyPoints!: number;
|
||||
finishedStoryPoints!: number;
|
||||
}
|
||||
|
||||
/** A top-level ticket that groups others, with their progress. */
|
||||
export class EpicReadModel {
|
||||
issue!: IssueReadModel;
|
||||
progress!: ChildProgressReadModel;
|
||||
}
|
||||
|
||||
export class IssueReadModel {
|
||||
id!: string;
|
||||
projectId!: string;
|
||||
@@ -49,6 +78,8 @@ export class IssueReadModel {
|
||||
attachments!: AttachmentReadModel[];
|
||||
/** People following the ticket. */
|
||||
watchers!: UserRefReadModel[];
|
||||
parent!: IssueParentReadModel | null;
|
||||
checklist!: ChecklistItemReadModel[];
|
||||
commentCount!: number;
|
||||
createdAt!: string;
|
||||
updatedAt!: string;
|
||||
|
||||
Reference in New Issue
Block a user