feat: teams within a project
Projects keep teams of members in their settings (settings.teams; people outside the project are dropped, teams are archived, not removed; absent when saving means unchanged). Tickets go to a team (`team`, also filtered in the list and in MCP search_issues), and a comment mentioning @[Frontend](team-FRONT) tells each of its members. Settings has the teams with their members, the ticket a «Equipo» select, the list a team filter, and «@» offers the teams after the people. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -234,6 +234,7 @@ describe('ProjectFacade', () => {
|
||||
issueTypes: [],
|
||||
areas: [],
|
||||
customFields: [],
|
||||
teams: [],
|
||||
};
|
||||
|
||||
project.saveSettings(settings);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { computed, inject, Injectable, Provider } from '@angular/core';
|
||||
import { injectDispatch } from '@ngrx/signals/events';
|
||||
import {
|
||||
TEAM_MENTION_PREFIX,
|
||||
CreateReleaseInput,
|
||||
CreateSprintInput,
|
||||
ProjectRole,
|
||||
@@ -25,6 +26,20 @@ export class ProjectFacade {
|
||||
|
||||
readonly project = this.store.project;
|
||||
readonly members = this.store.members;
|
||||
/**
|
||||
* Who `@` offers: the members, then the active teams (a team's mention,
|
||||
* `team-<id>`, tells each of its members).
|
||||
*/
|
||||
readonly mentionable = computed(() => [
|
||||
...this.store.members().map((m) => m.user),
|
||||
...this.store
|
||||
.workflow()
|
||||
.activeTeams()
|
||||
.map((t) => ({
|
||||
id: `${TEAM_MENTION_PREFIX}${t.id}`,
|
||||
name: `${t.name} · equipo`,
|
||||
})),
|
||||
]);
|
||||
readonly stats = this.store.stats;
|
||||
readonly releases = this.store.releases;
|
||||
/** Under way, planned, then closed; with their progress. */
|
||||
|
||||
Reference in New Issue
Block a user