* Allow ticket QR code colour to be configured
This commit introduces a feature enabling users to customise the QR
code colour in the ticket editor.
* Remove redundant argument from `Dict.get` call
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
---------
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
* Do not apply vouchers on "free price" items where more than minimum price is selected
* Do apply vouchers on "free price" items if exactly the minimum price is selected
* Update cart.py
* Add test cases, fix bug in adjacent test
* Fix code style
---------
Co-authored-by: Raphael Michel <michel@rami.io>
This Exporter has the most useful information in the first rows of the
exported document. Specifically the product and the custom questions.
Other fields are also resorted somewhat to place very useless columns at
the end of the table. See code for details :)
- register relevant_orderlist as separate data_exporter
- sort it with the other order data exporters.
* Invoice renderer: Group invoice lines even with addons (Z#23173618)
* Add unit test
* Update src/pretix/base/invoice.py
Co-authored-by: Mira <weller@rami.io>
---------
Co-authored-by: Mira Weller <weller@rami.io>
Create LogEntryType definitions for all missing action_types (order changes, check-in events, settings changes of PaymentProviders and TicketOutputs).
Check whether the stored content_object is of the expected model type, preventing incorrect links.
Refactoring:
- Move the base LogEntryType definitions for our models to their own file
- Move HTML escaping into make_link to make it less likely to oversee in the LogEntryType definitions
- Log pretix.event.order.deleted with the deleted Order model as content_object, matching the other *.deleted action_types
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>
* refactor to use namedtuples for the sub-fields and sub-widgets
* fix RelativeDateTimeField.set_event: apply relative_to filter not only to minutes, but to days as well
* fix bug in RelativeDateTimeField.clean: validate days relation_to instead of minutes relation_to when "Relative date" is selected
---------
Co-authored-by: Raphael Michel <michel@rami.io>