feat: implement reports

This commit is contained in:
2026-09-19 20:06:41 -04:00
parent 6ae993d393
commit 994e9065e8
28 changed files with 7082 additions and 63 deletions
+5 -2
View File
@@ -563,7 +563,7 @@ fn missed_items(
if let Some(entry) = cat.get(uid) {
// Feedback for the specific option chosen, which is the whole
// point of recording per-distractor misconceptions.
if let Some(letter) = r.selected.first() {
if let Some(letter) = r.chosen().first() {
if let Some(choice) = entry.item.option(letter) {
misconception = choice.misconception.clone();
feedback = choice.student_text().map(|s| s.to_string());
@@ -592,7 +592,7 @@ fn missed_items(
out.push(MissedItem {
number: r.item_number,
item_ref: r.item_ref.clone(),
selected: r.selected.clone(),
selected: r.chosen().to_vec(),
credit: r.credit,
level: r.level,
learning_objectives: r.learning_objectives.clone(),
@@ -1089,6 +1089,7 @@ mod tests {
assessment_id: "a".into(),
date: None,
form: None,
form_position: None,
student_key: student.into(),
sid: None,
name: None,
@@ -1098,7 +1099,9 @@ mod tests {
item_ref: None,
item_version: None,
selected: vec!["A".into()],
selected_source: vec![],
eliminated: vec![],
eliminated_source: vec![],
correct: Some(credit >= 0.999),
credit,
points_possible: 1.0,