df0b580dd6
Pluggable permissions ( #5728 )
...
* Data model draft
* Refactor query and assignment usages of old permissions
* Backend UI
* API serializer
* Big string replace
* Docs, tests and fixes for teams api
* Update docs for device auth
* Eliminate old names
* Make tests pass
* Use new permissions, remove inconsistencies
* Add test for translations
* Show plugin permissions
* Add permission for seating plans
* Fix plugin activation
* Fix failing test
* Refactor to permission groups
* Update doc/api/resources/devices.rst
Co-authored-by: luelista <weller@rami.io >
* Update doc/api/resources/events.rst
Co-authored-by: luelista <weller@rami.io >
* Update src/pretix/api/serializers/organizer.py
Co-authored-by: luelista <weller@rami.io >
* Fix typo
* Fix python version compat
* Replacement after rebase
* Add proper permission handling for exports
* Docs for exporters
* Runtime linting of permission names
* Fix typos
* Show export page even without orders permission
* More legacy compat
* Do not strongly validate before plugins are loaded
* Rebase migration
* Add permission for outgoing mails
* Review notes
* Update doc/api/resources/teams.rst
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
* Clean up logic around exporters
* Review and failures
* Fix migration leading to forbidden combination
* Handle permissions on event copying
* Remove print-statements
* Make test clearer
* Review feedback
* Add AnyPermissionOf
* migration safety
---------
Co-authored-by: luelista <weller@rami.io >
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-03-17 14:43:56 +01:00
rash
16245aa516
Remove ResizeObserver check and fallback in widget ( #5999 )
2026-03-17 11:59:45 +01:00
Richard Schreiber
ed1966bc96
Improve autofill for peppol BE (Z#23224796) ( #5992 )
2026-03-16 10:48:05 +01:00
Raphael Michel
7b296107c5
Invoice address: Fix broken autofill for Peppol ID (Z#23224796) ( #5971 )
...
* Invoice address: Fix broken autofill for Peppol ID (Z#23224796)
* Fix wrong prefix
2026-03-10 09:54:54 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
034d6b997e
Bump minimatch from 3.0.4 to 3.1.5 in /src/pretix/static/npm_dir ( #5937 )
...
Bumps [minimatch](https://github.com/isaacs/minimatch ) from 3.0.4 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.5 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 3.1.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 13:52:50 +01:00
Ananya and Richard Schreiber
2066471086
Fix #1907 – Obfuscate contact email addresses in public HTML ( #5477 )
...
* Include nix development enviornment
* Obfuscate contact email addresses in shop HTML and deanonymize via JavaScript
This change addresses #1907 : "hide contact e-mail address in source code
of a shop".
- Contact email addresses rendered in public-facing templates are now
obfuscated in the HTML source (e.g., replacing "@" with "[at]" and "."
with "[dot]").
- A new JavaScript file is included in the relevant templates to
automatically rewrite and restore the email address for users after the
page loads.
- This approach helps protect email addresses from basic harvesting bots
and reduces spam, while keeping them accessible and user-friendly for
human visitors.
- The obfuscation and deanonymization logic is only applied to web
templates, not to emails sent via pretix.
This implementation follows the recommendations discussed in #1907 ,
using a standardized, maintainable approach that’s compatible with
pretix's asset pipeline and template structure.
* Undo nix development environment for merge into main
* convert complete mailto-link to HTML entities
* remove gitignore noise
* Update .gitignore
* fix gitignore noise
* Update .gitignore
---------
Co-authored-by: Richard Schreiber <schreiber@rami.io >
2026-02-27 08:50:33 +01:00
Richard Schreiber
4d60d7bfbc
Fix widget quantity prefill ( #5886 )
2026-02-12 12:04:11 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
cead2898a7
Bump @babel/preset-env from 7.28.5 to 7.29.0 in /src/pretix/static/npm_dir ( #5867 )
...
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env ) from 7.28.5 to 7.29.0.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.29.0/packages/babel-preset-env )
---
updated-dependencies:
- dependency-name: "@babel/preset-env"
dependency-version: 7.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 13:43:13 +01:00
Raphael Michel
8c4e0bdb82
Outgoing mails: Fix cross-browser support
2026-01-30 11:37:10 +01:00
Raphael Michel
c40e34af57
Model-based mail queuing
2026-01-30 10:43:02 +01:00
Raphael Michel and Richard Schreiber
26fdcc2872
Order changes: Do not allow to double-book add-ons (Z#23220592) ( #5851 )
...
* Order changes: Do not allow to double-book add-ons
* tests
* Update src/pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-01-29 20:42:43 +01:00
Richard Schreiber
0e5e2193ed
Fix auto-quantity change on free-price input
...
* Fix auto-quantity change on free-price input
* do not use one()
2026-01-29 14:19:09 +01:00
Richard Schreiber
803d0b1570
Fix missing locale in widget waitinglist
2026-01-26 16:52:37 +01:00
Raphael Michel and Richard Schreiber
8e61ac6071
Invoice address: Add convenient autofill for Pepppol in Belgium (Z#23220397) ( #5809 )
...
* Invoice address: Add convenient autofill for Pepppol in Belgium (Z#23220397)
* Update src/pretix/static/pretixbase/js/addressform.js
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-01-26 09:12:07 +01:00
Kian Cross
a0dae48cec
Prevent double-clicks on SSO login providers ( #5842 )
2026-01-26 08:31:30 +01:00
Raphael Michel
fc4ce102b6
Widget: Hide dialogs by default
2025-12-22 09:26:47 +01:00
Raphael Michel
510c4850a5
Merge branch 'Add-Promptpay-for-stripe' ( #5670 )
2025-12-12 09:08:12 +01:00
Raphael Michel and luelista
5a1bcae085
Invoice address: Improve VAT ID input ( #5647 )
...
* Remove unmaintained depdendency vat_moss
* VAT ID normalization: Auto-add country codes
* VAT ID: County-specific labels
* Invoice address: Allow to set VAT ID as required per country
* Fix failing tests
* Update src/pretix/base/settings.py
Co-authored-by: luelista <weller@rami.io >
* Review fixes
---------
Co-authored-by: luelista <weller@rami.io >
2025-12-03 16:48:19 +01:00
Raphael Michel
d3fde85c39
Fix typo in CSS variable
2025-12-02 17:47:45 +01:00
Raphael Michel
bd554c7c29
Update remaining icon files
2025-12-01 13:41:06 +01:00
Raphael Michel and Richard Schreiber
0f82e1cae6
Update pretix logo to new version ( #5651 )
...
* Update pretix logo to new version
* Make favicon transparent
* Update src/pretix/static/pretixcontrol/scss/main.scss
Co-authored-by: Richard Schreiber <schreiber@rami.io >
* Update src/pretix/static/pretixcontrol/scss/main.scss
Co-authored-by: Richard Schreiber <schreiber@rami.io >
---------
Co-authored-by: Richard Schreiber <schreiber@rami.io >
2025-11-27 16:05:30 +01:00
Raphael Michel and luelista
44804f05f3
Event quickstart: Fix fields being marked as optional ( fixes #3504 ) ( #5627 )
...
* Event quickstart: Fix fields being marked as optional (fixes #3504 )
* Revert accidental changes
* Update src/pretix/static/pretixcontrol/js/ui/main.js
Co-authored-by: luelista <weller@rami.io >
---------
Co-authored-by: luelista <weller@rami.io >
2025-11-18 15:46:11 +01:00
Raphael Michel and Richard Schreiber
eb740204d4
Invoice issuer address: Add state field ( #5603 )
...
* Invoice issuer address: Add state field
* Update src/pretix/base/settings.py
Co-authored-by: Richard Schreiber <schreiber@rami.io >
* Update src/pretix/base/models/invoices.py
Co-authored-by: Richard Schreiber <schreiber@rami.io >
---------
Co-authored-by: Richard Schreiber <schreiber@rami.io >
2025-11-14 09:56:46 +01:00
Raphael Michel
74b06435a0
Meta properties: Add helper to sort values (Z#23213668) ( #5597 )
2025-11-14 09:49:40 +01:00
Raphael Michel and Richard Schreiber
e99eecb8be
Product list: Show number of items currently in cart (Z#23212546) ( #5599 )
...
* Product list: Show number of items currently in cart
* Apply suggestions from code review
Co-authored-by: Richard Schreiber <schreiber@rami.io >
* Add display property
---------
Co-authored-by: Richard Schreiber <schreiber@rami.io >
2025-11-11 08:05:40 +01:00
luelista
1cb2d443f9
Validation of user email addresses ( #5434 )
...
* Validation of user email addresses
* Improve email and password change forms
2025-11-07 11:17:34 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
cd450f1780
Bump @babel/core from 7.28.4 to 7.28.5 in /src/pretix/static/npm_dir ( #5579 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.28.4 to 7.28.5.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-core )
---
updated-dependencies:
- dependency-name: "@babel/core"
dependency-version: 7.28.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 11:26:29 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
fc876978b2
Bump @rollup/plugin-babel in /src/pretix/static/npm_dir ( #5581 )
...
Bumps [@rollup/plugin-babel](https://github.com/rollup/plugins/tree/HEAD/packages/babel ) from 6.0.4 to 6.1.0.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/babel/CHANGELOG.md )
- [Commits](https://github.com/rollup/plugins/commits/url-v6.1.0/packages/babel )
---
updated-dependencies:
- dependency-name: "@rollup/plugin-babel"
dependency-version: 6.1.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-04 11:26:22 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
f0c3514588
Bump @babel/preset-env in /src/pretix/static/npm_dir ( #5580 )
...
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env ) from 7.28.3 to 7.28.5.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-preset-env )
---
updated-dependencies:
- dependency-name: "@babel/preset-env"
dependency-version: 7.28.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 17:40:47 +01:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e1ad4d9dba
Bump @rollup/plugin-node-resolve in /src/pretix/static/npm_dir ( #5578 )
...
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/HEAD/packages/node-resolve ) from 16.0.1 to 16.0.3.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/node-resolve/CHANGELOG.md )
- [Commits](https://github.com/rollup/plugins/commits/node-resolve-v16.0.3/packages/node-resolve )
---
updated-dependencies:
- dependency-name: "@rollup/plugin-node-resolve"
dependency-version: 16.0.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 17:40:15 +01:00
Richard Schreiber
7d5df2b69e
Fix required label for multi-checkbox form-groups ( #5568 )
2025-10-30 10:44:17 +01:00
Raphael Michel and luelista
1e0ede529c
Event cancellation: Add safety and security checks ( #5565 )
...
* Event cancellation: Add safety and security checks
When cancelling an event, a large sum of money might be refunded
instantly. This PR adds safety features around this by
- doing a dry-run first that shows a preview of the expected refund sum
- sending a confirmation mode via email for any automatic refunds of more than 100 currency units
- keeping a more detailed log of the settings this was executed with
* Update src/pretix/control/views/orders.py
Co-authored-by: luelista <weller@rami.io >
---------
Co-authored-by: luelista <weller@rami.io >
2025-10-29 08:53:48 +01:00
Richard Schreiber
0f25a1d6c8
Fix addressform handling reloading address-info while XHR-request is still running (Z#23210723) ( #5558 )
...
* Fix handling answers with null-value
* fix handling re-requesting the same url while XHR is still running
2025-10-21 08:43:12 +02:00
Phin Wolkwitz
8a3da37b45
Connect giftcards with customer accounts ( #5126 )
...
Connect giftcards with customer accounts, show giftcards during checkout and in account , show giftcard list in backend customer view
2025-10-16 13:20:00 +02:00
Raphael Michel
ebfcb6f7c8
Improve interface to create and edit subevents (Z#23207890) ( #5519 )
...
* Use select2 item input in newly added quotas
* Make submit row sticky on really long forms
* Only show product settings that match quotas
2025-10-15 09:13:05 +02:00
Raphael Michel
05e71d8e57
Update rrule.js to v2.7.2-14-g9f2061f ( #5538 ) (Z#23210685)
...
* Update rrule.js to v2.7.2-14-g9f2061f
* Prevent negative count
2025-10-10 15:18:54 +02:00
luelista
cd4759fb44
Checkinrules: Handle product and variation changes in editor (Z#23187877) ( #5537 )
...
If products or variations are deleted, show warning message. If they are renamed, update label.
2025-10-10 15:07:55 +02:00
luelista
bff0f54bf8
Fix formset widths ( #5530 )
...
* Remove explicitly specified width for formset-forms
With that style, all formset rows were a fix pixels less wide than surrounding content
* Set select2 width to 100% so they adapt when browser window is resized
2025-10-09 17:02:45 +02:00
Raphael Michel
802268df46
Fix ajax error not being shown
2025-10-08 09:47:09 +02:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5a2219124a
Bump @babel/core from 7.28.3 to 7.28.4 in /src/pretix/static/npm_dir ( #5506 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.28.3 to 7.28.4.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.28.4/packages/babel-core )
---
updated-dependencies:
- dependency-name: "@babel/core"
dependency-version: 7.28.4
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 09:32:02 +02:00
Richard Schreiber
b8b89f3040
Fix handling negative values in rrule (e.g. batch-adding subevents) ( #5476 )
2025-09-22 08:08:34 +02:00
Richard Schreiber
dd441c09f7
Control: remove noisy console.log from variations.js
2025-09-19 10:25:13 +02:00
Raphael Michel
2679f79c3b
Minor CSS fix for lists in tables
2025-09-12 15:32:36 +02:00
Richard Schreiber
38fae12c37
Fix waitingDialog being shown on browser history back ( #5437 )
...
* Fix waitingDialog being shown on browser history back
* Revert "Fix waitingDialog being shown on browser history back"
This reverts commit 1f56d97c69 .
* Use pageshow-event as suggested by luelista
2025-09-09 08:31:03 +02:00
Richard Schreiber
e34a3ab2ce
Fix html-based form errors not being scrolled to in iOS/Safari ( #5448 )
2025-09-09 08:20:54 +02:00
Raphael Michel
4148cc4664
Add pgettext to gettext stub
2025-09-05 17:37:18 +02:00
Richard Schreiber
422567a6b7
[A11y] update Select2 to 4.1.0-beta.1 for better a11y (Z#23198765) ( #5408 )
2025-09-03 08:59:38 +02:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6efcd4b983
Bump @babel/preset-env in /src/pretix/static/npm_dir ( #5419 )
...
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env ) from 7.28.0 to 7.28.3.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.28.3/packages/babel-preset-env )
---
updated-dependencies:
- dependency-name: "@babel/preset-env"
dependency-version: 7.28.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 14:50:54 +02:00
dependabot[bot] and dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
c29b7f28f1
Bump @babel/core from 7.28.0 to 7.28.3 in /src/pretix/static/npm_dir ( #5423 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.28.0 to 7.28.3.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.28.3/packages/babel-core )
---
updated-dependencies:
- dependency-name: "@babel/core"
dependency-version: 7.28.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-02 14:11:52 +02:00
Raphael Michel
f89a33862a
asynctask.js: Fix gettext being used before translations are loaded (Z#23204825) ( #5401 )
2025-08-22 10:48:53 +02:00