* Allow to round taxes on order-level
* Rename get_cart_total
* Persist rounding mode with order
* Add general docs
* Order creation API
* Update fee algorithm
* Rounding on payment method change
* Round when splitting order
* Fix failing tests
* Add settings page
* Add tests
* Replace algorithm
* Add test case for currency rounding
* Improve order change
* Update flowchart
* Update discount logic (more hypothetical, we don't store rounding on cart positions atm)
* Rename internal method
* Fix typo
* Update help text
* Apply suggestions from code review
Co-authored-by: luelista <weller@rami.io>
* Order rounding refactor (#5571)
* Add RoundingCorrectionMixin providing before-rounding-values as properties
* Use gross_price_before_rounding in more places
* Update doc/development/algorithms/pricing.rst
Co-authored-by: Martin Gross <gross@rami.io>
* Allow to override on perform_order
* Rebase migration
* Fix event cancellation
---------
Co-authored-by: luelista <weller@rami.io>
Co-authored-by: Martin Gross <gross@rami.io>
* 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>
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>
* 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
* 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>
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>
* 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>
These variables effectively hardcode the location from which the script
is run. We shouldn't need these since git should know that it is inside
a repo when run.
Allows organizers to test their shop as if it were a different date and time.
Implemented using a time_machine_now() function which is used instead of regular now(), which can overlay the real date time with a value from a ContextVar, assigned from a session value in EventMiddleware.
For more information, see doc/development/implementation/timemachine.rst
---------
Co-authored-by: Richard Schreiber <schreiber@rami.io>
Co-authored-by: Raphael Michel <michel@rami.io>
* Prevent transferring files from priv/ to pub/ on event clone
* Also detect file names with node prefix
* Only transfer files in explicitly declared file fields
* Update django-hierarkey
* Add note to documentation about the new behaviour
* 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>
* 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>
It took a little bit of searching to figure out that in the dev environment, by
default, celery tasks are run synchronously, but periodic tasks are not run at
all.