Skip to content

RosterFlow 2025-09-06

Latest

Choose a tag to compare

@shishiAPCS shishiAPCS released this 06 Sep 02:38
· 315 commits to master since this release
864ba64

Major update to RosterFlow (ThinkWave Organizer)

Features

  • Ad-hoc List mode: paste arbitrary student names (one per line) to form a temporary roster for the current session. Works with score paste, CSV preview/download, and autofill code. Does not modify existing subjects.
  • IELTS → GPA conversion (1–9 incl. .5): segment-wise linear mapping with anchors 6.5→90, 8.0→97, 8.5→99, 9.0→100; applied non-destructively during organize/export/autofill.
  • Recalibrated TOEFL (Speaking 0–30) → GPA conversion: anchors ≤7→55, 16→80, 21→90, 25→95, ≥29→100; non-destructive.
  • Clipboard fallback: if navigator.clipboard.writeText fails, we toast a message and print the autofill code to the Console for manual copy.

Stability & matching

  • Name matching remains key-set based (case/spacing/punctuation/quotes/diacritics insensitive). Skips empty keys to avoid “catch-all” matches.

UX changes

  • “Use Cached” removed; JSON import still persists to localStorage with “Clear Cache” available.
  • Ad-hoc “Clear” now restores the last selected subject when available; otherwise returns to a clean empty state to avoid the previous “visible names but organize() blocked” limbo.
  • Optional “Paste Roster Order” UI left hidden by CSS but code path remains for easy re-enable.

Code notes

  • organize(copyToClipboard, scoreConverter?) now accepts a converter function (e.g., toGpa, ieltsToGpa) and does not mutate the textarea content.
  • Safer clipboard flow with console fallback; minor guards and tidy() usage retained.

Files touched

  • /thinkwave/index.html (HTML, CSS, JS in one file)