Refactor lesson types and update review handling
All checks were successful
Deploy to production / deploy (push) Successful in 2m22s
All checks were successful
Deploy to production / deploy (push) Successful in 2m22s
- Changed lesson type from 'review' to 'weekly_review' in multiple lesson definitions across phase 3 and phase 4 extensions. - Updated the logic in the vocabService to accommodate 'weekly_review' in various methods, ensuring proper handling of weekly review lessons. - Modified the VocabLessonView component to recognize 'weekly_review' as a valid lesson type for calculations and access checks. - Enhanced the didactics update script to include 'weekly_review' in the lesson type checks. - Adjusted the create scripts to reflect the new lesson type for weekly reviews.
This commit is contained in:
@@ -1200,7 +1200,7 @@ export default {
|
||||
if (['dialogue', 'phrases', 'survival', 'grammar'].includes(lessonType)) {
|
||||
return 1.2;
|
||||
}
|
||||
if (lessonType === 'review' || lessonType === 'vocab_review') {
|
||||
if (lessonType === 'review' || lessonType === 'vocab_review' || lessonType === 'weekly_review') {
|
||||
return 0.9;
|
||||
}
|
||||
return 1;
|
||||
@@ -1216,7 +1216,7 @@ export default {
|
||||
},
|
||||
trainerMinimumCurrentExposures() {
|
||||
const mode = this.lessonPedagogy?.didacticMode || this.lesson?.lessonType || '';
|
||||
if (mode === 'intensive_review' || mode === 'review' || mode === 'vocab_review') {
|
||||
if (mode === 'intensive_review' || mode === 'review' || mode === 'vocab_review' || mode === 'weekly_review') {
|
||||
return 2;
|
||||
}
|
||||
if (['grammar', 'dialogue', 'phrases', 'survival'].includes(this.lesson?.lessonType)) {
|
||||
@@ -1243,8 +1243,8 @@ export default {
|
||||
}
|
||||
const lessonType = String(this.lesson?.lessonType || '').toLowerCase();
|
||||
const didacticMode = String(this.lessonPedagogy?.didacticMode || '').toLowerCase();
|
||||
const isReviewLesson = ['review', 'vocab_review'].includes(lessonType)
|
||||
|| ['review', 'vocab_review', 'intensive_review'].includes(didacticMode);
|
||||
const isReviewLesson = ['review', 'vocab_review', 'weekly_review'].includes(lessonType)
|
||||
|| ['review', 'vocab_review', 'weekly_review', 'intensive_review'].includes(didacticMode);
|
||||
|
||||
if (isReviewLesson) {
|
||||
// In Wiederholungslektionen soll altes Material frueher und staerker einfliesen.
|
||||
@@ -1266,8 +1266,8 @@ export default {
|
||||
}
|
||||
const lessonType = String(this.lesson?.lessonType || '').toLowerCase();
|
||||
const didacticMode = String(this.lessonPedagogy?.didacticMode || '').toLowerCase();
|
||||
const isReviewLesson = ['review', 'vocab_review'].includes(lessonType)
|
||||
|| ['review', 'vocab_review', 'intensive_review'].includes(didacticMode);
|
||||
const isReviewLesson = ['review', 'vocab_review', 'weekly_review'].includes(lessonType)
|
||||
|| ['review', 'vocab_review', 'weekly_review', 'intensive_review'].includes(didacticMode);
|
||||
|
||||
if (isReviewLesson) {
|
||||
return Math.max(0.25, 1 - this.currentReviewShare);
|
||||
@@ -1329,7 +1329,7 @@ export default {
|
||||
canAccessExercises() {
|
||||
if (!this.hasExercises) return false;
|
||||
if (this.exerciseNeedsReinforcement) return false;
|
||||
const isReview = this.lesson?.lessonType === 'review' || this.lesson?.lessonType === 'vocab_review';
|
||||
const isReview = ['review', 'vocab_review', 'weekly_review'].includes(this.lesson?.lessonType);
|
||||
if (isReview) return true;
|
||||
if (this.trainableLessonVocab.length === 0 && this.prepItems.length > 0) {
|
||||
return this.lessonPrepStage >= 2;
|
||||
@@ -1358,7 +1358,7 @@ export default {
|
||||
/** Für Wiederholungslektionen: Übungen aus vorherigen Lektionen (Kapitelprüfung). Sonst: eigene Grammatik-Übungen. */
|
||||
effectiveExercises() {
|
||||
if (!this.lesson) return [];
|
||||
const isReview = this.lesson.lessonType === 'review' || this.lesson.lessonType === 'vocab_review';
|
||||
const isReview = ['review', 'vocab_review', 'weekly_review'].includes(this.lesson.lessonType);
|
||||
if (isReview && this.lesson.reviewVocabExercises && Array.isArray(this.lesson.reviewVocabExercises) && this.lesson.reviewVocabExercises.length > 0) {
|
||||
return this.lesson.reviewVocabExercises;
|
||||
}
|
||||
@@ -1504,9 +1504,10 @@ export default {
|
||||
importantVocab() {
|
||||
// Extrahiere wichtige Begriffe aus den Übungen
|
||||
try {
|
||||
// Bei Wiederholungslektionen: Verwende Vokabeln aus vorherigen Lektionen (effectiveExercises = reviewVocabExercises)
|
||||
// Normale Lektion: Verwende effectiveExercises (grammarExercises)
|
||||
const exercises = this.effectiveExercises;
|
||||
// Wochenwiederholungen trainieren die vollständige Wochenmenge; geprüft wird nur eine Teilmenge.
|
||||
const exercises = this.lesson?.lessonType === 'weekly_review'
|
||||
? this.lesson.weeklyReviewTrainingExercises
|
||||
: this.effectiveExercises;
|
||||
if (!exercises || !Array.isArray(exercises) || exercises.length === 0) {
|
||||
debugLog('[importantVocab] Keine Übungen vorhanden');
|
||||
return [];
|
||||
@@ -3042,7 +3043,8 @@ export default {
|
||||
conversation: this.$t('socialnetwork.vocab.courses.lessonTypeConversation'),
|
||||
culture: this.$t('socialnetwork.vocab.courses.lessonTypeCulture'),
|
||||
review: this.$t('socialnetwork.vocab.courses.lessonTypeReview'),
|
||||
vocab_review: this.$t('socialnetwork.vocab.courses.lessonTypeReview')
|
||||
vocab_review: this.$t('socialnetwork.vocab.courses.lessonTypeReview'),
|
||||
weekly_review: this.$t('socialnetwork.vocab.courses.lessonTypeReview')
|
||||
};
|
||||
return labels[lessonType] || lessonType || this.$t('socialnetwork.vocab.courses.lessonTypeVocab');
|
||||
},
|
||||
@@ -3869,8 +3871,8 @@ export default {
|
||||
|
||||
const lessonType = String(this.lesson?.lessonType || '').toLowerCase();
|
||||
const didacticMode = String(this.lessonPedagogy?.didacticMode || '').toLowerCase();
|
||||
const isReviewLesson = ['review', 'vocab_review'].includes(lessonType)
|
||||
|| ['review', 'vocab_review', 'intensive_review'].includes(didacticMode);
|
||||
const isReviewLesson = ['review', 'vocab_review', 'weekly_review'].includes(lessonType)
|
||||
|| ['review', 'vocab_review', 'weekly_review', 'intensive_review'].includes(didacticMode);
|
||||
// Reviews sollen nicht nur aus Multiple Choice bestehen:
|
||||
// früherer Wechsel zu Typing, damit aktiver Abruf im Vordergrund steht.
|
||||
const switchAfterAttempts = isReviewLesson
|
||||
|
||||
Reference in New Issue
Block a user