feat: portfolio of all my projects
/cartera (and GraphQL portfolio, REST /api/me/portfolio, MCP get_portfolio) shows every active project I belong to (not archived, not as a guest) at a glance: open, overdue, blocked and stuck tickets, the sprint under way and whether it gets there, planned releases with their forecast, and the open epics with their progress. It reuses the dashboard's computations. A release with no tickets now reads «Sin tickets» instead of «Todo hecho», here and on the dashboard. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { EpicReadModel } from './issue.read-model';
|
||||
import { UserRefReadModel } from './user-ref.read-model';
|
||||
|
||||
/** A ticket named by the dashboard, with the number that put it there. */
|
||||
@@ -189,3 +190,23 @@ export class ProjectInsightsReadModel {
|
||||
/** One per active list (SELECT) custom field. */
|
||||
fields!: FieldBreakdownReadModel[];
|
||||
}
|
||||
|
||||
/** One of my projects at a glance, for the portfolio. */
|
||||
export class PortfolioProjectReadModel {
|
||||
projectId!: string;
|
||||
key!: string;
|
||||
name!: string;
|
||||
isPublic!: boolean;
|
||||
total!: number;
|
||||
open!: number;
|
||||
overdue!: number;
|
||||
blocked!: number;
|
||||
stuck!: number;
|
||||
/** The sprint under way, if any. */
|
||||
sprint!: SprintPulseReadModel | null;
|
||||
/** Planned releases with their forecast. */
|
||||
releases!: ReleaseForecastReadModel[];
|
||||
/** Open epics (nearest due date first), at most six. */
|
||||
epics!: EpicReadModel[];
|
||||
updatedAt!: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user