• v1.5.4 7278309bf5

    v1.5.4
    CI / Coding Standards & Static Analysis (push) Successful in 13m23s
    CI / Tests (PHP 8.1) (push) Successful in 55s
    CI / Tests (PHP 8.2) (push) Successful in 1m7s
    CI / Tests (PHP 8.3) (push) Successful in 6m59s
    CI / Tests (PHP 8.5) (push) Successful in 12m55s
    CI / No Debug Code (push) Successful in 3s
    CI / Build Plugin Zip (push) Successful in 5m53s
    Release / Build and Publish Release (push) Successful in 8m5s
    Release / Open next-version bump PR (push) Successful in 5s
    Stable

    thatguygriff released this 2026-08-24 23:41:46 +00:00 | 47 commits to main since this release

    Fixed

    • Adding students to a group class now checks that each one is actually a student. Add students directly and Make available acted on whatever ids the form posted without confirming they named students at all, so a stale page — or a tampered submission — could put an instructor, an administrator, or an account that had since been deleted onto a class roster, raising a real payment against them. Both controls now skip anything that is not a student, and the "%d student(s) added" count tells you how many actually went through. Children and students awaiting approval are unaffected: they are students, and adding them is what these controls are for.
    • A refused booking no longer empties the Book a lesson for a student form. Whatever the reason it came back — the time taken while you were typing, a weekly reservation asked for on a time that does not repeat — the panel reopens with the student, time, lesson type, both ticks and your note exactly as you left them, so a correction is one field, not five. A booking that goes through still leaves an empty form behind for the next one.
    • Booking a lesson for a child, or for a student you have not approved yet, no longer fails with "Choose a student to book for." The Book a lesson for a student panel offered every student it could see, but then refused a good half of them: a parent's child and a self-signup still awaiting approval both appeared in the list, and both were rejected on submit — with an error that read as though no student had been chosen, and which cleared the form. Neither of those accounts is allowed to book in their own name (a child's is never signed in to at all, and an unapproved signup waits for you), and the panel was mistakenly applying that same restriction to the studio booking on their behalf, which is precisely the case it was built for. Anyone the panel offers can now be booked for.
    Downloads