fix: All vocab items now get turned into review cards

This commit is contained in:
Alexander Polynomdivision
2018-10-02 13:38:24 +02:00
parent 2b0d472754
commit cb452a3c54
2 changed files with 71 additions and 28 deletions

View File

@@ -50,8 +50,8 @@ export enum ReviewQType {
NOMEN_GENITIV,
NOMEN_GENUS,
ADJ_NOM_A,
ADJ_NOM_B,
ADJ_ENDUNG_F,
ADJ_ENDUNG_N,
VERB_PRAESENS,
VERB_PERFEKT,
@@ -77,12 +77,10 @@ export function reviewQTypeToStr(type: ReviewQType): string {
return "Genitiv";
case ReviewQType.NOMEN_GENUS:
return "Genus";
case ReviewQType.ADJ_NOM_A:
// TODO
return "Nominativ A";
case ReviewQType.ADJ_NOM_B:
// TODO
return "Nominativ B";
case ReviewQType.ADJ_ENDUNG_F:
return "Endung feminin";
case ReviewQType.ADJ_ENDUNG_N:
return "Endung neutrum";
case ReviewQType.VERB_PRAESENS:
return "1. Person Präsens";
case ReviewQType.VERB_PERFEKT:
@@ -97,27 +95,70 @@ export function reviewQTypeToStr(type: ReviewQType): string {
export function vocabToReviewCard(vocab: IVocab): IReviewCard[] {
switch (vocab.type) {
case VocabType.NOMEN:
const latin = vocab.latin as INomenData;
const nData = vocab.latin as INomenData;
return [{
// Latin -> German
question: latin.grundform,
question: nData.grundform,
answers: vocab.german,
qtype: ReviewQType.GERMAN,
id: vocab.id,
}, {
// Latin -> Genitiv
question: latin.grundform,
answers: [latin.genitiv],
question: nData.grundform,
answers: [nData.genitiv],
qtype: ReviewQType.NOMEN_GENITIV,
id: vocab.id,
}, {
// Latin -> Genus
question: latin.grundform,
answers: [latin.genus],
question: nData.grundform,
answers: [nData.genus],
qtype: ReviewQType.NOMEN_GENUS,
id: vocab.id,
}];
case VocabType.VERB:
const vData = vocab.latin as IVerbData;
return [{
// Latin -> German
question: vData.grundform,
answers: vocab.german,
qtype: ReviewQType.GERMAN,
id: vocab.id,
}, {
// Latin -> Präsens
question: vData.grundform,
answers: [vData.praesens],
qtype: ReviewQType.VERB_PRAESENS,
id: vocab.id,
}, {
// Latin -> Perfekt
question: vData.grundform,
answers: [vData.perfekt],
qtype: ReviewQType.VERB_PERFEKT,
id: vocab.id,
}];
case VocabType.ADJEKTIV:
const aData = vocab.latin as IAdjektivData;
return [{
// Latin -> German
question: aData.grundform,
answers: vocab.german,
qtype: ReviewQType.GERMAN,
id: vocab.id,
}, {
// Latin -> Endung f
question: aData.grundform,
answers: [aData.endung_f],
qtype: ReviewQType.ADJ_ENDUNG_F,
id: vocab.id,
}, {
// Latin -> Perfekt
question: aData.grundform,
answers: [aData.endung_n],
qtype: ReviewQType.ADJ_ENDUNG_N,
id: vocab.id,
}];
default:
// TODO: Remove after removing Adverbien
return [];
}
}