Include assignment body and quiz questions in print course output
Course detail API now returns item body text and quiz questions. Print course renders body paragraphs and numbered quiz questions with lettered choices (correct answers marked with ✓). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
19fe0cb053
commit
934919e392
2 files changed
+46
-14
No files matched your search
@@ -496,8 +496,14 @@ app.get('/api/admin/courses/:id', requirePin, (req, res) => {
|
||||
const course = db.prepare(`SELECT id, name, subject, color, archived FROM courses WHERE id = ?`).get(req.params.id);
|
||||
if (!course) return res.status(404).json({ error: 'No such course' });
|
||||
const units = db.prepare(`SELECT id, name, sort FROM units WHERE course_id = ? ORDER BY sort, id`).all(req.params.id);
|
||||
const itemStmt = db.prepare(`SELECT id, type, title, points, ref_id, sort, due_date, allow_retakes, prereq_item_id FROM items WHERE unit_id = ? ORDER BY sort, id`);
|
||||
for (const u of units) u.items = itemStmt.all(u.id);
|
||||
const itemStmt = db.prepare(`SELECT id, type, title, body, points, ref_id, sort, due_date, allow_retakes, prereq_item_id FROM items WHERE unit_id = ? ORDER BY sort, id`);
|
||||
const qStmt = db.prepare(`SELECT type, prompt, choices, correct_answer, points FROM quiz_questions WHERE item_id = ? ORDER BY sort, id`);
|
||||
for (const u of units) {
|
||||
u.items = itemStmt.all(u.id).map((it) => {
|
||||
if (it.type === 'quiz') it.questions = qStmt.all(it.id).map((q) => ({ ...q, choices: JSON.parse(q.choices) }));
|
||||
return it;
|
||||
});
|
||||
}
|
||||
res.json({ ...course, units });
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user