Commit Graph
98 Commits
Author SHA1 Message Date
359df1f51e Cross selling (#4185)
Product categories can now be marked as "cross-selling categories", causing them to 
appear in the add-on checkout step as additional recommendations, depending on 
their cross-selling visibility (always, only if certain products are already in the cart, or 
only if they qualify for a discount according to discount rules).

---------

Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2024-10-14 14:39:49 +02:00
Raphael Michel 86ddca15ca Keep Python 3.9 compatibility for now / Revert "Fix more Python 3.12 warnings"
This reverts commit 294b3966b0.
2024-05-22 09:02:25 +02:00
Raphael Michel 294b3966b0 Fix more Python 3.12 warnings 2024-05-21 14:40:41 +02:00
Raphael MichelandMira 99b4c5bd36 Fix cart grouping function to include membership and validity (#3991)
* Fix cart grouping function to include membership and validity

* Update src/pretix/presale/views/__init__.py

Co-authored-by: Mira <weller@rami.io>

---------

Co-authored-by: Mira <weller@rami.io>
2024-03-19 10:17:26 +01:00
Raphael Michel eac88b5ef7 Widget: Fix language on first iframe request 2024-01-26 11:44:02 +01:00
Raphael Michel 6af2d38a98 Add __Host- prefix to CSRF and session cookie, remove cookie_domain (#3831)
* Add __Host- prefix to CSRF and session cookie, remove cookie_domain

* Fix tests
2024-01-25 09:45:56 +01:00
Mira 65dbf03a12 Fix #3701 -- Don't use static cookie_domain on custom domains (#3728) 2023-11-20 11:33:45 +01:00
Raphael Michel cc7f249cb8 Fix crash if a tax rule on a fee prevents sale (PRETIXEU-8MZ) 2023-06-23 11:49:09 +02:00
Raphael MichelandRichard Schreiber 603225d042 Separate personalization from admission (#2990)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2023-01-09 14:57:35 +01:00
Raphael Michel 9624b1c505 Support for external gift cards (#2912) 2022-11-23 14:52:56 +01:00
Raphael Michel 9d1cfd1eb6 Clarify cart order (#2844) 2022-10-10 12:59:49 +02:00
Raphael MichelandRichard Schreiber c90cb1f19c Change sort order in cart to keep subevents together (#2730)
Co-authored-by: Richard Schreiber <wiffbi@gmail.com>
2022-07-25 18:35:10 +02:00
Raphael MichelandRichard Schreiber b74f5508b7 Group identical add-ons in cart (#2500)
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2022-03-01 15:49:16 +01:00
3dcfa57b70 A11y improvements (#2081)
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2021-10-17 16:56:16 +02:00
Raphael Michel 8e79eb570e Customer accounts & Memberships (#2024) 2021-05-04 16:56:06 +02:00
Raphael Michel a93287207b pretix Community Edition moves to AGPLv3-based license (#2023) 2021-04-12 10:33:47 +02:00
Raphael Michel c47e41ac8a Merge pull request #1874 from pretix/perf2020 2020-12-14 17:02:01 +01:00
Raphael Michel 04bfa63a5e Add region setting to supplement localization (#1875) 2020-12-14 13:15:38 +01:00
Raphael Michel 1f21d1420c Fix import order 2020-12-14 11:45:23 +01:00
Raphael Michel 571fef4ed8 Re-structure some querying on cart and order pages to reduce load 2020-12-13 16:31:17 +01:00
Raphael Michel b51bd2118e Do not create session cookie on first page view 2020-12-07 22:29:05 +01:00
Felix RindtandRaphael Michel 896ba5b06b Fix #1740 - Do not group gift card positions (#1743)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-08-04 10:18:04 +02:00
Raphael Michel b305ac012c Fix price field when increasing number of bundles in cart 2020-07-21 17:23:30 +02:00
Raphael Michel e70f593a94 Minor SQL performance improvements 2020-04-17 12:14:37 +02:00
Raphael Michel c7dd50de0d CartMixin: Prevent None values in sorting function 2020-04-02 16:53:17 +02:00
Raphael Michel b02196434b Re-compute fees after applying a giftcard 2020-04-01 17:09:58 +02:00
Raphael Michel af23d6e4bf Upgrade to Django 3.0 and other dependencies (#1568)
* 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
2020-03-23 15:02:20 +01:00
Raphael Michel 99f3db04a9 Allow to redeem a voucher for an existing cart (#1517)
* Allow to redeem a voucher for an existing cart

* Bundle behaviour
2019-12-11 15:58:22 +01:00
Martin Gross e4582dd9ed Add itemcount (Items, excluding AddOns) to fragment_cart (#1514)
* Add itemcount (Items, excluding AddOns) to fragment_cart

* Simplify itemcount
2019-12-05 16:45:41 +01:00
Raphael Michel d46278f04f Set cookies with SameSite=None if possible (#1509) 2019-12-03 14:50:18 +01:00
Raphael Michel 06a744ea2d Refactor cart management into new helper function cached_invoice_address 2019-11-13 11:42:03 +01:00
Raphael Michel 8f112f8d9a Pass cart positions to fee_calculation_for_cart 2019-11-04 11:00:48 +01:00
Raphael Michel a3707a962b Fix problems with CartMixin on empty order
Fix PRETIXEU-18A
2019-07-15 10:46:38 +02:00
Raphael Michel 93089d87e3 Add support for reserved seating (#1228)
* 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
2019-06-25 11:00:03 +02:00
Raphael Michel d85ddb5bda Integrate django-scopes (#1319)
* Install django-scopes

* Fix tests.api

* Update tasks and cronjobs

* Fix remaining tests

* Remove unused import

* Fix tests after rebase

* Disable scopes for get_Events_with_any_permission

* Disable scopes for a management command
2019-06-17 10:46:55 +02:00
Raphael Michel 243e4ac4c8 Allow not to ask for invoice addresses on free orders 2019-04-04 09:57:57 +02:00
Raphael Michel 307ee36e52 Do not show invisible questions in order overview 2019-03-13 17:06:49 +01:00
Raphael Michel 55841ea660 Make sure total is calculated as a Decimal 2019-02-12 16:27:37 +01:00
Raphael Michel be3ca7c561 Sort cart positions by reasonable values 2018-11-14 15:36:50 +01:00
Raphael Michel 94be46ffdb Fix #978 -- Allow to split names (#1049)
- [x] attendee names
- [x] Invoice address names
- [x] Data migration
- [x] API serializers
  - [x] orderposition
  - [x] cartposition
  - [x] invoiceaddress
  - [x] checkinlistposition
- [x] position API search
- [x] invoice API search
- [x] business/individual required toggle
- [x] Split columns in CSV exports
- [x] ticket editor
- [x] shredder
- [x] ticket/invoice sample data
- [x] order search
- [x] Handle changed naming scheme
- [x] tests
- [x] make use in:
  - [x] Boabee
  - [x] Certificate download order
  - [x] Badge download order
  - [x] Ticket download order
- [x] Document new MySQL requirement
- [x] Plugins
2018-11-05 15:43:21 +01:00
Tobias Kunze 3bf3ff1ee2 Allow empty plugin responses (#1056)
While plugin developers are supposed to return an empty dictionary, it's
conceivable that they might just put in a `return` if their field is not
needed, and pretix being generous about this would be cool.
2018-10-30 10:11:39 +01:00
Raphael Michel b379c8380d Do not create cart ID for every shop page visitor 2018-03-10 14:07:40 +01:00
Raphael Michel d0dfde382c Questions at check-in time (#745)
Questions at check-in time
2018-01-22 22:55:54 +01:00
Raphael Michel d97df9cddd Checkout UX: Do not show minutes with decimal places in the countdown 2017-12-11 16:07:24 +01:00
Raphael Michel 10103b58f0 Synchronize cart countdown with server time 2017-11-01 20:46:37 +01:00
Raphael Michel 65116563fd Add docs on session handling 2017-10-29 00:50:09 +02:00
Raphael Michel 9767243a6d Fix #277 -- Embeddable shop (#622)
* Vendor vue.js

* Refactor item_group_by_category to support vouchers

* Widget: Show product list

* Widget: free prices

* Widget: pictures and loading indicator

* Widget: First iframe steps

* Widget: Do not rerender iframe

* Widget: Error handling

* Improve widget

* Widget: localization tech

* Fix invoice style

* Voucher attribute and waiting list

* Add some iframe chrome

* First step to namespaced carts

* More isolation steps

* More cart isolation things

* More cart isolation things

* Mobile stuff

* Show cart on checkout pages

* PayPal and Stripe support

* Enable downloads

* Locale handling

* change text "save URL to this exact page"

* Widget: voucher redemption

* Widget: CSS

* CSS: Responsive

* Widget: CSS improvements

* Widget: Add embedding code generator

* Widget: Error messages and SSL check

* First tests

* Widget: tests

* Don't use IDs in widgets

* Widget: static files caching
2017-10-28 21:54:27 +02:00
Raphael Michel c6a7b52e34 Reduce number of redundant SQL queries 2017-10-18 10:27:57 +02:00
Raphael Michel 26f258c6cf Isolate cart sessions 2017-10-02 17:00:35 +02:00
Raphael Michel 00834cd5e0 Fix test_checkoutflow 2017-09-13 18:29:08 +02:00