feat: implement jury member selection and sorting functionality, update related database migrations

This commit is contained in:
syntaxbullet
2026-07-13 20:49:06 +02:00
parent 98af6423c5
commit 63387ce335
8 changed files with 273 additions and 55 deletions

View File

@@ -76,6 +76,44 @@ async function upsertPartners(payload: Payload) {
)
}
async function juryMembersForPage(payload: Payload) {
const existing = await payload.find({
collection: 'jury-mitglieder',
limit: 300,
pagination: false,
draft: true,
overrideAccess: true,
sort: 'sortOrder',
})
if (existing.docs.length) {
return existing.docs.filter((member) => member.active !== false).map((member) => member.id)
}
const membersWithUploads = await itemsWithImageUploads(payload, netzwerkContent.jury.members)
const created = await Promise.all(
membersWithUploads.map((member, index) =>
payload.create({
collection: 'jury-mitglieder',
overrideAccess: true,
context: { disableRevalidate: true },
data: {
name: member.name,
image: member.imageUpload,
imageAlt: member.name,
role: member.role,
bio: member.bio,
sortOrder: index,
active: true,
_status: 'published',
},
}),
),
)
return created.map((member) => member.id)
}
async function main() {
const payload = await getPayload({ config })
@@ -100,7 +138,7 @@ async function main() {
const { items: _partnerItems, ...partnerSectionContent } = netzwerkContent.partners
const [patronPeople, juryMembers] = await Promise.all([
itemsWithImageUploads(payload, netzwerkContent.patronage.people),
itemsWithImageUploads(payload, netzwerkContent.jury.members),
juryMembersForPage(payload),
])
await payload.update({