* Change semantics of changing orders
This basically does two things to the "Change products" view of orders and the
OrderChangeManager program API:
1) It decouples changing items or subevents from changing prices.
OrderChangeManager.change_item() and .change_subevent() no longer
touch the price of a position. Instead .change_price() needs to be
called explicitly. However, a client-side JavaScript component now
*proposes* a new price based on the changed item or subevent.
2) The user interface now exposes the possibility of doing multiple
things at the same time, i.e. changing the item, subevent and price
in the same operation. OrderChangeManager already allowed this
before.
(1) is basically a consequence of (2), while (2) is a prerequesite for
e.g. the `seating` branch, where changing the subevent will always
require changing the seat.
* Add tests for price calculation API
- [x] Provide data model and configuration toggle
- [x] Allow to delete individual test orders
- [x] Add tests
- [x] Add a prominent warning message to the backend if test mode orders exist (even though test mode is off), as this leads to wrong statistics
- [x] Decide if and how to generate invoices for test orders as invoice numbers cannot be repeated or should not have gaps.
- [x] Decide if and how we expose test orders through the API, since our difference pull mechanism relies on the fact that orders cannot be deleted.
- [x] Decide if and how we want to couple test modes of payment providers?
- [ ] pretix.eu: Ignore test orders for billing
- [ ] Adjust payment providers: Mollie, bitpay, cash, fakepayment, sepadebit

- [x] Data model
- [x] display in order view in backend
- [x] review all usages of OrderPositions.objects
- [x] review all usages of order.positions
- [x] review all other model usages
- [x] review plugins
- [x] plugins backwards-compatible API?
- [x] decide on way forward for REST API
- [x] need to cancel fees
- [x] tests
- [ ] plugins
- [ ] gdpr
- [ ] reports
- [x] docs
- [x] Data model
- [x] Enforce constraint
- [x] Filter order list
- [x] Set channel on created order
- [x] Products API
- [x] Order API
- [x] Tests
- [x] Filter reports
- [x] Resellers
- [ ] deploy plugins
- [ ] posbackend
- [ ] resellers
- [ ] reports
- [x] Ticketlayouts
- [x] Support in pretixPOS
* [WIP] Fix#599 -- Add API to create orders
* Add more validation logic
* Add docs and some validation
* Fix test on MySQl
* Validation is fun, let's do more of it!
* Fix live_issues
* New concept for fee handling
* More usages
* Remove all usages, make all tests pass
* API changes
* Small fixes
* Fix order of invoice lines
* Rebase migration
* Data model
* little crud
* SubEventItemForm etc
* Drop SubEventItem.active, quota editor
* Fix failing tests
* First frontend stuff
* Addons form stuff
* Quota calculation
* net price display on EventIndex
* Add tests, solve some bugs
* Correct quota selection in more places, consolidate pricing logic
* Fix failing quota tests
* Fix TypeError
* Add tests for checkout
* Fixed a bug in QuotaForm
* Prevent immutable cart if a quota was removed from an item
* Add tests for pricing
* Handle waiting list
* Filter in check-in list
* Fixed import lost in rebase
* Fix waiting list widget
* Voucher management
* Voucher redemption
* Fix broken tests
* Add subevents to OrderChangeManager
* Create a subevent during event creation
* Fix bulk voucher creation
* Introduce subevent.active
* Copy from for subevents
* Show active in list
* ICal download for subevents
* Check start and end of presale
* Failing tests / show cart logic
* Test
* Rebase migrations
* REST API integration of sub-events
* Integrate quota calculation into the traditional quota form
* Make subevent argument to add_position optional
* Log-display foo
* pretixdroid and subevents
* Filter by subevent
* Add more tests
* Some mor tests
* Rebase fixes
* More tests
* Relative dates
* Restrict selection in relative datetime widgets
* Filter subevent list
* Re-label has_subevents
* Rebase fixes, subevents in calendar view
* Performance and caching issues
* Refactor calendar templates
* Permission tests
* Calendar fixes and month selection
* subevent selection
* Rename subevents to dates
* Add tests for calendar views