mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-20 23:32:14 +00:00
Remove extra statuses (#3400)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
parent
c8bc249778
commit
96e0d91e85
@ -21,6 +21,7 @@ import core, {
|
|||||||
DocumentUpdate,
|
DocumentUpdate,
|
||||||
Ref,
|
Ref,
|
||||||
SortingOrder,
|
SortingOrder,
|
||||||
|
StatusCategory,
|
||||||
TxCreateDoc,
|
TxCreateDoc,
|
||||||
TxOperations,
|
TxOperations,
|
||||||
TxResult,
|
TxResult,
|
||||||
@ -829,6 +830,35 @@ async function fixMilestoneEmptyStatuses (client: MigrationClient): Promise<void
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function removeExtraStatuses (client: TxOperations): Promise<void> {
|
||||||
|
const projects = await client.findAll(tracker.class.Project, {})
|
||||||
|
for (const project of projects) {
|
||||||
|
const projectStatuses = await client.findAll(tracker.class.IssueStatus, { space: project._id })
|
||||||
|
const statusesMap: Map<Ref<StatusCategory>, Map<string, IssueStatus[]>> = new Map()
|
||||||
|
for (const status of projectStatuses) {
|
||||||
|
if (status.category === undefined) continue
|
||||||
|
const map = statusesMap.get(status.category) ?? new Map<string, IssueStatus[]>()
|
||||||
|
const arr = map.get(status.name) ?? []
|
||||||
|
arr.push(status)
|
||||||
|
map.set(status.name, arr)
|
||||||
|
statusesMap.set(status.category, map)
|
||||||
|
}
|
||||||
|
for (const statuses of statusesMap.values()) {
|
||||||
|
for (const statusesArr of statuses.values()) {
|
||||||
|
if (statusesArr.length < 2) continue
|
||||||
|
const migrateTo = statusesArr[0]._id
|
||||||
|
for (let index = 1; index < statusesArr.length; index++) {
|
||||||
|
const status = statusesArr[index]
|
||||||
|
const tasks = await client.findAll(tracker.class.Issue, { status: status._id })
|
||||||
|
for (const task of tasks) {
|
||||||
|
await client.update(task, { status: migrateTo })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export const trackerOperation: MigrateOperation = {
|
export const trackerOperation: MigrateOperation = {
|
||||||
async migrate (client: MigrationClient): Promise<void> {
|
async migrate (client: MigrationClient): Promise<void> {
|
||||||
await client.update(
|
await client.update(
|
||||||
@ -869,5 +899,6 @@ export const trackerOperation: MigrateOperation = {
|
|||||||
await createDefaults(tx)
|
await createDefaults(tx)
|
||||||
await upgradeProjects(tx)
|
await upgradeProjects(tx)
|
||||||
await upgradeIssues(tx)
|
await upgradeIssues(tx)
|
||||||
|
await removeExtraStatuses(tx)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user