Files
unsupervised-scheduler/CHANGELOG.md
T
thatguygriffandClaude Opus 4.8 b066bef353
CI / Tests (PHP 8.2) (pull_request) Successful in 39s
CI / Tests (PHP 8.1) (pull_request) Successful in 46s
CI / No Debug Code (pull_request) Successful in 2s
CI / Coding Standards (pull_request) Successful in 2m52s
CI / PHPStan (pull_request) Successful in 2m50s
CI / Tests (PHP 8.3) (pull_request) Successful in 2m36s
CI / Build Plugin Zip (pull_request) Skipped
Add group-class scheduling, instructor assignment, and details/invite management
Group classes now carry a specific class time (alongside date and duration)
and an assigned instructor:

- Schema: add `class_time` (TIME) to `us_offerings`; `Offering` gains
  `normalizeTime`/`sessionWindows`. (Rides the pending 1.0.0->1.1.0 dbDelta
  upgrade, so no version bump.)
- Offering form: class-time field, plus a studio-admin instructor picker
  (plain instructors always own their own classes).
- `ClassSlotReconciler`: assigning an instructor clears their open booking
  slots overlapping each session and flags already-booked lessons that clash
  (a booked lesson is never deleted). Uses new
  `AvailabilityRepository::findOverlapping`.
- Front end: `GET /offerings` exposes `instructor_name`; the enrolment page
  shows who teaches each class and when it meets.

Back-office group-class views redesigned:

- Instructor **My Group Classes** and studio-admin **Group Classes** are now
  per-class summaries with enrolment counts, not flat student lists.
- Each links through (`?class_id=<id>`) to a per-class **details page**
  (schedule panel, roster with payment status, and — for invite-only classes
  — the add/make-available/invite-by-email controls). Invite-only membership
  is managed entirely from this page.
- Invite actions are allowed for the class's owning instructor or any
  `view_all_lessons` studio admin, so an owner-operator (studio admin who also
  teaches) can reach every class's roster and invites from the Group Classes
  page.

Tests: composer test (508), composer lint, composer cs all pass.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-23 17:29:48 -03:00

2.3 KiB

Changelog

All notable changes to Unsupervised Scheduler are documented in this file, one section per version, newest first. The top section is always the version the code on main currently carries (the Version: header in unsupervised-schedular.php). Whether a version is "released" is purely a matter of whether its tag exists — the changelog itself does not track that.

When a v* tag is pushed, .gitea/workflows/release.yml publishes the matching ## [x.y.z] section verbatim as the Gitea release notes, then opens a PR that bumps the plugin to the next patch version and adds a fresh section here for it. Record each change under the current top section as you work.

[1.1.0]

Added

  • Invite-only group classes, so a class can be restricted to students who hold an invite.
  • Instructor group-class roster view under My Lessons.
  • Cancellation cutoff that limits how close to a lesson a student can cancel.
  • Studio-defined account-registration questions collected during student sign-up.
  • Group classes now carry a specific class time (alongside the date and duration), and studio admins can assign the teaching instructor. Assigning an instructor clears their open booking slots at the class time and flags any already-booked lesson that clashes.
  • Students see who teaches each group class and when it meets on the enrolment page.

Changed

  • Plugin metadata links now point at Unsupervised and the Gitea repository.
  • The instructor My Group Classes view is now a summary of classes with enrolment counts; each class links through to a per-class details page (class schedule, roster, and — for invite-only classes — the controls to add or invite students), rather than listing every student inline. Managing who is in an invite-only class is now done from that details page. The studio-admin Group Classes page is likewise a per-class summary that links through to the same details page, so a studio admin — including an owner-operator who also teaches — can view any class's roster and manage its invite-only membership.

[1.0.0]

First stable release: instructor/student lesson scheduling for WordPress, including availability management, one-on-one and group-class booking, Stripe payments, student self-registration with email confirmation and admin approval, group invite links, and self-update from tagged Gitea releases.