Release 2023.6.0 of pretix
Today, we are releasing pretix 2023.6.0. This release includes a check-in simulator, improved cross-organizer acceptance of gift cards, as well as lots of small changes throughout the system. Big thanks go to Fabian, Hans Fraiponts, Helias Mackay, Julian Rother, Roman Le Meillat, Thomas Vranken, Yucheng Lin who contributed to this release. ❤️
pretix 2023.6.0 is now available for installation via pip
. The new Docker images will appear on Docker over the
next few hours. All customers of pretix Hosted are already using the new version and do not need to take any action.
New versioning scheme
For the past six years, we've consistently published at least 10 releases of pretix every year. Their numbering scheme has followed the traditional versioning concept of most software with a major version, a minor version, and a patch version. For example, our previous release before this post was named "4.20.1" – meaning it was the 2nd patch version of the 21st minor version of the 4th major version (numbers starting at 0). However, with pretix being released continuously approximately 10 times per year with incremental changes, this was starting to become less and less helpful, as there is no clear differentiator between what changes in a "major version" or a "minor version".
Therefore, we are now switching to a version that more closely fits how pretix evolves. From now on, we'll use the scheme "year.release.patch". This version is called 2023.6.0 because it is the 6th release we make in 2023 and there are not yet any patch versions released. We believe this highlights the nature of our development more and makes it easier to see how old a version of pretix is.
Check-in simulator
pretix allows to create complex setups in which admission to the event is dependent on a number of conditions that can be freely defined using our check-in rule editor. At the same time, this complexity makes it easy to make mistakes and hard to properly test different edge cases. To help with this, we have added a "check-in simulator" that allows you to test different cases without actually checking in tickets.
You can find the simulator right next to the check-in lists in the backend, and you can enter both the barcode of the ticket you want to test as well as the date and time the check-in occurs. This way you can even test how the configuration will behave in the future.
In addition to the result, the simulator also shows the evaluation result for every single component of the custom check-in rule, allowing you to easily see where things go wrong.
Improved gift card cross-acceptance
pretix has always allowed accepting gift cards issued by a different organizer, but the feature was a little bit hidden and hard to set up, since it could only be set up by a person with full access to both organizers.
We have now redesigned this feature in a way that makes it easier to use. One organizer can now "invite" a second organizer to accept their gift cards. The invitation can then be accepted or declined by the organizer in the same place.
The feature now also includes support for gift cards stored on reusable media and we have also added columns to various exports to make the reconciliation between the different organizers easier.
Smaller changes and bugfixes
Ticket shop and widget
-
The checkbox shown for a product that can only be selected once now looks more like a button.
-
You can now select Chinese (Traditional) as a shop language.
-
The appearance of our new custom number spinners has been optimized for the disabled state.
-
Empty add-on selection forms during checkout are now being hidden.
-
It is no longer possible to trigger generation of invoices for an expired or canceled order.
-
A few tweaks have been made to email rendering to make our default email templates prettier. As a side result, it is now possible to deliberately create a line break in email content by placing two spaces at the end of the line in the email template.
Ticketing backend and configuration
-
It is now possible to revoke a device authorization even if it was not yet initialized.
-
If an invoice is sent to an organizer address via email, the order code is now included in the email content.
-
The export mode of the order search now allows to filter for tickets that have or have not been checked in.
-
The order import now supports assigning orders to customer accounts.
-
The data shredder, our tool for the removal of personal data, has received some tweaks to increase its stability and performance. It now also shows a progress bar and sends an email to the user who triggered it after completion.
-
The list of dates in an event series now shows the internal ID of a date, which is useful e.g. for configuring the widget.
-
The order transaction report now contains auxiliary columns that multiply the price and the amount to get the line total.
-
A bug in the accounting report introduced in 4.20 was fixed that caused incorrect reports for currencies other than EUR.
-
The accounting report introduced in 4.20 now optionally allows splitting the different dates of an event series and can show subtotals per event.
-
The check-in list export now allows to filter the results by check-in status.
-
Creating an invoice cancellation now respects the event time zone for choosing the invoice date.
-
A rare crash during voucher creation has been fixed.
-
The history of a voucher now includes a link to the order it was redeemed in.
-
A crash was fixed that occurred when the new GeoIP feature does not contain data for an IP address.
-
A crash was fixed that occurred when trying to create two customers with the same identifier.
-
The PDF generator no longer crashes when it tries to embed an invalid picture.
-
System admins are now allowed to delete all teams within an organizer account.
Updates to official plugins and tools
-
The Certificates of Attendance plugin has been released in version 1.9.3 to ensure compatibility with future dependency versions.
-
The Digital Content plugin has been released in version 1.3.2 to achieve compatibility with pretix 2023.6.
-
The Fontpack: Free fonts plugin has been released in version 1.10.1 to add the font Noto Sans Japanese.
-
The Mollie plugin has been released in version 1.6.0 to add support for creating invoices early in a bank transfer payment, similar to the core bank transfer module.
-
The Offline Sales plugin has been released in version 1.8.3 to ensure compatibility with future dependency versions.
-
The PAYONE plugin has been released in version 1.3.1 to ensure compatibility with future dependency versions.
-
The pretixPOS backend plugin has been released in version 3.12.1 to show gift card issuers in the transaction detail view.
-
The pretix Reseller networks plugin has been released in version 2.9.0 to make email behavior more consistent with the online shop.
-
The Seating plugin has been released in version 2.1.5 to achieve compatibility with pretix 2023.6.
-
The Shipping plugin has been released in version 1.17.2 to ensure compatibility with future dependency versions.
-
The Tracking codes plugin has been released in version 2.8.0 to add support for TikTok pixel.
Runtime and server environment
-
As announced, support for running pretix on MySQL or MariaDB has been removed. The migration to PostgreSQL is documented here.
-
A timeout of 60 seconds for outgoing SMTP connections has been introduced.
Plugin API changes
-
We have updated our Django version to 4.1, which will very likely require changes in your plugins. Please refer to the Django 4.0 and 4.1 release notes for more details. Please also be aware that we are planning to update to Django 4.2 really soon.
-
A new method
BaseExporter.available_for_user
has been added. -
A performance optimization was made to fill up less memory during the
updatestyles
upgrade step.
REST API changes
-
New webhook event types for the waiting list have been introduced.
-
A payment confirmation webhook is now sent correctly when the payment is created together with the order through the API.
-
The tax rule resource now exposes the "custom rules" added to a tax rule.
-
In the events and subevents resources, you can now filter by date range.
-
Organizer-level data exporters no longer require passing a list of events. The new default is to include all events the API consumer has access to.