Mira Weller
59cebf3ee8
Rebased --- Squashed commit of the following:
...
commit 2177bebf6a
Merge: ea613bf271 d08216d8c5
Author: Mira Weller <weller@rami.io >
Date: Fri Aug 7 21:22:31 2026 +0200
Merge branch 'master' into questions-vue3
commit ea613bf271
Author: Mira Weller <weller@rami.io >
Date: Fri Aug 7 21:21:35 2026 +0200
wip
commit c8bed5e3b9
Author: Mira Weller <weller@rami.io >
Date: Fri Aug 7 10:15:00 2026 +0200
rename get_cart to get_cart_positions (keep old name alive)
commit 1ec27fff05
Author: Mira Weller <weller@rami.io >
Date: Fri Aug 7 10:01:38 2026 +0200
filter questionnaires by sales channel
commit 0294f205d0
Author: Mira Weller <weller@rami.io >
Date: Thu Aug 6 20:06:05 2026 +0200
refactor: extract build_requested_valid_from_field method
commit 3424aacdc3
Author: Mira Weller <weller@rami.io >
Date: Thu Aug 6 20:05:44 2026 +0200
rename presale question forms and mixins
commit 4012889076
Author: Mira Weller <weller@rami.io >
Date: Thu Aug 6 19:42:29 2026 +0200
rebase migration
commit fe15d71cd2
Merge: 3ea7ea31b6 4d9dfa88fe
Author: Mira Weller <weller@rami.io >
Date: Thu Aug 6 19:25:44 2026 +0200
Merge branch 'master' into questions-vue3
# Conflicts:
# src/pretix/base/forms/questions.py
# src/pretix/base/middleware.py
# src/pretix/base/templates/pretixbase/redirect.html
commit 3ea7ea31b6
Author: Mira Weller <weller@rami.io >
Date: Fri Jul 24 17:37:46 2026 +0200
wip
commit 5b34a25fb5
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 16:21:11 2026 +0200
use questionnaire data for rendering checkout questions step
commit 9467f1d08d
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 15:54:14 2026 +0200
refactor: extract build_system_question_field method
commit 85344a7690
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 15:50:41 2026 +0200
refactor: extract build_user_question_field method
commit 3b47f4aaa7
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 15:49:34 2026 +0200
refactor: cartpos / orderpos
commit 0309b05121
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 13:52:18 2026 +0100
vite config: allow cors access from pretix.work subdomains
commit ad092ae0d1
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:35:33 2026 +0200
re-add vue-slicksort dep
commit 9f42d679cc
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:28:53 2026 +0200
rebase migration
commit 9eae9c6de7
Merge: 84c51e031e 694b915d89
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:24:49 2026 +0200
Merge branch 'master' into questions-vue3
# Conflicts:
# .github/workflows/tests.yml
# .gitignore
# Dockerfile
# package-lock.json
# package.json
# src/pretix/base/management/commands/runserver.py
# src/pretix/base/middleware.py
# src/pretix/base/templatetags/vite.py
# src/pretix/control/forms/global_settings.py
# src/pretix/control/templates/pretixcontrol/checkin/list_edit.html
# src/pretix/control/views/item.py
# src/pretix/presale/views/widget.py
# src/pretix/settings.py
# src/pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
# src/pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
# src/pretix/static/pretixcontrol/js/ui/checkinrules/django-interop.ts
# src/pretix/static/pretixcontrol/js/ui/checkinrules/lookup-select2.vue
# src/pretix/static/pretixcontrol/js/ui/checkinrules/timefield.vue
# src/pretix/static/pretixcontrol/js/ui/checkinrules/viz-node.vue
# src/pretix/static/pretixpresale/widget/index.html
# src/pretix/static/pretixpresale/widget/src/api.ts
# src/pretix/static/pretixpresale/widget/src/button.ts
# src/pretix/static/pretixpresale/widget/src/components/PriceBox.vue
# src/pretix/static/pretixpresale/widget/src/main.ts
# src/pretix/static/pretixpresale/widget/src/sharedStore.ts
# src/pretix/static/pretixpresale/widget/src/utils.ts
# src/pretix/static/pretixpresale/widget/src/widget.ts
# src/tests/e2e/conftest.py
# vite.config.ts
commit 84c51e031e
Merge: 902ee9242e 222b453b43
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:20:05 2026 +0200
Merge branch 'master' into questions-vue3
commit 902ee9242e
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:19:26 2026 +0200
css comment
commit b758efd4a9
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:19:19 2026 +0200
question dependencies
commit c68fe00502
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:18:00 2026 +0200
add data field edit link
commit b7da9bb6c1
Author: Mira Weller <weller@rami.io >
Date: Wed Jun 17 12:16:20 2026 +0200
handle hidden questions
commit 897120d3da
Author: Mira Weller <weller@rami.io >
Date: Tue May 12 13:04:08 2026 +0200
add ts model definitions
commit 09abc5725e
Author: Mira Weller <weller@rami.io >
Date: Tue May 12 11:30:12 2026 +0200
reorder and save
commit 9a7d5abb1f
Author: Mira Weller <weller@rami.io >
Date: Tue May 12 11:29:37 2026 +0200
fix unhandled exception in taxrules API
commit 3cee5f524b
Author: Mira Weller <weller@rami.io >
Date: Tue May 5 18:12:21 2026 +0200
use slicksort for reordering questionnaires and questions
commit 3a1a6b988e
Author: Mira Weller <weller@rami.io >
Date: Tue Apr 28 19:23:35 2026 +0200
improve i18n, implement "add text block" dialog
commit bdc720f5a2
Author: Mira Weller <weller@rami.io >
Date: Fri Mar 27 18:57:22 2026 +0100
wip
commit 583184af38
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 21:45:32 2026 +0100
change existing views
commit 63d9f7cea8
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 21:45:32 2026 +0100
adapt vue app to new data model (wip)
commit c3d6fb1bd6
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 21:44:47 2026 +0100
add Questionnaire and QuestionnaireChild models and their API; migrate existing data
commit bb43acd257
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 13:52:28 2026 +0100
vite config: add questionnaires app
commit e0744951e8
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 13:52:18 2026 +0100
vite config: allow cors access from pretix.work subdomains
commit fef1e356f7
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 13:33:24 2026 +0100
fix out-of-the-box experience
commit 81775f5d2d
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 13:33:24 2026 +0100
setup questionnaires vue app, add code from question editor proof of concept
commit 4bbcc398cc
Merge: a924d0a266 58840a5fd6
Author: Mira Weller <weller@rami.io >
Date: Thu Mar 19 13:13:32 2026 +0100
Merge remote-tracking branch 'refs/remotes/origin/master' into questions-vue3
2026-09-15 16:37:22 +02:00
Richard Schreiber
689b99c3aa
PDF: fix inline merge_background on fg_pdf instead of its own PdfWriter ( #6555 )
...
* PDF: fix inline merge_background on fg_pdf instead of its own PdfWriter
* fix pdf_header
* fix flake8
2026-09-14 15:45:54 +02:00
dependabot[bot] and Raphael Michel
efdc83f72a
Update pypdf requirement from ==6.5.* to ==6.11.* ( #6176 )
...
* Update pypdf requirement from ==6.5.* to ==6.11.*
Updates the requirements on [pypdf](https://github.com/py-pdf/pypdf ) to permit the latest version.
- [Release notes](https://github.com/py-pdf/pypdf/releases )
- [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md )
- [Commits](https://github.com/py-pdf/pypdf/compare/6.5.0...6.11.0 )
---
updated-dependencies:
- dependency-name: pypdf
dependency-version: 6.11.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
* Try to adjust code
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Raphael Michel <michel@rami.io >
2026-09-14 14:09:28 +02:00
Raphael Michel and pajowu
eab1efd5f4
Phone number input: Fix workaround for prefixes shared between countries ( fixes #6544 ) ( #6545 )
...
* Phone number input: Fix workaround for prefixes shared between countries (fixes #6544 )
* Update src/pretix/base/forms/questions.py
Co-authored-by: pajowu <engelhardt@pretix.eu >
---------
Co-authored-by: pajowu <engelhardt@pretix.eu >
2026-09-14 09:35:32 +02:00
Richard Schreiber
86cc719651
Widget: serve vite by default, origin-whitelist for vue2 ( #6403 )
2026-09-11 08:53:42 +02:00
Martin Gross and Raphael Michel
2c15d8b074
Event Settings: Make contact_url and imprint_url I18nURLField (Z#23238623) ( #6506 )
...
* Event Settings: Make contact_url and imprint_url I18nURLField (Z#23238623)
* isort
* Update doc/api/resources/events.rst
---------
Co-authored-by: Raphael Michel <michel@pretix.eu >
2026-09-09 09:14:37 +02:00
Raphael Michel and Lukas Bockstaller
edb4069e18
Payment step: Allow to postpone payment choice on some sales channels ( #6516 )
...
* Payment step: Allow to postpone payment choice on some sales channels
* Add tests
* handle payment provider (de-)selection and partial payments (#6526 )
---------
Co-authored-by: Lukas Bockstaller <bockstaller@pretix.eu >
2026-09-08 09:32:15 +02:00
Raphael Michel and Richard Schreiber
dc7d5c6029
Event calendar: consider events without products "not available" for filtering ( #6515 )
...
* Event calendar: consider events without products "not available" for filtering
Also, drop the help text of the flag that is no longer accurate.
* Update src/pretix/presale/views/organizer.py
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-09-04 16:29:46 +02:00
Raphael Michel
caa6fb187b
VAT ID validation: Alternative API for German shops ( #6507 )
2026-09-02 17:48:38 +02:00
Lukas Bockstaller
7d93cae2a9
set the _required attribute on the ModelMultipleChoiceField ( #6514 )
...
setting _required forces the CheckoutFieldRenderer to add the "required" bit to the label.
We only need to remove it from the widget attrs to avoid the html input field validation that would force us to check every single box
2026-09-02 10:35:19 +02:00
Martin Gross
4390403b9a
Add label-overrides to contact_form_fields_overrides and question_form_fields_overrides (Z#23244154) ( #6504 )
2026-09-01 10:21:20 +02:00
Richard Schreiber
6d4aba6e3d
Questions: add min-length to string/text type questions ( #6488 )
...
* Questions: add min-length to string/text type questions
* fix test
2026-08-25 09:37:37 +02:00
Raphael Michel
b74371bef1
Fix typos
2026-08-24 17:26:37 +02:00
b809d93bdc
Do not hide subevent list if filtered list is empty ( #6460 )
...
* Do not hide subevent list if filtered list is empty
* Event calendar: Allow to show a message if no events are found
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io >
* Fix failures on org level
* add aria-hidden if no subevents
* Update src/pretix/base/settings.py
* Update src/pretix/base/settings.py
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
---------
Co-authored-by: luelista <weller@rami.io >
Co-authored-by: Richard Schreiber <schreiber@rami.io >
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-08-24 14:42:41 +02:00
Kara Engelhardt
0593172146
Transmit invoices generated due to paymentprovider changes (Z#23242806)
2026-08-24 13:45:54 +02:00
Raphael Michel and luelista
58f331ba1f
Allow to set payment term per sales channel ( #6459 )
...
* Allow to set payment term per sales channel
* Apply suggestion from @luelista
Co-authored-by: luelista <weller@rami.io >
---------
Co-authored-by: luelista <weller@rami.io >
2026-08-24 09:09:47 +02:00
Richard Schreiber
1c17c35b16
Add event_begin_time & event_end_time to scheduledmail templates (Z#23241932) ( #6484 )
2026-08-18 16:19:15 +02:00
luelista
4dd6e1a19f
Fix attendee addresses for country requiring state in address ( #6480 )
2026-08-14 17:06:41 +02:00
Richard Schreiber
4cb9d76281
Fix typo in event’s default download reminder attendee ( #6473 )
2026-08-14 16:47:39 +02:00
luelista and Richard Schreiber
f8cc31b120
Order-level questions ( #6471 )
...
* New CheckoutSession model, created and deleted throught cart lifetime but only used for order-level question answers so far
* Order-level QuestionAnswers (relations to CheckoutSession / Order)
* New container_type field on Question model to specify whether Question belongs to order or orderposition
* Order-level questions are currently experimental, UI is hidden behind feature flag
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-08-14 14:56:45 +02:00
Lukas Bockstaller and pajowu
c4a5a9a84d
BasePaymentProvider & PayPal2: allow to cancel pending payments on a per payment basis (Z#23240966) ( #6472 )
...
* move payment into pending on PENDING_REVIEW webhook
* mark approved payment as pending
* extend BasePaymentProvider to gate aborting pending payments on a payment per payment basis
* add timeout to paypal after which a pending payment can be canceled
* formatting
* add missing negation
* cleanup abort_pending_allowed methods
* Apply suggestions from code review
Co-authored-by: pajowu <pajowu@pajowu.de >
* check all capture elements
* rename method and change defaults
* remove left over Constant
* flake8 .
---------
Co-authored-by: pajowu <pajowu@pajowu.de >
2026-08-13 17:28:54 +02:00
Kara Engelhardt
4e5fbacf6d
Replace deprecated redis setex call
2026-08-13 16:59:42 +02:00
7fe31634e6
Allow RelativeDate in relation to a moment of order ( #6160 )
...
* initial implementation
* factor out _resolve_base_date
* add js to prevent illegal inputs
* fix tests
* Update src/pretix/base/reldate.py
Co-authored-by: Raphael Michel <michel@pretix.eu >
* Apply suggestions from code review
Co-authored-by: Raphael Michel <mail@raphaelmichel.de >
* move js includes of to fragment_js.html
* add type annotations
* moves logic from RelativeDateWrapper into RelativeDate and adds BaseChoice for configuring which models attributes support which relationship
* fix tests
* test upgrade behaviour
* Apply suggestions from code review
Co-authored-by: Raphael Michel <mail@raphaelmichel.de >
* move reldate.js include in correct file
* add OptionAttrsSelect to allow select options with their own attributes per value
* add a little bit of information to the tests for future reference
* rewrite reldate.js use data-attributes
* general cleanup
* add test for order.subevents cases
* use correct choice format
* remove order.subevent variants
* various cleanup
* Apply suggestions from code review
Co-authored-by: Raphael Michel <mail@raphaelmichel.de >
* remove empty docstrings
* add depreciation warning
* change event listener to pretix:bind-forms
---------
Co-authored-by: Raphael Michel <michel@pretix.eu >
Co-authored-by: Raphael Michel <mail@raphaelmichel.de >
2026-08-12 15:37:29 +02:00
Raphael Michel and Richard Schreiber
f25c233e91
Fix performance issues in download reminder ( #6393 )
...
* Fix performance issues in download reminder
* Update src/pretix/base/services/orders.py
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
* Fixes after review
* Fix check in loop
---------
Co-authored-by: Richard Schreiber <schreiber@pretix.eu >
2026-08-10 16:13:54 +02:00
Raphael Michel
d08216d8c5
API: Allow to simulate check-ins ( #6360 )
...
* API: Allow to simulate check-ins
* Add missing file
2026-08-07 18:59:01 +02:00
Raphael Michel
ea792e76b2
Device list: Show online status ( #6455 )
...
* Device list: Show online status
* Fixes post-review
2026-08-06 09:07:20 +02:00
Raphael Michel
8133061fe1
Devices: Store timestamp of last contact ( #6453 )
2026-08-05 10:57:13 +02:00
Raphael Michel
288ac50600
Merge branch 'html-injection-placeholder' into 'master'
...
Prevent HTML injection in email preview (Z#23241741)
See merge request pretix/pretix!47
2026-08-05 10:56:46 +02:00
Raphael Michel
e7657a3dd3
Prevent HTML injection in email preview (Z#23241741)
2026-08-05 10:56:46 +02:00
pajowu
01d736361d
Cart Manager: Round custom price to currency when adding ( #6426 )
2026-08-03 14:26:57 +02:00
Raphael Michel
f3ffce4e5b
Question form: Allow to unset required boolean questions (Z#23239887) ( #6382 )
...
Proper fix for #6366
2026-07-28 10:59:34 +02:00
Raphael Michel
47b632eabe
RejectInvalidInputMiddleware: Ignore invalid charsets on body ( #6314 )
2026-07-28 09:07:16 +02:00
Raphael Michel
1ff9742a08
Customer export: Add memberships tab (Z#23228422) ( #6253 )
2026-07-28 09:06:45 +02:00
Kara Engelhardt
6d62284d87
Add global id field to order
2026-07-27 13:22:42 +02:00
Raphael Michel
92e7069a8e
Improve performance of overpayment checks (Z#23241035) ( #6410 )
...
* Improve performance of overpayment checks
* Upgrade django-scopes
2026-07-24 13:42:33 +02:00
Raphael Michel
9fd570a53d
Add cautionary comment about vobject bug
2026-07-22 14:49:53 +02:00
Raphael Michel
003bfb707d
Fix scoping for OrderPosition.objects (follow-up to #4278 ) ( #6407 )
2026-07-22 14:10:34 +02:00
Richard Schreiber
baf3cf04ec
fix import and missing license-header
2026-07-21 18:39:07 +02:00
Kara Engelhardt
fa2009ed03
Add central helper for ssrf address protection
2026-07-21 18:39:07 +02:00
luelista
cc082e2001
Improve CSP handling in vite integration; refactor CSP handling into helper functions (Z#23240534) ( #6387 )
2026-07-21 13:20:31 +02:00
Raphael Michel
d47c435489
LocaleMiddleware: Always render error pages in cookie or browser language ( #6277 )
2026-07-20 15:18:14 +02:00
Raphael Michel
ea819530f9
Escape HTML arguments to translation strings ( #6399 )
2026-07-20 13:15:09 +02:00
Raphael Michel
09aef94376
Vouchers: Fix race condition that allows budget to be exceeded ( #6396 )
2026-07-20 13:14:49 +02:00
Kara Engelhardt
214ea5fcd3
Show end time in subevent list (Z#23237612)
2026-07-20 12:00:22 +02:00
Raphael Michel
2de032c2be
Fix test failure on PostgreSQL
2026-07-17 19:22:50 +02:00
Raphael Michel
2574b31afd
Fix unused import
2026-07-17 18:44:33 +02:00
5f2264daeb
User email verifications: Add rate limiting (Z#23232834) ( #6219 )
...
* User email verifications: Add rate limiting (Z#23232834)
Also, refactor rate limiting into a central utility
* Make ip block work in dev
* Review notes
* Update src/pretix/base/forms/user.py
Co-authored-by: luelista <weller@rami.io >
* Apply suggestions from code review
Co-authored-by: luelista <mira@teamwiki.de >
* Add rate limit reset
---------
Co-authored-by: luelista <weller@rami.io >
Co-authored-by: luelista <mira@teamwiki.de >
2026-07-17 18:35:03 +02:00
Raphael Michel
49247062bc
Drop second component from many time picker fields ( #6150 )
2026-07-17 17:42:51 +02:00
luelista
71488f0a02
Fix migration conflict ( #6388 )
2026-07-16 17:07:25 +02:00
luelista and Raphael Michel
52a4381277
Enforce uniqueness of EventMetaProperty names in DB (Z#23231419) ( #6106 )
...
After enforcing this on application level in commit 4c37351 , we can now also add
a unique constraint on DB level and a migration to fix any left over non-unique entries.
---------
Co-authored-by: Raphael Michel <mail@raphaelmichel.de >
2026-07-16 15:44:58 +02:00