Release 4.16.0 of pretix

Jan. 30, 2023

Today, we are releasing pretix 4.16.0. With scheduled exports, mass emails to new recipient groups, and a fully reimplemented seating plan, this release includes a number of large new features.

Big thanks go to Aurélia Bouyge, Christophe Piret, Fabian, Fazenda Dengo, Ismael Menéndez Fernández, Julian Rother, Julius Störrle, Maurice Kaag, Mie Frydensbjerg, Mossroy, and tree who contributed to this release. ❤️

pretix 4.16.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.

Scheduled exports

We improved the usability of our data export system by grouping all export formats into categories that make it easier to find the right report. We also improved on the way you enter date ranges: Instead of manually selecting the start and end date, you can now choose from popular options like "yesterday" or "last week".

The biggest feature though, is that you can now schedule an export to be automatically executed on a regular basis. For example, you can configure pretix to send out an export of all invoice data of the previous week on every Monday. The export will be sent to you via email at the scheduled time, but you can also add additional recipients that do not need to have an account within the system. This is very useful if you need to provide some reports regularly to e.g. your accounting department or your boss.

Mass emails to more recipient groups

pretix always included the functionality to email every customer who ordered a ticket for your event. Starting with this release, you can now send emails to other groups of recipients as well, such as everyone waiting for a ticket on the event's waiting list.

The new feature also allows plugins to register additional groups of recipients. As a first example, the exhibitors plugin now includes a way to email all exhibitor contacts at once.

New seating plan

As a long-term effort over the last year, we have completely re-implemented our seating plan module from scratch. While there is not much difference on first sight, there are a number of significant improvements in the details. The general user experience has been improved, especially for mobile devices. A new filter option allows users to only select seats form a specific category, making it easier to find a seat that fits the budget.

Since the new seating plan is usable with keyboard navigation, it is also much more accessible. We've enabled a beta version of it for some customers on pretix Hosted a while back and received feedback from blind users saying that this is the first seating plan on a ticketing website they could ever actually use.

After extensive testing, the new plan is now active for all customers. We ourselves are most excited that the new plan gives us much more flexibility building new features, and we plan on building a much better backend experience over the following months.

Here's an interactive demo of the new plan:

Personalization of tickets

For many years, pretix allowed you to differentiate between "admission products" and "non-admission products". This distinction confused many of our users, since it had multiple effects:

  • Only sales of admission products are counted as "attendees" for some statistical purposes.

  • Only sales of admission products have ticket downloads enabled by default (can be changed in event settings or in product settings).

  • Only sales of admission products are considered by some plugins, such as the "certificates of attendance" plugin.

  • All sales of admission products required entering an attendee name, email address and other data, as configured in the event settings.

Especially the last effect on that list regularly caused problems, as often times it is desirable to have tickets that do require entering a name and tickets that don't in the same event, even though both of them should be classified as "admission products" since they grant admission to the event.

With this version, we're therefore introducing a separate switch that allows you to specifically turn off the personalization feature of an admission product.

Deprecation of MySQL/MariaDB support

We hereby announce that future releases of pretix will support PostgreSQL as the only database for production setups. Use of MySQL and MariaDB will no longer be possible. This does not affect you if you use pretix Hosted.

We know this may be quite inconvenient to you if you are currently using pretix Community or pretix Enterprise with MySQL or MariaDB as your database. We have pondered this decision for multiple years now and believe it is the best way forward for pretix. Supporting just one database for production setup will make it much easier for us to design and develop for optimal performance and stability. It will also allow us to make use of some database-specific features of PostgreSQL to make pretix more powerful.

According to our current plans, the last release supporting MySQL and MariaDB will be released end of April, 2023. We have published a migration guide that shows you how to move your data from MySQL to PostgreSQL step by step.

If you are a pretix Enterprise customer and are affected by this, please feel free to contact us before you start with the migration. We are happy to help you in planning the migration.

Migration guide

SQLite will still be usable for test and evaluation purposes, but continues to receive no support for production-grade setups.

Smaller changes and bugfixes

Ticket shop and widget

  • In 48 countries, addresses (such as invoice addresses) are now validated against a set of simple validation rules. Mostly, we check that ZIP codes / postal codes follow the correct format. We also changed the check for completeness in many of these countries, such that all fields of the address are required.

  • When filling out questions, the "copy from above" button now copies from the directly preceeding form, not from the first one on the page.

  • The styling of "change" links, for example on the order confirmation page, has been adjusted for better visibility.

  • The widget now properly displays the waiting list in events that only include a seating plan.

  • The widget no longer claims a product to be "free" if there are mandatory non-free addons, similar to the standalone shop.

  • Stripe: The public label of the "Sofortüberweisung" payment method has been changed to be more recognizable.

  • PayPal: Multiple bugs and usability issues have been fixed.

  • The calendar file representation of events no longer includes multiple lines in the location field (which broke some clients).

  • The "contact organizer" link now always opens in a new window to prevent issues with the widget.

  • The list of orders within a customer account now shows the event date.

  • Two regressions from 4.15 around gift card handling have been fixed.

  • A useless "add to cart" button has been removed on events that only have a seating plan.

  • A styling issue displaying sold-out events on the organizer page has been fixed.

  • A styling issue concerning the focus state of an event logo has been fixed.

