Add migration scripts and preload participation awards script
- Created migration index file to manage database migrations. - Added script to preload participation awards and related blog posts into the CMS. - Introduced new types and default data for application phases. - Added award articles data structure for the upcoming awards.
This commit is contained in:
@@ -103,7 +103,7 @@ export const homeFields: Field[] = [
|
||||
name: 'quickCheck',
|
||||
label: '02 · Schnell-Check eligibility section',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Cream text panel plus right-side stage image and five eligibility rows.'),
|
||||
admin: sectionAdmin('White text panel plus right-side stage image and five eligibility rows.'),
|
||||
fields: [
|
||||
text('eyebrow', 'Eyebrow', homeContent.quickCheck.eyebrow),
|
||||
textarea('heading', 'Heading', homeContent.quickCheck.heading),
|
||||
@@ -155,55 +155,9 @@ export const homeFields: Field[] = [
|
||||
{ name: 'cta', label: 'CTA', type: 'group', fields: linkGroup(homeContent.intro.cta.label, homeContent.intro.cta.url) },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'status',
|
||||
label: '04 · Application phase slider',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Three-slide status module shown after the award intro.'),
|
||||
fields: [
|
||||
{
|
||||
name: 'activePhase',
|
||||
label: 'Current phase shown on the homepage',
|
||||
type: 'select',
|
||||
defaultValue: homeContent.status.activePhase,
|
||||
options: [
|
||||
{ label: '01 · Bewerbungsphase offen', value: '0' },
|
||||
{ label: '02 · Auswertung / Jury bewertet', value: '1' },
|
||||
{ label: '03 · Preisverleihung abgeschlossen', value: '2' },
|
||||
],
|
||||
admin: { description: 'Only this selected phase is rendered on the frontend; visitors do not see a slider.' },
|
||||
},
|
||||
{
|
||||
name: 'phases',
|
||||
label: 'Slides',
|
||||
type: 'array',
|
||||
maxRows: 3,
|
||||
defaultValue: homeContent.status.phases,
|
||||
fields: [
|
||||
text('num', 'Slide number'),
|
||||
text('tag', 'Badge'),
|
||||
{ name: 'pulse', label: 'Show pulse dot', type: 'checkbox', defaultValue: true },
|
||||
text('phase', 'Phase label'),
|
||||
text('headline', 'Headline'),
|
||||
textarea('body', 'Body copy'),
|
||||
{ name: 'cta', label: 'Slide CTA', type: 'group', fields: linkGroup('', '') },
|
||||
text('accent', 'Accent color'),
|
||||
text('bg', 'Background color'),
|
||||
text('glow', 'Glow color'),
|
||||
text('meta', 'Meta label'),
|
||||
text('successApplications', 'Success applications number'),
|
||||
text('successWinners', 'Success winners number'),
|
||||
{ name: 'membershipCta', label: 'Membership CTA', type: 'group', fields: linkGroup('Mitglied werden', '/mitglied-werden') },
|
||||
],
|
||||
},
|
||||
text('noActionLabel', 'No CTA fallback label', homeContent.status.noActionLabel),
|
||||
text('successApplicationsLabel', 'Success applications label', homeContent.status.successApplicationsLabel),
|
||||
text('successWinnersLabel', 'Success winners label', homeContent.status.successWinnersLabel),
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'winners',
|
||||
label: '05 · Preisträger card grid',
|
||||
label: '04 · Preisträger card grid',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Blue card grid with featured winner relationships.'),
|
||||
fields: [
|
||||
@@ -225,7 +179,7 @@ export const homeFields: Field[] = [
|
||||
},
|
||||
{
|
||||
name: 'testimonials',
|
||||
label: '06 · Testimonials carousel',
|
||||
label: '05 · Testimonials carousel',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Portrait carousel and quote copy.'),
|
||||
fields: [
|
||||
@@ -247,9 +201,9 @@ export const homeFields: Field[] = [
|
||||
},
|
||||
{
|
||||
name: 'benefits',
|
||||
label: '07 · Participation benefits',
|
||||
label: '06 · Participation benefits',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Cream left panel and networking image.'),
|
||||
admin: sectionAdmin('White left panel and networking image.'),
|
||||
fields: [
|
||||
text('eyebrow', 'Eyebrow', homeContent.benefits.eyebrow),
|
||||
textarea('heading', 'Heading', homeContent.benefits.heading),
|
||||
@@ -263,7 +217,7 @@ export const homeFields: Field[] = [
|
||||
},
|
||||
{
|
||||
name: 'application',
|
||||
label: '08 · Application form section',
|
||||
label: '07 · Application form section',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Final application pitch, award image, embedded form heading, and footnote.'),
|
||||
fields: [
|
||||
@@ -282,7 +236,7 @@ export const homeFields: Field[] = [
|
||||
},
|
||||
{
|
||||
name: 'form',
|
||||
label: '09 · Embedded application form copy and logic labels',
|
||||
label: '08 · Embedded application form copy and logic labels',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Text, options, and eligibility thresholds used inside the home page multi-step application form.'),
|
||||
fields: [
|
||||
@@ -398,10 +352,28 @@ export const homeFields: Field[] = [
|
||||
},
|
||||
{
|
||||
name: 'videoModal',
|
||||
label: '10 · Video modal placeholder',
|
||||
label: '10 · Video modal',
|
||||
type: 'group',
|
||||
admin: sectionAdmin('Copy shown when the hero video button is clicked.'),
|
||||
fields: [text('title', 'Title', homeContent.videoModal.title), text('description', 'Description', homeContent.videoModal.description), text('closeLabel', 'Close button label', homeContent.videoModal.closeLabel)],
|
||||
admin: sectionAdmin('Video and fallback copy shown when the hero video button is clicked.'),
|
||||
fields: [
|
||||
{
|
||||
name: 'video',
|
||||
type: 'upload',
|
||||
relationTo: 'media',
|
||||
label: 'Video',
|
||||
filterOptions: {
|
||||
mimeType: {
|
||||
contains: 'video',
|
||||
},
|
||||
},
|
||||
admin: {
|
||||
description: 'Choose a video from the media collection. If empty, the frontend shows the fallback copy below.',
|
||||
},
|
||||
},
|
||||
text('title', 'Title', homeContent.videoModal.title),
|
||||
text('description', 'Description', homeContent.videoModal.description),
|
||||
text('closeLabel', 'Close button label', homeContent.videoModal.closeLabel),
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user