feat: implement jury member selection and sorting functionality, update related database migrations
This commit is contained in:
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user