Skip to content

Caelondia

Latest
Compare
Choose a tag to compare
@DragoonAethis DragoonAethis released this 29 Feb 22:49
· 6 commits to main since this release

Third system release, as used on Remcon 2024. This year we've had a new venue and most of the changes were on the "physical layer", so to speak - the system side mostly received refinements on what was already there. But there's some new stuff too!

Upgrade Guide

  • Important: This is the final version that can still be installed in a "classic" fashion using a plain local deployment. Future versions will be released and deployed using containers.
  • After upgrading to Caelondia, you must run an additional allauth-2fa -> allauth.mfa migration from the command line: python manage.py migrate_2fa
  • Automatic database migrations will remove:
    • Tickets: vaccination proofs
    • Applications: Legacy (text field) applications

Crew Panel

  • Instead of a single green button there's now a black bar with all the crew modules available to a specific account.
  • Accounts can be now granted crew panel permissions on a per-module basis. (Per-event permissions are not there yet.)
  • The crew bar has handy shortcuts for looking up tickets and jumping to the Django Admin.

Mod Queue

  • A minimal ticket moderation queue was added that allows orgs to sort out inappropriate images and nicknames set during personalization.
  • Tickets can be easily "depersonalized" - images and nicknames are removed and ticket previews are regenerated.
  • All tickets have handy shortcuts to the owner/crew/admin panel too.

Organizations

  • It's now possible to create "organizations" - groups of tickets and billing details bound to a specific owner/application.
  • Org owner can create as many tickets of a specific type as are allocated for an organization. The tickets are automatically marked as paid for and all that.
  • Billing details can be added too - this makes B2B payment handling much smoother.
  • Everything comes with a nice new dashboard in the crew panel.
  • This year we've provisionally used this system for vendors - with great success! Accreditation process was much smoother thanks to this system, and we have significant expansion plans for this module.

Tickets

  • We now track each ticket's "contributed value" - how much money was actually collected for a given ticket into the event budget pool. This is used for live budget tracking with the Prometheus/Grafana integration.
  • There is now a single ticket "ready" status (while previously we had two, the other being "pay on site").
  • Tickets and ticket types can now have "flags" - these can be used by ticket renderers to generate an appropriate access list on the physical ticket and in external systems for automation.
  • Private/accreditation note fields were added to tickets and applications.
  • Unpaid tickets can be now automatically cancelled after a specified period.
  • Separate personalization deadlines can be now set independently of the ticket sale date.
  • Tickets can be now stopped during accreditation to force a coordinator to take a look.
  • Tickets can now have an "issued identifier" to make it easier for the crew to hand over the appropriate physical badge, instead of relying on its type.
  • The accreditation process and panel was slightly revamped for readability. Tables have extra colors and icons for quicker navigation.
  • Vaccination proofs were removed as they're no longer needed.

Ticket Renderers

  • The primary renderer was rewritten to use Playwright-driven browser automation instead of a plain j2 + Chromium script due to odd rendering race conditions.
  • More helper scripts were added to make renderer development easier and faster.
  • New ticket templates for Remcon 2024 and VIII Twilightmeet were added.

Applications

  • Applications can be now put on a reserve list with a dedicated status.
  • Private/org notes were added to applications.
  • Dynaforms now support new fields:
    • URLs contain web addresses.
    • Counters are integers with a specified min/max/default.
    • Templates can contain arbitrary HTML/Markdown to create pretty layouts.
  • To submit applications, until now you could require ready tickets to be bound to an account about to submit an application. Registration requirements are now per-application type, not per-event.
  • Custom application submission "thank you" messages can be now set.

Maintenance + Misc Stuff

  • Django was upgraded to 4.2 LTS, most of the dependencies were upgraded to their latest-ish versions as well.
  • Two-factor authentication was migrated from allauth-2fa to allauth.mfa. This requires manual intervention. Unfortunately, the migration was done as a last-minute change - we had to perform an emergency allauth upgrade due to Google SSO breaking on the older version we were stuck on. New 2FA views don't look all that great yet, although they are fully functional.
  • File layout, URL schemes and permission checks on most views were reworked and cleaned up.
  • The entire codebase is now formatted and checked with Ruff.
  • Errors are now handled more gracefully.
  • Django Admin filtering options are now themselves filtered down to the currently-selected event, if any.
  • Sentry now logs and profiles ALL transactions.
  • Docker is again the default ticket rendering container tool.
  • Payment status change notification handling was revamped, leading to significantly fewer "missing payments" happening.
  • Prometheus statistics are now "bucketized" per group of:
    • (ticket type, source, status, paid) -> total ticket count
    • (ticket type, source) -> total contributed value.
  • Misc bugfixes and performance improvements.