You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Association logo in HTML mail (#73): Booking and application confirmation emails now embed the association's logo inline, and the intake mails (receipt, resume link, second-parent request) get a proper HTML alternative alongside their plain-text body.
Plain-language "What's new" page (#75): The footer's version number now links to a public, non-technical changelog instead of the raw GitHub commit list.
Typeable date fields (#69): Birth-date and event-date fields across the site's own forms now use a typeable dd/mm/yyyy mask instead of the native mobile date picker, with a calendar button kept as a fallback.
Minor's address autofill in check-in (#74): Adding a minor's booking by hand at check-in now copies the address from whoever signs the request, the same way the public application form already does.
Privacy notice read-to-the-end gate: The application wizard now holds the "Continue" button until the privacy notice has actually been scrolled to its end.
Reworded check-in and application choices (for #70): Subject-type choices in the check-in add-booking modal and the application wizard's opening step now read in third/first person consistently.
Disaster-recovery restore drill (for #1): A new ENVIRONMENT=restore management command restores the latest backup into a disposable local database, to prove backups are actually restorable.
🐛 Bug Fixes
Booking inline delete crash (#77): Deleting a booking from an event's inline formset in the admin no longer crashes with AttributeError — deleted_objects is now read after the formset is saved, not before.
Editor-added bookings lost contact info (#72): A booking added by hand from the event's admin page now keeps its contact name/email/phone, sends the same confirmation mail as a public booking, and refreshes a re-booked member's contact details instead of keeping a stale address.
Association logo in dark mode (#71): The logo now sits on a white backing so it stays visible against a dark background, and a demo logo is seeded for fresh installs.
Dark-mode contrast on wizard summary pages: Several intake templates used a fixed light background color that washed out in dark mode; they now use theme-aware surface tokens.
🚨 Tests
Silenced two django-import-export deprecation warnings coming from its own internals (#76).
Stopped pinning the "recent backup" fixture to a fixed calendar date.
Added the regression test that restores 100% coverage on the age-resolution branch introduced by #72.
🛠️ Maintenance
Updated Python dependencies, pre-commit hooks and Alpine.js to their latest versions.
Named backup files after the project and aligned dbbackup's own cleanup count with BACKUP_RETENTION_DAYS (for #1).
Generated the migration for the reworded choice labels (for #70).
Aligned the Dockerfile's Tailwind CLI version with what django-tailwind-cli expects, avoiding a ~120MB download at container boot.