pretix

Release 1.7.0 of pretix

Sept. 5, 2017

Following our monthly release schedule, we today release the eighth stable version of pretix. Big thanks go out to Jan Felix Wiebe, Laura, luto, Martin Gross, Sanket Dasgupta, Tobias Kunze, and Tobias Preuss, who contributed to this release. ❤️

This release, as the ones before, brings a number of larger and lots of small changes.

pretix 1.7.0 is now available for installation via pip. The new docker images will appear on Docker Hub over the next few hours.

New feature: Tax rules and reverse charge

In this release, we redesigned how taxation works in pretix. Previously, all prices had to be configured as gross value and could optionally specify a tax rate that is included in the price.

Now, you can define one or multiple tax rules and assign each product to one of them. This allows you to have multiple tax rates with different names and additionally allows you to control paramaters of the tax calculation, such as treating the configured prices as net prices instead.

Additionally, you can configure a tax rule to implement the rules of EU reverse charge taxation if that is applicable to your event. Since this is an advanced feature, we recommend reading the new chapter of our User Guide first.

New pretixdroid release

Our ticket scanning app pretixdroid is now available in version 1.6 on the Google Play Store and on GitHub. It has been updated with a number of exciting features:

  • An info view has been added that shows the total number of tickets as well as the number of tickets already scanned, both for every product and variation in detail and summed for the event. This gives you a quick overview of how many people you can still expect.

  • Products can now be marked as requiring special attention during check-in. This will lead to a blinking note in the scanner view, useful e.g. for student tickets that require checking of a student ID or tickets requiring a proof of age.

  • When scanning a ticket that does not have an attendee name attached, the name of the invoice address is shown instead.

  • Instead of a single configuration QR code in the backend, you can now create multiple configuration codes that are for example restricted to specific products or restrict special features. This way, you can for example have seperate entries for regular tickets and VIP tickets and avoid accidentally scanning tickets at the wront entry. Also, you can hide the new information screen from your scanning staff or disallow searching for names to enhance the privacy of your attendees.

New feature: Ticket download reminders

It is now possible to configure an email that will automatically sent a few days before your event to remind everyone to download their ticket. This is disabled by default, but might come very useful since you probably will have other things in your mind a few days before the event. Just configure it now and forget about it!

New feature: Event meta data

If you have lots of events, it is easy to lose oversight. Therefore, you can now configure a set of customized meta data parameters in your organizer account that you can then set for every event and for every date in an event series. You can currently use these parameters in your PDF ticket layouts and we will add other places later.

Smaller changes and bugfixes

  • To improve user security, sessions in the control panel now expire after 12 hours and require re-entering the password after 3 hours of inactivity by default. During login, a checkbox can be set to make the session permanent. This checkbox can be disabled by system administrators using the long_sessions option.

  • Creating an invoice for a refunded order now also automatically creates a cancellation. For old refunded orders with a non-canceled invoice attached, a cancallation can now be created manually.

  • Fonts provided by fontpack plugins can now be used as webfonts for the shop.

  • The lists of events and event series dates can now be sorted by the values of various columns.

  • Modifying ticket output provider settings or PDF layouts now correctly leads to a re-generation of all cached tickets.

  • The User Guide has been extended with more pages.

  • It is no longer possible to create order positions with negative values using vouchers.

  • Free tickets are now displayed with the text "FREE" instead of the amount "0.00".

  • The performance of order search has been improved.

  • pretix now refuses to start if the PRETIX_CONFIG_FILE environment variable is set explicitly but the file cannot be opened.

  • An exception during voucher creation has been fixed.

  • The team member list now shows which team members have two-factor authentication enabled.

  • Combined Ticket-PDFs are now correctly re-generated if ticket PDFs are changed.

  • The MT940 import has been improved to parse files more deeply and to recognize the .sta file extension.

  • The event list and dashboard now handle date display of event series in a useful manner.

  • The dashboard and statistics views of event series now allow to select a date from the series.

  • The global dashboard now shows the number of order and status of events.

  • All organizer pages now feature both calendar and list view. The setting in the organizer now only controls the default that is shown.

  • The question forms when modifying question answers are now always in correct order.

  • Linebreaks in bank transfer details are now rendered correctly in emails.

  • When using Stripe, the interface now refuses continuing with the checkout process before the Stripe JavaScript code has loaded, therefore avoiding confusing error messages.

  • When entering Stripe API keys, the interface now enforces that you enter the secret and private keys into the correct fields.

  • A bug during counting the number of order positions in the order search has been fixed.

  • A bug in the display logic of the multi-ticket download buttons has been fixed.

  • A warning message is now shown if ticket downloads are enabled but no ticket provider is available.

Changes to official plugins

  • pretix-sepadebit has been released in version 1.2.1 to fix a translation error.

REST API changes

  • The Event and Subevent resources now feature a new meta_data field.

  • The Invoice resource now has a number of new attributes related to the new tax handling.

  • The Order resource now has two new fields on the invoice_address sub-object and a new sub-object fees. The payment_fee, payment_fee_tax_rate, and payment_fee_tax_value attributes are deprecated and will be removed in version 1.9.

  • The OrderPosition resource now has a new field tax_rule.

  • A new resource TaxRule has been added.

  • The Item resource now references a tax rule instead of a tax rate. The old field is kept for backwards-compatibility.

  • The Item resource has a new attribute checkin_attention.

Plugin API changes

  • The handling of plugin urls has changed. The @event_view decorator has been deprecated and does nothing. Instead, the same functionality is applied automatically and the active status of the plugin is checked. You do not need to change anything, except if you used to set require_live=False. In this case, you need to change your URL configuration. Read the documentation to learn more.

  • The payment_fee attribute and related attributes have been removed from the Order model in favour of a new OrderFee model.

  • A new signal pretix.control.signals.voucher_form_validation has been added.

Thank you very much!

Some of the improvements in this release have been possible as a result of work sponsored by our friends at ERNW Insight and subkom GmbH.

Thank you both very much for supporting our open source efforts!

If you are also interested in sponsoring us to work on specific features, please get in touch with us.

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