• v0.11.7 8c4fea5374

    v0.11.7 Stable

    Fletcher released this 2026-06-09 02:59:44 +00:00 | 0 commits to main since this release

    Added

    • Project pathways: Add a way to visually convey the pathway to project completion
    • Sitemap: Include current and recently closed fundraising projects 🖥️

    Changed

    • Pledges: Open fundraising pages to the public, add url slugs
    • OAuth rate limit: Control rate limit logging through cli flag 🖥️
    • uv: Generalise naming 🖥️

    Fixed

    • Pledge projects: Deadline countdown and expiry checks no longer fail due to UTC mismatches
    • FAQ: Exclude draft questions from the public “Related questions” section for non-managers
  • v0.11.6 fd47d9932c

    v0.11.6 Stable

    Fletcher released this 2026-05-21 17:24:56 +00:00 | 13 commits to main since this release

    Added

    • Email assistant: Draft emails based on relevant FAQs, events, tools, inductions, announcements, and drawer contents
    • Gmail add-on: Connect portal CRM and email assistant to Google Workspace
    • Site settings: Admins can edit some site-wide settings from the UI (org name + variants)
    • FAQ: Add semantic search
    • FAQ and events: Support Accept: text/markdown content negotiation, rel="alternate" discovery links, and JSON-LD on public FAQ and event pages 🖥️
    • llms.txt: LLM-focused info at / (when markdown is requested) and /llms.txt

    Changed

    • Navigation: Group FAQ, Slack, and Wiki under a member nav Info menu (Wiki links to configured wiki)
    • FAQ (committee): Merge zero-result queries into question suggestions
    • FAQ (committee): Bulk edit categories
    • Volunteer portal: Revamp outstanding request layout to better highlight issues
    • FAQ: Log unsatisfactory searches
    • Training bookings: Update Slack message with request status

    Removed

    • FAQ: Title dropdown suggestions on catalogue filter

    Fixed

    • FAQ (committee): Bulk delete no longer fails with a not-null violation on revision rows 🖥️
    • FAQ and events: Return 406 Not Acceptable when Accept requests only unsupported media types on negotiated routes 🖥️
    • Profile images: Serve placeholder profile picture when access is denied
    • Training bookings (committee): Show pending booking request timestamps in the viewer's local timezone
    • Personal ICS calendar: Training bookings now use booked times instead of slot times
    • FAQ management: Questions can now be deleted
  • v0.11.5 84703d8676

    v0.11.5 Stable

    Fletcher released this 2026-05-17 18:04:26 +00:00 | 38 commits to main since this release

    Added

    Changed

    • Session management: Add preprocessor to inject user object into all applicable session contexts 🖥️
    • Lockers: Search assignments

    Fixed

    • Training page: Removed placeholder upcoming training card
    • Volunteer tokens: Bucket sorting on submission page works again
    • Volunteer token submissions: Duplicate-entry checks now ignore time debt
    • Training bookings: Add placeholder redirect for upcoming bookings
    • App notifications: Strip markdown and convert datetime templates 🖥️
    • Training bookings (pending): Add upcoming session edit/removal from booking page rather than just board
    • Training bookings (pending): Upcoming bookings preserve accordion expansion through filter refreshes
    • Locker assignments: Highlight non members in committee page
    • Events: Clarifies root vs instance event editing for recurring events
  • v0.11.4 e319f3d6e3

    v0.11.4 Stable

    Fletcher released this 2026-05-03 17:44:32 +00:00 | 61 commits to main since this release

    Added

    • Pledge projects: Track padding in project totals to reflect external contributions (association, grants etc)
    • Pledge projects: Donors can now clarify what happens to their pledge if the project fails
    • Access lists: Add primary group designation to access lists
    • Cards: Toggle primary group membership for configured access lists
    • Cards: Add cards based on recently denied scans submitted by edge clients
    • Login provider: Add suggested login provider via query param
    • SAML: Allow portal to act as SAML IdP
    • Group permissions: Add permissions framework on top of groups 🖥️
    • Training docs: Add analytics and personal todo

    Changed

    • Migrations: Increased Alembic version_num column length 32->255 to allow for more descriptive versions 🖥️
    • Training bookings: Training managers no longer see bookings they're not involved with on their personal booking page
    • Training booking filter: Filter can be preselected with a query parameter
    • Announcement categories: Announcements can be marked as highlighted for all
    • Training docs: Format PPE table
    • Training slot templates: Allow editing of existing slots rather than just additions
    • Training bookings (pending): Assign Booking modal allows end-time overrides when assigning a pending booking

    Fixed

    • Volunteer token prompts: Prompt links with prompt_date now redirect volunteers from the member submit page to the volunteer tool and prefill the same date there (if applicable)
    • Personalised calendar feeds: Upcoming training appears in the feed regardless of RSVP'd events
    • Wiki URL: Wiki URL is no longer hardcoded 🖥️
    • Announcement direct links: Unrestricted announcements are now viewable for all sessions
    • Training lists: Sort induction lists server side
  • v0.11.3 454b89f373

    v0.11.3 Stable

    Fletcher released this 2026-04-22 08:58:14 +00:00 | 76 commits to main since this release

    Added

    • Notifications dropdown: Added per-notification and "Mark all as read" actions in the navbar dropdown for unread items
    • Volunteer tokens: Added a prompt mode to request users submit hours for a specific day
    • Drawer: Add system to track drawer contents
    • Homepage cards: Upcoming training bookings and RSVP'd events added to home screen
    • Xero connector: Add flow to link Xero tenant and basic tools to map TidyHQ finance categories to the Xero chart of accounts

    Changed

    • Training bookings: Existing bookings moved to the top of booking page
    • DM training: Trainers and trainees have the option of DMing each other

    Fixed

    • Training booking board: Removed UI debug logging 🖥️
    • Training docs: Wiki section matching now handles / in section headers when resolving fragment links
    • Training bookings (pending): Managers can now sign off attended sessions with zero time debt
    • Slack notification button: Ack button press notification from Slack for view notification buttons 🖥️
    • Notification datetimes: Datetime templating fixed for truncated notification bodies in navbar dropdown

    Security

    • OAuth authorisation: Added configurable user-agent blocking for /oauth/authorize requests 🖥️
  • v0.11.2 feb069e9e2

    v0.11.2 Stable

    Fletcher released this 2026-04-16 06:02:14 +00:00 | 94 commits to main since this release

    Added

    • Edge auth: Helper to facilitate access list authentication
    • API / edge access: Added versioning to access lists to reduce network load on updates 🖥️
    • API / edge access: Log unknown scans
    • Events management: Added a direct publish action for draft events on /events/manage#upcoming
    • Committee pledges: Added manual pledge entry/editing

    Changed

    • OAuth logging: Anonymous 401 requests to /oauth/authorize are now excluded from request warning logs to reduce noise 🖥️
    • Training availability: Allow trainers to confirm availability for all open slots at once

    Fixed

    • Event Slack posts: Slack posts now correctly point to event instances rather than the root event
    • Training slots (committee): Slots in the past are no longer listed
    • Upcoming bookings: Batch load info and process rather than using queries to dramatically speed up load times for slots 🖥️
    • Committee pledges: Increasing a funded project's goal now reopens it when pledged total is below the new goal
    • Pledge project creation: Logging the creation of a project will no longer randomly error out 🖥️
  • v0.11.1 22fe7ebbc3

    v0.11.1 Stable

    Fletcher released this 2026-03-23 04:09:05 +00:00 | 101 commits to main since this release

    Added

    • Training bookings: Warning when requesting a slot that starts within 24 hours (short notice)
    • Training bookings: Filter upcoming open slots by a specific available induction
    • Training bookings (pending): Prompt for time debt when signing off trainee
    • Training bookings (pending): Add modal to view existing inductions
    • Training bookings: When a booking is confirmed, the assigned trainer receives a portal notification (in addition to the trainee)

    Changed

    • Training bookings (pending): Reduce number of API calls made when prepping a manual booking 🖥️
    • Database schema: Freeze baseline to current state of models.py 🖥️
    • Training bookings: Recent sessions expanded beyond 6h, completed, added cancel button
    • Navigation: Expand (grand)parent navigation items on mobile to aid in submenu navigation (switching between training pages etc)

    Fixed

  • v0.11.0 c80f2f4f28

    v0.11.0 Stable

    Fletcher released this 2026-03-19 19:13:49 +00:00 | 110 commits to main since this release

    Added

    • Database: Schema changes are now handled through Alembic 🖥️
  • v0.10.10 e3a6152db6

    v0.10.10 Stable

    Fletcher released this 2026-03-19 19:10:31 +00:00 | 111 commits to main since this release

    Added

    • Material creation: Labels can now be printed directly in the creation flow rather than afterwards
    • Training booking Slack messages: Track post lifecycle (active/passed/deleted), auto-mark posts as passed after 48h, and add an admin tool to mark missing active posts as deleted

    Changed

    • Admin contacts (mobile): Row expansion is now via button instead of row tap (too many other targets)
    • Booking board: Bookings placed from the pending tray are marked as confirmed not assigned
    • Training booking Slack messages: Passed/deleted posts are now hidden by default (with an option to show them)
    • Training bookings: Formatting of upcoming slots adjusted to better show they exist during loading
    • Training bookings: Available inductions are now collapsed by default
    • Training bookings: Notify assigned trainer when booking is cancelled by user
    • Training bookings: Trainee side cancellations <6h from the session time are marked as no shows
    • Training bookings: Requests for training are now posted to the training channel on Slack
    • Training bookings: The UI now makes it clearer that training requests are requests not bookings
    • Navigation: Create new Storage menu, move materials (member side)
    • Lockers: Move to storage section instead of profile
    • Lockers: Add explainer card and membership check
    • Member Work: Move into Storage menu, rename in navigation to Files

    Fixed

    • Volunteer statistics: All sections now respect datetime filters
    • Volunteer statistics: Time debt is sorted by hours
    • Admin contacts: Pagination navigation no longer causes horizontal scrolling on mobile
    • Admin notifications list: Localised datetimes in notifications are translated
    • Training bookings: "Book this slot" buttons correctly fill the form rather than submitting
    • Booking board: Booking cards moved from the pending tray to the board now save
    • Booking board conflict detection: ETag comparison fixed 🖥️
    • Training booking notifications: Start time incorrectly used the requested slot time instead of the scheduled booking time for notifications
    • Training bookings: Assign Booking modal now allows assigning a trainer without selecting a slot
    • Training bookings: Assign Booking modal warns about induction duration mismatches and offers potential fixes
    • Training bookings: Removed the "no slot" suffix from portal-day Slack summaries
    • Training bookings: Slack booking summaries now sort by booking start time instead of slot start time
    • Markdown: Nested lists now render correctly
    • Training endorsements table: Fix bug in alphabetical view that prevented switching
    • Volunteer token entries: Bucket splits with zero hours are now removed before DB write 🖥️
    • Training docs: "View content" wiki modal wraps preformatted text instead of scrolling horizontally
  • v0.10.9 99c2c0c825

    v0.10.9 Stable

    Fletcher released this 2026-03-15 15:34:05 +00:00 | 130 commits to main since this release

    Added

    • Booking board: Add dynamic board to help arrange bookings
    • Notification datetimes: Added a framework to include localised datetimes in notifications 🖥️

    Changed

    Fixed

    • Linked accounts: Fix styling of passkey buttons (primary->success) 🖥️
    • Training notifications: Training notifications no longer send datetimes as UTC 🖥️