feat(bisaya-course): enhance phase 4 didactics with new learning goals and speaking prompts
All checks were successful
Deploy to production / deploy (push) Successful in 1m31s

- Expanded the BISAYA_PHASE4_DIDACTICS by adding new learning goals, core patterns, speaking prompts, and practical tasks to improve language acquisition.
- Updated the course content generation scripts to incorporate the new lesson structures and ensure alignment with the latest didactic updates.
- Enhanced the logic for generating exercises based on lesson types, introducing additional situational and speaking exercises for advanced lessons.
This commit is contained in:
Torsten Schulz (local)
2026-04-17 15:12:21 +02:00
parent 4df8f97a41
commit 4205639de3
10 changed files with 599 additions and 69 deletions

View File

@@ -4,7 +4,10 @@ import { sequelize } from '../utils/sequelize.js';
import VocabCourse from '../models/community/vocab_course.js';
import VocabCourseLesson from '../models/community/vocab_course_lesson.js';
import { GERMAN_FOR_BISAYA_PHASE3_DIDACTICS, GERMAN_FOR_BISAYA_PHASE3_LESSONS } from './german-for-bisaya-phase3-extension.js';
import { getGermanForBisayaLessonPedagogy } from './german-for-bisaya-phase2-pedagogy.js';
import {
getGermanForBisayaLessonPedagogy,
getGermanForBisayaProgressTargets
} from './german-for-bisaya-phase2-pedagogy.js';
async function getLanguageId(name) {
const [language] = await sequelize.query(
@@ -38,6 +41,7 @@ async function extendGermanForBisayaPhase3() {
const didactics = GERMAN_FOR_BISAYA_PHASE3_DIDACTICS[lessonData.title] || {};
const pedagogy = getGermanForBisayaLessonPedagogy(lessonData.num, lessonData.type, lessonData.title);
const progressTargets = getGermanForBisayaProgressTargets(lessonData, pedagogy);
await VocabCourseLesson.create({
courseId: course.id,
@@ -61,8 +65,8 @@ async function extendGermanForBisayaPhase3() {
grammarFocus: didactics.grammarFocus || null,
speakingPrompts: didactics.speakingPrompts || null,
practicalTasks: didactics.practicalTasks || null,
targetMinutes: lessonData.targetMin,
targetScorePercent: lessonData.targetScore,
targetMinutes: progressTargets.targetMinutes,
targetScorePercent: progressTargets.targetScorePercent,
requiresReview: lessonData.review
});
}