mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-30 21:45:01 +02:00
Fix grid migration (#10762)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
import cardPlugin, { cardId, DOMAIN_CARD, type Card, type Role } from '@hcengineering/card'
|
||||
import core, {
|
||||
DOMAIN_MODEL,
|
||||
SortingOrder,
|
||||
TxOperations,
|
||||
type Class,
|
||||
type ClassPermission,
|
||||
@@ -71,7 +72,7 @@ export const cardOperation: MigrateOperation = {
|
||||
async upgrade (state: Map<string, Set<string>>, client: () => Promise<MigrationUpgradeClient>, mode): Promise<void> {
|
||||
await tryUpgrade(mode, state, client, cardId, [
|
||||
{
|
||||
state: 'migrateViewlets-v7',
|
||||
state: 'migrateViewlets-6',
|
||||
func: migrateViewlets
|
||||
},
|
||||
{
|
||||
@@ -128,6 +129,11 @@ export const cardOperation: MigrateOperation = {
|
||||
state: 'migrate-restricted-permissions',
|
||||
mode: 'upgrade',
|
||||
func: migrateRestrictedPermissions
|
||||
},
|
||||
{
|
||||
state: 'add-grid-viewlet',
|
||||
mode: 'upgrade',
|
||||
func: addGridViewlet
|
||||
}
|
||||
])
|
||||
}
|
||||
@@ -286,6 +292,40 @@ async function migrateRestrictedPermissions (_client: MigrationUpgradeClient): P
|
||||
}
|
||||
}
|
||||
|
||||
async function addGridViewlet (client: MigrationUpgradeClient): Promise<void> {
|
||||
const txOp = new TxOperations(client, core.account.System)
|
||||
const masterTags = await client.findAll(card.class.MasterTag, {})
|
||||
const currentViewlets = await client.findAll(view.class.Viewlet, {
|
||||
descriptor: card.viewlet.CardGridDescriptor,
|
||||
attachTo: { $in: masterTags.map((p) => p._id) }
|
||||
})
|
||||
for (const masterTag of masterTags) {
|
||||
const current = currentViewlets.find((p) => p.attachTo === masterTag._id)
|
||||
if (current === undefined) {
|
||||
await txOp.createDoc(view.class.Viewlet, core.space.Model, {
|
||||
descriptor: card.viewlet.CardGridDescriptor,
|
||||
baseQuery: {
|
||||
isLatest: true
|
||||
},
|
||||
config: [''],
|
||||
configOptions: {
|
||||
strict: true
|
||||
},
|
||||
viewOptions: {
|
||||
groupBy: [],
|
||||
orderBy: [
|
||||
['modifiedOn', SortingOrder.Descending],
|
||||
['rank', SortingOrder.Ascending],
|
||||
['title', SortingOrder.Descending]
|
||||
],
|
||||
other: []
|
||||
},
|
||||
attachTo: masterTag._id
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async function addVersionForVersionableTypes (client: MigrationUpgradeClient): Promise<void> {
|
||||
const txOp = new TxOperations(client, core.account.System)
|
||||
const versionableTypes = await client.findAll(card.class.MasterTag, {})
|
||||
|
||||
Reference in New Issue
Block a user