Commit Graph
102 Commits
Author SHA1 Message Date
admin 8f067ffdb0 Modified by www.SourceFiles.app 2026-08-07 04:14:25 +00:00
admin e1a5ac2e29 Modified by www.SourceFiles.app 2026-08-07 04:14:24 +00:00
admin 087189a822 Modified by www.SourceFiles.app 2026-08-07 04:14:24 +00:00
admin 8084065cbe Modified by www.SourceFiles.app 2026-08-07 04:14:23 +00:00
admin c680b15988 Modified by www.SourceFiles.app 2026-08-07 04:14:22 +00:00
admin eb65f74455 Modified by www.SourceFiles.app 2026-08-07 04:14:21 +00:00
admin 49ea37f3f9 Modified by www.SourceFiles.app 2026-08-07 04:14:21 +00:00
admin 23de88176f Modified by www.SourceFiles.app 2026-08-07 04:14:20 +00:00
admin bcf5820e66 Modified by www.SourceFiles.app 2026-08-07 04:14:20 +00:00
admin ccced3e1ac Modified by www.SourceFiles.app 2026-08-07 04:14:19 +00:00
admin 9355d004d7 Modified by www.SourceFiles.app 2026-08-07 04:14:18 +00:00
admin e25ff5eecf Modified by www.SourceFiles.app 2026-08-07 04:14:17 +00:00
admin 86971438e5 Modified by www.SourceFiles.app 2026-08-07 04:14:17 +00:00
admin 61679a8736 Modified by www.SourceFiles.app 2026-08-07 04:14:16 +00:00
admin 7e0d928c47 Modified by www.SourceFiles.app 2026-08-07 04:14:16 +00:00
admin d34c00a740 Modified by www.SourceFiles.app 2026-08-07 04:14:15 +00:00
admin c671f48494 Modified by www.SourceFiles.app 2026-08-07 04:14:15 +00:00
admin b413306f85 Modified by www.SourceFiles.app 2026-08-07 04:14:14 +00:00
admin 4ab5a6d7b0 Modified by www.SourceFiles.app 2026-08-07 04:14:14 +00:00
admin 9606ecd118 Modified by www.SourceFiles.app 2026-08-07 04:14:13 +00:00
admin e96653200a Modified by www.SourceFiles.app 2026-08-07 04:14:13 +00:00
admin 1b20b4740d Modified by www.SourceFiles.app 2026-08-07 04:14:12 +00:00
admin 83e2a03cc2 Modified by www.SourceFiles.app 2026-08-07 04:14:12 +00:00
admin e3064fcdd0 Modified by www.SourceFiles.app 2026-08-07 04:14:11 +00:00
admin 161f93aaeb Modified by www.SourceFiles.app 2026-08-07 04:14:11 +00:00
admin 4cf9f1c993 Modified by www.SourceFiles.app 2026-08-07 04:14:10 +00:00
admin d5b4d3319a Modified by www.SourceFiles.app 2026-08-07 04:14:10 +00:00
admin 05a02add05 Modified by www.SourceFiles.app 2026-08-07 04:14:09 +00:00
admin 2d12361bab Modified by www.SourceFiles.app 2026-08-07 04:14:09 +00:00
admin 1b56e5a3b2 Modified by www.SourceFiles.app 2026-08-07 04:14:08 +00:00
admin f15efb2276 Modified by www.SourceFiles.app 2026-08-07 04:14:08 +00:00
admin 7d6a0284e5 Modified by www.SourceFiles.app 2026-08-07 04:14:07 +00:00
admin 382e93ac67 Modified by www.SourceFiles.app 2026-08-07 04:14:07 +00:00
admin 64f3764a1d Modified by www.SourceFiles.app 2026-08-07 04:14:06 +00:00
admin 29aa2618f8 Modified by www.SourceFiles.app 2026-08-07 04:14:06 +00:00
admin 63adc514ae Modified by www.SourceFiles.app 2026-08-07 04:14:05 +00:00
admin 29675806ba Modified by www.SourceFiles.app 2026-08-07 04:14:05 +00:00
admin a74636bca9 Modified by www.SourceFiles.app 2026-08-07 04:14:04 +00:00
admin 06a0409c2f Modified by www.SourceFiles.app 2026-08-07 04:13:19 +00:00
admin a13e0ac8f3 Modified by www.SourceFiles.app 2026-08-07 04:13:19 +00:00
admin bbabc3d82b Modified by www.SourceFiles.app 2026-08-07 04:13:18 +00:00
admin 50a3be868e Modified by www.SourceFiles.app 2026-08-07 04:13:18 +00:00
admin e749f76ef9 Modified by www.SourceFiles.app 2026-08-07 04:13:18 +00:00
admin 2d67582e20 Modified by www.SourceFiles.app 2026-08-07 04:13:17 +00:00
admin 39ad1ae76a Modified by www.SourceFiles.app 2026-08-07 04:12:32 +00:00
admin 2d14990a1b Modified by www.SourceFiles.app 2026-08-07 04:12:31 +00:00
admin 534ef5c12d Modified by www.SourceFiles.app 2026-08-07 04:12:18 +00:00
adminandClaude Opus 5 9360bf3055 Add printable report cards, progress reports and invoices
Three documents, all print-styled rather than generated server-side: no
PDF dependency is added, and "Save as PDF" in the browser produces the
file. @media print in styles.css strips the app chrome (.no-print) and
breaks each student onto its own sheet (.print-page).

- Report card: weighted category breakdown, overall percent and letter
  from the existing gradebook config, plus an attendance summary.
- Academic progress report: the same, plus assignment-level detail —
  a mid-term report is only actionable with the underlying work listed.
- 504 / IEP progress report: each goal's baseline, target, status and
  progress entries within the period, for the quarterly report IDEA
  requires. RLS keeps it to the case manager, admins and parents.
- Invoice, reachable per student from the tuition ledger: opening
  balance carried forward, itemised activity, and balance due.

Grade maths is reused from lib/grades and the class grading config from
useEffectiveConfig, so report cards cannot drift from the gradebook.

The "Email to parents" button opens a prefilled mailto: draft — the same
mechanism the intake-link share already uses. It gathers addresses from
intake guardians and linked parent accounts. mailto cannot attach a file,
so the itemisation goes in the body as text; sending a real attachment
would need a transactional email provider and an API key.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 09:45:46 -04:00
adminandClaude Opus 5 9d7d18669d Add 504 / IEP plans with tiered confidentiality
Plans, accommodations, related services, annual goals with progress
monitoring, meetings/team, and signed documents — plus a compliance
list and dashboard alerts for annual-review and triennial re-evaluation
dates (overdue in red, due-within-30-days in amber).

Access is tiered because special-education records are need-to-know
under FERPA:

  FULL  admin, the plan's case manager, the student's parents
  IMPL  the above, plus any teacher of the student — accommodations
        and services only, never eligibility or meeting notes

RLS is row-level and every app role is the same Postgres role
(`authenticated`), so column grants cannot separate the tiers. The
split is therefore physical: confidential fields live in plan_details,
plan_goals, plan_meetings and plan_documents rather than as columns on
student_plans.

The UI asks the database which tier applies via the same predicates the
policies use (can_view_plan_full / can_edit_plan) instead of re-deriving
the rules client-side.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 09:14:40 -04:00
adminandClaude Opus 4.8 e95171a0d4 Make remaining date inputs Safari-safe (uncontrolled)
Attendance filter, gradebook assignment date, and tuition entry date now use
defaultValue (with a remount key where the field resets after submit).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 19:46:33 -04:00