* Add expiry dates and individual conditions to gift cards
* Display refund gift cards with more details and prettier interface
* Allow to set gift card expiry and conditions when cancelling event
* Extend gift card search
* Fix#1565 -- Some gift card filters
* Improve list of gift cards
* Allow to edit gift cards
* Note on validity
* Allow to adjust the cancellation fee without JS
* Introduce cancellation requests
* ignore→delete
* Change a few things after Martin's review
* Add a few tests
* Upgrade Django to 3.0 and other dependencies to recent versions
* Fix otp version contsraint
* Remove six dependency
* Resolve some warnings
* Fix failing tests
* Update django-countries
* Resolve all RemovedInDjango31Warnings in test suite
* Run isort
* Fix import
* Update PostgreSQL version on travis
* 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
* Fix#1247 -- Allow team invites to be resent
* Test resending invalid invites
* Fix tooltip
* Fix test
* Handle invalid types for pk parameter
* Style button
- [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
* MKBDIGI-185: Added update/create to events
* MKBDIGI-185: Added validation for 'slug, 'live' on event endpoint
* MKBDIGI-185: Code formatting
* MKBDIGI-185: Added 'plugins' to 'event' endpoint
* MKBDIGI-185: Merge migrations
* MKBDIGI-185: Cleaned up static methods
* EBILL-5: Added delete endpoint for event
* EBILL-5: Merge migrations
* EBILL-5: Fixed imports
* EBILL-5: Changed plugins to only list plugins enabled for the event
* EBILL-5: Added clone event endpoint
* EBILL-5: Removed permissions check API test for events
* EBILL-5: Merged master, updated migrations
* EBILL-5: Updated api permissions check for CRUD on events
* EBILL-5: Removed 'unique_together' constraint on event model
* EBILL-5: Removed call to changed static methods in test
* EBILL-5: Changed Event 'has_paid_things' to a property for consistency
* EBILL-5: Fixed created response code in documentation
* EBILL-6: Documentation fixes
* EBILL-6: Fixed typo
* EBILL-6: Fixed permissions
* EBILL-6: Added note on copying settings to documentation
* EBILL-6: Created model method for deleting sub objects on event before delete
* EBILL-6: Fixed typo
* EBILL-6: Re-added meta_data as read-only
* EBILL-6: Fixed permissions test
* EBILL-6: Added plugins issues check before live. Moved issues property from form to Event model.
* EBILL-6: Upped version number in documentation
* Add write support for MetaDataField
* EBILL-6: Expanded documentation for the clone endpoint, made behaviour of 'is_public' similar to 'plugins' for consistency
* EBILL-6: Re-added EventCRUDPermission
* EBILL-16: Updated documentation with permission model for the API
* EBILL-16: Added 'has_subevents' validation to ensure it cannot be changed once event is created.
* EBILL-16: Fixed event clone not differentiating between "not set" and "deliberately set to False"
* EBILL-16: Fixed event live validation
* EBILL-16: Added logging of live activated/deactivated
* EBILL-16: Fixed create event bug when no 'meta_data' supplied
* EBILL-16: Typo fixed
* EBILL-16: Added log display for "event created"
* EBILL-16: Enabling a plugin now calls 'installed' if applicable and log entries are added
* EBILL-16: Updated tests for events
* Do not allow enabling restricted plugins via the API
* Remove unused code
* Refs #99 -- Fix stripe support for zero-decimal currencies
* Add new money formatting method
* Force decimal places in many places
* Locale-aware currency rendering
* Fix currencies in more places
* More currency fixes