Report Cards
โน๏ธ Report Card Columns Are Global
Report card columns (CA1, CA2, CBT, Project, Exam, etc.) are defined once for all subjects. You do not need to set up columns separately for each subject. All subjects use the same column structure.
Flexible structure: create or edit any heading and maximumโe.g. CA1 (20), CA2 (10), Project (10), Exam (60), or CBT-only (100). Printed headings and CBT destinations follow these exact settings; no hard-coded CA maximum is used.
๐ Build a report card
Build a report card with fully custom columns. Blank cells remain blank and print as โ; they are never converted to zero. CBT attempts enter official reports only through the explicit Bulk Push CBT Scores preview below, preventing phantom or duplicate marks.
๐ Student Report Access Control โ One-Click Allow/Disallow (V12.16)
At end of term, admin can allow or disallow students from automatically generating/checking their report cards for that term with just one click. Select Term + Session below, then click โ Allow Students or ๐ Disallow Students. Status shows instantly.
How it works: Sets
academic_periods.allow_student_report boolean for that Term/Session (one-click via RPC sc_set_report_generation_allowed). Student portal checks via sc_is_report_generation_allowed โ if not allowed, student sees bold "๐ Report generation not yet allowed by admin โ contact school" and cannot generate, even if report not locked by fees. If allowed, student can generate own report (auto-filled name) for previous/current term once admin permits. Also has global toggle (fallback) via school_settings.allow_student_report_global.Robustness: Per-term control overrides global. Admin sees current status per term, can toggle any term/session in one click. Works for parent too (allow_parent_report). RLS: only admin/principal can set.
๐ Generate outputs โ Student Report Cards, Broadsheets, Scoresheets (V12.14)
Admin/Teacher portal: Build scores first (Class+Subject+Term+Session โ Load/Build โ enter scores), then Generate outputs: pick Class, Term, Session (or leave blank to use above), enter Student name/admission number (autocomplete from class), click Student Report Card (single), Class Broadsheet (all students, all subjects), Teacher Scoresheet (subject), or Bulk Print ALL (per class, one per page). Edit/Delete restored on Assignments โ never drop pre-existing features.
Student portal (V12.14 โ auto-fill on landing, clickable & responsive, only own): Your student name field is auto-filled the moment you land โ no typing needed, already shows your full name + admission no, readonly, only your result (cannot access other students). Your class also auto-filled readonly. Term and Session are now clickable and responsive โ Term and Session are clickable and responsive โ select previous term or current term once admin permits (when report not locked). If locked, you see ๐ message with bursary contact. You cannot generate for future terms or other students. This ensures students only check/generate their own report card for previous/current term once school admin permits. Auto-fill uses cached profile for instant landing, then verified via DB (students.user_id = your account). Datalist cleared so you cannot pick others. V12.12: Term and Session are now clickable and responsive โ previous/current term once admin permits.
Parent portal: Select child from safe list (only your linked children, locked children removed), then Term/Session (previous/current) โ Student Report Card.
Multi-subject CBT Assignments (V12.14): When Score class clicked for multi-subject CBT assignments, scores auto-fill per subject (just like exams/mid-term), and push fills each subject Assignment column. Works for pre-existing multi-subject assignments too (fallback uses overall %). Assignment page now shows Edit/Delete for admin/tutor + Take beside every CBT assignment for student.
Robustness: All fields use dropdowns from live DB (lookups + classes + results + assessment_columns) with defaults fallback, never blank. Report lock via
sc_my_access_state RPC blocks locked students with bold message. History merge shows students who moved on (๐) so past terms regenerate full. Student auto-fill: immediate from localStorage cache + verified DB.
Generate printable termly outputs from the recorded scores (all subjects). Student name auto-filled on landing โ no typing needed.