From 0cd88a07f87ef08e184d31b4245d17b810edfd69 Mon Sep 17 00:00:00 2001 From: Nielda Karla <90112119+nieldakarla@users.noreply.github.com> Date: Sun, 14 Dec 2025 15:48:04 -0300 Subject: [PATCH] feat(curriculum): release A1 Spanish (#64519) Co-authored-by: Huyen Nguyen <25715018+huyenltnguyen@users.noreply.github.com> --- client/i18n/locales/english/intro.json | 32 +++---------------- client/i18n/locales/english/translations.json | 1 + client/src/components/Map/index.tsx | 1 + .../build-external-curricula-data-v1.test.ts | 3 +- .../build-external-curricula-data-v2.test.ts | 1 + .../build-external-curricula-data-v2.ts | 9 ++++++ .../external-data-schema-v2.ts | 2 ++ ...s-a1-learn-certification-introduction.json | 2 +- ...arn-consonants-and-special-characters.json | 2 +- .../es-a1-learn-greetings-during-the-day.json | 2 +- .../es-a1-learn-meet-angela-and-basti.json | 2 +- .../blocks/es-a1-learn-meet-julieta.json | 2 +- .../blocks/es-a1-learn-meet-luna.json | 2 +- .../blocks/es-a1-learn-meet-mateo.json | 2 +- .../blocks/es-a1-learn-numbers-10-to-29.json | 2 +- .../es-a1-learn-the-first-ten-numbers.json | 2 +- .../structure/blocks/es-a1-learn-vowels.json | 2 +- .../es-a1-practice-first-questions.json | 2 +- ...s-a1-practice-greetings-and-farewells.json | 2 +- .../es-a1-practice-introducing-yourself.json | 2 +- .../blocks/es-a1-practice-the-alphabet.json | 2 +- .../es-a1-practice-the-first-ten-numbers.json | 2 +- ...es-a1-practice-using-numbers-10-to-29.json | 2 +- .../blocks/es-a1-quiz-first-questions.json | 2 +- .../es-a1-quiz-greetings-and-farewells.json | 2 +- .../es-a1-quiz-introducing-yourself.json | 2 +- .../blocks/es-a1-quiz-numbers-10-to-29.json | 2 +- .../es-a1-quiz-spanish-fundamentals.json | 2 +- .../blocks/es-a1-review-first-questions.json | 2 +- .../es-a1-review-greetings-and-farewells.json | 2 +- .../es-a1-review-introducing-yourself.json | 2 +- .../blocks/es-a1-review-numbers-10-to-29.json | 2 +- .../es-a1-review-spanish-fundamentals.json | 2 +- .../es-a1-warm-up-first-questions-basics.json | 2 +- ...arm-up-greetings-and-farewells-basics.json | 2 +- ...1-warm-up-introducing-yourself-basics.json | 2 +- .../es-a1-warm-up-remember-first-numbers.json | 2 +- .../superblocks/a1-professional-spanish.json | 1 + e2e/landing.spec.ts | 1 + e2e/map.spec.ts | 6 +++- shared/config/curriculum.ts | 4 ++- 41 files changed, 61 insertions(+), 60 deletions(-) diff --git a/client/i18n/locales/english/intro.json b/client/i18n/locales/english/intro.json index 6eaa50d4aa0..358ac76f3b3 100644 --- a/client/i18n/locales/english/intro.json +++ b/client/i18n/locales/english/intro.json @@ -7546,39 +7546,17 @@ "es-a1-module-sharing-your-personal-details": "Sharing Your Personal Details" }, "module-intros": { - "es-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "es-a1-module-letters-sounds-and-first-numbers": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "es-a1-module-greetings-and-farewells": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "es-a1-module-introducing-yourself": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "es-a1-module-first-questions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "es-a1-module-numbers-10-to-29": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "es-a1-module-sharing-your-personal-details": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short conversations that ask for personal details such as name, contact information, nationality, and age." + ] } }, "blocks": { "es-a1-warm-up-greetings-and-farewells-basics": { "title": "Greetings and Farewells Basics", - "intro": ["Learn the basics of greetings and farewells in Spanish."] + "intro": ["", ""] }, "es-a1-learn-greetings-during-the-day": { "title": "Greetings During the Day", diff --git a/client/i18n/locales/english/translations.json b/client/i18n/locales/english/translations.json index 856f197b30c..9265e4afd6c 100644 --- a/client/i18n/locales/english/translations.json +++ b/client/i18n/locales/english/translations.json @@ -207,6 +207,7 @@ "certification-heading": "Earn free verified certifications in:", "core-certs-heading": "Recommended curriculum (still in beta):", "learn-english-heading": "Learn English for Developers:", + "learn-spanish-heading": "Learn Professional Spanish:", "professional-certs-heading": "Professional certifications:", "interview-prep-heading": "Prepare for the developer interview job search:", "legacy-curriculum-heading": "Our archived coursework:", diff --git a/client/src/components/Map/index.tsx b/client/src/components/Map/index.tsx index 113ee6655e0..2348b984dc5 100644 --- a/client/src/components/Map/index.tsx +++ b/client/src/components/Map/index.tsx @@ -31,6 +31,7 @@ const linkSpacingStyle = { const superBlockHeadings: { [key in SuperBlockStage]: string } = { [SuperBlockStage.Core]: 'landing.core-certs-heading', [SuperBlockStage.English]: 'landing.learn-english-heading', + [SuperBlockStage.Spanish]: 'landing.learn-spanish-heading', [SuperBlockStage.Professional]: 'landing.professional-certs-heading', [SuperBlockStage.Extra]: 'landing.interview-prep-heading', [SuperBlockStage.Legacy]: 'landing.legacy-curriculum-heading', diff --git a/client/tools/external-curriculum/build-external-curricula-data-v1.test.ts b/client/tools/external-curriculum/build-external-curricula-data-v1.test.ts index 9403fdc33d8..7dea187fda6 100644 --- a/client/tools/external-curriculum/build-external-curricula-data-v1.test.ts +++ b/client/tools/external-curriculum/build-external-curricula-data-v1.test.ts @@ -146,7 +146,8 @@ describe('external curriculum data build', () => { stage !== SuperBlockStage.Next && stage !== SuperBlockStage.Upcoming && stage !== SuperBlockStage.Catalog && - stage !== SuperBlockStage.Core + stage !== SuperBlockStage.Core && + stage !== SuperBlockStage.Spanish ); }) .flatMap(([, superBlocks]) => superBlocks); diff --git a/client/tools/external-curriculum/build-external-curricula-data-v2.test.ts b/client/tools/external-curriculum/build-external-curricula-data-v2.test.ts index b14eec8ed69..a08d4cecd82 100644 --- a/client/tools/external-curriculum/build-external-curricula-data-v2.test.ts +++ b/client/tools/external-curriculum/build-external-curricula-data-v2.test.ts @@ -269,6 +269,7 @@ describe('external curriculum data build', () => { const superBlockStageStringMap: Record = { core: SuperBlockStage.Core, english: SuperBlockStage.English, + spanish: SuperBlockStage.Spanish, professional: SuperBlockStage.Professional, extra: SuperBlockStage.Extra, legacy: SuperBlockStage.Legacy, diff --git a/client/tools/external-curriculum/build-external-curricula-data-v2.ts b/client/tools/external-curriculum/build-external-curricula-data-v2.ts index 5a6b184b4e2..6d549da5a10 100644 --- a/client/tools/external-curriculum/build-external-curricula-data-v2.ts +++ b/client/tools/external-curriculum/build-external-curricula-data-v2.ts @@ -92,6 +92,7 @@ interface GeneratedBlock { enum SuperBlockStage { Core = 'core', English = 'english', + Spanish = 'spanish', Professional = 'professional', Extra = 'extra', Legacy = 'legacy' @@ -166,6 +167,14 @@ export const orderedSuperBlockInfo: OrderedSuperBlocks = { } ], + [SuperBlockStage.Spanish]: [ + { + dashedName: SuperBlocks.A1Spanish, + public: false, + title: intros[SuperBlocks.A1Spanish].title + } + ], + [SuperBlockStage.Extra]: [ { dashedName: SuperBlocks.TheOdinProject, diff --git a/client/tools/external-curriculum/external-data-schema-v2.ts b/client/tools/external-curriculum/external-data-schema-v2.ts index 1efd3f7b0b4..af5d945ffe0 100644 --- a/client/tools/external-curriculum/external-data-schema-v2.ts +++ b/client/tools/external-curriculum/external-data-schema-v2.ts @@ -19,6 +19,8 @@ const blockSchema = Joi.object().keys({ 'Backend Development', 'C-Sharp', 'English', + 'Chinese Curriculum', + 'Spanish Curriculum', 'Odin', 'Euler', 'Rosetta' diff --git a/curriculum/structure/blocks/es-a1-learn-certification-introduction.json b/curriculum/structure/blocks/es-a1-learn-certification-introduction.json index c727d0fcc39..a9a30604350 100644 --- a/curriculum/structure/blocks/es-a1-learn-certification-introduction.json +++ b/curriculum/structure/blocks/es-a1-learn-certification-introduction.json @@ -1,6 +1,6 @@ { "name": "Certification Introduction", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-certification-introduction", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-list", diff --git a/curriculum/structure/blocks/es-a1-learn-consonants-and-special-characters.json b/curriculum/structure/blocks/es-a1-learn-consonants-and-special-characters.json index 9d8c71756f3..33e40453003 100644 --- a/curriculum/structure/blocks/es-a1-learn-consonants-and-special-characters.json +++ b/curriculum/structure/blocks/es-a1-learn-consonants-and-special-characters.json @@ -1,6 +1,6 @@ { "name": "Consonants and Special Characters", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-consonants-and-special-characters", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-greetings-during-the-day.json b/curriculum/structure/blocks/es-a1-learn-greetings-during-the-day.json index bd14eff56f9..423299dc095 100644 --- a/curriculum/structure/blocks/es-a1-learn-greetings-during-the-day.json +++ b/curriculum/structure/blocks/es-a1-learn-greetings-during-the-day.json @@ -1,6 +1,6 @@ { "name": "Greetings During the Day", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-greetings-during-the-day", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-meet-angela-and-basti.json b/curriculum/structure/blocks/es-a1-learn-meet-angela-and-basti.json index 84213597748..70e5157fcf8 100644 --- a/curriculum/structure/blocks/es-a1-learn-meet-angela-and-basti.json +++ b/curriculum/structure/blocks/es-a1-learn-meet-angela-and-basti.json @@ -1,6 +1,6 @@ { "name": "Meet Angela and Basti", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-meet-angela-and-basti", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-meet-julieta.json b/curriculum/structure/blocks/es-a1-learn-meet-julieta.json index 9037864e6a4..4ca27c009e6 100644 --- a/curriculum/structure/blocks/es-a1-learn-meet-julieta.json +++ b/curriculum/structure/blocks/es-a1-learn-meet-julieta.json @@ -1,6 +1,6 @@ { "name": "Meet Julieta", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-meet-julieta", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-meet-luna.json b/curriculum/structure/blocks/es-a1-learn-meet-luna.json index 48fb460893a..fbf1b36fe50 100644 --- a/curriculum/structure/blocks/es-a1-learn-meet-luna.json +++ b/curriculum/structure/blocks/es-a1-learn-meet-luna.json @@ -1,6 +1,6 @@ { "name": "Meet Luna", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-meet-luna", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-meet-mateo.json b/curriculum/structure/blocks/es-a1-learn-meet-mateo.json index 55470500e68..3959a999512 100644 --- a/curriculum/structure/blocks/es-a1-learn-meet-mateo.json +++ b/curriculum/structure/blocks/es-a1-learn-meet-mateo.json @@ -1,6 +1,6 @@ { "name": "Meet Mateo", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-meet-mateo", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-numbers-10-to-29.json b/curriculum/structure/blocks/es-a1-learn-numbers-10-to-29.json index 9babddcdc87..ef587d24af4 100644 --- a/curriculum/structure/blocks/es-a1-learn-numbers-10-to-29.json +++ b/curriculum/structure/blocks/es-a1-learn-numbers-10-to-29.json @@ -1,6 +1,6 @@ { "name": "Numbers 10 to 29", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-numbers-10-to-29", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-the-first-ten-numbers.json b/curriculum/structure/blocks/es-a1-learn-the-first-ten-numbers.json index 9e3f13d70e6..ba68d969ed1 100644 --- a/curriculum/structure/blocks/es-a1-learn-the-first-ten-numbers.json +++ b/curriculum/structure/blocks/es-a1-learn-the-first-ten-numbers.json @@ -1,6 +1,6 @@ { "name": "The First Ten Numbers", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-the-first-ten-numbers", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-learn-vowels.json b/curriculum/structure/blocks/es-a1-learn-vowels.json index 8371659f04a..fecc919bad7 100644 --- a/curriculum/structure/blocks/es-a1-learn-vowels.json +++ b/curriculum/structure/blocks/es-a1-learn-vowels.json @@ -1,6 +1,6 @@ { "name": "Vowels", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-learn-vowels", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-practice-first-questions.json b/curriculum/structure/blocks/es-a1-practice-first-questions.json index 4d9a1ea087c..46e07483bff 100644 --- a/curriculum/structure/blocks/es-a1-practice-first-questions.json +++ b/curriculum/structure/blocks/es-a1-practice-first-questions.json @@ -1,6 +1,6 @@ { "name": "First Questions Practice", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-practice-first-questions", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-practice-greetings-and-farewells.json b/curriculum/structure/blocks/es-a1-practice-greetings-and-farewells.json index 35c50ccd4b1..79698f95507 100644 --- a/curriculum/structure/blocks/es-a1-practice-greetings-and-farewells.json +++ b/curriculum/structure/blocks/es-a1-practice-greetings-and-farewells.json @@ -1,6 +1,6 @@ { "name": "Greetings and Farewells Practice", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-practice-greetings-and-farewells", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-practice-introducing-yourself.json b/curriculum/structure/blocks/es-a1-practice-introducing-yourself.json index 73a2b3c377b..52cfa61e577 100644 --- a/curriculum/structure/blocks/es-a1-practice-introducing-yourself.json +++ b/curriculum/structure/blocks/es-a1-practice-introducing-yourself.json @@ -1,6 +1,6 @@ { "name": "Introducing Yourself Practice", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-practice-introducing-yourself", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-practice-the-alphabet.json b/curriculum/structure/blocks/es-a1-practice-the-alphabet.json index 06d02bf974e..bc2faca0d2b 100644 --- a/curriculum/structure/blocks/es-a1-practice-the-alphabet.json +++ b/curriculum/structure/blocks/es-a1-practice-the-alphabet.json @@ -1,6 +1,6 @@ { "name": "The Spanish Alphabet Practice", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-practice-the-alphabet", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-practice-the-first-ten-numbers.json b/curriculum/structure/blocks/es-a1-practice-the-first-ten-numbers.json index bb1edbcdbbd..ba98389279b 100644 --- a/curriculum/structure/blocks/es-a1-practice-the-first-ten-numbers.json +++ b/curriculum/structure/blocks/es-a1-practice-the-first-ten-numbers.json @@ -1,6 +1,6 @@ { "name": "The First Ten Numbers Practice", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-practice-the-first-ten-numbers", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-practice-using-numbers-10-to-29.json b/curriculum/structure/blocks/es-a1-practice-using-numbers-10-to-29.json index 1f8b17f78a8..76110c6b0b4 100644 --- a/curriculum/structure/blocks/es-a1-practice-using-numbers-10-to-29.json +++ b/curriculum/structure/blocks/es-a1-practice-using-numbers-10-to-29.json @@ -1,6 +1,6 @@ { "name": "Using Numbers 10 to 29", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-practice-using-numbers-10-to-29", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-quiz-first-questions.json b/curriculum/structure/blocks/es-a1-quiz-first-questions.json index a768d66c228..a819a216faf 100644 --- a/curriculum/structure/blocks/es-a1-quiz-first-questions.json +++ b/curriculum/structure/blocks/es-a1-quiz-first-questions.json @@ -1,6 +1,6 @@ { "name": "First Questions Quiz", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-quiz-first-questions", "helpCategory": "Spanish Curriculum", "blockLayout": "link", diff --git a/curriculum/structure/blocks/es-a1-quiz-greetings-and-farewells.json b/curriculum/structure/blocks/es-a1-quiz-greetings-and-farewells.json index 06e378511c8..3da19ee2ed8 100644 --- a/curriculum/structure/blocks/es-a1-quiz-greetings-and-farewells.json +++ b/curriculum/structure/blocks/es-a1-quiz-greetings-and-farewells.json @@ -1,6 +1,6 @@ { "name": "Greetings and Farewells Quiz", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-quiz-greetings-and-farewells", "helpCategory": "Spanish Curriculum", "blockLayout": "link", diff --git a/curriculum/structure/blocks/es-a1-quiz-introducing-yourself.json b/curriculum/structure/blocks/es-a1-quiz-introducing-yourself.json index 20c6adcba2e..b31cc3cc1d0 100644 --- a/curriculum/structure/blocks/es-a1-quiz-introducing-yourself.json +++ b/curriculum/structure/blocks/es-a1-quiz-introducing-yourself.json @@ -1,6 +1,6 @@ { "name": "Introducing Yourself Quiz", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-quiz-introducing-yourself", "helpCategory": "Spanish Curriculum", "blockLayout": "link", diff --git a/curriculum/structure/blocks/es-a1-quiz-numbers-10-to-29.json b/curriculum/structure/blocks/es-a1-quiz-numbers-10-to-29.json index 6e0495535fd..a5d052bd1ff 100644 --- a/curriculum/structure/blocks/es-a1-quiz-numbers-10-to-29.json +++ b/curriculum/structure/blocks/es-a1-quiz-numbers-10-to-29.json @@ -1,6 +1,6 @@ { "name": "Numbers 10 to 29 Quiz", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-quiz-numbers-10-to-29", "helpCategory": "Spanish Curriculum", "blockLayout": "link", diff --git a/curriculum/structure/blocks/es-a1-quiz-spanish-fundamentals.json b/curriculum/structure/blocks/es-a1-quiz-spanish-fundamentals.json index 820ba9619f8..2a509f9b4ef 100644 --- a/curriculum/structure/blocks/es-a1-quiz-spanish-fundamentals.json +++ b/curriculum/structure/blocks/es-a1-quiz-spanish-fundamentals.json @@ -1,6 +1,6 @@ { "name": "Spanish Fundamentals Quiz", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-quiz-spanish-fundamentals", "helpCategory": "Spanish Curriculum", "blockLayout": "link", diff --git a/curriculum/structure/blocks/es-a1-review-first-questions.json b/curriculum/structure/blocks/es-a1-review-first-questions.json index 89c418c789c..b993b46a716 100644 --- a/curriculum/structure/blocks/es-a1-review-first-questions.json +++ b/curriculum/structure/blocks/es-a1-review-first-questions.json @@ -1,6 +1,6 @@ { "name": "First Questions Review", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-review-first-questions", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-list", diff --git a/curriculum/structure/blocks/es-a1-review-greetings-and-farewells.json b/curriculum/structure/blocks/es-a1-review-greetings-and-farewells.json index 8a9e3610763..7070e7a95f7 100644 --- a/curriculum/structure/blocks/es-a1-review-greetings-and-farewells.json +++ b/curriculum/structure/blocks/es-a1-review-greetings-and-farewells.json @@ -1,6 +1,6 @@ { "name": "Greetings and Farewells Review", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-review-greetings-and-farewells", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-list", diff --git a/curriculum/structure/blocks/es-a1-review-introducing-yourself.json b/curriculum/structure/blocks/es-a1-review-introducing-yourself.json index e6a2a411095..4e650c05cdb 100644 --- a/curriculum/structure/blocks/es-a1-review-introducing-yourself.json +++ b/curriculum/structure/blocks/es-a1-review-introducing-yourself.json @@ -1,6 +1,6 @@ { "name": "Introducing Yourself Review", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-review-introducing-yourself", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-list", diff --git a/curriculum/structure/blocks/es-a1-review-numbers-10-to-29.json b/curriculum/structure/blocks/es-a1-review-numbers-10-to-29.json index 231f03de88e..ddb7aacb7ef 100644 --- a/curriculum/structure/blocks/es-a1-review-numbers-10-to-29.json +++ b/curriculum/structure/blocks/es-a1-review-numbers-10-to-29.json @@ -1,6 +1,6 @@ { "name": "Numbers 10 to 29 Review", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-review-numbers-10-to-29", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-list", diff --git a/curriculum/structure/blocks/es-a1-review-spanish-fundamentals.json b/curriculum/structure/blocks/es-a1-review-spanish-fundamentals.json index 8e32b904b82..ef24127bf7e 100644 --- a/curriculum/structure/blocks/es-a1-review-spanish-fundamentals.json +++ b/curriculum/structure/blocks/es-a1-review-spanish-fundamentals.json @@ -1,6 +1,6 @@ { "name": "Spanish Fundamentals Review", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-review-spanish-fundamentals", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-list", diff --git a/curriculum/structure/blocks/es-a1-warm-up-first-questions-basics.json b/curriculum/structure/blocks/es-a1-warm-up-first-questions-basics.json index 3e9ae139942..c2720e7a2e8 100644 --- a/curriculum/structure/blocks/es-a1-warm-up-first-questions-basics.json +++ b/curriculum/structure/blocks/es-a1-warm-up-first-questions-basics.json @@ -1,6 +1,6 @@ { "name": "First Questions Basics", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-warm-up-first-questions-basics", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-warm-up-greetings-and-farewells-basics.json b/curriculum/structure/blocks/es-a1-warm-up-greetings-and-farewells-basics.json index 1193d4da656..db00671a03a 100644 --- a/curriculum/structure/blocks/es-a1-warm-up-greetings-and-farewells-basics.json +++ b/curriculum/structure/blocks/es-a1-warm-up-greetings-and-farewells-basics.json @@ -1,7 +1,7 @@ { "name": "Greetings and Farewells Basics", "dashedName": "es-a1-warm-up-greetings-and-farewells-basics", - "isUpcomingChange": true, + "isUpcomingChange": false, "blockLabel": "warm-up", "blockLayout": "challenge-grid", "helpCategory": "Spanish Curriculum", diff --git a/curriculum/structure/blocks/es-a1-warm-up-introducing-yourself-basics.json b/curriculum/structure/blocks/es-a1-warm-up-introducing-yourself-basics.json index 1fc92e4e434..a620bf7358c 100644 --- a/curriculum/structure/blocks/es-a1-warm-up-introducing-yourself-basics.json +++ b/curriculum/structure/blocks/es-a1-warm-up-introducing-yourself-basics.json @@ -1,6 +1,6 @@ { "name": "Introducing Yourself Basics", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-warm-up-introducing-yourself-basics", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/blocks/es-a1-warm-up-remember-first-numbers.json b/curriculum/structure/blocks/es-a1-warm-up-remember-first-numbers.json index ad9f5d0bac3..ef9a80c51aa 100644 --- a/curriculum/structure/blocks/es-a1-warm-up-remember-first-numbers.json +++ b/curriculum/structure/blocks/es-a1-warm-up-remember-first-numbers.json @@ -1,6 +1,6 @@ { "name": "Remember First Numbers", - "isUpcomingChange": true, + "isUpcomingChange": false, "dashedName": "es-a1-warm-up-remember-first-numbers", "helpCategory": "Spanish Curriculum", "blockLayout": "challenge-grid", diff --git a/curriculum/structure/superblocks/a1-professional-spanish.json b/curriculum/structure/superblocks/a1-professional-spanish.json index 3d78c9c89eb..f442e755f0a 100644 --- a/curriculum/structure/superblocks/a1-professional-spanish.json +++ b/curriculum/structure/superblocks/a1-professional-spanish.json @@ -78,6 +78,7 @@ }, { "dashedName": "es-a1-module-sharing-your-personal-details", + "comingSoon": true, "blocks": [ "es-a1-warm-up-getting-ready-to-share-personal-details", "es-a1-learn-basic-personal-information", diff --git a/e2e/landing.spec.ts b/e2e/landing.spec.ts index ee4f6a1598b..32ff2ebd8f4 100644 --- a/e2e/landing.spec.ts +++ b/e2e/landing.spec.ts @@ -27,6 +27,7 @@ const nonArchivedSuperBlocks = [ intro[SuperBlocks.FullStackDeveloperV9].title, intro[SuperBlocks.A2English].title, intro[SuperBlocks.B1English].title, + intro[SuperBlocks.A1Spanish].title, intro[SuperBlocks.TheOdinProject].title, intro[SuperBlocks.CodingInterviewPrep].title, intro[SuperBlocks.ProjectEuler].title, diff --git a/e2e/map.spec.ts b/e2e/map.spec.ts index 4402b3f3228..786a623661d 100644 --- a/e2e/map.spec.ts +++ b/e2e/map.spec.ts @@ -42,6 +42,10 @@ const LANDING_PAGE_LINKS = [ slug: 'b1-english-for-developers', name: 'B1 English for Developers Certification (Beta)' }, + { + slug: 'a1-professional-spanish', + name: 'A1 Professional Spanish Certification (Beta)' + }, { slug: 'foundational-c-sharp-with-microsoft', name: 'Free Foundational C# with Microsoft Certification' @@ -64,7 +68,7 @@ test.describe('Map Component', () => { page.getByText(translations.landing['interview-prep-heading']) ).toBeVisible(); const curriculumBtns = page.getByTestId('curriculum-map-button'); - await expect(curriculumBtns).toHaveCount(14); + await expect(curriculumBtns).toHaveCount(15); for (const { name, slug } of LANDING_PAGE_LINKS) { const superblockLink = page.getByRole('link', { diff --git a/shared/config/curriculum.ts b/shared/config/curriculum.ts index 20e1c93bb1b..2ee727bef7a 100644 --- a/shared/config/curriculum.ts +++ b/shared/config/curriculum.ts @@ -82,6 +82,7 @@ export const superBlockToSpeechLang: Partial< export enum SuperBlockStage { Core, English, + Spanish, Professional, Extra, Legacy, @@ -93,6 +94,7 @@ export enum SuperBlockStage { const defaultStageOrder = [ SuperBlockStage.Core, SuperBlockStage.English, + SuperBlockStage.Spanish, SuperBlockStage.Extra, SuperBlockStage.Legacy, SuperBlockStage.Professional, @@ -126,6 +128,7 @@ export const superBlockStages: StageMap = { SuperBlocks.FullStackDeveloperV9 ], [SuperBlockStage.English]: [SuperBlocks.A2English, SuperBlocks.B1English], + [SuperBlockStage.Spanish]: [SuperBlocks.A1Spanish], [SuperBlockStage.Professional]: [SuperBlocks.FoundationalCSharp], [SuperBlockStage.Extra]: [ SuperBlocks.TheOdinProject, @@ -153,7 +156,6 @@ export const superBlockStages: StageMap = { [SuperBlockStage.Next]: [], [SuperBlockStage.Upcoming]: [ SuperBlocks.FullStackOpen, - SuperBlocks.A1Spanish, SuperBlocks.A2Spanish, SuperBlocks.A2Chinese, SuperBlocks.A1Chinese,