-
v0.8.3 Stable
released this
2026-02-02 20:43:58 +00:00 | 0 commits to main since this releaseAdded
- Locker overview: Add list view to locker allocations
Changed
- Personal contribution graph: The GH style graph now has day labels to reduce confusion
- Theme: Updated theme to match the main Artifactory website
Fixed
- Workflow cards: Cards are now properly aligned
-
v0.8.2 Stable
released this
2026-01-30 15:36:09 +00:00 | 6 commits to main since this releaseAdded
- Volunteering facts: Compare volunteer stats to random things
Changed
- Time debt in reward calculations: Time debt is now included in reward calculations
- Event timezones: As part of the generalisation project events are stored independent of the server timezone
- Event list loading: The public event list now lazy loads 5 new events rather than 20 and creates 5 skeleton cards rather than 3 when loading. This should reduce disorientating repaints
Fixed
- Google auth
- Reward notification route: Reward notifications were sent via Slack, regardless of user preferences
- Login redirect status code: Redirects to login pages correctly send HTTP/401 instead of serving the page as 200
- Event RSVPs: Committee management of event RSVPs now correctly handles recurring events
- RSVPs on event edit: Event managers now have the option of discarding RSVPs when changing the event date
-
v0.8.1 Stable
released this
2026-01-25 15:43:27 +00:00 | 26 commits to main since this releaseAdded
- Personal contribution stats: Stats page now has a GitHub style contribution graph
- Nav bar links: External pages can be added to the nav bar. Links to domains not on a configured whitelist will include security referrers
Changed
- Active user list info: Active users now show their page version
- Notifications permissions: Access to the backend panels have been moved from admin to committee
- Member page permissions: Permissions for user pages decoupled from TidyHQ links
Fixed
- Slack channel history: If the server had been running for a long time users could no longer view channel history because the timestamped view tokens were generated on startup 🖥️
- Markdown rendering: The markdown renderer now supports
strikethrough🖥️ - Notification sending on mobile: Buttons at the bottom of the page now display correctly on mobile
-
v0.8.0 Stable
released this
2026-01-23 16:46:37 +00:00 | 38 commits to main since this releaseAdded
- API endpoints for external applications: Added new API endpoints for external applications to access limited profile data. 🖥️
- Contact notes system: Committee members can now add notes to contacts.
- Timeline view: View a user's interactions with the organisation, includes support for external applications and global events
- Open Graph, Twitter Card, and schema.org support: Added Open Graph meta tags and Twitter Card tags to
base.htmlusing blocks that can be extended in child templates. All templates now include appropriate Open Graph metadata with page-specific titles and descriptions. Schema.org event data is injected into event detail pages. 🖥️ - Forgejo notifications: Forgejo notifications are now filtered through the portal for additional formatting and context.
- Personalised event calendar feed (ICS): Users can now subscribe to a personalised ICS calendar feed that includes events they've bookmarked, important events, and events they've RSVP'd to.
- robots.txt file: Added robots.txt file allowing all web crawlers to access the site. 🖥️
- XML sitemap: Added
/sitemap.xmlendpoint that generates a sitemap including all public pages and published events with no visibility restrictions. (Helps search engines discover and index content.) 🖥️ - Profile pictures in bucket statistics: Added small profile pictures for contributors in the "Hours by Bucket" card on committee token page.
- Slack interface for events: Replicates the functionality of RSVPBot and allows people to RSVP to events from Slack. Also includes auto posting.
- Event option day pass requirement: Event RSVP options can now be marked as requiring a day pass. Options with this requirement display a "Day Pass required" badge in the RSVP list with a tooltip explaining the requirement. Slack event messages show "(req Day Pass)" next to the price for options that require a day pass.
- Celery worker increase: Added more task workers for scheduled tasks 🖥️
- Membership status change logging: Changes to membership status or type are now logged to a debug Slack channel
Changed
- Time debt calculation on committee tokens page: Time debt owed is now offset by total volunteering hours. If a user has 2.5h of volunteering and 3h of time debt, the displayed value is 0.5h (net debt).
- Weekly/monthly granularity for some token stats: Added toggles to switch between monthly and weekly views for "Your Hours by Category Over Time" and "Per Month" charts.
- Adjust total hours button for volunteer token submission: Added button next to unallocated hours line that updates the total submitted hours to match the current bucket distribution. If using a date range submission, automatically converts to hours-based submission.
- Event visibility groups: Events can now be limited to specific groups. (Still shown to all with access to management interface)
- Duration toggle for events: Added a toggle to switch between specifying end date/time and duration (hours and minutes) when creating or editing events.
- Event short description field: Added
short_descriptionfield to events for use in Open Graph meta tags and social media previews. - Past events ordering: Past events in the management interface now sort oldest first
- Events page pagination and lazy loading: The
/eventspage now uses pagination and lazy loading to improve initial page load times. (Events are loaded based on the viewport of the user and should theoretically be infinite) - Event detail pages are now public: Individual event pages are public (unless restricted to a group)
- Recurring events display series on detail pages: Users can now see the frequency of an event and where they are in the time series
- Recurring events tab in management:
/events/managenow includes a recurring tab that lists one row per series, shows the first date, and lets managers edit the entire series. - Portal toggle improvements: Navbar stays open on mobile when switching portals
- Notification system revamped: Includes drafts, templates, mail merge fields, markdown support, popup-specific text, history of sent notifications, and email support
- Token entry deletion permissions: Management committee members can now delete approved token entries from
/admin/tokens(previously only admins could delete entries). - Image endpoint scaling updated: The images endpoint can now scale images from 8-512px
Fixed
- Orphaned PENDING tasks after container restart: Added automatic detection and cleanup of PENDING tasks that are no longer in broker queues (e.g., after
docker compose down). These tasks are now automatically marked as FAILURE with an appropriate error message. A manual cleanup endpoint/admin/celery/cleanup-orphanedis also available. 🖥️ - Circular import error in Celery: Fixed circular import between
util.slackandproviders.volunteer_tokensthat prevented Celery from loading. 🖥️ - Events management page filtering: Fixed past events and cancelled events not filtering correctly on
/events/manage. Cancelled events now appear in all tabs correctly, and past events are properly excluded from upcoming tabs. - Cancelled events tab performance: Fixed cancelled events tab taking a long time to load and showing non-cancelled events. 🖥️
- Yearly recurring events: Fixed yearly events incorrectly using the current day as the start date.
- Request logging: Fixed page requests not appearing in logs due to an empty string in the excluded endpoints filter that was filtering out all log messages. 🖥️
- Document availability: Fixed documents that have already been signed by a user being marked as available.
- Profile settings fixed when app mode notifications are enabled: Disabled values in forms are now correctly handled
- Time debt calculations: Some areas where volunteering time debt were displayed did not account for hours contributed
- Member status syncing: Portal users with multiple TidyHQ accounts linked would have their membership status flip randomly between the status of the linked accounts. Membership status is now defined with ANY logic
- Pledge invoice generation: Generating an invoice for a pledge no longer boots the user out of the parent modal
-
v0.7.1 Stable
released this
2026-01-08 15:11:14 +00:00 | 108 commits to main since this releaseLines marked with a 🖥️ are largely only interesting from a technical perspective rather than a user/committee perspective.
Fixed
- Timezone display on events management page: Fixed times being displayed 8 hours ahead on
/events/manage. 🖥️ - Date format inconsistency in token entries approval: Fixed date format display differing between hours-based and time-based entries on
/committee/tokens/approval. 🖥️ - Today button on personal token submission page: Fixed the "Today" button not working on personal token submission page
- Timezone display on events management page: Fixed times being displayed 8 hours ahead on
-
v0.7.0 Stable
released this
2026-01-08 09:10:35 +00:00 | 114 commits to main since this releaseLines marked with a 🖥️ are largely only interesting from a technical perspective rather than a user/committee perspective.
Added
- QR code login: Users can now log in by scanning a QR code with a mobile device that's already signed into the portal
- Version info: Git tag and commit hash displayed in website footer and bug report/feature request templates 🖥️
- Workflow cache invalidation: Cached workflow checks are now automatically cleared when data affecting workflow checkers is modified 🖥️
- Event management system: Users can view events, RSVP for them, and mark them as interesting (for calendar populating). Committee can create and sync events.
- Fix missing user profiles task: New maintenance task
portal.fix_missing_user_profilesto create UserProfile records for users that have OAuth accounts but no profile 🖥️ - Desktop network share manager: New desktop application for managing Windows/OSX network share mounts
Changed
- Login page revamped: Login page now displays options as square cards with larger logos and hover effects
Fixed
- Missing UserProfiles in admin contacts search:
sync_tidyhq_accountsnow ensures UserProfile records are created when updating existing TidyHQ accounts, fixing contacts not appearing in/admin/contactssearch 🖥️ - Virtual environments in docker containers: Each Docker container now uses its own isolated uv virtual environment, and venvs are cleared on container startup 🖥️
-
v0.6 Stable
released this
2026-01-05 05:25:45 +00:00 | 129 commits to main since this releaseLines marked with a 🖥️ are largely only interesting from a technical perspective rather than a user/committee perspective.
Adds:
- Concession eligibility process (member, committee
- Locker management (member, volunteers, committee
- Member status syncing with TidyHQ 🖥️
- Badge syncing with Slack
- Lucide icon pack 🖥️
- Documents/Agreements (member, committee)
- Workflows (member, admin)
- Training stats (committee, and history for members)
- Demographic reports (age, gender)
- Dynamic groups 🖥️
- Group modal to contact page
- Member work folder management
Improves:
- Door sounds for access cards
- Utility buttons for volunteer hour bucket distribution
- Skip oauth consent screen on subsequent logins (When the portal is the identity provider) 🖥️
- Launch method (uv) 🖥️
- WSGI server (gunicorn, waitress, flask) 🖥️
- Volunteer token bucket stats incorrectly listed and rolled up sub buckets
- Portal switching method (and related page mapping)
- Volunteer hours submissions (Existing tool moved to volunteers, new tool for members)
- Install button on mobile
- Add time debt when logging training
- PWA icons (Thanks @Ilke)
- Birthdays are configurable
- Reward rendering now uses markdown
- Token entry filtering for volunteers
- Training sign off page on mobile
- OIDC claim information 🖥️
Fixes:
- Account merge logic 🖥️
- Backdrop clearing for group member addition 🖥️
- Wiki page lookups for induction docs 🖥️