feat(deploy): enhance deployment scripts with skip options for backend and frontend
All checks were successful
Deploy to production / deploy (push) Successful in 1m31s
All checks were successful
Deploy to production / deploy (push) Successful in 1m31s
- Updated `deploy-yourpart-bluegreen.sh` to pass additional arguments for skipping backend or frontend updates. - Enhanced `update.sh` to handle `--skip-backend` and `--skip-frontend` flags, allowing for more flexible deployment based on changes detected. - Modified deployment workflow to conditionally execute based on changes in frontend or backend files, improving deployment efficiency.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
export const BISAYA_LESSONS_24_43 = [
|
||||
const BISAYA_LESSONS_24_43_BASE = [
|
||||
{ week: 3, day: 1, num: 24, type: 'conversation', title: 'Gefühle im Alltag', desc: 'Gefühle ausdrücken und im Gespräch passend darauf reagieren', targetMin: 18, targetScore: 80, review: false, cultural: 'Gefühle werden oft indirekt und mit Fürsorge beantwortet.' },
|
||||
{ week: 3, day: 1, num: 25, type: 'vocab', title: 'Gefühlswortschatz & Reaktionen', desc: 'Freude, Sorge, Müdigkeit, Vermissen und Beruhigung sicher unterscheiden', targetMin: 20, targetScore: 85, review: true, cultural: null },
|
||||
{ week: 3, day: 2, num: 26, type: 'conversation', title: 'Gesundheit & Wohlbefinden', desc: 'Einfache Beschwerden erfragen und fürsorglich reagieren', targetMin: 18, targetScore: 80, review: false, cultural: null },
|
||||
@@ -21,6 +21,34 @@ export const BISAYA_LESSONS_24_43 = [
|
||||
{ week: 4, day: 5, num: 43, type: 'culture', title: 'Kultur: Höflichkeit, Familie, Alltag', desc: 'Respekt, indirekte Bitte und Familiennähe sprachlich einordnen', targetMin: 16, targetScore: 0, review: false, cultural: 'Kulturelles Verständnis hilft, Sätze passend und nicht nur wörtlich zu verwenden.' }
|
||||
];
|
||||
|
||||
const BISAYA_LESSON_24_43_TARGET_MINUTES = {
|
||||
24: 24,
|
||||
25: 24,
|
||||
26: 24,
|
||||
27: 24,
|
||||
28: 26,
|
||||
29: 24,
|
||||
30: 24,
|
||||
31: 24,
|
||||
32: 34,
|
||||
33: 24,
|
||||
34: 28,
|
||||
35: 34,
|
||||
36: 28,
|
||||
37: 32,
|
||||
38: 30,
|
||||
39: 34,
|
||||
40: 30,
|
||||
41: 24,
|
||||
42: 38,
|
||||
43: 22
|
||||
};
|
||||
|
||||
export const BISAYA_LESSONS_24_43 = BISAYA_LESSONS_24_43_BASE.map((lesson) => ({
|
||||
...lesson,
|
||||
targetMin: BISAYA_LESSON_24_43_TARGET_MINUTES[lesson.num] || lesson.targetMin
|
||||
}));
|
||||
|
||||
export const BISAYA_LESSONS_24_43_BY_NUMBER = Object.fromEntries(
|
||||
BISAYA_LESSONS_24_43.map((lesson) => [lesson.num, lesson])
|
||||
);
|
||||
@@ -83,7 +111,238 @@ export const BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS = {
|
||||
}
|
||||
};
|
||||
|
||||
export const BISAYA_DIDACTICS_24_43 = {
|
||||
const BISAYA_DIDACTICS_24_43_ENRICHMENTS = {
|
||||
'Gefühle im Alltag': {
|
||||
corePatterns: [
|
||||
{ target: 'Nalipay ko karon.', gloss: 'Ich bin heute froh.' },
|
||||
{ target: 'Naguol ka?', gloss: 'Bist du besorgt / traurig?' },
|
||||
{ target: 'Naa ra ko diri.', gloss: 'Ich bin hier.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Gefühl plus Fürsorge', prompt: 'Sage dein Gefühl, frage nach dem Gefühl der anderen Person und reagiere fürsorglich.', cue: 'Kapoy ko karon. Naguol ka? Naa ra ko diri.' }
|
||||
]
|
||||
},
|
||||
'Gefühlswortschatz & Reaktionen': {
|
||||
corePatterns: [
|
||||
{ target: 'kabalaka', gloss: 'Sorge' },
|
||||
{ target: 'hilom', gloss: 'still / ruhig' },
|
||||
{ target: 'Nalipay ko para nimo.', gloss: 'Ich freue mich für dich.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Wort zu Satz', text: 'Aus einem Gefühlswort wird mit ko oder ka schnell ein alltagstauglicher Satz.', example: 'Kapoy ko. Naguol ka?' }
|
||||
]
|
||||
},
|
||||
'Gesundheit & Wohlbefinden': {
|
||||
corePatterns: [
|
||||
{ target: 'Aduna kay hilanat?', gloss: 'Hast du Fieber?' },
|
||||
{ target: 'Sakit pa?', gloss: 'Tut es noch weh?' },
|
||||
{ target: 'Tawag ta og doktor?', gloss: 'Sollen wir einen Arzt rufen?' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Gesundheitsverlauf', prompt: 'Frage nach Fieber, Schmerz, Medizin und Besserung.', cue: 'Aduna kay hilanat? Sakit pa? Niinom ka og tambal? Mas maayo na ka?' }
|
||||
]
|
||||
},
|
||||
'Körper & Symptome': {
|
||||
corePatterns: [
|
||||
{ target: 'likod', gloss: 'Rücken' },
|
||||
{ target: 'tutunlan', gloss: 'Hals / Kehle' },
|
||||
{ target: 'Sakit akong tutunlan.', gloss: 'Mein Hals tut weh.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Symptom konkretisieren', text: 'Körperwörter werden nützlicher, wenn du sie direkt mit sakit oder hilanat in Sätze setzt.', example: 'Sakit akong tutunlan.' }
|
||||
]
|
||||
},
|
||||
'Höflichkeitsformen praktisch': {
|
||||
corePatterns: [
|
||||
{ target: 'Sunod na lang.', gloss: 'Dann ein anderes Mal.' },
|
||||
{ target: 'Okay ra.', gloss: 'Ist okay.' },
|
||||
{ target: 'Ayaw kabalaka.', gloss: 'Mach dir keine Sorgen.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Weich ablehnen', prompt: 'Lehne etwas heute weich ab, schlage später vor und bedanke dich.', cue: 'Dili lang sa karon. Sunod na lang. Salamat sa pagsabot.' }
|
||||
]
|
||||
},
|
||||
'Bitten & Nachfragen': {
|
||||
corePatterns: [
|
||||
{ target: 'Balika palihug.', gloss: 'Wiederhole es bitte.' },
|
||||
{ target: 'Unsa gani?', gloss: 'Was war das nochmal?' },
|
||||
{ target: 'Pwede nimo isulat?', gloss: 'Kannst du es aufschreiben?' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Reparatur in Stufen', text: 'Beginne mit Nichtverstehen, bitte um Wiederholung und frage dann nach Bedeutung oder Schriftform.', example: 'Wala ko kasabot. Balika palihug. Pwede nimo isulat?' }
|
||||
]
|
||||
},
|
||||
'Kinder & Familie': {
|
||||
corePatterns: [
|
||||
{ target: 'Ayaw pagdali.', gloss: 'Beeil dich nicht / Kein Stress.' },
|
||||
{ target: 'Dali na.', gloss: 'Komm, beeil dich.' },
|
||||
{ target: 'Kuhaa imong bag.', gloss: 'Hol deine Tasche.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Kinderfreundliche Kürze', text: 'Kurze klare Aufforderungen funktionieren im Alltag besser als lange Erklärungen.', example: 'Kuhaa imong bag. Dali na.' }
|
||||
]
|
||||
},
|
||||
'Kinder, Spiel & Routine': {
|
||||
corePatterns: [
|
||||
{ target: 'Ayaw kalimot.', gloss: 'Vergiss es nicht.' },
|
||||
{ target: 'Hugas sa kamot.', gloss: 'Wasch dir die Hände.' },
|
||||
{ target: 'Patya ang suga.', gloss: 'Mach das Licht aus.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Routineketten', text: 'Routinen bestehen aus kurzen Handlungsaufforderungen in fester Reihenfolge.', example: 'Hugas sa kamot. Matulog na ta. Patya ang suga.' }
|
||||
]
|
||||
},
|
||||
'Woche 3 - Intensivwiederholung': {
|
||||
corePatterns: [
|
||||
{ target: 'Naa ra ko diri.', gloss: 'Ich bin hier.' },
|
||||
{ target: 'Hugas sa kamot.', gloss: 'Wasch dir die Hände.' },
|
||||
{ target: 'Balika palihug.', gloss: 'Wiederhole es bitte.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Acht schnelle Antworten', prompt: 'Reagiere auf acht gemischte Situationen aus Gefühl, Gesundheit, Kind und Verständnisproblem.', cue: 'Naa ra ko diri. Sakit pa? Hugas sa kamot. Balika palihug.' }
|
||||
]
|
||||
},
|
||||
'Woche 3 - Checkpoint': {
|
||||
corePatterns: [
|
||||
{ target: 'Sakit pa?', gloss: 'Tut es noch weh?' },
|
||||
{ target: 'Ayaw pagdali.', gloss: 'Kein Stress.' },
|
||||
{ target: 'Pwede nimo isulat?', gloss: 'Kannst du es aufschreiben?' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Checkpoint als Diagnose', text: 'Der Checkpoint soll zeigen, ob du spontan reagieren kannst, nicht nur wiedererkennst.', example: 'Naguol ka? Naa ra ko diri.' }
|
||||
]
|
||||
},
|
||||
'Alltagsszene: Zuhause morgens': {
|
||||
corePatterns: [
|
||||
{ target: 'Hugas sa nawong.', gloss: 'Wasch dein Gesicht.' },
|
||||
{ target: 'Kuhaa imong bag.', gloss: 'Hol deine Tasche.' },
|
||||
{ target: 'Mogawas na ta.', gloss: 'Wir gehen jetzt raus.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Morgenroutine komplett', prompt: 'Sprich eine Morgenroutine mit Aufstehen, Waschen, Essen, Tasche und Losgehen.', cue: 'Bangon na. Hugas sa nawong. Nikaon na ka? Kuhaa imong bag. Mogawas na ta.' }
|
||||
]
|
||||
},
|
||||
'Spiralreview: Woche 1-2 im Alltag': {
|
||||
corePatterns: [
|
||||
{ target: 'Maayong gabii.', gloss: 'Guten Abend.' },
|
||||
{ target: 'Katulog og maayo.', gloss: 'Schlaf gut.' },
|
||||
{ target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Alte Muster aktivieren', text: 'Alte Sätze sollen in neuen Szenen auftauchen, damit sie nicht nur passiv bekannt bleiben.', example: 'Maayong gabii. Katulog og maayo.' }
|
||||
]
|
||||
},
|
||||
'Alltagsszene: Besuch am Nachmittag': {
|
||||
corePatterns: [
|
||||
{ target: 'Kumusta ang biyahe?', gloss: 'Wie war die Reise?' },
|
||||
{ target: 'Kaon sa.', gloss: 'Iss erst einmal.' },
|
||||
{ target: 'Naa mi diri.', gloss: 'Wir sind hier.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Besuch als Fürsorge', text: 'Besuchssprache verbindet Willkommen, Angebot und Nähe.', example: 'Sulod lang. Lingkod sa. Kaon sa.' }
|
||||
]
|
||||
},
|
||||
'Spiralreview: Gefühle & Gesundheit': {
|
||||
corePatterns: [
|
||||
{ target: 'Aduna kay hilanat?', gloss: 'Hast du Fieber?' },
|
||||
{ target: 'Naa ra ko diri.', gloss: 'Ich bin hier.' },
|
||||
{ target: 'Tawag ta og doktor?', gloss: 'Sollen wir einen Arzt rufen?' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Problem und Reaktion', text: 'Die Wiederholung koppelt jedes Problem an eine konkrete Antwort.', example: 'Sakit akong ulo. Magpahuway sa.' }
|
||||
]
|
||||
},
|
||||
'Längeres Gespräch: Planung und Familie': {
|
||||
corePatterns: [
|
||||
{ target: 'Kinsa imong kuyog?', gloss: 'Mit wem bist du unterwegs?' },
|
||||
{ target: 'Human sa trabaho.', gloss: 'Nach der Arbeit.' },
|
||||
{ target: 'Texti lang ko.', gloss: 'Schreib mir einfach.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Plan plus Rückfrage', prompt: 'Erzähle deinen Plan und frage nach Begleitung oder Uhrzeit.', cue: 'Una, moadto ko sa merkado. Kinsa imong kuyog? Human sa trabaho. Texti lang ko.' }
|
||||
]
|
||||
},
|
||||
'Gesamtwiederholung mit Fehlerclustern': {
|
||||
corePatterns: [
|
||||
{ target: 'Dili ko pwede karon.', gloss: 'Ich kann heute nicht.' },
|
||||
{ target: 'Pwede ugma?', gloss: 'Geht morgen?' },
|
||||
{ target: 'Dili mao akong pasabot.', gloss: 'Das meinte ich nicht.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Fehlercluster Termin und Bitte', prompt: 'Kontrastiere Vergangenheit, Zukunft, Absage, Wiederholung und Missverständnis.', cue: 'Ni-adto ko ganiha. Mo-adto ko ugma. Dili ko pwede karon. Palihug ka mubalik?' }
|
||||
]
|
||||
},
|
||||
'Praktische Übung: Markt + Familie': {
|
||||
corePatterns: [
|
||||
{ target: 'Pila tanan?', gloss: 'Wie viel insgesamt?' },
|
||||
{ target: 'Barato ra.', gloss: 'Es ist günstig.' },
|
||||
{ target: 'Mahal ra.', gloss: 'Es ist zu teuer.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Kaufen mit Grund', text: 'Ein Marktsatz wird alltagstauglich, wenn Preis, Menge und Grund zusammenkommen.', example: 'Mupalit ko para sa pamilya.' }
|
||||
]
|
||||
},
|
||||
'Abschlusstest Wortschatz aktiv': {
|
||||
corePatterns: [
|
||||
{ target: 'Sulod lang.', gloss: 'Komm herein.' },
|
||||
{ target: 'Sakit akong ulo.', gloss: 'Mein Kopf tut weh.' },
|
||||
{ target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Aktiver Wortschatztest', text: 'Der Test verlangt nicht nur Einzelwörter, sondern kurze abrufbare Satzanker.', example: 'Tubig -> Gusto ka og tubig?' }
|
||||
]
|
||||
},
|
||||
'Abschlussprüfung Grundphase': {
|
||||
corePatterns: [
|
||||
{ target: 'Sulod lang. Lingkod sa.', gloss: 'Komm herein. Setz dich erst einmal.' },
|
||||
{ target: 'Sakit imong ulo? Magpahuway sa.', gloss: 'Tut dein Kopf weh? Ruh dich erst einmal aus.' },
|
||||
{ target: 'Tagpila ni? Mupalit ko para sa pamilya.', gloss: 'Wie viel kostet das? Ich kaufe für die Familie.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Prüfung über Szenen', text: 'Die Abschlussprüfung bewertet, ob du mehrere bekannte Muster zu einer verständlichen Szene verbinden kannst.', example: 'Kumusta ka? Nikaon na ka? Magpahuway sa.' }
|
||||
]
|
||||
},
|
||||
'Kultur: Höflichkeit, Familie, Alltag': {
|
||||
corePatterns: [
|
||||
{ target: 'Sunod na lang.', gloss: 'Dann ein anderes Mal.' },
|
||||
{ target: 'Tabang ta.', gloss: 'Lass uns helfen.' },
|
||||
{ target: 'Salamat sa pagsabot.', gloss: 'Danke fürs Verständnis.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Kultur in Antwortwahl', prompt: 'Formuliere eine direkte deutsche Ablehnung weicher auf Bisaya.', cue: 'Dili lang sa karon. Sunod na lang. Salamat sa pagsabot.' }
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
function normalizePatternKey(entry) {
|
||||
return typeof entry === 'string' ? entry : entry?.target;
|
||||
}
|
||||
|
||||
function mergePatternLists(base = [], extra = []) {
|
||||
const merged = [];
|
||||
const seen = new Set();
|
||||
for (const entry of [...base, ...extra]) {
|
||||
const key = normalizePatternKey(entry);
|
||||
if (!key || seen.has(key)) continue;
|
||||
seen.add(key);
|
||||
merged.push(entry);
|
||||
}
|
||||
return merged;
|
||||
}
|
||||
|
||||
function mergeDidactics(base = {}, enrichment = {}) {
|
||||
return {
|
||||
...base,
|
||||
...enrichment,
|
||||
learningGoals: [...(base.learningGoals || []), ...(enrichment.learningGoals || [])],
|
||||
corePatterns: mergePatternLists(base.corePatterns || [], enrichment.corePatterns || []),
|
||||
grammarFocus: [...(base.grammarFocus || []), ...(enrichment.grammarFocus || [])],
|
||||
speakingPrompts: [...(base.speakingPrompts || []), ...(enrichment.speakingPrompts || [])],
|
||||
practicalTasks: [...(base.practicalTasks || []), ...(enrichment.practicalTasks || [])]
|
||||
};
|
||||
}
|
||||
|
||||
const BISAYA_DIDACTICS_24_43_BASE = {
|
||||
'Gefühle im Alltag': {
|
||||
learningGoals: [
|
||||
'Eigene Gefühle mit kurzen, natürlichen Sätzen ausdrücken.',
|
||||
@@ -538,3 +797,10 @@ export const BISAYA_DIDACTICS_24_43 = {
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
export const BISAYA_DIDACTICS_24_43 = Object.fromEntries(
|
||||
Object.entries(BISAYA_DIDACTICS_24_43_BASE).map(([title, didactics]) => [
|
||||
title,
|
||||
mergeDidactics(didactics, BISAYA_DIDACTICS_24_43_ENRICHMENTS[title])
|
||||
])
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user