removed double question
All checks were successful
Deploy to production / deploy (push) Successful in 2m59s
All checks were successful
Deploy to production / deploy (push) Successful in 2m59s
This commit is contained in:
@@ -576,7 +576,7 @@
|
|||||||
|
|
||||||
<!-- Multiple Choice Übung -->
|
<!-- Multiple Choice Übung -->
|
||||||
<div v-if="getExerciseType(exercise) === 'multiple_choice'" class="multiple-choice-exercise">
|
<div v-if="getExerciseType(exercise) === 'multiple_choice'" class="multiple-choice-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<div class="options">
|
<div class="options">
|
||||||
<label v-for="(option, index) in getOptions(exercise)" :key="index" class="option-label">
|
<label v-for="(option, index) in getOptions(exercise)" :key="index" class="option-label">
|
||||||
<input
|
<input
|
||||||
@@ -632,7 +632,7 @@
|
|||||||
|
|
||||||
<!-- Transformation Übung -->
|
<!-- Transformation Übung -->
|
||||||
<div v-else-if="getExerciseType(exercise) === 'transformation'" class="transformation-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'transformation'" class="transformation-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<input
|
<input
|
||||||
v-model="exerciseAnswers[exercise.id]"
|
v-model="exerciseAnswers[exercise.id]"
|
||||||
:placeholder="$t('socialnetwork.vocab.courses.enterAnswer')"
|
:placeholder="$t('socialnetwork.vocab.courses.enterAnswer')"
|
||||||
@@ -654,7 +654,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="getExerciseType(exercise) === 'sentence_building'" class="sentence-building-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'sentence_building'" class="sentence-building-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<div v-if="getQuestionData(exercise)?.tokens?.length" class="token-list">
|
<div v-if="getQuestionData(exercise)?.tokens?.length" class="token-list">
|
||||||
<span v-for="(token, index) in getQuestionData(exercise).tokens" :key="index" class="token-chip">{{ token }}</span>
|
<span v-for="(token, index) in getQuestionData(exercise).tokens" :key="index" class="token-chip">{{ token }}</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -676,7 +676,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="getExerciseType(exercise) === 'dialog_completion'" class="dialog-completion-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'dialog_completion'" class="dialog-completion-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<div v-if="getQuestionData(exercise)?.dialog" class="dialog-snippet">
|
<div v-if="getQuestionData(exercise)?.dialog" class="dialog-snippet">
|
||||||
<p v-for="(line, index) in getQuestionData(exercise).dialog" :key="index">{{ line }}</p>
|
<p v-for="(line, index) in getQuestionData(exercise).dialog" :key="index">{{ line }}</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -698,7 +698,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="getExerciseType(exercise) === 'situational_response'" class="situational-response-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'situational_response'" class="situational-response-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<textarea
|
<textarea
|
||||||
v-model="exerciseAnswers[exercise.id]"
|
v-model="exerciseAnswers[exercise.id]"
|
||||||
:placeholder="$t('socialnetwork.vocab.courses.situationalResponsePlaceholder')"
|
:placeholder="$t('socialnetwork.vocab.courses.situationalResponsePlaceholder')"
|
||||||
@@ -720,7 +720,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="getExerciseType(exercise) === 'pattern_drill'" class="pattern-drill-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'pattern_drill'" class="pattern-drill-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<p v-if="getQuestionData(exercise)?.pattern" class="pattern-drill-hint">
|
<p v-if="getQuestionData(exercise)?.pattern" class="pattern-drill-hint">
|
||||||
{{ $t('socialnetwork.vocab.courses.patternPrompt') }}: {{ getQuestionData(exercise).pattern }}
|
{{ $t('socialnetwork.vocab.courses.patternPrompt') }}: {{ getQuestionData(exercise).pattern }}
|
||||||
</p>
|
</p>
|
||||||
@@ -743,7 +743,7 @@
|
|||||||
|
|
||||||
<!-- Reading Aloud Übung -->
|
<!-- Reading Aloud Übung -->
|
||||||
<div v-else-if="getExerciseType(exercise) === 'reading_aloud'" class="reading-aloud-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'reading_aloud'" class="reading-aloud-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<p class="exercise-instruction">
|
<p class="exercise-instruction">
|
||||||
{{ isSpeechRecognitionSupported ? $t('socialnetwork.vocab.courses.readingAloudInstruction') : $t('socialnetwork.vocab.courses.speakingFallbackInstruction') }}
|
{{ isSpeechRecognitionSupported ? $t('socialnetwork.vocab.courses.readingAloudInstruction') : $t('socialnetwork.vocab.courses.speakingFallbackInstruction') }}
|
||||||
</p>
|
</p>
|
||||||
@@ -800,7 +800,7 @@
|
|||||||
|
|
||||||
<!-- Speaking From Memory Übung -->
|
<!-- Speaking From Memory Übung -->
|
||||||
<div v-else-if="getExerciseType(exercise) === 'speaking_from_memory'" class="speaking-from-memory-exercise">
|
<div v-else-if="getExerciseType(exercise) === 'speaking_from_memory'" class="speaking-from-memory-exercise">
|
||||||
<p class="exercise-question">{{ getQuestionText(exercise) }}</p>
|
<p v-if="getVisibleQuestionText(exercise)" class="exercise-question">{{ getVisibleQuestionText(exercise) }}</p>
|
||||||
<p class="exercise-instruction">
|
<p class="exercise-instruction">
|
||||||
{{ isSpeechRecognitionSupported ? $t('socialnetwork.vocab.courses.speakingFromMemoryInstruction') : $t('socialnetwork.vocab.courses.speakingFallbackInstruction') }}
|
{{ isSpeechRecognitionSupported ? $t('socialnetwork.vocab.courses.speakingFromMemoryInstruction') : $t('socialnetwork.vocab.courses.speakingFallbackInstruction') }}
|
||||||
</p>
|
</p>
|
||||||
@@ -2757,6 +2757,16 @@ export default {
|
|||||||
if (qData.text) return qData.text;
|
if (qData.text) return qData.text;
|
||||||
return exercise.title;
|
return exercise.title;
|
||||||
},
|
},
|
||||||
|
getVisibleQuestionText(exercise) {
|
||||||
|
const question = String(this.getQuestionText(exercise) || '').trim();
|
||||||
|
if (!question) return '';
|
||||||
|
const title = String(exercise?.title || '').trim();
|
||||||
|
const instruction = String(exercise?.instruction || '').trim();
|
||||||
|
const qNorm = this.normalizeComparableText(question);
|
||||||
|
if (title && qNorm === this.normalizeComparableText(title)) return '';
|
||||||
|
if (instruction && qNorm === this.normalizeComparableText(instruction)) return '';
|
||||||
|
return question;
|
||||||
|
},
|
||||||
getOptions(exercise) {
|
getOptions(exercise) {
|
||||||
const custom = this.mcRandomizedOptions[exercise.id];
|
const custom = this.mcRandomizedOptions[exercise.id];
|
||||||
if (custom && Array.isArray(custom.options) && custom.options.length > 0) {
|
if (custom && Array.isArray(custom.options) && custom.options.length > 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user