Add Worksheet item type with paste-and-parse authoring, digital submission, and print-blank

- New `worksheet` item type: admin pastes raw worksheet text, parser auto-detects fill-in-the-blank (___), true/false (T   F   ...), section headers (Part N —), and short-answer questions
- Admin editor shows each parsed question with inputs to set correct answers for FITB and T/F; short answers are marked parent-grades
- Kid view renders FITB as inline underline inputs, T/F as tap-to-toggle T/F buttons, and short answer as a textarea; Name/Date header auto-populated
- Auto-grades T/F (exact) and FITB (case-insensitive); worksheets with short answers go to grading queue as status=done
- Print blank button opens a formatted print window with underlines, circled T/F, and ruled lines for short answers
- "I handed in my paper copy" button lets kids mark a printed worksheet as turned in without digital submission, queuing it for parent grading

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-08-03 15:59:13 -04:00
1 parent 9abb107096
commit 6f73acd03e
6 files changed
+720 -8

No files matched your search

+10
View File
@@ -174,6 +174,7 @@
<option value="matching">🔤 Matching</option>
<option value="crossword">⬛ Crossword</option>
<option value="flashcards">🗂️ Flashcards</option>
<option value="worksheet">📋 Worksheet</option>
</select>
</label>
<label>Title <input id="ie-title" placeholder="Item title"></label>
@@ -318,6 +319,15 @@
<label>Deck <select id="ie-deck"></select></label>
</div>
<div id="ie-field-worksheet" class="ie-field" hidden>
<label style="margin-bottom:.25rem">Paste your worksheet text
<textarea id="ie-ws-paste" rows="10" placeholder="Paste your printed worksheet here. The parser handles:&#10;• Name: ____ Date: ____ → header line&#10;• Part 1 — Title → section header&#10;• 1. Sentence with _____ blanks. → fill-in-the-blank&#10;• T F Statement text → true/false question&#10;• 4. Question with no blanks → short answer (parent grades)" style="width:100%;margin-top:.25rem;resize:vertical;font-family:monospace;font-size:.85rem"></textarea>
</label>
<button type="button" id="ie-ws-parse" class="secondary" style="margin:.5rem 0">⚡ Parse worksheet</button>
<p id="ie-ws-parse-status" class="hint" hidden></p>
<div id="ie-ws-editor"></div>
</div>
<div class="row-actions">
<button type="submit">Save item</button>
<button type="button" id="ie-delete" class="danger" hidden>Delete item</button>