Commit Graph

224 Commits

Author SHA1 Message Date
Raphael Michel
fc4a9406e1 Invoicing: Allow plugins to add data (#5452)
* Allow plugins to add data to invoices

* Add documentation
2025-09-29 13:15:42 +02:00
Raphael Michel
ed9250c522 Allow plugins to filter subevents in the public calendar (#5457)
* Allow plugins to filter subevents in the public calendar

* Add to docs

* Review notes
2025-09-11 19:40:10 +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
luelista
7e3f6df945 Document datasync_providers registry (#5387) 2025-08-19 12:01:26 +02:00
Raphael Michel
a51a6123f5 Organizer-level plugins (#5305)
* Add version notes to the docs

* Adapt signal handling

* Add UI

* Add API

* API and tests

* Fix registry

* Update doc/development/api/plugins.rst

Co-authored-by: Felix Rindt <felix@rindt.me>

* Fix failing tests

* Apply suggestions from code review

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

* Update src/pretix/control/templates/pretixcontrol/organizers/plugin_events.html

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

* Update src/pretix/control/templates/pretixcontrol/organizers/plugins.html

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

* Update src/pretix/control/templates/pretixcontrol/organizers/plugins.html

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

* Update src/pretix/control/navigation.py

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

* Update src/pretix/control/urls.py

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

* Apply suggestion from @wiffbi

* REbase migration

* Fix review note

* Fix test cases

* Remove plugin from all events if disabled on org level

* Update doc/development/api/plugins.rst

* Unify registries

* Rebase migration

---------

Co-authored-by: Felix Rindt <felix@rindt.me>
Co-authored-by: Richard Schreiber <schreiber@rami.io>
Co-authored-by: luelista <weller@rami.io>
2025-08-19 11:33:34 +02:00
Raphael Michel
067e11c265 Allow to annul a check-in (#5303)
* Allow to annul a check-in

* Fix locking

* Update doc/api/resources/checkin.rst

Co-authored-by: Phin Wolkwitz <wolkwitz@rami.io>

---------

Co-authored-by: Phin Wolkwitz <wolkwitz@rami.io>
2025-08-08 09:22:19 +02:00
luelista
d5bccf8726 Queueing and mapping utilities for outbound data sync (#4881)
Add a registry for datasync providers and an associated sync queue, to be used by 
plugins that transfer data from pretix orders to external systems. 
Additionally, provide a generic data mapping interface to be used in settings pages 
of such plugins, to let users configure which information from pretix to fill into
which data fields of the external system.

---------

Co-authored-by: Raphael Michel <michel@rami.io>
2025-08-06 14:34:04 +02:00
Raphael Michel
c53fc8df4e Developer docs: Remove some ancient history (#5224) 2025-06-10 12:20:41 +02:00
luelista
5375e22781 Add search and links to plugin settings (#4854)
* Show links to plugin views and settings in plugin list and in success message after activating a plugin
* Fix menu highlighting in payment provider settings
* Specify settings_links and navigation_links for built-in plugins
* Add link to payment plugins from payment settings
* Add client-side search and "View only active plugins" for plugins page
2025-03-24 15:04:35 +01:00
Martin Gross
083e5ed265 New Signal: order_expiry_changed (#4867)
Co-authored-by: Raphael Michel <michel@rami.io>
2025-02-25 13:38:26 +01:00
Raphael Michel
0079be68d3 Allow plugins to add data to the order API (Z#23179688) (#4822)
* Allow plugins to add data to the order API (Z#23179688)

* Update src/pretix/api/serializers/media.py

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

* Fix failing test

---------

Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-02-10 14:06:20 +01:00
Mira
c8d4815c9e LogEntryType registry (#4235)
Move display of LogEntry details from the `logentry_display` and 
`logentry_object_link` signals to a class hierarchy based approach. 
For each action_type, an instance of a subclass of `LogEntryType` 
is registered in the `log_entry_types` registry.

Analogous to EventPluginSignal, this registry is an `EventPluginRegistry`, 
so it keeps track of the plugin the LogEntryType is defined in.

---------

Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-01-16 13:05:57 +01:00
Raphael Michel
a5c39271dd Make API security profiles pluggable (#4597)
* Make API security profiles pluggable

* Update src/pretix/api/signals.py

Co-authored-by: robbi5 <richt@rami.io>

* REmove dead class

---------

Co-authored-by: robbi5 <richt@rami.io>
2024-11-11 17:13:53 +01:00
Raphael Michel
5795aa6492 Docs: Fix various sphinx warnings 2024-10-25 21:58:14 +02:00
George Hickman
9dc38e42d8 Add device_changed signal (#4412)
This provides both the original and updated version of the Device so
subscribers can see the changes.
2024-10-11 11:08:23 +02:00
Richard Schreiber
22e2143623 API: add api_meta to order 2024-07-18 10:01:03 +02:00
Raphael Michel
828f4e3168 Fix isort and docs test 2024-07-01 11:46:46 +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
f0a06cd9fe Replace SCSS compilation with CSS variables (#4191)
* Replace SCSS compilation with CSS variables

* Update tests

* Update src/pretix/presale/style.py

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

* Update src/pretix/presale/context.py

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

* Update src/pretix/presale/views/widget.py

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

* Update src/pretix/presale/context.py

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

* Update src/pretix/static/pretixbase/scss/_variables.scss

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

* Last minor changes

* Rename file

---------

Co-authored-by: Mira <weller@rami.io>
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-06-25 13:01:20 +02:00
Raphael Michel
990e9da21d Generalize import process from orders to more models (#4002)
* Generalize import process from orders to more models

* Add voucher import

* Model import: Guess assignments of based on column headers

* Fix lock_seats being pointless

* Update docs

* Update doc/development/api/import.rst

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

* Update src/pretix/base/modelimport_vouchers.py

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

---------

Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-04-03 10:15:30 +02:00
Martin Gross
d67f5c650c Event-specific fonts and Web-Embedded Fonts (Z#23130701) (#3893) 2024-03-26 09:55:08 +01:00
Mira
bac673f3ab Allow template syntax in event text (Z#23140046) (#3815)
* remove duplicate context generation

* allow text templates in frontpage_text

* refactor: move placeholder functionality to separate file

* fix wrong class name, code style

* update year in license header

* undo license header update

* use new function name

* render only the placeholders that are actually used in the message

* refactoring

* add str(...) call

* Update doc/development/api/placeholder.rst

Co-authored-by: Raphael Michel <michel@rami.io>

* rename register_mail_placeholders to register_template_placeholders
(deprecate old name)

* isort

* add signals to docs

---------

Co-authored-by: Raphael Michel <michel@rami.io>
2024-02-06 11:32:03 +01:00
Raphael Michel
e971733d51 Add missing signal to documentation 2023-11-28 17:17:57 +01:00
Kian Cross
a7f7c64cce Add signals for customer account creation and sign in (#3470) 2023-07-17 11:09:05 +02:00
Martin Gross
41cded095c PProv: Implement detection of wallets such as Google Pay and Apple Pay (#3444)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2023-07-11 11:51:43 +02:00
Raphael Michel
bd32b33ba9 Bump Django to 4.1.* (#2989) 2023-06-05 09:56:31 +02:00
Raphael Michel
e0524f2a03 New plugin signal order_valid_if_pending (#3337) 2023-05-19 16:09:20 +02:00
Raphael Michel
c0419518c3 GiftCard: Add more information to transactions (#3308) 2023-05-12 09:38:35 +02:00
Raphael Michel
e358bacfa3 Expose some payment details in exports 2023-02-15 13:21:55 +01:00
Raphael Michel
c2c7e58fd6 Add BasePaymentProvider.refund_matching_id 2023-02-15 12:03:47 +01:00
Felix Schäfer
e4b9877444 Docs: Remove duplicate entry in attribute table (#3111) 2023-02-10 09:20:18 +01:00
Raphael Michel
6902725f3c New check-in features (#3022) 2023-02-09 09:46:46 +01:00
Raphael Michel
749f5c7e6c Invoices: Visibly mark paid invoices (#3094) 2023-02-07 11:34:38 +01:00
Raphael Michel
0ae66ab7f6 Reorganize UI for exporters (#3025)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2023-01-11 12:34:56 +01:00
Raphael Michel
9624b1c505 Support for external gift cards (#2912) 2022-11-23 14:52:56 +01:00
Raphael Michel
62a6a11836 Add refund details to API 2022-11-15 18:10:19 +01:00
Raphael Michel
60cdfe4029 Allow organizer-level exports with separate permission and no event selection 2022-10-05 10:36:57 +02:00
Raphael Michel
e2adf1fdb3 Layout refresh for plugin settings page (#2490)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2022-03-21 16:42:03 +01:00
Raphael Michel
af2600fd52 Docs: Fix reference to UserManager 2022-02-25 11:53:05 +01:00
Raphael Michel
14e0d9cbf4 Change restricted plugins from event-level action to org-level whitelist (#2489) 2022-02-23 15:04:16 +01:00
Raphael Michel
d7acd2b6bf Refs #2465 -- Introduce unique identifiers for authentication backends (#2466) 2022-02-23 10:16:35 +01:00
Raphael Michel
e767c6a68d Add central cookie consent mechanism (#2330)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2021-11-30 17:12:17 +01:00
Raphael Michel
1f0f7b752f Payment provider API: Add confirm_button_name 2021-11-29 20:54:24 +01:00
Raphael Michel
f19a74990f Remove RequiredAction model (#2078) 2021-05-17 17:41:59 +02:00
Raphael Michel
81f37d9ce5 PDF layout: Allow to show photos from questions (#1919) 2021-02-08 17:48:06 +01:00
Raphael Michel
5ae7a350b0 Add signal global_footer_link 2021-02-04 17:32:10 +01:00
Raphael Michel
33b34f31d1 Add BasePaymentProvider.payment_control_render_short and use it on refund page 2021-01-27 10:34:59 +01:00
Raphael Michel
41c69aaa2a Allow to create refunds without a payment (#1914)
Co-authored-by: Martin Gross <gross@rami.io>
2021-01-26 10:53:59 +01:00
Raphael Michel
2dee222482 Payment plugin API: Add payment_presale_render 2021-01-07 17:55:27 +01:00
0xflotus
9fee2d0fbc Docs: Enabling Syntax Highlighting (#1890) 2020-12-23 10:24:39 +01:00