Release 4.2.0 of pretix
Today, we are releasing pretix 4.2.0. Summer is always a special time of the year – a mix of vacations, busy day-to-day work, and some quiet time to work on long-term improvements change the structure of work that is happening. Like in previous years, we've therefore skipped one monthly release. Today's release is also mostly a maintenance release, fixing lots of bugs and improving on smaller features throughout the system. Big new features will be arriving next again next month!
Big thanks go to Abdullah, Alberto Leoncio, Amanda Jurno, Björn Out, Bruno, dedecosta, Fabian, Frank, Hans Fraiponts, Maarten van den Berg, Michael, nd, René Georgi, and Svyatoslav who contributed to this release. ❤️
pretix 4.2.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.
Smaller changes and bugfixes
Ticket shop and widget
-
The language of the order confirmation message for free orders requiring approval has been updated to no longer indicate a payment process.
-
Event logos in emails are now responsive in mobile email clients and are shown in MS Outlook.
-
The widget now supports paginated lists of dates in an event series.
-
The "Modify order information" view no longer exposes internal product names.
-
A Safari-specific issue has been fixed that caused users to get stuck after pressing the "back" button in some checkout steps.
-
Logout of customer accounts now works correctly even if event-level domains are used.
-
If a payment method is limited to specific countries and no invoice address is known, the system will now still check for other requirements before it shows the payment message.
-
PDF generation: Add-on products now correctly inherit question answers from top-level products.
-
Self-service cancellation: A bug has been fixed that caused customers of free tickets to be asked about cancellation fees.
-
Self-service cancellation: Cancellation fees are now capped at the total amount of the order.
-
Event calendar: A bug in the month selection component has been fixed.
-
Widget: A bug has been fixed causing the widget to crash if availability of a date was unknown.
-
Widget: If a voucher is required to purchase a product, clicking on the "voucher required" message now takes the user directly to the voucher input field.
-
Stripe: A bug has been fixed preventing Apple Pay to work correctly for new customers with custom domains.
-
Invoices: The metadata (invoice number, date) will now automatically be resized to a smaller font size if the invoice numbers are very long.
-
A rare crash on the ticket download page has been fixed.
Ticket scanning
-
A ticket no longer counts as "already used" if it has only ever been scanned at an exit.
-
Handling of late uploads of unknown ticket codes has been improved.
-
A race condition in saving answers to questions has been fixed.
-
Web check-in: The ticket secret of the scanned ticket is now shown on screen.
Ticketing backend and configuration
-
The list of dates in an event series can now be filtered by time of day and by multiple week days.
-
A bug has been fixed that caused newly created events to be created without any plugins enabled by default.
-
The list of connected devices can now be filtered and sorted.
-
When bulk-creating dates in an event series and one date falls into an ambiguous time frame (such as during a DST switch), the system will now silently chose the first matching time instead of crashing.
-
The check-in list view can now be filtered by event series date.
-
PDF layouts: A new variable is now available for the combination of order code and ticket sequence number, i.e.
ABCDE-3
. -
A new security profile for devices has been added, allowing scan devices to search, but not bulk-download order data.
-
When sending mass emails, preview is now mandatory and also shows the number of orders matching the criteria to avoid sending way too many emails.
-
Order import: Importing phone numbers is now supported.
-
Order import: A race condition has been fixed that caused an error message to be shown after the import even if the import was successful.
-
Order import: Fully empty lines are now ignored.
-
Check-in history: Fix incorrect links to products.
-
Canceled orders can now still be marked as "underpaid" (this can only happen with negative order totals).
-
When changing seating plans, it is now allowed to remove seats that have been sold if the respective orders are canceled. These orders will be transformed to unseated tickets.
-
PayPal: You can now configure a postfix that we pass to PayPal together with the order number to automatically detect pretix-related payments in your systems.
-
Filtering forms above lists now follow a more consistent styling.
-
A bug has been fixed causing bulk-editing of event series dates to exclude check-in lists even when all check-in lists are set up the same.
-
Webhook URLs can now be up to 255 characters long.
-
Lists with more than 1000 results now show their number of results with a thousand separator.
-
The "Regenerate invoice" button is now disabled by default and might be removed in future versions of pretix. For now, it can be re-enabled in the organizer settings.
-
Organizer-level exports now work correctly in admin mode.
-
Deleting products that can't be deleted due to plugin constraints now shows an error message instead of crashing.
-
Fix missing labels for the reservation time setting in the event settings.
-
Fix a crash caused by the backend trying to cancel orders that have already been canceled.
-
Uploading invalid logo images no longer causes a crash of the event page.
Runtime and server environment
-
A race condition has been fixed that caused crashes on long-running tasks.
-
We've adjusted the nginx configuration inside our Docker container as well as our documented nginx setup to stop nginx from rewriting paths, thereby fixing a bug when a ticket secret contains
//
. This might not be backwards-compatible if you have API consumers who (incorrectly) pass//
instad of/
in some URLs. -
We've updated the installation guide in our documentation with tips on how to avoid exposing ports to the outside world accidentally.
Updates to official plugins and tools
-
The Campaigns plugin has been released in version 1.4.0 introducing support to directly link to sub-pages of the event such as voucher redemption pages. to add compatibility for Slack's new OAuth version.
-
The Certificates plugin has been released in version 1.6.0 introducing a simple REST API endpoint.
-
The COVID Certificates plugin has been released in version 1.1.0 introducing support for "other proofs".
-
The Double Opt In Step plugin has been released in version 1.0.1 to make some texts more configurable. introducing support for "other proofs".
-
pretixPOS has been released in version 2.6.0 with various tiny new features and bugfixes.
-
The pretixPOS bakcend plugin has been released in version 2.1.0 to add support for new pretixPOS features and add a data export option.
-
The Passbook plugin has been released in version 1.9.0 to fix overlapping text in pass headers.
-
The Reports plugin has been released in version 1.11.0 to add an exporter reporting attendance numbers and fix a few minor bugs.
-
The Shared Reports plugin has been released in version 1.4.0 adding support for filtering ranges of event series dates as well as additional reporting on check-ins.
-
The Shipping plugin has been released in version 1.13.1 to ensure compatibility with pretix 4.2. adding support for filtering ranges of event series dates as well as additional reporting on check-ins.
-
The Slack plugin has been released in version 1.4.0 to add compatibility for Slack's new OAuth version.
-
The Sofort plugin has been released in version 1.3.5 to fix a crash processing some payments.
Additionally, our client applications (pretixPOS, pretixSCAN) can now be downloaded from pretix Marketplace e.g. if Google Play is not available on your device.
Plugin API changes
-
We've added an
OrderFee.FEE_TYPE_INSURANCE
constant for your convenience. -
The
event_copy_data
signal now receives aquota_map
argument. -
The exporter base class added a second
organizer
argument to the__init__
method.
REST API changes
-
We've added an experimental endpoint to bulk-create cart positions.
-
The API now allows you to request a lower page size.