Commit Graph

355 Commits

Author SHA1 Message Date
Raphael Michel
04fae9ea14 Fix code style issue 2025-10-29 10:17:43 +01:00
Raphael Michel
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
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
177a7d07fc Update license header (#5540) 2025-10-10 15:32:46 +02:00
✨ Q (it/its) ✨
7037f348bf remove infinite loop when output plugin provides a URI for a whole order (#5474) 2025-09-23 18:26:38 +02:00
Raphael Michel
fb8a8142d9 Scheduled exports: Check permissions on creation 2025-09-22 10:22:12 +02:00
Raphael Michel
fe9a7eaa24 Order overview: Try to make linked filters behave as expected for line-level cancellations (Z#23203500) 2025-08-22 09:30:34 +02:00
Raphael Michel
05c74b7ad6 Pluggable invoice transmission methods (#5020)
* Flexible invoice transmission

* UI work

* Add peppol and output

* API support

* Profile integration

* Simplify form for individuals

* Remove sent_to_customer usage

* more steps

* Revert "Bank transfer: Allow to send the invoice direclty to the accounting department (#2975)"

This reverts commit cea6c340be.

* minor fixes

* Fixes after rebase

* update stati

* Backend view

* Transmit and show status

* status, retransmission

* API retransmission

* More fields

* API docs

* Plugin docs

* Update migration

* Add missing license headers

* Remove dead code, fix current tests

* Run isort

* Update regex

* Rebase migration

* Fix migration

* Add tests, fix bugs

* Rebase migration

* Apply suggestion from @luelista

Co-authored-by: luelista <weller@rami.io>

* Apply suggestion from @luelista

Co-authored-by: luelista <weller@rami.io>

* Apply suggestion from @luelista

Co-authored-by: luelista <weller@rami.io>

* Apply suggestion from @luelista

Co-authored-by: luelista <weller@rami.io>

* Apply suggestion from @luelista

Co-authored-by: luelista <weller@rami.io>

* Make migration reversible

* Add TransmissionType.enforce_transmission

* Fix registries API usage after rebase

* Remove code I forgot to delete

* Update transmission status display depending on type

* Add testmode_supported

* Update src/pretix/static/pretixbase/js/addressform.js

Co-authored-by: luelista <weller@rami.io>

* Update src/pretix/static/pretixbase/js/addressform.js

Co-authored-by: luelista <weller@rami.io>

* Update src/pretix/static/pretixbase/js/addressform.js

Co-authored-by: luelista <weller@rami.io>

* New mechanism for non-required invoice forms

* Update src/pretix/base/invoicing/transmission.py

Co-authored-by: luelista <weller@rami.io>

* Declare testmode_supported for email

* Make transmission_email_other an implementation detail

* Fix failing tests and add new ones

* Update src/pretix/base/services/invoices.py

Co-authored-by: luelista <weller@rami.io>

* Add emails to email history

* Fix comma error

* More generic default email text

* Cleanup

* Remove "email invoices" button and refine logic

* Rebase migration

* Fix edge case

---------

Co-authored-by: luelista <weller@rami.io>
2025-08-19 17:59:45 +02:00
Raphael Michel
7cdccc7d8e Bulk order-refund: Create log entries (Z#23203462) (#5357) 2025-08-19 12:09:23 +02:00
Raphael Michel
727ed67ff4 Orders: Prevent race condition in manual status transition (Z#23203887) (#5385) 2025-08-19 12:01:03 +02:00
Raphael Michel
423f0cbb90 Add button to reset entire check-in stack (Z#23188730) (#5312)
* Show print logs to admins

* Add button to reset entire check-in stack (Z#23188730)

* isort

* Update src/pretix/control/templates/pretixcontrol/checkin/reset.html

Co-authored-by: Richard Schreiber <schreiber@rami.io>

* Update src/pretix/control/templates/pretixcontrol/checkin/reset.html

Co-authored-by: Richard Schreiber <schreiber@rami.io>

* Update src/pretix/control/templates/pretixcontrol/checkin/reset.html

Co-authored-by: Richard Schreiber <schreiber@rami.io>

* Update src/pretix/control/templates/pretixcontrol/checkin/lists.html

Co-authored-by: Richard Schreiber <schreiber@rami.io>

---------

Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-07-18 10:02:18 +02:00
Raphael Michel
f51906338f Order detail: Set correct language for invoice email (Z#23197863) (#5260) 2025-06-24 16:14:33 +02:00
Mira
695e817f99 Fix Exception when displaying mail_history (PRETIXEU-BB0) (#4934)
* Fix Exception when displaying mail_history

Log entries of type pretix.plugins.banktransfer.order.email.invoice had type(invoices) == int instead of list

* Update src/pretix/control/views/orders.py

Co-authored-by: Richard Schreiber <schreiber@rami.io>

---------

Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-03-19 14:10:41 +01:00
Raphael Michel
745929b625 Order email: Allow to attach default attachment (Z#23185463, #4903) (#4915) 2025-03-18 13:52:50 +01:00
Raphael Michel
0236911a88 Order search: Proper input validation with error feedback for advanced search (#4920) 2025-03-18 09:01:13 +01:00
Raphael Michel
f475781a89 Order email history: Record more information about attachments (Z#23185463) (#4914) 2025-03-18 08:58:54 +01:00
Raphael Michel
5cf2f1beef New invoice generation setting: User request but paid only (#4740) 2025-01-14 13:54:25 +01:00
Raphael Michel
595c042624 Regenerate OrderPosition.web_secret when chaning other secrets 2025-01-03 15:21:45 +01:00
Raphael Michel
2dc625cf31 Add the option to introduce rich-text placeholders (#4657)
* Add the option to introduce rich-text placeholders

* Add tests in test_format

* Add some css

* Block vs inline

* Some fixed css

* Update src/pretix/control/forms/event.py

Co-authored-by: Mira <weller@rami.io>

* Add missing docstring prat

---------

Co-authored-by: Mira <weller@rami.io>
2024-12-03 11:38:15 +01:00
Mira
91de0f93e6 Allow organizers to manually add fees to an existing order (#4590) 2024-11-05 14:37:50 +01:00
Raphael Michel
6087665775 Email preview: Include prefix in subject (#4395) 2024-08-23 13:42:29 +02:00
Raphael Michel
b96374fcf6 Do not create duplicate memberships on order changes (Z#23163336) (#4408) 2024-08-21 17:30:42 +02:00
Raphael Michel
4fb5c6bef0 New implementation of sales channels (#4111)
Co-authored-by: Martin Gross <gross@rami.io>
2024-06-30 19:24:30 +02:00
Raphael Michel
0e20d897d2 Prevent parallel refunds for the same order (Z#23152965) (#4136) 2024-05-07 14:32:02 +02:00
Raphael Michel
cebb6d3b43 Introduce locking to prevent duplicate invoices (Z#23150548) (#4067)
* Introduce locking to prevent duplicate invoices

This is not a perfect solution as it does not handle all code paths to
create invoices, but it handles all that seem likely to be triggered
concurrently

* Review note
2024-04-30 10:43:13 +02:00
Raphael Michel
eaae7e9ea2 Allow to set amount and date when manually confirming a payment (#3828)
* Allow to set amount and date when manually confirming a payment

* Fix tests
2024-01-26 19:22:15 +01:00
Raphael Michel
213049b52e Fix typo 2023-11-28 16:25:55 +01:00
Raphael Michel
8a3b313cb6 Check-in: Show more information (#3576)
* Check-in: Show more information

* Add change notes

* Rebase migration

* Add "expand" option to checkinrpc

* REmove accidental file

* Docs fixes

* REbase migration

* Rebase migration

* Fix typo

* REbase migration

* Make web-checkin look more like new android checkin
2023-11-28 14:52:12 +01:00
Julian Baumann
8c80200fc0 Orders: Add bulk action to refund overpaid amount (#3721)
* add bulk action to refund overpaid amount

* display number of successful actions, use existing annotate method

* add tests, address review comments

* lint
2023-11-23 09:48:28 +01:00
Raphael Michel
f1969e783f Export form: Add note on multisheet exporters 2023-11-20 10:18:19 +01:00
Raphael Michel
c2ababb9d6 Do not allow offset refund to different currency 2023-11-13 13:09:34 +01:00
Raphael Michel
22301f5429 Order change: Do not crash on empty fee input (PRETIXEU-9B2) 2023-11-09 14:15:39 +01:00
Raphael Michel
56acb0929a Export: Gracefully handle ExportEmptyError 2023-10-23 16:57:08 +02:00
Raphael Michel
c1c828d8a2 Order detail page: Don't offer invoice generation for expired orders 2023-10-04 12:42:48 +02:00
Martin Gross
45b9a705e2 Allow to refund currencies with zero decimals (#3583) 2023-09-07 17:55:43 +02:00
Raphael Michel
c0031e4579 Add bulk operations for orders (#3548)
* Add bulk operations for orders

* UI tweaks

* Fix test failures

* Fix filter form

* Add tests

* Run isort
2023-09-06 17:02:21 +02:00
Raphael Michel
cfd6376936 Fix transaction view after Django upgrade 2023-08-09 17:11:20 +02:00
Raphael Michel
e3f219366d Fix crash when removing the phone number (PRETIXEU-8P0) 2023-06-29 09:58:35 +02:00
Raphael Michel
b51ca58820 Add BaseExporter.available_for_user() 2023-06-16 17:35:36 +02:00
Raphael Michel
1237b8ba47 Invoice: Improve handling of special characters in file names (#3347)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2023-05-23 12:17:06 +02:00
Raphael Michel
6fac1aeb62 Add new gift card to orderposition relationship (#3291) 2023-05-09 09:54:46 +02:00
Raphael Michel
d0b449ea89 Reusable media (#3131)
Co-authored-by: Martin Gross <gross@rami.io>
2023-04-03 10:45:22 +02:00
Raphael Michel
b0616ed00d Scheduled exports: Fix serialization problem 2023-03-08 16:09:33 +01:00
Raphael Michel
7d4b575150 Ensure total ordering of paginated lists (#3061) 2023-02-24 10:51:51 +01:00
Raphael Michel
e358bacfa3 Expose some payment details in exports 2023-02-15 13:21:55 +01:00
Raphael Michel
f09878df9f Add missing refund.done webhooks 2023-02-15 11:05:12 +01:00
Raphael Michel
c44ff6244d Order change: Warn about actions that might generate a new secret 2023-02-09 17:10:27 +01:00
Raphael Michel
6902725f3c New check-in features (#3022) 2023-02-09 09:46:46 +01:00
Raphael Michel
433262f6fc Prepare for DeleteView change in Django 4.0 2023-01-24 14:16:01 +01:00
Raphael Michel
988188b00a Scheduled exports: Fix missing event context, fix form initial 2023-01-23 11:31:54 +01:00