Martin Gross
f052015881
Apply suggestions from code review
...
Co-authored-by: robbi5 <maxi@richt.name >
2026-04-27 16:28:36 +02:00
Martin Gross
bdbafe4cf1
Remove debugging leftover
2026-04-27 14:45:41 +02:00
Martin Gross
0dc95a22df
Add Reusable Media Exchange to Checkin API
2026-04-27 14:37:51 +02:00
Raphael Michel
b000dff134
Invoices: Allow to use currency rates from National Bank of Poland ( #6100 )
2026-04-21 15:14:10 +02:00
pajowu
8690d65e99
Do not show payment text of canceled and failed payments on invoice (Z#23231070) ( #6075 )
2026-04-14 13:02:12 +02:00
Raphael Michel
23d1673403
Fix typo
2026-04-02 21:43:36 +02:00
Raphael Michel
92d1830f3b
Exporters: Pass state about staff_session
2026-04-02 21:03:42 +02:00
Raphael Michel
d411c36414
Exporters: Give access to authentication infos and allow empty permissions ( #5979 )
...
* Exporters: Give access to authentication infos
* Allow exporters to have empty permission
* Use a protocol
2026-04-02 15:44:36 +02:00
Raphael Michel
ed1459b1dd
Order change form: Allow to add multiple identical positions (Z#23227479) ( #6044 )
...
* Order change form: Allow to add multiple identical positions (Z#23227479)
* New implementation
2026-04-01 11:54:48 +02:00
Kara Engelhardt
49893ca9df
Fix crash in mail_send_task for nonexistant mails
2026-03-30 14:57:56 +02:00
Raphael Michel
e1b8e16a34
Permissions: Fix staff session handling for organizer exports ( #6005 )
2026-03-18 13:23:26 +01:00
Kara Engelhardt
d475cba820
Localize ical attachments (Z#23227987)
2026-03-17 15:32:51 +01:00
Raphael Michel
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
luelista
3352ee2bbe
Limits of the time machine feature (Z#23212144) ( #5952 )
...
* Add note about limits of the time machine feature
* Always check voucher validity against real time, not time machine time
2026-03-12 18:09:16 +01:00
Raphael Michel
4f449ce6b4
Mail: Handle all rendering in mail.py, return values for log ( #5895 )
...
* Mail: Handle all rendering in mail.py, return values for log
* Apply suggestions from code review
2026-03-10 09:53:09 +01:00
Raphael Michel
3d68bbb619
Order change manager: Recalculate tax of zero-valued positions (Z#23223874) ( #5938 )
2026-03-09 18:13:14 +01:00
Raphael Michel
3ce6dbf798
Mail: Remove redundant SQL queries ( #5896 )
...
On my local test event, this saved 75 queries on sending an email due to
an N+1 query problem in the metadata querying.
2026-03-09 13:53:20 +01:00
Raphael Michel
347337e76f
Invoice generation: Add way for renderers to signal they are not ready ( #5905 )
2026-03-09 13:52:11 +01:00
Richard Schreiber
a25bca7471
Fix static instance name in emails (Z#23224360) ( #5914 )
2026-02-25 13:19:53 +01:00
Raphael Michel
802c03f8f3
Mail: Fix stuck state when tickets are not available (Z#23225229) ( #5917 )
2026-02-22 16:58:41 +01:00
Lukas Bockstaller
fd9ed15065
include acceptor slug in log/webhook event ( #5906 )
2026-02-19 10:00:11 +01:00
Raphael Michel
ad752dc617
Fix placeholder injection with django templates
2026-02-13 13:36:12 +01:00
Raphael Michel
88c9f8c047
Remove duplicate rendering of plain content without variables
2026-02-13 12:30:01 +01:00
Raphael Michel
2d2663f15f
Mark strings as formatted to prevent double-formatting
2026-02-13 12:28:32 +01:00
Kara Engelhardt
ae6014708b
SECURITY: Prevent placeholder injcetion in plaintext emails
2026-02-13 12:28:32 +01:00
Lukas Bockstaller
99c257d392
adds webhooks for giftcards (Z#23205473) ( #5834 )
...
* adds giftcard webhook events
* maps issuer_id of giftcard to organizer_id for logging
* adds new giftcard logtypes for transactions that aren't manual
* log_action calls cleanup
* drop acceptance webhook
* add acceptor_id to the giftcard transaction webhook event
* add missing log_action statements
* add new webhooks to docs
* fix tests
* fix linting
2026-02-11 12:51:09 +01:00
Richard Schreiber
e2cb83ce28
Fix marking invoices transmitted for emails with uppercase letters ( #5885 )
2026-02-11 12:00:54 +01:00
Richard Schreiber
d4460045b4
Fix mail headers being None ( #5873 )
...
* Fix mail headers being None
* update tests
2026-02-03 11:26:26 +01:00
Raphael Michel
48aecb80f6
Mail compat layer: Disable scopes
2026-01-30 12:38:51 +01:00
Raphael Michel
d58a6e2503
Tax rounding: Allow to apply only for B2B (Z#23220106) ( #5810 )
...
* Tax rounding: Allow to apply only for B2B (Z#23220106)
Most effective in combination with #5807
* Update src/pretix/base/settings.py
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-01-30 11:53:38 +01:00
Raphael Michel
c40e34af57
Model-based mail queuing
2026-01-30 10:43:02 +01:00
Raphael Michel
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
Raphael Michel
8058461f10
Invoices: Allow issuing invoices only to businesses (Z#23220397) ( #5807 )
...
* Invoices: Allow issuing invoices only to businesses
In situations where every invoice has a significant accounting cost and
consumers usually do not need invoices, this can save a lot of money or
effort.
* Improve backend UI if not qualified for invoice
2026-01-26 09:52:19 +01:00
Raphael Michel
fd72e18a7f
Overview export: Allow to skip empty lines (Z#23219200) ( #5825 )
2026-01-23 11:18:07 +01:00
Raphael Michel
0259899e00
Discount: Respect addon grouping in line selection (Z#23220058) ( #5782 )
...
* Discount: Respect addon grouping in line selection (Z#23220058)
* Update src/pretix/base/models/discount.py
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-01-16 15:23:59 +01:00
Luca Sorace "Stranck
8cc12fa1c7
OrderChangeManager: add_position() returns a handle to the newly created position ( #5557 )
...
* OrderChangeManager: Add support for custom operations
* OrderChangeManager: Add callback to AddPosition operation
This is also meant as a way to fix #5548
* Refs #5557 : Checkstyle fix
* Refs #5557 : Added tests
* Refs #5557 : Changes requested in the PR review
* Refs #5557 : Fix error in previous merge conflict
* Refs #5557 : PR review
2026-01-05 17:34:53 +01:00
Raphael Michel
308e14bab3
Mail settings: Correctly declare plaintext email (Z#23218835) ( #5738 )
...
* Mail settings: Correctly declare plaintext email (Z#23218835)
* Apply suggestions from code review
Co-authored-by: luelista <weller@rami.io >
* Update escaping
* Escaping update
---------
Co-authored-by: luelista <weller@rami.io >
2026-01-05 12:33:43 +01:00
Raphael Michel
409e64d5f2
Fix off-by-one error in voucher validation during cart extension ( #5716 )
...
* Fix typo in calculation
* Do not double-call extend_expired_positions in tests, make it private
2025-12-18 14:47:56 +01:00
Raphael Michel
e466c4fb72
Refactor validation of cart contents, fix purchase of inactive subevent (Z#23217806) ( #5715 )
...
* Refactor validation of cart contents, fix purchase of inactive subevent (Z#23217806)
* Apply suggestions from code review
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
* Review notes
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2025-12-17 16:59:26 +01:00
Raphael Michel
b895d9bbca
Import large package lazily to speed up startup ( #5636 )
...
* Import large package lazily to speed up startup
* Make all jsonschema imports lazy
2025-12-09 09:52:53 +01:00
Raphael Michel
8d66e1e732
Cart extension: Fix bundled product being removed from cart when sold out ( #5690 )
...
Instead, the entire bundle must be removed as it may not be sold
individually.
2025-12-04 11:48:40 +01:00
Richard Schreiber
c925f094f2
Reduce item event queries in waitinglist assign
2025-12-04 11:01:30 +01:00
Raphael Michel
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
bdd94b1f8a
Add prioritization to webhook/notifications queue ( #5513 )
...
* Add prioritization to webhook/notifications queue
* Add missing code
* Missing license header
* Fix argument
* Use redis pipeline
* Update license header
2025-12-02 09:13:01 +01:00
Raphael Michel
fdd34f387a
[SECURITY] Prevent HTML injection through placeholders in emails
...
Co-authored-by: luelista <weller@pretix.eu >
2025-11-27 11:41:27 +01:00
Raphael Michel
4dc5bbae06
Invoices: Increase retry interval ( #5640 )
...
e.g. Invopop states that receipt confirmation in italy can take 24h
2025-11-19 12:30:37 +01:00
Richard Schreiber
5e828ab8af
Fix tax-code keying function for tax-recalc ( #5637 )
2025-11-18 15:03:33 +01:00
luelista
a814d31c9b
Re-check maximum order size during _perform_order (Z#23213046) ( #5586 )
...
* Re-check maximum order size during _perform_order (Z#23213046)
* Add test case
2025-11-14 10:01:51 +01:00
Raphael Michel
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
Richard Schreiber
0b46982e6d
Allow blocked seats to be booked in backend ( #5585 )
2025-11-06 08:02:42 +01:00