Commit Graph

186 Commits

Author SHA1 Message Date
Raphael Michel
874b38db17 Mark order as paid immediately 2019-04-15 12:58:20 +02:00
Raphael Michel
b686978074 Add order lifecycle signals 2019-04-06 15:05:39 +02:00
Raphael Michel
d4795868d6 Correcly cancel payments when starting a new one 2019-03-26 09:41:03 +01:00
Raphael Michel
90f881c48e Fix #1001 -- Add product bundles (#1041)
* Data model + Editor

* Cart and order management

* Rebase migrations

* Fix typos, add tests on cart handling

* Add tests for checkout and quotas

* Add API endpoints

* Validation of settings

* Front page tax display

* Voucher handling

* Widget foo

* Show correct net pricing

* Front page tests

* reverse charge foo

* Allow to require bundling

* Fix test failure on postgres
2019-03-22 14:48:48 +00:00
Raphael Michel
516fab52da Do not send payment reminders to orders pending approval 2019-03-20 23:09:13 +01:00
Raphael Michel
a21ea34944 Bank transfer: Properly deal with fees of aborted payment methods 2019-03-15 11:31:32 +01:00
Raphael Michel
ac4ecfbe69 OrderChangeManager: Fix a type error for orders without tax 2019-02-26 13:10:53 +01:00
Raphael Michel
67059fe323 Add a simple test mode (#1181)
- [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

![download](https://user-images.githubusercontent.com/64280/53009081-fe420d80-343a-11e9-8361-b8511c988598.png)
2019-02-20 17:51:26 +01:00
Raphael Michel
2d2d62045a Do not mark orders as paid when changed to free if they require approval 2019-02-14 18:38:33 +01:00
Raphael Michel
f23de7e2c0 Order change: Allow to ignore quotas 2019-02-11 16:15:54 +01:00
Raphael Michel
d073007fd7 Order change: Allow to keep price when changing items 2019-02-11 16:15:13 +01:00
Raphael Michel
bf36ad009f Don't request a refund if there's actually no money involved 2019-02-08 11:27:09 +01:00
Raphael Michel
ec4227651a Do not try to reduce voucher usage below 0 2019-02-06 10:35:54 +01:00
Raphael Michel
cce4379d3e Type-cast cancellation fee 2019-01-24 10:11:24 +01:00
Raphael Michel
06eddb2c6d Self-service refund form (#1135)
* Auto-refund

* Add missing template

* Notification for requested refund

* Model-level tests

* Add front-end tests

* Default to notify
2019-01-18 17:24:42 +01:00
Raphael Michel
60c1ea8aad Allow to keep cancellation fees (#1130)
* Allow to keep cancellation fees

* Add tests and clarifications

* Add API
2019-01-11 15:42:33 +01:00
Raphael Michel
a8836cbeec Remove some irregularities in 8abfbba9 2019-01-10 17:41:18 +01:00
Raphael Michel
8abfbba9d0 Refactor cancelling positions and orders in the data model (#1088)
- [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
2019-01-10 16:52:34 +01:00
Raphael Michel
cf4b2544f2 Never create implicit payments for orders that require approval 2018-12-14 10:42:08 +01:00
Raphael Michel
47b7d7b36c Add separate notification category for orders that require approval 2018-11-30 15:30:35 +01:00
Raphael Michel
ba15c34ce1 Fix #1106 -- Do not send reminders to orders placed in the last two hours 2018-11-30 15:16:12 +01:00
Raphael Michel
b4290384e1 Add sales channels (#1103)
- [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
2018-11-23 15:35:09 +01:00
Raphael Michel
0f76779fb1 Fix involuntarily created invoices 2018-11-21 13:07:28 +01:00
Raphael Michel
b49b2035bd Cancel payments if the pending price of the order changes 2018-11-20 17:41:33 +01:00
Raphael Michel
8ffc6550da Do not allow orders with unavailable items to be completed 2018-11-13 17:55:56 +01:00
Raphael Michel
31cec76809 Generate invoice after expired order is extended 2018-11-12 13:08:12 +01:00
Raphael Michel
b9534f23f5 Delete add-ons explicitly 2018-11-12 11:11:33 +01:00
Raphael Michel
c8cc527aee OrderChangeManager: Do not mark order pending when adjusting price to actual payment 2018-10-31 10:42:44 +01:00
Raphael Michel
4a1c3088a9 Locking in OrderChangeManager caused unexpected problems 2018-10-31 10:04:53 +01:00
Raphael Michel
df2d8925ed Prevent some race conditions 2018-10-29 17:27:12 +01:00
Raphael Michel
0dbcfdc5ac Allow to enable ticket downloads for pending orders 2018-10-03 12:15:43 +02:00
Raphael Michel
d99517c8d1 Fix #917 -- Attach tickets to emails (#1034) 2018-10-03 11:06:50 +02:00
Raphael Michel
1ba4047b1b API-level tests 2018-09-25 10:28:07 +02:00
Raphael Michel
7860d690fa Add endpoints to update, roll and revoke devices 2018-09-25 10:28:07 +02:00
Raphael Michel
10dd5278e7 Fix bug in previous commit 2018-09-13 12:32:07 +02:00
Raphael Michel
befa6527e4 Attach invoice to order approval email 2018-09-13 12:19:30 +02:00
Raphael Michel
b5cd3bf0af Do not send paid email for free orders 2018-08-21 11:03:56 +02:00
Felix Rindt
8183648902 Rename module async to tasks (#994)
Fixes #993
2018-08-21 10:53:40 +02:00
Raphael Michel
08c5992447 OrderChangeManager: Allow free→paid 2018-08-17 09:16:48 +02:00
Raphael Michel
248b94c296 Approvals 2018-08-14 10:46:55 +02:00
Raphael Michel
779756f1ab API: Allow to delete order positions 2018-08-13 18:09:10 +02:00
Raphael Michel
c702814203 Do not use deepcopy on models 2018-08-07 15:45:22 +02:00
Raphael Michel
afd766999c Upgrade to Django 2.1 (#710)
* Upgrade to Django 2.0

* more models

* i18n foo

* Update setup.py

* Fix Sentry exception PRETIXEU-JC

* Enforce slug uniqueness

* Import sorting

* Upgrade to Django 2.1

* Travis config

* Try to fix PostgreSQL failure

* Smaller test matrix

* staticfiles→static

* Include request in all authenticate() calls
2018-08-06 12:48:46 +02:00
Raphael Michel
18a378976b Fix #571 -- Partial payments and refunds 2018-08-06 12:24:36 +02:00
Raphael Michel
0e332d291a Fix locale of download reminder email 2018-06-11 15:32:08 +02:00
Raphael Michel
c06e7348c4 Fix language of cancellation email subject 2018-06-06 15:33:31 +02:00
Raphael Michel
69d10489b8 Implement OAuth2 provider (#927)
- [x] Application management
  - [x] Link
  - [ ] Tests
- [x] Authorize flow
  - [x] Tests
- [x] Refresh token handling
  - [x] Tests
- [x] Revocation endpoint
  - [x] Tests
  - [x] Mitigate: https://github.com/jazzband/django-oauth-toolkit/issues/585
- [x] API authenticator / permission driver
  - [x] Test
- [x] Enforce organizer restriction
  - [x] Tests
- [x] Enforce scope restriction
  - [x] Tests
- [x] Show current applications to user
  - [x] Revoke
  - [x] Tests
- [x] Log new authorizations
  - [x] notify user
- [x] Ensure other grant types are not available
- [x] Documentation
- [x] check if revoking access toking, then refreshing gets rid of organizer constraint
- [x] Show logentry foo
2018-06-05 12:58:04 +02:00
Raphael Michel
42c9e21d04 Refs #654 -- API call to mark order as refunded 2018-06-01 10:38:34 +02:00
Raphael Michel
bbb78aa5e6 Refs #928 -- Allow to regenerate secrets of specific tickets 2018-05-31 12:57:06 +02:00
Jakob Schnell
1689925508 Fix #707 -- Setup automated spell-checking for translations (#896)
This will:
  * set up potypo
  * add wordlists, edgecases and phrases
  * fix english typos across the codebase
  * fix german typos and translation
2018-05-27 11:59:10 +02:00