Ticketing backend and configuration

  • Product metadata can now be overridden for individual product variations.

  • The bank transfer payment method now includes a new option to allow customers to enter a separate email address for receiving invoices. The invoice will also be sent to that address, making it possible to directly submit the invoice to the customer's accounting department.

  • Performance was improved in a number of areas. Most significantly, the list and statistics about people currently "present" according to check-in data are a lot faster now for large data sets.

  • A bug in the PDF editor has been fixed that could cause PDF files to be unreadable in Acrobat Reader if an empty PDF file was used as a background. If you are affected by this bug, please open the ticket layout, click "Create empty background" again and save.

  • The detail view of a customer account now shows the lifetime spending amount of this customer.

  • Team members with the "can check-in orders" and "can view orders" permission can now perform check-ins through the regular check-in list view in the backend, instead of only through the "web checkin" plugin.

  • When changing the name format for an existing event, compatibility is now better kept when editing existing records.

  • The invoice PDF renderer now cleans unwanted HTML content consistently across the different parts of the invoice.

  • Excel exports are now automatically stripped of invalid binary data that causes exports to fail.

  • It is now possible to perform consecutive password resets within the same rate limit interval, if each of the password resets was successful.

  • The user experience for users with read-only access has been improved (a few non-functioning buttons have been removed).

  • The list of devices now shows only active devices by default.

  • Check-in lists no longer show the symbol for an automated check-in in case a user was automatically checked out.

  • It is no longer possible to create a product that requires a membership without selecting at least one membership type.

  • The email data shredder has been extended to shred more log entry types.

  • The "Notify customer" checkbox in the "Change orders" view is now off by default.

  • Small improvements in the bank transfer recognition engine should lead to higher detection rates of order codes in some cases.

  • For pretixPOS payments with ZVT payments, the backend now shows additional payment details.

  • Tax rates are now validated to be between 0 and 100 %.

  • When uploading images, the size is now checked against a maximum size in pixels to prevent issues when resizing the images later.

  • When editing check-in list rules, you can now search for products using their internal name.

Updates to official plugins and tools

Almost all of our plugins have received an update today to make use of the new export categorization and ensure compatibility with future releases of pretix. We do not list all of them here, only the following plugins receive new features in their update:

  • The Exhibitors plugin has been released in version 1.2.0 to allow mass emailing to exhibitors.

  • The Mollie plugin has been released in version 1.5.1 to add support for additional payment methods such as Apple Pay and Przelewy24.

  • The Passbook plugin has been released in version 1.11.1 to allow customizing text and background colors.

  • The Reports plugin has been released in version 1.15.1 to update all supported included exporters to properly use the new export capabilities. Additionally, a few minor bugs are fixed.

  • The Resellers plugin has been released in version 2.7.0 to add minor features such as filtering the event list by organizer.

  • The Seating plugin has been released in version 2.0.0 to include the new renderer mentioned above. The plugin still contains the code for the old renderer until the next release to ease migration for other plugins.

  • The SEPA Debit plugin has been released in version 2.1.1 to fix a bug in the organizer-level data export.

  • The Shipping plugin has been released in version 1.16.0 to add zip code validation and adjust styling to changes in the core system.

Removal of plugins

  • The plugin "pretix Webinar" will be removed after February 28th, since it is no longer in use by any clients. Connecting pretix to online events can be done e.g. through the "Digital Content" plugin or through a direct connection to a platform like Venueless, talque, Scoocs, etc. All customers who used it in the past have received an email with more detailed information a few weeks ago.

  • The plugin "Facebook Tab" has been removed in December since it integrates with a Feature that has been dropped by Facebook.

Runtime and server environment

  • Update warning: The next version of pretix will require Python 3.9 or newer.

  • A bug has been fixed that cause unnecessarily large-scale database locks.

Plugin API changes

There are no significant changes to the plugin API in this release, but we want to give advance notice that we will upgrade to the Django 4.x series in one of the next pretix releases. If you have any custom plugins, you will very likely need to change them. Some changes you should look into – as they affect many pretix plugins – are:

You can follow the process on our end here.

REST API changes

  • It is now possible to create and modify ticket layouts through the API.

  • A bug has been fixed in interpreting the include query parameter in the list of orders.

  • The ordering query parameter is now supported for the list of check-in lists.

  • The default ordering of check-in list positions has been changed.

Raphael Michel

Raphael is the founder and main developer of pretix. He is passionate about user-friendly, elegant software, and when he's not busy building software for conference organizers, he enjoys co-organizing con​fer​en​ces himself.

Read more blog posts

Any questions?
+49 6221 32177-50 Mo-Fr 09:00-17:00 Uhr