* Data model changes
* Fix test failures
* Adjustments
* Some tests and API support
* Check when extending orders
* Make things more deterministic, fix style
* Do not apply negative discounts
* Update price_before_voucher on item/subevent changes
* Add tests for price_before_voucher in combination with free price
* Fix InvoiceAddress.DoesNotExist
* Add testmode-support-flag to SalesChannels
* Make saleschannels/testmode-warnings even more dangerous!
* Add warning for payment-methods that do support testmode but are being used in a non-testmode order caused by a saleschannel in a testmode-shop.
* Remove redundant testmode_supported-flag for WebshopSalesChannel
* Raise error on API when sales_channel does not support testmode
* Tests
* Fix style issue after merge
* Autocheckin data model/cosmetics
* Expose automatically checked-in OrderPositions
* Expose automatically checked-in OrderPositions in CSV/PDF Exports
* Fix some tests, try to fix MultiStringField/CheckboxSelectMultiple
* Actually fix MultiStringField/CheckboxSelectMultiple.
(Not pretty, but it works)
* Fix more tests
* Squash migration
* Also fix CSV/nameparts-test
* Changes for Autocheckin code-review
* Perform Auto-Checkins through new core plugin
* Update config-doc to reflect also checkinlists
* Explicitly output AutoCheckin Yes/No for CSV-Export (+ fix test)
* Move autocheckin from plugin to service
* API-doc
* Fix API-doc spelling
* Checkinlist-API and autocheckin order tests
* Performance improvement when reading checkinlists for autocheckin
Co-Authored-By: Raphael Michel <michel@rami.io>
* Autocheckin test for order created through API
* Resolve migration conflict
* Initial work on seating
* Add seat guids
* Add product_list_top
* CartAdd: Ignore item when a seat is passed
* Cart display
* product_list_top → render_seating_plan
* Render seating plan in voucher redemption
* Fix failing tests
* Add tests for extending cart positions with seats
* Add subevent_forms to docs
* Update schema, migrations
* Dealing with expired orders
* steps to order change
* Change order positions
* Allow to add seats
* tests for ocm
* Fix things after rebase
* Seating plans API
* Add more tests for cart behaviour
* Widget support
* Adjust widget tests
* Re-enable CSP
* Update schema
* Api: position.seat
* Add guid to word list
* API: (sub)event.seating_plan
* Vali fixes
* Fix api
* Fix reference in test
* Fix test for real
* .
* Add a position detail page to the frontend
* Mail templates
* Send mails
* Send reminder email
* Add position support to sendmail plugin
* Add and fix some tests
* Fix failing test on real databases
* 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] 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
* check for payment method instead of order total
* incorporate payment fee diff in totaldiff at oder change
* use fee from model and the correct order total
* add error handling
* do not change paid orders
* OrderChangedManager can only be committed once
* remove prints of stripe secrets
* add tests
* an OrderChangeManager must not be committed multiple times
* A pending free order stays pending after being changed
* comments on paid_to_free logic
* 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