Repository navigation
Show the registration checklist on the student registration step pages - #6142
willgearty wants to merge 5 commits into
Conversation
Build on the teacher registration layout: module_base.html now holds the shared layout, and the student registration main page and step pages use it, with the checklist (and other registration requirements) beside or above the content, or in bigpicture's sidebar. Student pages students open on purpose to pick classes or that follow a payment (class picker, class documents, lottery and two-phase pages, class change requests, waitlist, payment results) extend main.html and show no checklist. The registration_checklist tag replaces teacher_checklist and registration_progress for both registrations, the layout stylesheet becomes reg-layout.css with reg-* classes, and student progress mode 2 shows the checklist too, like the teacher setting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0125DJeUvSqDpfccYdjsHZuy
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the
Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
… release notes Merge #6132's branch, and drop the notes that only undo changes made after stable-release-16: the pages that never showed the checklist there, the tag and stylesheet that replace post-release ones, and the main.html list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0125DJeUvSqDpfccYdjsHZuy
When required modules are forced, studentreg serves the two-phase page in place of the main page, so it needs the checklist like the main page does (as on main since #4379; see #1167). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0125DJeUvSqDpfccYdjsHZuy
The page centred and re-padded every table cell on the page, including the registration checklist beside it. Scope those rules to the page content. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0125DJeUvSqDpfccYdjsHZuy
…t-module-layout # Conflicts: # docs/admin/releases/upcoming/README.rst # esp/esp/program/modules/checklist.py # esp/esp/program/modules/tests/module_progress.py
Description
Stacked on #6132: the base is that PR's branch, so this diff shows only the student side. Merge #6132 first.
This brings the #6132 layout to student registration. The registration checklist (with any "Other Registration Requirements") and its progress bar now appear on the student registration main page and on the page of every registration step, so students can see their progress from any step. Only the layout changes; no module behaves differently.
Which pages show the checklist
Same rule as on the teacher side: the main page and each step's main view show it, and pages a student opens on purpose to pick classes, or that follow an action, don't.
With the checklist (module main views):
studentreg);studentreg2phase).These can all be served by the required-module flow in place of the main page, so this is where the list matters most. This applies especially to the two-phase lottery page: while "Force show required modules" is on, it replaces the main page until the student confirms, so it must keep the checklist (#1167, fixed on
mainby #4379).Without it (now extend
main.html):fillslot(pick a class for a time slot),conflict_confirm, the lottery pages (lotterystudentreg,viewlotteryprefs), the two-phase catalog and confirmation pages, and class change requests. These are the student version of the teacher class registration form: wide interactive pages a student goes to and then returns from.class_docs).finaidapp), an auxiliary view of the Formstack application module.Untouched: the onsite pages (
studentonsitehas its own webapp layout), the catalog, and the certificate (a PDF).On
mainall the module pages above show the checklist at the top, viamodule_base.html'sregistration_progresstag.Layout
Same as #6132:
The steps aren't links while "Force show required modules" is on and required modules are unfinished. Onsite registration (
onsite_local) still shows no checklist on the main page, as before. Student progress mode 2 now shows the same card as mode 1, matching the teacher setting.Screenshots
Taken on a local dev server with dummy data (droplets theme).
The same image is added to the upcoming release notes.
Implementation
program/modules/module_base.htmlnow holds the layout that Show the teacher registration checklist on the teacher registration step pages #6132 put inteacherregcore/teacher_module_base.html, for both registrations. That template is removed and the teacher templates extendmodule_base.htmlagain, as they do onmain.registration_checklistreplaces bothteacher_checklist(Show the teacher registration checklist on the teacher registration step pages #6132) andregistration_progress(with itsmodule_progress.html). It picks the student or teacher options fromrequest.tl.checklistto show none. The student main page does this for onsite registration.studentregcore/mainpage.htmlnow extendsmodule_base.html. The heading, notices and parents' alert go inmodule_header; the rest goes inmodule_content. Thestudentregview builds its checklist context with the sharedget_checklist_context.checklist.pyimportsStudentRegCoreinside the function, sincestudentregcorenow importschecklist.checklist_sidebar.htmlmoves toprogram/modules/.teacherreg-layout.cssbecomesreg-layout.css, and itsteacher-reg-*classes becomereg-*.0057only updates the student setting's help text.docs/admin/program_modules.rstdescribes the setting as it now works.After this,
progressbar.htmland its images are unused, andprogressbar.cssis only linked fromview_lottery_prefs.html, which uses none of its classes. #6146 (stacked on this PR) removes them.Related Issue
Follow-up to #6132 and #5034.
Type of Change
Testing
Existing tests pass
New tests added (if applicable)
Manually verified
Updated tests in
esp/program/modules/tests/module_progress.py(28 tests, all passing). The tag tests now cover both registrations (empty outside registration, module page links, progress mode 0, the view's own or empty checklist, one lookup per render, the theme sidebar setting). New student integration tests check:fillslotandclass_docs.Two-phase: a new test in
esp/program/modules/tests/studentregtwophase.pychecks that, with the two-phase module required and forced,studentregserves the two-phase page with the checklist and locked steps. It fails if the page extendsmain.html. All 32 two-phase tests pass.Wider run: locally,
esp.program.modules,esp.survey,esp.customforms,esp.users,esp.webandesp.themes(1486 tests) pass, except 5 PDF tests that needpdflatex, which isn't installed in my environment. Lint andmakemigrations --checkpass.Manual checks: on a dev server with dummy data, I compared the student main page, profile, acknowledgement, custom form, extra costs and class picker in fruitsalad, droplets and bigpicture, at 1280px (and the main page and extra costs at 390px), against Show the teacher registration checklist on the teacher registration step pages #6132's branch.
AI Disclosure
This PR was written with Claude Code (Anthropic), working with @willgearty. Claude Code also made the screenshots on a local dev server with generated dummy data.
Checklist
Generated by Claude Code
Summary by CodeRabbit