Compare commits

..

1494 Commits

Author SHA1 Message Date
Raphael Michel 6ea8a47f17 Try to debug flaky test 2021-03-02 10:43:37 +01:00
Raphael Michel a09dac89c4 Partially revert de597ba86 2021-03-02 09:30:27 +01:00
Raphael Michel 8af91b691d Allow configurable addition to the order confirmation message 2021-03-01 18:28:08 +01:00
Raphael Michel 2221b57dc9 Allow to disable ticket attachments to emails 2021-03-01 18:21:12 +01:00
Raphael Michel 8d99388c08 InvoiceExporter: Useful error message if PDF generation fails 2021-03-01 10:35:53 +01:00
Raphael Michel de597ba864 Fix #1982 -- Stricter cleaning of dynamic values in invoices 2021-03-01 10:35:02 +01:00
Raphael Michel 2d9a16e94d Bump to 3.17.0.dev0 2021-02-26 17:48:59 +01:00
Raphael Michel a0026d8a0c Bump to 3.16.0 2021-02-26 17:48:02 +01:00
Raphael Michel 1cee082821 Translated on translate.pretix.eu (German (informal) (de_Informal))
Currently translated at 100.0% (3996 of 3996 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2021-02-26 17:47:56 +01:00
Raphael Michel 6c1a3a4c68 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3996 of 3996 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2021-02-26 17:47:56 +01:00
Raphael Michel 156e8413f8 Add geo to wordlist.txt 2021-02-26 17:43:00 +01:00
Raphael Michel 46ccce439a PDF: Add placeholder for the event name even in series 2021-02-26 17:39:18 +01:00
Richard Schreiber 675de12a5d Geo fields: only confirm/overwrite if new lat/lon differ from existing coordinates 2021-02-26 15:20:14 +01:00
Raphael Michel 5992892035 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2021-02-26 10:06:30 +01:00
Richard Schreiber 1c81792cd7 Geo fields: Allow overriding existing values (#1978) 2021-02-26 09:55:23 +01:00
Raphael Michel 73e7d407cd Translated on translate.pretix.eu (German (informal) (de_Informal))
Currently translated at 100.0% (3992 of 3992 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2021-02-26 09:48:15 +01:00
Raphael Michel fa78583cd3 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3992 of 3992 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2021-02-26 09:48:15 +01:00
Raphael Michel bcba7b70ca Translated on translate.pretix.eu (German (informal) (de_Informal))
Currently translated at 100.0% (3992 of 3992 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2021-02-26 09:48:15 +01:00
Raphael Michel 141c6d04b2 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3992 of 3992 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2021-02-26 09:48:15 +01:00
Raphael Michel 9c0da900a2 Update issue templates 2021-02-25 20:55:12 +01:00
Raphael Michel 580479b266 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2021-02-25 20:14:50 +01:00
Raphael Michel 4adaa2059d Clarify language 2021-02-25 17:23:00 +01:00
Raphael Michel a900f39121 Check-in list update view: Fix incorrect timezone handling in exit_at_all 2021-02-25 12:32:55 +01:00
Richard Schreiber b625d987a9 fix encoding issue in geocode-API call 2021-02-24 17:52:55 +01:00
Richard Schreiber 71e7d527d1 Merge pull request #1933 from pretix/a11y-add-landmarks
a11y: add landmarks, add missing labels, aria-hide icons, add checkout notifications to page title
2021-02-24 16:51:09 +01:00
Richard Schreiber 6fd0880e79 Change test, so at least body-element is available and ticket not in there 2021-02-24 16:09:30 +01:00
Richard Schreiber 8ca253c860 Fixed selectors in tests 2021-02-24 15:02:39 +01:00
Richard Schreiber 63c2852668 Merge branch 'master' into a11y-add-landmarks 2021-02-24 13:17:24 +01:00
Richard Schreiber 5b36fa198d Bulk action improvements: buttons (wording, color, icons, disabled-state), hide select-on-all-pages if only one results-page (#1973) 2021-02-24 09:59:07 +01:00
Irmantas ef8b6f60b8 Adjust runperiodic logging (#1974)
Co-authored-by: Irmantas Marozas <irmantas.marozas@juvare.com>
2021-02-23 15:47:13 +01:00
Richard Schreiber 6ca07662b6 Merge branch 'master' into a11y-add-landmarks 2021-02-23 11:58:18 +01:00
Richard Schreiber 45a499ebba Merge pull request #1931 from pretix/bulk-select-with-drag-over
add bulk selection by click and drag over table rows
2021-02-22 22:00:40 +01:00
Richard Schreiber 1bfa4c6fda update toggle-state after release/pointerup instead of during updateSelection 2021-02-22 18:16:46 +01:00
Richard Schreiber 8a169d0496 fix bug when releasing outside of table 2021-02-22 18:13:18 +01:00
Richard Schreiber 40dbae76ca remove call to console.log 2021-02-22 17:47:03 +01:00
Richard Schreiber 4203087eff removed .warning from selected $rows as it interferes with .table-select-all 2021-02-22 17:46:04 +01:00
Richard Schreiber 88bf31bd7a Merge branch 'master' into bulk-select-with-drag-over 2021-02-22 16:37:39 +01:00
Richard Schreiber 3423923d84 Reduced "tickets and/or products" to "products" 2021-02-22 16:02:45 +01:00
Raphael Michel beb33e21ee Merge pull request #1927 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2021-02-22 15:24:59 +01:00
Ondřej Sokol 461ab8ba0a Translated on translate.pretix.eu (Czech)
Currently translated at 4.1% (162 of 3940 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/cs/

powered by weblate
2021-02-22 15:22:44 +01:00
Raphael Michel 7562f333cf Subevents: Bulk editor (#1918)
Co-authored-by: Richard Schreiber <wiffbi@gmail.com>
2021-02-22 15:22:40 +01:00
Richard Schreiber 32f1c32936 reverted source order for lang-nav, kept as nav-element 2021-02-22 14:59:24 +01:00
Raphael Michel eb0123e350 Allow to inspect organizer-level logs 2021-02-22 10:15:59 +01:00
Raphael Michel 37ba885c55 Check-in rule editor: Set tolerance to 0 when using custom time 2021-02-19 18:12:30 +01:00
Raphael Michel 8330448a94 Fix import order 2021-02-19 16:13:32 +01:00
Raphael Michel 8582bf8158 Use footernav block on organizer page 2021-02-19 16:00:12 +01:00
Richard Schreiber e872180ed1 add order confirmation to <title> 2021-02-19 12:00:03 +01:00
Richard Schreiber cc88e70db6 hide reservation timer from screen readers 2021-02-19 11:59:47 +01:00
Richard Schreiber c335dd35b3 moved notice-bottom in footer, added footernav 2021-02-19 11:58:56 +01:00
Richard Schreiber cea8efc4a3 added <main> and <aside> to checkout pages 2021-02-19 11:57:45 +01:00
Richard Schreiber c6c0f92891 moved update()-event to checkboxes’ change-event, added row-highlight if selected 2021-02-19 11:03:47 +01:00
Richard Schreiber d5950821e2 optimized update() to only check the least number of checkboxes 2021-02-19 11:02:42 +01:00
Richard Schreiber 78f2581bb8 added labels to batch-select checkboxes 2021-02-19 11:00:38 +01:00
Richard Schreiber c9f89dc920 simplified selection algorithm 2021-02-19 07:33:01 +01:00
Richard Schreiber fb7d38ede0 add bulk selection by click and drag over table rows 2021-02-18 21:05:30 +01:00
Raphael Michel 8be2f9ad6b XLSX exports: Strip all illegal characters 2021-02-17 17:34:08 +01:00
Richard Schreiber c033efbfa2 Merge pull request #1929 from pretix/fix-add-line-breaks-to-voucher-list
Voucher creation: Add linebreaks to {voucher_list} in emails
2021-02-17 15:35:26 +01:00
Richard Schreiber d990f0e927 fix markdown-linebreaks for voucher_list 2021-02-17 15:23:16 +01:00
Richard Schreiber e011b7810d Merge pull request #1928 from pretix/mark-as-paid-add-notify-checkbox
Add checkbox to disable email sending when marking an order as paid
2021-02-17 14:58:35 +01:00
Richard Schreiber 0d0bbe1ce5 add send_email field to mark-paid 2021-02-17 12:37:26 +01:00
Raphael Michel 488273d5f2 Fix #1912 -- Auto-open all <details> with an error inside 2021-02-15 18:30:37 +01:00
Raphael Michel 9fdaf040dc Asynctask JS: On errors, only replace inner part of page 2021-02-15 18:30:37 +01:00
Raphael Michel d109dde1e1 Fix form validation of exporters (again) 2021-02-15 18:30:37 +01:00
Raphael Michel d713398e88 Merge pull request #1925 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2021-02-15 18:02:34 +01:00
Jaakko Rinta-Filppula 0898d13e4c Translated on translate.pretix.eu (Finnish)
Currently translated at 18.5% (731 of 3940 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-02-15 17:48:50 +01:00
Raphael Michel 04098ce002 API: Add docs on order lifecycle 2021-02-15 17:48:43 +01:00
Richard Schreiber f2a18325b6 Add a voucher’s comment to voucher.csv download (#1926) 2021-02-15 13:41:44 +01:00
Raphael Michel 4db0530c09 REST API docs: Remove "versionchanged" notes older than ~1 year (version 3.2 and below) 2021-02-15 09:43:58 +01:00
Raphael Michel 938d84b251 Update order state chart 2021-02-15 09:38:13 +01:00
Raphael Michel c65b2aa4f8 API: Add missing field SubEvent.frontpage_text 2021-02-15 09:16:40 +01:00
Richard Schreiber 2583e6166a Merge branch 'master' into a11y-add-landmarks 2021-02-12 20:40:24 +01:00
Richard Schreiber 825fd1820b [a11y] Add text "required" to label of required inputs (#1923) 2021-02-12 14:05:30 +01:00
Raphael Michel c8d039b196 Sendmail: Allow to filter by order date 2021-02-12 12:41:45 +01:00
Raphael Michel 72b6ff0389 Sendmail form: Fix validation problems 2021-02-12 12:34:04 +01:00
Richard Schreiber ef4db07e8b omit ? in lang-nav redirect when not needed 2021-02-11 17:27:05 +01:00
Richard Schreiber ef1e5759eb marked checkout-steps as completed/current
See https://www.w3.org/WAI/tutorials/forms/multi-page/
2021-02-11 17:26:14 +01:00
Richard Schreiber 9f1079dcc4 checkout-flow steps to page-title 2021-02-11 17:25:31 +01:00
Richard Schreiber 518c1fbbf2 Added notifications/messages to page-title 2021-02-11 17:24:05 +01:00
Richard Schreiber b9c9a03cdd Fixed item.name for price input 2021-02-11 16:16:17 +01:00
Richard Schreiber 5060bac7e0 update aria-label on <main> 2021-02-11 16:04:07 +01:00
Richard Schreiber c4be508e26 added anchor link to voucher-input 2021-02-11 16:03:47 +01:00
Richard Schreiber c75f741d4f removed variations-toggle hreef-attribute to enable non-JS dialog-open behaviour 2021-02-11 16:03:13 +01:00
Richard Schreiber d6ef563f83 added labels (price input, image-lightbox link) 2021-02-11 16:02:18 +01:00
Richard Schreiber 3f75a935a3 changed products to <article> 2021-02-10 18:03:30 +01:00
Richard Schreiber 246e7c9443 added aria-labels to category-sections 2021-02-10 18:03:09 +01:00
Richard Schreiber 3dd685bf7a Updated main aria-label 2021-02-10 17:55:30 +01:00
Richard Schreiber 1480bd0690 added aria-hidden to fontawesome and some aria-label if needed 2021-02-10 17:27:49 +01:00
Richard Schreiber 01af8568ca converted second lang-nav to <nav> and changed source order 2021-02-10 16:41:59 +01:00
Richard Schreiber 74461dde50 added landmarks to startpage 2021-02-10 16:36:31 +01:00
Raphael Michel f0fd4272dc Add more features to custom meta properties (#1922) 2021-02-10 11:01:25 +01:00
Raphael Michel a0f60c71b9 Add order time to check-in list CSV export 2021-02-10 09:11:16 +01:00
Raphael Michel 6b2ab44b26 Fix undefined variable 2021-02-09 19:00:20 +01:00
Raphael Michel 9472d81e55 Invalidate ticket cache after a change in events or subevents 2021-02-09 18:33:04 +01:00
Raphael Michel b630174f72 Fix bug when modifying an order with an address in a country with a state 2021-02-09 18:23:24 +01:00
Raphael Michel 25c35b0f73 Docker: Log more things to stdout 2021-02-09 18:16:35 +01:00
Raphael Michel c0792f4171 Fallback to random ticket secret generator if invalid one is selected 2021-02-09 16:01:33 +01:00
Raphael Michel 5d490728df Check-in: Do not respond with outdated question answers in pdf_data 2021-02-09 12:55:27 +01:00
Raphael Michel 21fbf095cf Fix compatibility with cryptography 3.4.x 2021-02-08 18:01:05 +01:00
Raphael Michel 7b8ad1ebbe Remove --no-use-pep517 2021-02-08 17:56:05 +01:00
Raphael Michel 81f37d9ce5 PDF layout: Allow to show photos from questions (#1919) 2021-02-08 17:48:06 +01:00
Raphael Michel 40c4872459 Check-in: Save answers independent of result 2021-02-08 17:01:55 +01:00
Martin Gross f0574755a2 Add salutation_given_family to PERSON_NAME_SCHEMES. (#1921) 2021-02-05 13:31:57 +01:00
Raphael Michel 4cfedebf3b Fix scoping issue in tests 2021-02-05 12:53:55 +01:00
Raphael Michel 45376dd757 Fix linter issue 2021-02-04 21:43:04 +01:00
Raphael Michel 0999f41b0c Do not allow modifications after checkin 2021-02-04 21:43:04 +01:00
Raphael Michel 565f77d13b Add imprint and contact mail on organizer level 2021-02-04 17:36:29 +01:00
Raphael Michel 5ae7a350b0 Add signal global_footer_link 2021-02-04 17:32:10 +01:00
Raphael Michel af7d9942f6 Sort payment providers by public name 2021-02-04 17:21:47 +01:00
Raphael Michel 36efb25b98 Invoice address: Always validate that VAT ID is for correct country 2021-02-04 17:21:24 +01:00
Raphael Michel 7a496da945 Widget: Introduce disable-iframe parameter 2021-02-04 10:58:15 +01:00
Raphael Michel 03f1016cc7 Fix syntax error in setup.py 2021-02-04 10:42:41 +01:00
Raphael Michel 4d4d2d5fe7 Fix ill-formed requirement 2021-02-04 10:24:04 +01:00
Raphael Michel 98f48e78a8 Update bleach to 3.3.0 2021-02-04 10:23:18 +01:00
Raphael Michel 512c9f5301 Upgrade bootstrap JS to 3.4.1 2021-02-04 10:20:49 +01:00
Raphael Michel d16c59e86c Update Vue.js from 2.4.0 to 2.6.12 2021-02-04 10:06:51 +01:00
Raphael Michel 177b0505fd Update moment.js from 2.14 to 2.29 2021-02-04 10:06:38 +01:00
Raphael Michel 01f7a70347 ADd some extensibility features to MultiSheetListExporter 2021-02-03 17:29:15 +01:00
Raphael Michel 3b4c99d450 Rich text: Fix issue with <a> without href="" 2021-02-02 15:58:43 +01:00
Raphael Michel 3bb23bb77e Invoice exporter: Add order ID to filename 2021-02-02 15:54:05 +01:00
Raphael Michel 89da0847ca Device security policy: Allow order payments for POS 2021-02-02 15:54:05 +01:00
Martin Gross 07bed72b5e Add information on `subevent`-parameter for pretix-Button 2021-02-01 16:08:16 +01:00
Raphael Michel c103288eec 2021 attempt at disabling autocomplete in date fields
Apparently, we so far disabled "autofill" but not "autocomplete". For
date fields, autocomplete is more relevant. Explanation
https://stackoverflow.com/a/57810447/336784
2021-02-01 10:07:57 +01:00
Raphael Michel 03648b77b1 List of teams: Order alphabetically 2021-02-01 10:07:57 +01:00
Raphael Michel 818d75ddd7 Merge pull request #1917 from pretix-translations/weblate-pretix-pretix 2021-01-30 21:02:25 +01:00
Raphael Michel 20f608caae Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3940 of 3940 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2021-01-30 20:49:41 +01:00
Raphael Michel 7b3a6d47fc Translated on translate.pretix.eu (German (informal) (de_Informal))
Currently translated at 100.0% (3940 of 3940 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2021-01-30 20:49:26 +01:00
Maarten van den Berg d586406c79 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3940 of 3940 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2021-01-29 12:23:33 +01:00
Maarten van den Berg e214c8cb95 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3940 of 3940 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2021-01-29 12:23:31 +01:00
Raphael Michel 81f2b9db30 Fix typo in docstring 2021-01-29 10:32:35 +01:00
Raphael Michel 04a6ed20b9 Bump to 3.16.0.dev0 2021-01-29 10:14:45 +01:00
Raphael Michel d745bcf2c4 Bump to 3.15.0 2021-01-29 10:14:45 +01:00
Raphael Michel a1bfe05879 Correctly pass query string when redirecting to sudo page 2021-01-28 22:22:26 +01:00
Raphael Michel f156299cb3 Merge pull request #1915 from pretix-translations/weblate-pretix-pretix 2021-01-28 12:58:25 +01:00
pretix Translation Platform 023b1535d4 Fix corrupt file 2021-01-28 12:53:18 +01:00
Raphael Michel ec97dae695 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3934 of 3934 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2021-01-28 12:49:48 +01:00
Raphael Michel f184ca1918 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3934 of 3934 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2021-01-28 12:49:48 +01:00
Jaakko Rinta-Filppula 7f71ae6e4b Translated on translate.pretix.eu (Finnish)
Currently translated at 18.3% (721 of 3934 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-28 12:49:47 +01:00
Jaakko Rinta-Filppula 84bafd94d5 Translated on translate.pretix.eu (Finnish)
Currently translated at 18.2% (713 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-28 12:49:46 +01:00
Raphael Michel ac7502b0a2 Limit batch size in bulk voucher creation (avoid problems with MySQL's max_packet_size) 2021-01-28 12:43:26 +01:00
Raphael Michel 3c85591568 Fix typos 2021-01-28 10:41:40 +01:00
Raphael Michel 2787935fc6 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2021-01-27 18:45:35 +01:00
Raphael Michel 6d432cf824 Bank transfer: Allow to add IBAN blocklist for refunds 2021-01-27 18:44:20 +01:00
Raphael Michel e09853c6c6 SubEvent editing: Pass copy_from to plugins 2021-01-27 18:22:36 +01:00
Raphael Michel 418c9196ba Order list: Sort by cancellation request time if filtered for requested cancellations 2021-01-27 12:37:54 +01:00
Raphael Michel a949fd7fdc Bank transfer: Change order of variables in export 2021-01-27 11:09:07 +01:00
Raphael Michel f9b834b798 Bank transfer: Duplicate payments are allowed if part of the same import 2021-01-27 10:52:20 +01:00
Raphael Michel 0747f5b8b8 Freshen up layout of refund choice page 2021-01-27 10:48:40 +01:00
Raphael Michel 33b34f31d1 Add BasePaymentProvider.payment_control_render_short and use it on refund page 2021-01-27 10:34:59 +01:00
Raphael Michel f93c780e6a Add context to "to" translation 2021-01-27 10:05:31 +01:00
Raphael Michel 9722e76e5f Bank transfer refund: Allow to enter BIC 2021-01-27 10:04:31 +01:00
Raphael Michel e33d15429e ResendLinkView: Change text and logic of rate limiting 2021-01-26 16:52:08 +01:00
Raphael Michel 41c69aaa2a Allow to create refunds without a payment (#1914)
Co-authored-by: Martin Gross <gross@rami.io>
2021-01-26 10:53:59 +01:00
pretix translation bot 07ed7526c0 Translations update from Weblate (#1913)
Co-authored-by: Jaakko Rinta-Filppula <jaakko@r-f.fi>
2021-01-26 10:53:45 +01:00
Raphael Michel 1043824853 Add context to ambigous string 2021-01-25 12:40:10 +01:00
Martin Gross a99a254f5c Add missing logentry-message for denied password reset 2021-01-25 11:48:09 +01:00
Raphael Michel 0429a0f811 Hide DEBUG log from asyncio 2021-01-25 10:40:20 +01:00
Raphael Michel c2ba312bad Show local time zone of visitor in more places 2021-01-24 22:43:01 +01:00
Raphael Michel a3ff3cda12 Bank transfer: Freshen up export templates a little 2021-01-24 22:05:18 +01:00
Raphael Michel aeba2a1e26 Add metrics on celery queue length 2021-01-23 23:49:58 +01:00
Raphael Michel e57291914c Item list: Add more icons 2021-01-22 15:35:26 +01:00
Raphael Michel 7165cc4c3b Show ID of items and variations in backend 2021-01-22 14:48:32 +01:00
Raphael Michel fa5f33d3c6 Revert accidental change 2021-01-22 14:44:38 +01:00
Richard Schreiber c8df9c187e Updated docs on how to setup Google Analytics (Universal or GA4) for cross-domain tracking when using pretix-widget (#1910) 2021-01-20 18:14:45 +01:00
Raphael Michel 35270e7032 Allow to change order of refund list 2021-01-20 18:10:40 +01:00
Raphael Michel 898ae3e2bc Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2021-01-20 17:42:16 +01:00
Raphael Michel 76d0c7be3a Fix a typo 2021-01-20 17:41:43 +01:00
Raphael Michel 793832402c Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2021-01-20 17:33:17 +01:00
Raphael Michel f6a500cd75 Fix isort issue 2021-01-20 17:27:38 +01:00
Raphael Michel 7a8f90478a CartAdd with subevents: Useful redirect in error case 2021-01-20 17:26:47 +01:00
Raphael Michel 6ea4315beb Subevent bulk creation: Allow to auto-generate time slots 2021-01-20 17:19:01 +01:00
Raphael Michel f3de5d5c96 Lazy-format placeholders in DateField and TimeField 2021-01-20 17:19:00 +01:00
Raphael Michel fdc555f74f Merge pull request #1911 from pretix-translations/weblate-pretix-pretix 2021-01-20 17:12:16 +01:00
Jaakko Rinta-Filppula 2505389e61 Translated on translate.pretix.eu (Finnish)
Currently translated at 63.3% (81 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/fi/

powered by weblate
2021-01-20 17:10:46 +01:00
Jaakko Rinta-Filppula da38396191 Translated on translate.pretix.eu (Finnish)
Currently translated at 17.8% (695 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-20 17:10:46 +01:00
Jaakko Rinta-Filppula 2abe744bdd Translated on translate.pretix.eu (Finnish)
Currently translated at 17.4% (682 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-20 17:10:46 +01:00
Jaakko Rinta-Filppula ce79bfb242 Translated on translate.pretix.eu (Finnish)
Currently translated at 17.1% (670 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-20 17:10:46 +01:00
Ayan Ginet 748cfa3487 Documentation typo fix (#1908) 2021-01-20 17:10:40 +01:00
Raphael Michel eb80cf248e Fix widget tests 2021-01-20 13:16:38 +01:00
Raphael Michel 65e3efa5a3 API: Clarify session validity codepaths 2021-01-20 12:37:34 +01:00
Raphael Michel 3388c3ab09 Add file upload to security profiles 2021-01-20 12:37:29 +01:00
Raphael Michel 65ff065f02 Widget: Show event name and description on level 2 in org > event > date navigation 2021-01-19 16:41:18 +01:00
Raphael Michel 0f30958937 Fix copy-paste error 2021-01-18 15:02:30 +01:00
Raphael Michel 5cef80d58c Subevent creation: Pre-fill name and location from event 2021-01-18 13:07:07 +01:00
Raphael Michel 19c328b6e7 Revert usage of NumberField for geo_lat/geo_lon, causes trouble with German locale 2021-01-18 12:47:40 +01:00
Raphael Michel fc6b644587 End infinite link tree on organizer calendar pages 2021-01-18 11:13:27 +01:00
Raphael Michel 190ffe8d24 Bank transfer: Move discard button to other end 2021-01-15 12:25:27 +01:00
Raphael Michel 18eedd8a5f Order cancellation: Allow to set step size for fee amount 2021-01-15 12:18:51 +01:00
Raphael Michel 00667aff11 Advanced order search: Allow to search by paid amount 2021-01-15 11:39:28 +01:00
Raphael Michel f1cd46f6dc Add new field OrderRefund.comment 2021-01-15 11:25:09 +01:00
Raphael Michel 674d7673ce OrderTaxListReport: Fix date handling error 2021-01-15 10:16:01 +01:00
Raphael Michel 71800074ca Bump sepaxml version 2021-01-15 09:40:09 +01:00
Raphael Michel a7b331a9b0 Bank transfer: Fix mismatch if the reference contains the code twice 2021-01-14 17:49:31 +01:00
Raphael Michel 1d541df381 Bank transfer: Find order codes even if there's a suffix behind them 2021-01-14 16:19:01 +01:00
Raphael Michel 32d32d68d9 Bank transfer: Fix possible importer issue with special regex characters in event slug 2021-01-14 16:13:43 +01:00
Raphael Michel 5375f6aec1 rich text truelinks: Excape - in regex correctly 2021-01-14 13:22:40 +01:00
alice 99f3360c44 typo in banktransfer import filter 2021-01-13 18:15:41 +01:00
Raphael Michel d391312aab API: Allow to modify order position information (#1904) 2021-01-13 14:18:58 +01:00
Raphael Michel 70bf422537 Do not allow slugs to end with a dot 2021-01-13 11:55:24 +01:00
Raphael Michel 86932e8a19 Merge pull request #1896 from pretix-translations/weblate-pretix-pretix 2021-01-13 10:41:36 +01:00
Maarten van den Berg 2d9bf5ecb9 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3909 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2021-01-13 06:00:11 +01:00
Maarten van den Berg c4e8da8ea4 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3909 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2021-01-13 06:00:10 +01:00
Li Thomas 715fdadf95 Translated on translate.pretix.eu (Chinese (Simplified))
Currently translated at 78.6% (3074 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/zh_Hans/

powered by weblate
2021-01-12 17:32:19 +01:00
Jaakko Rinta-Filppula 1b53d74aa9 Translated on translate.pretix.eu (Finnish)
Currently translated at 17.1% (669 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-12 17:32:19 +01:00
Jaakko Rinta-Filppula 66621aee6e Translated on translate.pretix.eu (Finnish)
Currently translated at 63.3% (81 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/fi/

powered by weblate
2021-01-12 17:32:19 +01:00
Jaakko Rinta-Filppula 18333041bb Translated on translate.pretix.eu (Finnish)
Currently translated at 16.9% (662 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-12 17:32:19 +01:00
Jaakko Rinta-Filppula b4badaa472 Translated on translate.pretix.eu (Finnish)
Currently translated at 16.8% (655 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2021-01-12 17:32:19 +01:00
Raphael Michel a856f29426 Rich text: Do not call link text heuristic for mailto: 2021-01-12 17:31:58 +01:00
Raphael Michel 1dab5149d4 Add frontpage_text to widget tests 2021-01-12 13:00:14 +01:00
Raphael Michel 4e870b7366 Question form: Do not show "This field is required" twice 2021-01-12 12:57:00 +01:00
Martin Gross a8cbb06bb0 Fixing all-time favorite pretix/prefix typo 2021-01-12 12:44:51 +01:00
Raphael Michel 0be2043ded Redirect to single-exporter page after exporter failure 2021-01-12 12:42:37 +01:00
Raphael Michel 2554c7f5fc Fix error 405 in export form validation 2021-01-12 12:38:36 +01:00
Raphael Michel 3912ceb79d Fix widget error 2021-01-12 12:31:32 +01:00
Raphael Michel 593fc69d0c Widget: Include frontpage_text, but only after navigation 2021-01-12 11:57:54 +01:00
Raphael Michel cf3c4d26cb Bank transfer: Allow to refund payments without BIC 2021-01-08 23:21:49 +01:00
Raphael Michel bc8358cd97 Bank transfer: Recognize BICs in MT940 2021-01-08 23:21:49 +01:00
Benjamin Hättasch e2461ab475 Add option to export multiple choice answers in orderlists grouped (#1898) 2021-01-08 21:36:49 +01:00
Raphael Michel f97c97e661 Fix UX quirk in phone number field triggered by American numbers 2021-01-08 15:18:56 +01:00
Raphael Michel 1325cf1e7c Fix typo 2021-01-07 19:00:54 +01:00
Raphael Michel ba8ea0e4d4 Resend links: use order.open URL 2021-01-07 18:10:41 +01:00
Raphael Michel 1c769f2876 Order cancel: Show refund methods 2021-01-07 17:55:30 +01:00
Raphael Michel 2dee222482 Payment plugin API: Add payment_presale_render 2021-01-07 17:55:27 +01:00
Raphael Michel d132cd27f3 PayPal: Do not allow refund if payment is older than 180 days 2021-01-07 17:11:03 +01:00
Raphael Michel 9a2a4bedeb Docs: Add missing placeholders 2021-01-07 15:43:34 +01:00
Raphael Michel 779cefeaad Order codes: Remove character '8' from charset 2021-01-07 15:36:05 +01:00
Raphael Michel b36feb229f Merge pull request #1901 from pretix/api-upload 2021-01-07 13:00:57 +01:00
Raphael Michel 2e5861958d API: Fix CSS generation after change in event settings 2021-01-07 12:41:41 +01:00
Raphael Michel 01c3b08583 API: Allow to answer file upload questions during ticket redemption 2021-01-07 11:18:23 +01:00
Raphael Michel 5b81507600 API: Allow to use uploaded files in settings fields 2021-01-07 11:18:23 +01:00
Raphael Michel 75e100f108 API: Allow to set product pictures 2021-01-07 11:18:23 +01:00
Raphael Michel 8b08b43e77 API: File upload infrastructure 2021-01-07 11:18:23 +01:00
Raphael Michel 9d70fd675c Badges: Use meaningful filename for downloaded files 2021-01-07 10:35:02 +01:00
Raphael Michel 72504cd53a Context processor: Fix crash if plugin returns none 2021-01-07 10:29:29 +01:00
Raphael Michel 9056826b68 Waiting list: Correct status in backend 2021-01-07 10:29:22 +01:00
Raphael Michel ecf05b2392 Waiting list: Show warning if event is not live 2021-01-07 10:25:00 +01:00
Raphael Michel 4aa9f073b3 Waiting list: Do not send vouchers for unavailable items 2021-01-07 10:17:45 +01:00
Raphael Michel 19c2b8d89d Check-in rules: Fall back to date_from if date_to is unset 2021-01-07 10:17:29 +01:00
Raphael Michel 5e355b4005 Fix duplicate listing of fonts in event settings 2021-01-05 09:23:00 +01:00
Raphael Michel 746c140cdb Fix crash on failed geocoding 2021-01-04 16:48:32 +01:00
Raphael Michel be413693ce Validate range of geo_lat/geo_lon values 2021-01-04 10:35:42 +01:00
Raphael Michel 6cf1074b8d Fix geocoding with opencage 2021-01-04 10:35:41 +01:00
Raphael Michel 504067f325 Fix tests failing in 2021 2021-01-01 21:29:51 +01:00
Maico Timmerman b1cffe9f72 Shredder: Only force download for tax-relevant data (#1801) 2021-01-01 20:20:42 +01:00
Maico Timmerman c0dd631774 Show "live issues" when event is already live (#1889) 2021-01-01 20:14:04 +01:00
Raphael Michel 66cd63036c Merge pull request #1894 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2021-01-01 20:03:57 +01:00
albert 29a45d3ee4 Translated on translate.pretix.eu (Catalan)
Currently translated at 51.0% (1995 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-30 13:11:22 +01:00
Martin Gross 23aba9b5ef Move Mapquest-Geocoding to HTTPS 2020-12-30 13:11:10 +01:00
Raphael Michel 454f0f6fc8 Create log entry upon order email confirmation 2020-12-23 17:52:20 +01:00
Raphael Michel 002ff38fba Fix crash in add-on form (PRETIXEU-3GV) 2020-12-23 17:46:52 +01:00
luto dc8bd59715 Add convenience redirect …/event/(org)/ => …/organizer/(org)/ (#1893) 2020-12-23 16:50:41 +01:00
Raphael Michel 56a2da08df Merge pull request #1891 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-12-23 16:31:41 +01:00
Maarten van den Berg 4762d6818f Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3909 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-12-23 16:31:29 +01:00
Richard Schreiber e99e91d20f Show event’s date and location in widget if event is subevent (#1892) 2020-12-23 16:31:24 +01:00
0xflotus 9fee2d0fbc Docs: Enabling Syntax Highlighting (#1890) 2020-12-23 10:24:39 +01:00
Raphael Michel 3f30ddc9ab Fix #1888 -- UnknownLocaleError if locale is set 2020-12-22 13:14:56 +01:00
Raphael Michel 641a848f30 Bump to 3.15.0.dev0 2020-12-22 12:40:04 +01:00
Raphael Michel a582322847 Bump to 3.14.0 2020-12-22 12:39:31 +01:00
Raphael Michel a7ec7491ec Merge pull request #1887 from pretix-translations/weblate-pretix-pretix 2020-12-22 12:38:16 +01:00
Raphael Michel 90ae8860dd Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3909 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-12-22 12:38:06 +01:00
Raphael Michel 00ca75e119 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3909 of 3909 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-12-22 12:38:06 +01:00
Raphael Michel 455fb2e560 Make fake e-mail field look more consistent 2020-12-22 12:37:49 +01:00
Raphael Michel 1ec4c524f8 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-12-22 12:06:11 +01:00
Raphael Michel 75b9b04c65 Merge pull request #1885 from pretix-translations/weblate-pretix-pretix 2020-12-22 12:05:34 +01:00
albert bf0a9675f4 Translated on translate.pretix.eu (Catalan)
Currently translated at 49.3% (1923 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-22 11:46:56 +01:00
Maarten van den Berg 853877f2da Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3900 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-12-22 11:46:55 +01:00
Maarten van den Berg 2e44900c43 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3900 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-12-22 11:46:55 +01:00
albert c5085bb46e Translated on translate.pretix.eu (Catalan)
Currently translated at 49.0% (1911 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-22 11:46:55 +01:00
albert da859b9980 Translated on translate.pretix.eu (Catalan)
Currently translated at 47.4% (1849 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-22 11:46:55 +01:00
albert b6f30f6996 Translated on translate.pretix.eu (Catalan)
Currently translated at 4.7% (6 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ca/

powered by weblate
2020-12-22 11:46:55 +01:00
albert 9fde378eac Translated on translate.pretix.eu (Catalan)
Currently translated at 46.3% (1807 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-22 11:46:55 +01:00
Raphael Michel 52e9525f64 Fix isort of test 2020-12-22 11:46:45 +01:00
Raphael Michel 80aeeed855 Fix bug in 8ed41a127 2020-12-22 11:33:37 +01:00
Raphael Michel d207514c9a Change migration graph to be compatible with backports 2020-12-22 11:33:37 +01:00
Raphael Michel 1286e53b85 Reduce lifetime of export files 2020-12-22 10:48:06 +01:00
Raphael Michel 7c0df5b755 [SECURITY] Rate limiting for login 2020-12-22 10:47:47 +01:00
Raphael Michel 8889d8441e [SECURITY] Rate limiting for password change form 2020-12-22 10:47:47 +01:00
Raphael Michel c60a25f2bc [SECURITY] Bind relevant cached file downloads to the current session 2020-12-22 10:47:47 +01:00
Raphael Michel a3dd015c23 [SECURITY] Fix unvalidated redirect 2020-12-22 10:47:47 +01:00
Raphael Michel 736ecbd7b6 [SECURITY] Prevent phishing through misleading link titles 2020-12-22 10:47:47 +01:00
Raphael Michel 8ed41a1276 Add csp_additional_header config option 2020-12-21 19:16:09 +01:00
Raphael Michel 06643232cf Fix #1420 -- Hide "shop not available" from log files 2020-12-19 20:04:48 +01:00
Raphael Michel 90399d2567 Remove subevent=None from suggested voucher URLs 2020-12-19 19:55:28 +01:00
Raphael Michel 609203196b SMTP settings: Timeout during testing 2020-12-19 19:46:23 +01:00
Raphael Michel 070b871254 Bank transfer import: Auto-detect valid split payments 2020-12-19 16:55:06 +01:00
Raphael Michel cbadb2c395 Bank transfer API: Block concurrent jobs 2020-12-19 16:27:43 +01:00
Raphael Michel 0e9951f964 Backend order detail page: Show pending sum 2020-12-19 16:25:32 +01:00
Richard Schreiber 6afb954b93 Fix #1879 -- Do not add a tab’s hash/id to location.hash if it is inside a .panel (#1881)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-12-18 09:33:27 +01:00
Richard Schreiber bdf1fc2c23 Added combined radiob uttons for <name>_asked and <name>_required fields (#1880) 2020-12-18 09:33:07 +01:00
Raphael Michel 9c0c8a95fa Merge pull request #1883 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-12-18 09:32:50 +01:00
albert 356a2dc9c5 Translated on translate.pretix.eu (Catalan)
Currently translated at 43.0% (1678 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-18 08:00:11 +01:00
Raphael Michel 4f5a9284ca Merge pull request #1878 from pretix-translations/weblate-pretix-pretix 2020-12-17 16:07:18 +01:00
albert 130b06d26b Translated on translate.pretix.eu (Catalan)
Currently translated at 41.8% (1629 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-16 12:49:37 +01:00
albert ab4dd9b8de Translated on translate.pretix.eu (Catalan)
Currently translated at 40.9% (1596 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-16 12:49:37 +01:00
albert bb6b8bd8bb Translated on translate.pretix.eu (Catalan)
Currently translated at 3.9% (5 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ca/

powered by weblate
2020-12-16 12:49:37 +01:00
albert 2aeceeed08 Translated on translate.pretix.eu (Catalan)
Currently translated at 40.9% (1595 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-16 12:49:37 +01:00
Raphael Michel 39223f0f65 Docker setup: Allow to configure number of worker processes 2020-12-16 12:49:13 +01:00
Raphael Michel 33ba4daadb Docker setup: Tune some nginx parameters 2020-12-16 12:42:49 +01:00
Raphael Michel 1f9adcce6e Always use "cleaned" LANGUAGE_CODE in templates 2020-12-16 10:46:47 +01:00
Raphael Michel 4d36676cf8 Allow to filter for partially paid orders 2020-12-15 16:06:59 +01:00
Raphael Michel 821cb54ad0 Backend order list: Show sales channel 2020-12-15 15:53:21 +01:00
Raphael Michel a40951060f Backend order list: Show payment amount 2020-12-15 15:44:38 +01:00
Raphael Michel c6a98fad5a Fix involunatery CSS change 2020-12-15 14:52:50 +01:00
Raphael Michel d3a0405faa Fix another bug in phone_format template tag 2020-12-15 09:56:18 +01:00
Raphael Michel 664bb9a65b Frontend order details: Do not show empty "name" line 2020-12-15 09:56:18 +01:00
Raphael Michel 06d8464998 Merge pull request #1877 from pretix-translations/weblate-pretix-pretix 2020-12-15 09:53:41 +01:00
Raphael Michel c9b20d2cf5 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3900 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-12-15 09:51:37 +01:00
Raphael Michel a198635865 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3900 of 3900 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-12-15 09:51:35 +01:00
Raphael Michel 4e26df5752 Fix phone number display issue 2020-12-15 09:38:26 +01:00
Raphael Michel 5caa874263 Merge pull request #1876 from pretix-translations/weblate-pretix-pretix
Co-authored-by: albert <albert.serra.monner@gmail.com>
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-12-15 09:30:30 +01:00
Raphael Michel 05939537dd Update django.po 2020-12-15 09:28:23 +01:00
Raphael Michel 0d29f8624f Merge branch 'master' into weblate-pretix-pretix 2020-12-15 09:24:47 +01:00
Raphael Michel 0d8db8266d Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-12-15 09:22:57 +01:00
albert 09be2c1199 Translated on translate.pretix.eu (Catalan)
Currently translated at 3.1% (4 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ca/

powered by weblate
2020-12-15 09:20:50 +01:00
albert da8ecb6e6e Translated on translate.pretix.eu (Catalan)
Currently translated at 36.2% (1397 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-15 09:20:50 +01:00
Raphael Michel 4240ad43d0 Add order-level telephone field to core (#1872)
Co-authored-by: Martin Gross <gross@rami.io>
2020-12-15 09:20:44 +01: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 e311341d01 Extend .dockerignore 2020-12-14 13:11:19 +01:00
Raphael Michel 1f21d1420c Fix import order 2020-12-14 11:45:23 +01:00
Raphael Michel 5c1d637637 Merge pull request #1873 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-12-14 11:36:50 +01:00
Ondřej Sokol ecc72d54ad Translated on translate.pretix.eu (Czech)
Currently translated at 28.9% (37 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/cs/

powered by weblate
2020-12-14 11:00:17 +01:00
Ondřej Sokol ff8a3ea1c3 Translated on translate.pretix.eu (Czech)
Currently translated at 3.5% (134 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/cs/

powered by weblate
2020-12-14 11:00:16 +01:00
albert 924bad3484 Translated on translate.pretix.eu (Catalan)
Currently translated at 32.2% (1241 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-13 19:16:55 +01:00
albert 808df7a982 Translated on translate.pretix.eu (Catalan)
Currently translated at 2.3% (3 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ca/

powered by weblate
2020-12-13 19:16:55 +01:00
albert 7f196ef6fe Translated on translate.pretix.eu (Catalan)
Currently translated at 30.3% (1171 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-13 19:16:55 +01:00
albert 44ef9b608a Translated on translate.pretix.eu (Catalan)
Currently translated at 27.5% (1062 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/

powered by weblate
2020-12-13 19:16:55 +01:00
Raphael Michel 62b1aec3b0 Save a pointless query on non-series events 2020-12-13 16:31:17 +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 5308099d84 Fix 5-second quota caching 2020-12-13 15:50:02 +01:00
Raphael Michel a5e41aae50 Add MapQuest as additional geocoding provider 2020-12-12 15:13:56 +01:00
Raphael Michel 54e4ad1a1c Merge pull request #1871 from pretix-translations/weblate-pretix-pretix 2020-12-11 18:47:15 +01:00
Maarten van den Berg b6e4163c2b Translated on translate.pretix.eu (Dutch)
Currently translated at 99.2% (3830 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-12-11 17:50:38 +01:00
Maarten van den Berg 1aa1583eae Translated on translate.pretix.eu (Dutch)
Currently translated at 98.9% (3817 of 3859 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-12-11 17:50:38 +01:00
Raphael Michel fc210cf06d Add sanity check to tax calculation 2020-12-11 17:46:42 +01:00
Raphael Michel 3459f3e4c4 Tax rules: Allow per-country text on invoices 2020-12-11 17:45:36 +01:00
Raphael Michel 903a7f122d Tax rule editor: Allow to reorder lines 2020-12-11 16:24:05 +01:00
Raphael Michel 246d150511 Tax rule editor: Show edit history 2020-12-11 15:38:05 +01:00
Raphael Michel 2cd5094393 Tax rule editor: Use cacehd countries 2020-12-11 15:19:34 +01:00
Raphael Michel a665836a60 Add a custom text field for every attendee in the question step 2020-12-10 18:19:51 +01:00
Raphael Michel e7d2d0ddab Adjust tests broken by 0a55fdbc4 2020-12-10 18:10:45 +01:00
Raphael Michel 1d722da5af Fix tax calculation issue 2020-12-10 18:04:56 +01:00
Raphael Michel 90475e4159 Fix another bug introduced in last commit 2020-12-10 17:38:43 +01:00
Raphael Michel 3690dba73b Fix bug in widget introduced by last commit 2020-12-10 17:38:11 +01:00
Raphael Michel 0a55fdbc49 Widget: Do not show "buy now" if no availability state is known 2020-12-10 17:07:24 +01:00
Martin Gross eac32c25ba Fix advanced order search for "order placed before" 2020-12-10 16:46:43 +01:00
Raphael Michel c2345d200a Add option to hide "payment pending" bubble on ticket pages 2020-12-09 17:05:04 +01:00
Raphael Michel 663fd8a57a Move settings field for invoice address cancellation to correct tab 2020-12-09 16:53:00 +01:00
Raphael Michel a204302910 Disable all debug toolbar panels by default (cuts down 80% of request time locally) 2020-12-09 16:04:45 +01:00
Raphael Michel 13e464bcf1 Fix another export issue 2020-12-08 22:16:31 +01:00
Raphael Michel 8b2b98c128 Fix handling of empty values in new exporter 2020-12-08 22:09:29 +01:00
Raphael Michel a5f806d975 Tax list exporter: Add sheets with reports by country and company 2020-12-08 22:01:52 +01:00
Raphael Michel b51bd2118e Do not create session cookie on first page view 2020-12-07 22:29:05 +01:00
Martin Gross 089938c3ee Do not pass organizer settings API calls through the event's validate_settings() 2020-12-07 16:46:19 +01:00
Raphael Michel 574fe9094c API: Fix missing context 2020-12-04 17:51:28 +01:00
Raphael Michel 6fdd32de6a Check-in list: Fix secondary sorting by date 2020-12-04 13:03:38 +01:00
Martin Gross b3e95f54dd Add option to limit events to specific sales channels (#1867) 2020-12-03 17:10:54 +01:00
Raphael Michel 55d8639ecc REST API: Add organizer-level settings (#1866)
Co-authored-by: Martin Gross <gross@rami.io>
2020-12-03 15:19:11 +01:00
Richard Schreiber 978130551a Apply EXIF-orientation data from source image to thumbnail with PIL.ImageOps.exif_transpose (#1869) 2020-12-03 10:55:18 +01:00
Raphael Michel a452bf816c Show emails to order positions in email history 2020-12-02 16:14:46 +01:00
Raphael Michel 99c3981e2d Gift card API: Allow to inspect transactions (#1868) 2020-12-02 16:10:05 +01:00
Raphael Michel 87a514ca8b PDFs: Fix country name evaluation 2020-12-02 14:26:50 +01:00
Richard Schreiber 937b967259 Added export of WaitingList for single and mutliple events with filter for voucher-status (#1864)
* added export of WaitingList for single and mutliple events

* removed unnecessary empty line

Co-authored-by: Raphael Michel <michel@rami.io>

* used better conversion from list of tuples to dict

Co-authored-by: Raphael Michel <michel@rami.io>

* added missing 'subevent' in select_related

Co-authored-by: Raphael Michel <michel@rami.io>

* removed prefetch_related from queryset as it is not needed

* use name for subevent, added 2 cols for start and end date

Co-authored-by: Raphael Michel <michel@rami.io>
2020-12-01 17:49:54 +01:00
Raphael Michel 242bfc0023 CartPosition API: Fix setting a custom cart ID 2020-12-01 17:13:09 +01:00
Raphael Michel eed309636f CartPosition API: Allow to buy multiple seats despite distance settings 2020-12-01 17:13:09 +01:00
Martin Gross 0944929818 Add custom invoice address field to Orderdata Export 2020-12-01 14:11:53 +01:00
Martin Gross 2592b8b221 Add Invoice and Attendee address mergefields for all address segments (#1865) 2020-12-01 13:17:00 +01:00
pajowu fcdd852860 Remove last usage of blacklist in comment (#1863) 2020-11-30 22:43:36 +01:00
Felix Rindt f43585bf36 Payment term on weekdays should not be required (#1862) 2020-11-30 11:52:21 +01:00
Raphael Michel 5a034f1339 Exclude rrule from locale files 2020-11-27 18:34:08 +01:00
Raphael Michel 0eb5b73502 Fix typo 2020-11-27 18:25:36 +01:00
Raphael Michel 41e878fabb Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-11-27 16:24:17 +01:00
Raphael Michel 93a7c5df09 Allow plugins to use django.contrib.postgres 2020-11-27 16:23:39 +01:00
Richard Schreiber c71c78cf69 Added Person-Name-Scheme for showing/entering academic degree after the name (e.g. <Name>, MA) (#1861) 2020-11-27 16:08:34 +01:00
Raphael Michel 66af5973ec Add min/max validation for date, datetime, and number questions (#1858) 2020-11-27 11:02:07 +01:00
Raphael Michel 921b28f8d4 Move front page text above date selection (#1859)
Co-authored-by: Martin Gross <gross@rami.io>
2020-11-27 10:38:54 +01:00
Raphael Michel 0aa5df8a17 Merge pull request #1860 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-11-27 10:38:44 +01:00
Svyatoslav 65f6da8d9e Translated on translate.pretix.eu (Latvian)
Currently translated at 28.5% (1097 of 3850 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/lv/

powered by weblate
2020-11-27 05:00:13 +01:00
Richard Schreiber 827afd6d39 Fix preview of subevent repetition rule with UNTIL (#1857) 2020-11-26 17:01:29 +01:00
Raphael Michel 97561819e2 Merge pull request #1856 from pretix-translations/weblate-pretix-pretix 2020-11-26 17:00:57 +01:00
Raphael Michel d02e8b1dcf Orders API: Consistently use "send_email" instead of "send_mail" 2020-11-26 16:59:57 +01:00
Raphael Michel 7ad46addee Order API: Add send_email parameter to creating payments 2020-11-26 16:57:52 +01:00
Raphael Michel 956b6f43e4 Fix typo 2020-11-25 18:03:21 +01:00
Raphael Michel cc493968a1 Do not call banner "banner", ad-blocks interfere… 2020-11-25 18:02:58 +01:00
Raphael Michel fd6fb52a11 Widget: Do not deny access to CSS of disabled shop 2020-11-25 12:39:14 +01:00
Raphael Michel ef11084613 Auto event selection: Do not suggest events without permission 2020-11-25 11:39:14 +01:00
Raphael Michel 2a85f327fd Fix wrong default value during event creation 2020-11-25 09:08:48 +01:00
Raphael Michel bd9d8ce0ad Device profiles: Fix missing listed URL for pretixPOS 2020-11-24 16:47:55 +01:00
Martin Gross d71db5a8ad Fix self-service refund with 0 cancellation fee 2020-11-24 16:10:40 +01:00
Raphael Michel 755d1b5692 Bump to 3.14.0.dev0 2020-11-24 11:59:39 +01:00
Raphael Michel 19e5843d99 Bump to 3.13.0 2020-11-24 11:53:08 +01:00
Raphael Michel 4ede99c04b Merge pull request #1855 from pretix-translations/weblate-pretix-pretix 2020-11-24 11:52:33 +01:00
Raphael Michel 0fad2ab728 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3850 of 3850 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-11-24 11:52:31 +01:00
Raphael Michel 2b9461e847 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3850 of 3850 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-11-24 11:52:31 +01:00
Raphael Michel 987802335b Add Merchandise to German word list 2020-11-24 11:52:18 +01:00
Raphael Michel eb7e272273 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3850 of 3850 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-11-24 11:49:39 +01:00
Raphael Michel 2761419952 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3850 of 3850 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-11-24 11:49:38 +01:00
Raphael Michel 4b422571ad Cloning events: Copy *relative* admission time 2020-11-24 10:55:55 +01:00
Richard Schreiber c340fd9d97 Fix iCal export for full-day events (DTEND is non-inclusive) (#1854) 2020-11-24 10:52:58 +01:00
Raphael Michel e5d554a7b3 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-11-24 10:10:36 +01:00
Martin Gross 076aa097f6 Fix #1793 -- Remove hidden URLs from EventSettingsStore and avoid saving them (#1853) 2020-11-23 17:15:22 +01:00
Raphael Michel 97b9c1029a Avoid the word "simple" 2020-11-23 16:37:26 +01:00
Raphael Michel 2ebd040a7c Item form: Fancy radio buttons for has_Variations and admission 2020-11-23 15:25:48 +01:00
Raphael Michel 14a66ff80c Fix #1356 -- Allow to override config file settings with env vars 2020-11-23 12:24:08 +01:00
Raphael Michel 76c6bbc321 Merge pull request #1852 from pretix-translations/weblate-pretix-pretix
Co-authored-by: Jaakko Rinta-Filppula <jaakko@r-f.fi>
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Mie Frydensbjerg <mif@aarhus.dk>
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
2020-11-22 14:12:57 +01:00
Raphael Michel 0272e44edd Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3838 of 3838 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-11-22 14:11:17 +01:00
Raphael Michel 99d2c40935 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3838 of 3838 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-11-22 14:11:17 +01:00
Maarten van den Berg 2720cf5ae1 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3807 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-11-22 14:11:17 +01:00
Maarten van den Berg 3e415c2654 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3807 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-11-22 14:11:16 +01:00
Mie Frydensbjerg 6d1ad45908 Translated on translate.pretix.eu (Danish)
Currently translated at 41.8% (1593 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-11-22 14:11:16 +01:00
Jaakko Rinta-Filppula 5514279868 Translated on translate.pretix.eu (Finnish)
Currently translated at 15.7% (599 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-11-22 14:11:16 +01:00
Mie Frydensbjerg 868aae0054 Translated on translate.pretix.eu (Danish)
Currently translated at 41.7% (1586 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-11-22 14:11:16 +01:00
Raphael Michel 55f89b2125 Translated on translate.pretix.eu (German (informal))
Currently translated at 99.9% (3806 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-11-22 14:11:16 +01:00
Raphael Michel 10e0e9e618 Translated on translate.pretix.eu (German)
Currently translated at 99.9% (3806 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-11-22 14:11:16 +01:00
Jaakko Rinta-Filppula 1119f90c02 Translated on translate.pretix.eu (Finnish)
Currently translated at 14.7% (560 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-11-22 14:11:16 +01:00
Jaakko Rinta-Filppula 35108c0e47 Translated on translate.pretix.eu (Finnish)
Currently translated at 13.5% (513 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-11-22 14:11:16 +01:00
Jaakko Rinta-Filppula 86b722015f Translated on translate.pretix.eu (Finnish)
Currently translated at 13.4% (509 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-11-22 14:11:16 +01:00
Raphael Michel 54e9a03b9a Fix typo 2020-11-22 14:00:09 +01:00
Raphael Michel c90365e908 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-11-22 13:49:52 +01:00
Raphael Michel 5c85c69b3d Brexit 2020-11-22 13:46:15 +01:00
Raphael Michel 6d9e1be844 Tax rules: Allow to block countries from making a purchase 2020-11-22 13:46:15 +01:00
Raphael Michel 168a6bae98 Bank transfer: Add optional text to pending payments 2020-11-20 14:10:20 +01:00
Raphael Michel 6c1fa8cf2d Bump version of markdown dependency 2020-11-19 17:17:39 +01:00
Raphael Michel 88be280445 Orders API: Add subevent_before parameter 2020-11-19 17:17:39 +01:00
Martin Gross 6aa3532ee6 Add effective presale_start and presale_end properties (#1851) 2020-11-19 15:04:19 +01:00
Raphael Michel b8db58b978 Exporter API: Fix "This QueryDict instance is immutable" 2020-11-19 12:30:31 +01:00
Raphael Michel 5a95550075 Exporter API: Fix primary key fields 2020-11-19 11:28:21 +01:00
Raphael Michel 627f601bdb Widget: Fix waiting list for subevents 2020-11-19 11:10:24 +01:00
Raphael Michel 6c03e49090 Check-in list exporter: Fix bug if sorting is not set 2020-11-19 11:10:11 +01:00
Raphael Michel 0d0294a292 Fix test cases 2020-11-18 18:06:11 +01:00
Raphael Michel d389a2aaa1 Make attendee_name accessible to secret generators 2020-11-18 18:05:57 +01:00
Raphael Michel f51ec04e05 Pass request when manually editing gift cards 2020-11-18 17:22:24 +01:00
Raphael Michel 023f9eb6e7 Order list export: Optional columns for payment amounts 2020-11-17 22:11:22 +01:00
Raphael Michel 0bd1c3f3af Fix failing tests 2020-11-17 14:23:55 +01:00
Raphael Michel 821599dc1a Add advanced search to order list 2020-11-17 13:24:22 +01:00
Nics 9a65ad0abe Small typo in help text (#1850)
Fix a small typo in the help text of `allow_waitinglist`
2020-11-17 09:42:20 +01:00
Raphael Michel 12cb555917 Fix #1804 -- Admission time not lconed on event copy 2020-11-16 18:16:43 +01:00
Raphael Michel 87656cef4c Fix EventMixin.blocked_seats if no distance is set 2020-11-16 17:30:30 +01:00
Martin Gross 3a67203a0d Force a OCM seat-change if the subevent has changed 2020-11-16 15:00:18 +01:00
Raphael Michel 695a800811 Add seating views to POS device profile 2020-11-13 17:00:34 +01:00
pretix translation bot e3c820b760 Translations update from Weblate (#1846)
Co-authored-by: Jaakko Rinta-Filppula <jaakko@r-f.fi>
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Mie Frydensbjerg <mif@aarhus.dk>
2020-11-12 09:43:26 +01:00
Raphael Michel c52bf0be8c Update seating plan schema to support float-sized areas 2020-11-12 09:26:25 +01:00
Raphael Michel b287f870b1 Add new fields to seating plan schema 2020-11-12 09:02:51 +01:00
Raphael Michel 48f3a157bc Fix seating plan embedded in test suite 2020-11-11 14:40:36 +01:00
julia-luna 62a0dd2541 Add option to include prefix and invoice number in payment reference (#1848) 2020-11-11 14:27:43 +01:00
Raphael Michel 8c63f2159c Update to seating plan schema 2020-11-10 19:38:02 +01:00
Raphael Michel e5a77dc482 Banktransfer: Show reference when switching payment method to bank transfer 2020-11-10 15:36:56 +01:00
Raphael Michel bd81d7dced Fix inconsistent German translation 2020-11-10 15:29:19 +01:00
Raphael Michel 23c38a3742 Fix late-night bug in UserNotificationsDisableView 2020-11-10 15:09:09 +01:00
Raphael Michel 6c29fc0117 Remove a last mention of blacklist
Danke luto.
2020-11-10 13:14:49 +01:00
Raphael Michel eae1fc9a81 Sendmail: Allow to send only to (un)approved 2020-11-10 11:37:38 +01:00
Raphael Michel 2c1195eaa1 Order list: Allow to filter for approved 2020-11-10 11:07:10 +01:00
Raphael Michel f94e8e5bdc Fix checkboxes for variations with max_order=1 2020-11-10 10:04:15 +01:00
Raphael Michel 20ec388b03 Fix disabling notifications when logged in 2020-11-09 20:05:14 +01:00
Raphael Michel 02278660bc Fix issue in pdf report exporter 2020-11-06 17:38:48 +01:00
Raphael Michel 01b90ded36 Fix TypeError in cancellation self service 2020-11-06 16:33:19 +01:00
Raphael Michel 10b592a1c4 Document new webhooks 2020-11-06 11:50:53 +01:00
Raphael Michel cfffcf2d1a Fix isort style issue 2020-11-06 11:50:01 +01:00
Raphael Michel df83682d55 Add webhooks for changes to events and subevents 2020-11-06 11:46:54 +01:00
Raphael Michel eeb3c1a960 Add support for bulk-webhooks 2020-11-06 11:46:06 +01:00
Raphael Michel a7565342c0 Add test for appending slashes to URLs in the right situations 2020-11-06 10:49:24 +01:00
Raphael Michel d03c5ce30c Fix multi-event export in backend 2020-11-06 10:49:11 +01:00
julia-luna b51108ab22 Confirm disabling all notifications (#1845) 2020-11-05 18:40:53 +01:00
Raphael Michel d08c811f3a Fix #1780 -- Trigger exports through API (#1839) 2020-11-05 18:30:12 +01:00
Raphael Michel c757f3e4c7 Do not delete seats when deleting products 2020-11-05 16:37:44 +01:00
julia-luna 5962e4d4ab Add seating statistics in shared reports (#1844) 2020-11-05 12:20:25 +01:00
Raphael Michel 6fd2662956 Allow to change questions in canceled orders in backend 2020-11-05 09:29:05 +01:00
Raphael Michel 259d2cdb27 Fix isort issue 2020-11-04 17:42:56 +01:00
Raphael Michel 04e9c8a226 Copy ItemBundle when cloning events 2020-11-04 12:30:38 +01:00
Raphael Michel 78798ff382 Merge pull request #1843 from pretix/docker-components 2020-11-04 10:23:17 +01:00
Raphael Michel be1926ff21 Add documentation on new docker features 2020-11-04 09:52:13 +01:00
Raphael Michel 6af5b3fd5e Add option to skip auto migration 2020-11-04 09:48:14 +01:00
Raphael Michel 8989723145 Install django-extensions and ipython to make docker container easier to debug 2020-11-04 09:48:00 +01:00
Raphael Michel e980b2c255 Allow to run nginx+gunicorn in Docker container 2020-11-04 09:47:48 +01:00
Raphael Michel cb0023dc3c Update docker container to Python 3.8 2020-11-04 09:46:08 +01:00
Raphael Michel b4c18c6ea6 Fix inverted logic 2020-11-02 17:58:44 +01:00
Raphael Michel e07cca9148 External refunds: Processing should not affect order's state if order is canceled 2020-11-02 17:08:53 +01:00
Raphael Michel 031ee647ab External refunds: automatically mark as done if they exactly fix an overpaid order 2020-11-02 17:06:47 +01:00
Raphael Michel 6ca6f9437f Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-11-02 17:00:13 +01:00
Raphael Michel 07ff523ea3 Don't mention subevents in user-facing strings 2020-11-02 16:59:33 +01:00
Raphael Michel 92df47d0c7 Merge pull request #1840 from pretix-translations/weblate-pretix-pretix 2020-11-02 14:28:49 +01:00
Raphael Michel 717c905d16 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3807 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-11-02 14:27:03 +01:00
Raphael Michel e922bd7376 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3807 of 3807 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-11-02 14:27:02 +01:00
Raphael Michel a48d844456 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-11-02 13:46:32 +01:00
Raphael Michel 48119038b4 Merge pull request #1836 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-11-02 13:45:57 +01:00
Raphael Michel 598f0b316e Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-11-02 13:45:45 +01:00
Raphael Michel 7df503fb4f Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-11-02 13:45:44 +01:00
Jaakko Rinta-Filppula 4c84cf7b37 Translated on translate.pretix.eu (Finnish)
Currently translated at 11.7% (443 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-11-02 12:47:38 +01:00
Martin Gross f969db69cb Allow Refunds for SEPA Debit (#1838) 2020-11-02 12:47:33 +01:00
Raphael Michel fb92676aee Fix test suite failures 2020-11-01 15:43:57 +01:00
Raphael Michel 6052895ada Declare pretix.plugins.reports a core module 2020-11-01 15:01:24 +01:00
Raphael Michel 7a98f3fa89 Own column for unapproved orders in order overview 2020-11-01 15:00:54 +01:00
Raphael Michel da149682aa Improve load behavior of ajaxpending.js 2020-10-31 16:33:45 +01:00
Raphael Michel ba4eff5545 Fix cart ID handling issue in widget if cart/add takes longer than one request 2020-10-31 16:22:38 +01:00
Raphael Michel 32c08d431f Improve responsive design on "small" breakpoint 2020-10-31 16:22:26 +01:00
Raphael Michel ecd914f44d Fix typo 2020-10-30 22:39:12 +01:00
Raphael Michel f6dc90fb28 Show message and cart after tax rate has changed 2020-10-30 22:33:44 +01:00
Raphael Michel 4093c1d909 Remove buy from a string to make it more compatible for free events 2020-10-30 22:06:14 +01:00
Raphael Michel 9da14dfebe Widget API: Use sales channel of request 2020-10-30 22:05:55 +01:00
Raphael Michel a941378b80 Allow to book users to a seat even if self-seating is now available 2020-10-30 16:49:32 +01:00
Raphael Michel 9202aca26a Allow to keep a few per ticket when cancelling an event 2020-10-30 15:49:34 +01:00
Raphael Michel b841878dcb Ensure to return a 404 if an appending slash is missing 2020-10-30 14:40:55 +01:00
Raphael Michel 2cf6a4a6ab Add previously uncommitted tests 2020-10-29 18:47:27 +01:00
Raphael Michel 8759155357 Sendmail: Keep uploaded attachment when preview is used 2020-10-29 18:46:57 +01:00
Raphael Michel 1fe4d1a8ca Fix inconsistent naming of a scheme 2020-10-29 17:47:53 +01:00
Raphael Michel 73e0937d80 Merge pull request #1835 from pretix-translations/weblate-pretix-pretix 2020-10-29 11:22:45 +01:00
David Vaz 151d5c4f2b Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-29 11:22:34 +01:00
David Vaz 8486f66e69 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-29 11:22:34 +01:00
Jaakko Rinta-Filppula 9bb8f7b429 Translated on translate.pretix.eu (Finnish)
Currently translated at 11.2% (425 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-29 11:22:34 +01:00
David Vaz 53ce1a53c6 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 100.0% (128 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/pt_PT/

powered by weblate
2020-10-29 11:22:34 +01:00
Miguel Magalhães ce61c8a23a Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-29 11:22:34 +01:00
David Vaz 13f825ec1b Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-29 11:22:34 +01:00
Raphael Michel 4ff4402a5f Allow to cancel subevents by date range 2020-10-29 10:08:37 +01:00
Raphael Michel b4964b1460 Sendmail: Allow to notify a date range of subevents 2020-10-29 09:52:02 +01:00
Raphael Michel 710aaa5f1c Add icons to order status in backend 2020-10-29 09:17:00 +01:00
Raphael Michel ed12fd3cd5 Add lang_info for pt-pt 2020-10-28 18:17:56 +01:00
Raphael Michel ec7be3bd07 Add flag to PT input fields 2020-10-28 14:30:39 +01:00
Raphael Michel 95aa7b7619 Fix selection of the wrong Portoguese 2020-10-28 14:23:50 +01:00
Raphael Michel f9d1dc7181 Increase retry interval of emails 2020-10-27 09:23:59 +01:00
Raphael Michel ad094bcfc0 Remove pt-PT from incubating languages 2020-10-26 18:02:11 +01:00
Raphael Michel 2b1d9bc039 Merge pull request #1834 from pretix-translations/weblate-pretix-pretix 2020-10-26 16:41:09 +01:00
Miguel Magalhães 762d815cf5 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 82.9% (3147 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 15:14:05 +01:00
tlm06 6a71b9bf19 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 70.3% (2671 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 11:00:20 +01:00
David Vaz d2617ca104 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 69.9% (2656 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 11:00:20 +01:00
David Vaz a3573125df Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 69.1% (2624 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 11:00:20 +01:00
Raphael Michel 565a65f780 Clarify MANIFEST.in 2020-10-26 10:47:31 +01:00
Raphael Michel 9543d89014 Fix packaging bugs 2020-10-26 10:35:19 +01:00
julia-luna e61288ba67 Add option to send emails to attendees (#1833) 2020-10-26 10:31:45 +01:00
Raphael Michel 58af025fd8 Bump to 3.13.0.dev0 2020-10-26 10:27:39 +01:00
Raphael Michel db0aaf58b7 Bump to 3.12.0 2020-10-26 10:25:28 +01:00
Raphael Michel ae07e433d4 Merge pull request #1831 from pretix-translations/weblate-pretix-pretix 2020-10-26 09:30:24 +01:00
Martin Gross 4fed690209 Allow plugins to disable and pre-fill questions and contact form fields (#1824)
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-26 09:30:16 +01:00
David Vaz 6ca6f7f3ef Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 68.7% (2607 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
Miguel Magalhães 2cceb4f056 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 69.5% (89 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz bfa9b380bb Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 65.2% (2474 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
Miguel Magalhães 65d9640dbc Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 65.2% (2474 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
Maarten van den Berg b0221b0e92 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-10-26 09:10:59 +01:00
Miguel Magalhães 1233dd64a8 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 56.9% (2162 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz 9a5d17f14a Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 56.9% (2162 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz 65b0df056f Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 50.7% (1924 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz 997f56f758 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 48.2% (1830 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz f30541e465 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 11.7% (15 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz efb6a25387 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 47.9% (1818 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
David Vaz 4a65828275 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 45.5% (1728 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
Miguel Magalhães 9627d77a9d Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 45.5% (1728 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-26 09:10:59 +01:00
Raphael Michel c2069663f3 Add IBAN/BIC to doc spelling list 2020-10-26 09:10:42 +01:00
Raphael Michel 5ca1366fad Fix broken redirect after editing gates 2020-10-25 12:01:31 +01:00
Raphael Michel b0bdae33c1 Add IBAN/BIC fields to bank transfer import API 2020-10-24 23:31:38 +02:00
Raphael Michel 3ced206d04 Show identifier in list of questions 2020-10-24 22:42:27 +02:00
Raphael Michel 539ee2d9db Merge pull request #1830 from pretix-translations/weblate-pretix-pretix 2020-10-24 22:08:15 +02:00
Miguel Magalhães 8ed9684b5d Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.8% (1475 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 22:05:29 +02:00
Raphael Michel 882b1b6a80 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-10-24 22:05:29 +02:00
Raphael Michel 48b6c90a17 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-10-24 22:05:28 +02:00
David Vaz c4f6468579 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.7% (1471 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 22:02:59 +02:00
Miguel Magalhães b7cbe6054b Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.7% (1471 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 22:02:59 +02:00
Raphael Michel b38af13032 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-24 22:02:45 +02:00
Raphael Michel 142386cb9e Fix typos and whitespace 2020-10-24 22:02:11 +02:00
Raphael Michel d932aecc22 Merge pull request #1829 from pretix-translations/weblate-pretix-pretix 2020-10-24 22:02:07 +02:00
Miguel Magalhães 7fe68140fd Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.5% (1461 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 21:58:13 +02:00
David Vaz fdf69c4695 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.5% (1461 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 21:58:13 +02:00
Raphael Michel d57ac92676 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-10-24 21:58:12 +02:00
Raphael Michel 9578fa73ef Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3797 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-10-24 21:58:10 +02:00
Miguel Magalhães fcb68cb551 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.5% (1460 of 3797 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 21:56:15 +02:00
Raphael Michel 8b84aad39e Don't user |pluralize 2020-10-24 21:48:45 +02:00
Raphael Michel b698c8380c Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-24 19:39:32 +02:00
Raphael Michel f7b5f4744b Remove pt locale, we have pt_PT and pt_BR 2020-10-24 19:38:57 +02:00
Raphael Michel a999dd01d1 Merge pull request #1828 from pretix-translations/weblate-pretix-pretix 2020-10-24 19:38:26 +02:00
Raphael Michel a77a9d6891 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.4% (1436 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 19:36:25 +02:00
Raphael Michel b3bb3cb9a0 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 38.4% (1436 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 19:34:16 +02:00
David Vaz 1009ce52b2 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 37.7% (1410 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 19:21:15 +02:00
Jaakko Rinta-Filppula db420a56e1 Translated on translate.pretix.eu (Finnish)
Currently translated at 11.3% (424 of 3749 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-24 19:21:15 +02:00
David Vaz cefdb9f65c Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 36.1% (1350 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 19:21:15 +02:00
David Vaz b7037b9432 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 36.1% (1350 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 19:21:15 +02:00
Raphael Michel 4f8de4e1fc Merge branch 'glossary' into master 2020-10-24 19:20:26 +02:00
Raphael Michel 987597b298 Add event selection endpoint (#1827)
* Add event selection endpoint

* Minor fixes

* Add filter by gate
2020-10-24 19:20:07 +02:00
Raphael Michel bb38e2216b Add a glossary to the documentation 2020-10-24 19:19:59 +02:00
Chessmaster 3865063b12 Added missing "und" in lang file (#1826) 2020-10-24 18:26:56 +02:00
Richard Schreiber 8037a8ce7f Update pytest version and related packages (#1820)
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-24 12:39:55 +02:00
Raphael Michel a0dd8f74e4 Add gates (groups of check-in devices) (#1825) 2020-10-24 12:22:02 +02:00
Raphael Michel 38e067da9c Add fi and pt-pt as incubating languages 2020-10-24 12:19:09 +02:00
Raphael Michel 3b6ce19959 Merge pull request #1823 from pretix-translations/weblate-pretix-pretix 2020-10-24 12:18:00 +02:00
Raphael Michel 2b8e6aab39 Add a glossary 2020-10-24 12:16:28 +02:00
Miguel Magalhães bc7444d7d9 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 22.3% (834 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-24 07:00:13 +02:00
Jaakko Rinta-Filppula 0436064d31 Translated on translate.pretix.eu (Finnish)
Currently translated at 11.2% (421 of 3749 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-24 07:00:11 +02:00
Miguel Magalhães 1c6984fc2d Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 19.9% (745 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 21:44:46 +02:00
David Vaz 050b0888fb Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 19.9% (745 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 21:44:46 +02:00
Raphael Michel 1c1bca2dd3 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 10.9% (408 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:57:59 +02:00
David Vaz e499780414 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 10.9% (408 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:57:59 +02:00
Jaakko Rinta-Filppula 74b11305e9 Translated on translate.pretix.eu (Finnish)
Currently translated at 9.4% (351 of 3749 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-23 18:53:11 +02:00
tlm06 4f0562e845 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 10.2% (381 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
David Vaz 22c0209bed Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 10.2% (381 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
Miguel Magalhães d4c26d00be Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 10.2% (381 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
tlm06 ab40b3b06b Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 4.8% (180 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
JPolonia dac0252326 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 4.8% (180 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
Miguel Magalhães 9453f07059 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 4.8% (180 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
David Vaz 74cac2a914 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 4.8% (180 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
David Vaz 563886b901 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 1.2% (43 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
Miguel Magalhães 7ef319fb35 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 1.2% (43 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
David Vaz bc11e85e42 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.5% (20 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:11 +02:00
Miguel Magalhães 5d9cb2dc0d Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.5% (20 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
David Vaz 9ad00b7ce6 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.3% (10 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
Miguel Magalhães 02460fc648 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.7% (28 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
David Vaz 70a2ebe830 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.7% (28 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
David Vaz 522dbfe1c5 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.7% (28 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
David Vaz 4e202f523d Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.4% (15 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
Miguel Magalhães 0bad8d70c8 Translated on translate.pretix.eu (Portuguese (Portugal))
Currently translated at 0.4% (15 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/

powered by weblate
2020-10-23 18:53:10 +02:00
Raphael Michel 1cf0fc9f96 Add health_check_interval to RedisClient 2020-10-23 18:52:50 +02:00
Raphael Michel 7b46292da3 Fix incorrect device security profiles 2020-10-23 18:52:39 +02:00
Raphael Michel 0482920a01 Clarify "full" security profile 2020-10-23 11:24:18 +02:00
Raphael Michel 07bd47d934 Docker: Allow to run custom exec commands 2020-10-23 11:21:37 +02:00
Raphael Michel 8241ddf5be runperiodic: Allow to execute specific tasks only 2020-10-22 21:05:10 +02:00
Felix Rindt a62c7939ae Improvements for bank transfer importing (#1762)
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-22 11:00:36 +02:00
Sohalt 9e4dc344a4 Sendmail plugin: Allow to attach a file to emails (#1814)
* sendmail: allow to attach files to emails

* Fix mixup of model objects and model IDs

* Attach to order-level emails, not only position-level emails

* Give attachments a proper file type

* Add a warning note about higher spam chances

Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-22 09:53:19 +02:00
Richard Schreiber d673a43130 Bump libsass-version to 0.20.* (#1821)
libsass 0.19.2 fails to install under latest OS X Catalina. As https://github.com/sass/libsass/issues/3053 seems to be fixed, bump to current version 0.20.*
2020-10-22 09:18:42 +02:00
Raphael Michel 92d7268945 Fix duplicate string 2020-10-21 19:04:39 +02:00
Raphael Michel 8e318dd95d Update locales 2020-10-21 19:02:58 +02:00
Raphael Michel 50a8063fd3 Merge pull request #1813 from pretix-translations/weblate-pretix-pretix 2020-10-21 18:27:16 +02:00
Jaakko Rinta-Filppula 6f41b039b4 Translated on translate.pretix.eu (Finnish)
Currently translated at 9.1% (340 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-21 18:27:03 +02:00
Raphael Michel 12ca4552dd Added translation on translate.pretix.eu (Portuguese) 2020-10-21 18:27:03 +02:00
Raphael Michel 4f780031f7 Added translation on translate.pretix.eu (Portuguese) 2020-10-21 18:27:03 +02:00
Raphael Michel 9fe2b31620 Added translation on translate.pretix.eu (Portuguese (Portugal)) 2020-10-21 18:27:03 +02:00
Raphael Michel 93db33515f Added translation on translate.pretix.eu (Portuguese (Portugal)) 2020-10-21 18:27:03 +02:00
Jaakko Rinta-Filppula b06e849363 Translated on translate.pretix.eu (Finnish)
Currently translated at 9.1% (339 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-21 18:27:03 +02:00
Jaakko Rinta-Filppula 95b001e109 Translated on translate.pretix.eu (Finnish)
Currently translated at 7.4% (275 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-21 18:27:03 +02:00
Maarten van den Berg 52b940b0bf Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3739 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-10-21 18:27:03 +02:00
Maarten van den Berg d28fec544a Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3739 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-10-21 18:27:03 +02:00
Raphael Michel 7ca09cc73b Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3739 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-10-21 18:27:03 +02:00
Jaakko Rinta-Filppula 1f151c4a84 Translated on translate.pretix.eu (Finnish)
Currently translated at 6.8% (256 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-21 18:27:03 +02:00
Jaakko Rinta-Filppula 1473845f33 Translated on translate.pretix.eu (Finnish)
Currently translated at 62.5% (80 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/fi/

powered by weblate
2020-10-21 18:27:03 +02:00
Jaakko Rinta-Filppula 659d166c02 Translated on translate.pretix.eu (Finnish)
Currently translated at 4.3% (159 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/

powered by weblate
2020-10-21 18:27:03 +02:00
Raphael Michel e3d9b3546d Add option to automatically check out all attendees at night (#1819) 2020-10-21 18:26:57 +02:00
Raphael Michel ffde521fcb Add order comment to positions sheet in order data export 2020-10-21 18:25:57 +02:00
Jonathan Berger ed0e28eee5 Fix DELETE endpoint for Events resource in doc (#1816) 2020-10-20 17:24:34 +02:00
Raphael Michel 22bba28bea Add pluggable ticket secret generators (#1809) 2020-10-19 15:00:55 +02:00
Raphael Michel 6e20f33ef5 Add logdisplay 2020-10-19 14:50:40 +02:00
Raphael Michel 4ef95346a7 API: Use algorithm to count number of checked in orders consistently with backend 2020-10-19 12:58:13 +02:00
Raphael Michel fcd0c65567 API: Add "currently inside" to checkin statistics 2020-10-19 12:43:16 +02:00
Raphael Michel 7c212ba79d Allow redeem by secret with special chars 2020-10-18 16:04:42 +02:00
Raphael Michel 0a1a9fcf88 Fix duplicate string 2020-10-16 22:57:13 +02:00
Raphael Michel bfabed5b44 Remove incorrect column in CSV header
Thanks to an anonymous @felixrindt
2020-10-16 22:53:33 +02:00
Raphael Michel 8883e2642a Fix typo (again) 2020-10-16 22:50:22 +02:00
Raphael Michel 460b5ee588 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-16 22:45:33 +02:00
Raphael Michel c74d8bb126 Add trace and turnover to wordlist 2020-10-16 22:44:51 +02:00
Raphael Michel 07c62f4362 Merge pull request #1810 from pretix-translations/weblate-pretix-pretix
Co-authored-by: Raphael Michel <michel@rami.io>
2020-10-16 22:43:35 +02:00
Raphael Michel bb59cbca75 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3739 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-10-16 22:40:48 +02:00
Raphael Michel fef3ebcb91 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3739 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-10-16 22:40:47 +02:00
Raphael Michel dfc7483b5d Translated on translate.pretix.eu (German (informal))
Currently translated at 99.6% (3724 of 3739 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-10-16 22:34:57 +02:00
Raphael Michel b80ed9079b Added translation on translate.pretix.eu (Finnish) 2020-10-16 22:34:57 +02:00
Raphael Michel 6801b027cd Added translation on translate.pretix.eu (Finnish) 2020-10-16 22:34:57 +02:00
Raphael Michel f7e0c76f0f Fix typo 2020-10-16 22:34:44 +02:00
Raphael Michel 02c59f85d9 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-16 22:26:19 +02:00
Raphael Michel 6257b8cb54 Fix incorrect link on position page 2020-10-16 22:25:22 +02:00
Raphael Michel fec682dddb Allow to require a verified email to download tickets 2020-10-16 22:10:37 +02:00
Raphael Michel ff74f13fce Add ZVT to word list 2020-10-16 21:39:08 +02:00
Raphael Michel d0d84f2a13 Fix test case 2020-10-16 10:35:01 +02:00
Raphael Michel bf59ce2661 Add SubEvent.last_modified 2020-10-15 18:32:10 +02:00
Raphael Michel b4a7729cb5 Fix duplicate invoice cancellation when changing free order to paid 2020-10-14 18:08:12 +02:00
Raphael Michel f2e5e89970 Order import: Allow to reference question options by value 2020-10-14 16:29:32 +02:00
Raphael Michel 4fd773caf6 Change calendar restriction from "100 events" to "50 future events" 2020-10-14 11:39:40 +02:00
Raphael Michel 6402f0d86e Add addresses to check-in lists 2020-10-14 11:34:41 +02:00
Raphael Michel f5d93eaffa s/WhiteList/AllowList/g 2020-10-14 11:23:47 +02:00
Raphael Michel 3f40a8e6fa Fix import of attendee addresses 2020-10-14 11:09:41 +02:00
Raphael Michel b947467589 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-10-13 18:13:07 +02:00
Raphael Michel 810f3d7d31 Minor improvements to security profiles 2020-10-13 18:02:56 +02:00
Raphael Michel e8f3ad633a Add device security profiles (#1806) 2020-10-13 17:40:25 +02:00
Raphael Michel 301849f771 Merge pull request #1800 from pretix-translations/weblate-pretix-pretix 2020-10-13 16:30:40 +02:00
Tobias Sundgren ee6a595e26 Translated on translate.pretix.eu (Swedish)
Currently translated at 11.0% (414 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-10-12 12:22:17 +02:00
Tobias Sundgren 980296e38a Translated on translate.pretix.eu (Swedish)
Currently translated at 10.8% (405 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-10-12 12:22:17 +02:00
Tobias Sundgren 0a62ee0e33 Translated on translate.pretix.eu (Swedish)
Currently translated at 10.6% (400 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-10-12 12:22:17 +02:00
Raphael Michel afc1013d69 Fix infinite price adjustment loop when combining free prices, country-dependent tax rates, and vouchers 2020-10-12 12:15:58 +02:00
Raphael Michel 16cf3cec76 Add tests for device API 2020-10-12 12:15:58 +02:00
Raphael Michel 0105b9642d Add compat function for date.fromisocalendar for Python 3.6-3.7 2020-10-12 12:15:58 +02:00
Raphael Michel 3ec15fa529 Fix widget test cases 2020-10-11 20:42:35 +02:00
Raphael Michel 703eebab47 Remove tests for deleted pretixdroid code 2020-10-11 20:32:25 +02:00
Raphael Michel 3aec3a52fc Merge pull request #1805 from Chessmasterrr/patch-1
Update plugin-development documentation
2020-10-11 14:48:11 +02:00
Chessmaster fd93cac8cf Update plugins.rst
Fixed small typo and update references
2020-10-11 13:58:01 +02:00
Raphael Michel e139924696 Add reason based classes to events in widget 2020-10-09 16:12:05 +02:00
Raphael Michel da725c0bff Backend forms: Do not allow to click empty labels 2020-10-09 12:19:44 +02:00
Raphael Michel dca61447cf Fix widget bug with large number of variations 2020-10-08 16:19:48 +02:00
Raphael Michel f54bf3f1ea Specific error message for payment_ended 2020-10-08 09:28:53 +02:00
Raphael Michel 3cef9bac26 Restrict collapsed days to large numbers 2020-10-07 15:02:12 +02:00
Raphael Michel 4f20849e4b Rewrite subquery in gift card list 2020-10-07 10:53:59 +02:00
Raphael Michel 758981fc1b Use internal name of product in OrderFilterForm 2020-10-07 10:49:20 +02:00
Raphael Michel 9b671d6370 Week calendar: Collapse days on mobile (except the current day) 2020-10-07 10:41:30 +02:00
Raphael Michel 3bfaf55094 Check-in list API: Show items in event default language 2020-10-07 10:04:26 +02:00
Raphael Michel 3708dab656 Add allow_entry_after_exit field to subevent editing 2020-10-07 09:25:53 +02:00
Raphael Michel 14ad7716bd Fix missing copy button for add-ons if only system fields match 2020-10-06 18:45:53 +02:00
Raphael Michel 985d3c3993 Add date column to web-based check-in list 2020-10-06 18:45:53 +02:00
Raphael Michel fa2222e629 Remove pretixdroid code 2020-10-06 18:45:53 +02:00
Raphael Michel 13eabdd7f4 Fix missing date column in list of refunds 2020-10-06 18:45:53 +02:00
Raphael Michel 4fd748e6d9 Merge pull request #1796 from pretix-translations/weblate-pretix-pretix 2020-10-06 16:00:19 +02:00
Tobias Sundgren f48ded0165 Translated on translate.pretix.eu (Swedish)
Currently translated at 8.1% (305 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-10-06 15:02:14 +02:00
Tobias Sundgren 903ea09140 Translated on translate.pretix.eu (Swedish)
Currently translated at 8.1% (304 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-10-06 15:02:14 +02:00
Maarten van den Berg fadc610b8e Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3762 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-10-06 15:02:14 +02:00
Maarten van den Berg ac4b8a392b Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3762 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-10-06 15:02:14 +02:00
ethan.wang 22d986a709 Translated on translate.pretix.eu (Chinese (Simplified))
Currently translated at 82.4% (3100 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/zh_Hans/

powered by weblate
2020-10-06 15:02:14 +02:00
Martin Gross bca34145f1 Translated on translate.pretix.eu (Danish)
Currently translated at 42.6% (1603 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-10-06 15:02:14 +02:00
Mie Frydensbjerg 97af6f7311 Translated on translate.pretix.eu (Danish)
Currently translated at 42.6% (1603 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-10-06 15:02:14 +02:00
Martin Gross 67156a67aa Translated on translate.pretix.eu (Danish)
Currently translated at 42.6% (1602 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-10-06 15:02:14 +02:00
Raphael Michel 4ed872d4ef Calendar stuff is hard 2020-10-06 15:02:05 +02:00
Martin Gross 5cd6cba0a2 Fix accidential removal of gitcard-filter 2020-10-06 14:46:53 +02:00
Martin Gross 72bb5bd177 Only include Confirmed and Refunded Payments/completed Refunds in Giftcard-report 2020-10-06 14:30:39 +02:00
Raphael Michel d392e14a96 Fix date() usage 2020-10-06 12:50:37 +02:00
Raphael Michel d7459b3b83 Fix years with 52 weeks 2020-10-06 12:49:02 +02:00
Martin Gross b4778b5845 Allow to unselect product or quota from voucher (#1799) 2020-10-06 09:08:15 +02:00
Raphael Michel 5a09759cb9 Fix *yet* another time range issue 2020-10-05 17:39:41 +02:00
Raphael Michel 2fbaa90d76 Clarify docstring 2020-10-05 17:33:19 +02:00
Raphael Michel 93f10d33a9 Fix breakpoints of calendar week selection 2020-10-05 17:32:12 +02:00
Raphael Michel e9a972ad60 Show dates in calendar week selection 2020-10-05 17:29:19 +02:00
Raphael Michel a31f0c1bc8 Fix one more bug in calendar view 2020-10-05 17:29:11 +02:00
Raphael Michel 1b0c2f3bb7 Fix bug in previous commit 2020-10-05 17:17:28 +02:00
Raphael Michel 766428c469 Improve support for cross-midnight time slots 2020-10-05 17:14:49 +02:00
Raphael Michel d85583f70a Fix missing field description 2020-10-05 17:13:39 +02:00
Raphael Michel ee801bd717 Safety guard against unpaid giftcards 2020-10-05 16:09:24 +02:00
Martin Gross af0e8ec992 Fix test, Ref: 3cbcf663e5 2020-10-05 13:45:53 +02:00
Raphael Michel bc3325c1cb Order overview PDF: Print net and gross 2020-10-02 16:45:47 +02:00
Martin Gross 753c331887 Shutting up isort 2020-10-02 14:04:22 +02:00
Martin Gross cfc9055ec1 Fix giftcard API doc 2020-10-02 13:58:19 +02:00
Raphael Michel c131a2ac3a Import: Do not allow duplicate secrets even across events 2020-10-02 10:29:27 +02:00
Raphael Michel 17fe3355d1 pretixPOS: ZVT support 2020-09-29 19:10:48 +02:00
Martin Gross 0381d42d41 Fix flag for Swedish language (fixes #1795) 2020-09-29 11:11:25 +02:00
Raphael Michel b73db911e9 Add profile OAuth scope 2020-09-28 16:11:43 +02:00
Raphael Michel 1f3d4a2810 Fix name finding in placeholders 2020-09-28 16:11:30 +02:00
Raphael Michel 3cbcf663e5 OAuth: Add profile-only access 2020-09-28 16:01:59 +02:00
Raphael Michel ae0637a3d6 Merge pull request #1789 from pretix-translations/weblate-pretix-pretix 2020-09-28 12:15:22 +02:00
Raphael Michel a6a9c08a0a Translated on translate.pretix.eu (German)
Currently translated at 99.9% (3761 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-09-28 12:15:08 +02:00
Raphael Michel f3b3d0b8f7 Translated on translate.pretix.eu (German (informal))
Currently translated at 99.9% (3761 of 3762 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-09-28 12:14:57 +02:00
Raphael Michel 9490f20a6c Revert "Do not allow to cancel gift card positions"
This reverts commit 951e99d0da.
2020-09-28 12:13:04 +02:00
Raphael Michel 4555a917b2 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-09-28 12:10:15 +02:00
Raphael Michel 951e99d0da Do not allow to cancel gift card positions 2020-09-28 11:51:06 +02:00
Raphael Michel d0b002cf0c Issue gift cards after order change 2020-09-28 11:48:55 +02:00
Felix Rindt 4fb0b948ec Add name scheme with salutation (#1779) 2020-09-28 11:41:59 +02:00
Felix Rindt 2384478b45 Support required-if and display-dependency for more elements (#1788) 2020-09-28 10:42:03 +02:00
Raphael Michel f3a2d0cb03 Merge pull request #1787 from pretix-translations/weblate-pretix-pretix 2020-09-28 09:24:07 +02:00
Maarten van den Berg 1b11d88442 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3757 of 3757 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-09-28 07:00:13 +02:00
Maarten van den Berg 954951ddfa Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3757 of 3757 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-09-28 07:00:12 +02:00
Raphael Michel c01b96bdfc Allow to sort list of quotas 2020-09-25 19:08:42 +02:00
Raphael Michel c78e88a1ba Allow to create devices through the API (#1785) 2020-09-25 18:16:18 +02:00
Raphael Michel 4cb18218b2 Do not show event time on invoice 2020-09-25 18:01:50 +02:00
Raphael Michel 450d017c32 Order API: Add `send_email` parameter to mark_paid and
payments/confirm
2020-09-25 15:12:06 +02:00
Raphael Michel 655977e33d Fix typo 2020-09-24 12:55:51 +02:00
Raphael Michel 0cb0620df0 Fix crash from previous deployment 2020-09-24 12:36:00 +02:00
Raphael Michel c8bf069650 Merge pull request #1784 from pretix-translations/weblate-pretix-pretix 2020-09-24 12:16:28 +02:00
Raphael Michel e65087fd68 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3757 of 3757 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-09-24 12:16:16 +02:00
Raphael Michel d67d389b9d Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3757 of 3757 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-09-24 12:16:16 +02:00
Raphael Michel 0e805e50f9 Widget: consistent rendering of date ranges 2020-09-24 12:15:54 +02:00
Raphael Michel a4d133731e Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-09-24 10:59:11 +02:00
Raphael Michel c74e7fd4fb Show time slot end time in calendars 2020-09-24 10:58:48 +02:00
Raphael Michel 0e405d2327 Widget: Align wording with standalone calendar 2020-09-24 10:58:48 +02:00
Raphael Michel 035c707427 Calendar: Show fully booked instead of sold out for free events 2020-09-24 10:58:48 +02:00
Raphael Michel 787e7ec993 Merge pull request #1783 from pretix-translations/weblate-pretix-pretix 2020-09-24 10:58:38 +02:00
Svyatoslav 09a9b4a456 Translated on translate.pretix.eu (Russian)
Currently translated at 78.1% (100 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ru/

powered by weblate
2020-09-23 19:00:12 +02:00
Svyatoslav e2547c2761 Translated on translate.pretix.eu (Russian)
Currently translated at 29.7% (1116 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ru/

powered by weblate
2020-09-23 19:00:12 +02:00
Martin Gross c7b2baf40f Correct file type for shredder export zip (Fixes #1781, Z#153584) 2020-09-23 13:41:47 +02:00
Felix Rindt 59595c9db8 Add setting to disable copy-answers-button (#1778) 2020-09-22 18:09:44 +02:00
Nils Schneider 2f8baecd68 Fix #1127 -- Set loglevel from configfile (#1777) 2020-09-22 17:40:56 +02:00
Raphael Michel a76f74b161 Download reminders: Fix incomplete only() call 2020-09-21 18:26:38 +02:00
Raphael Michel f2518101ef Fix broken test after deprecation of pretixdroid 2020-09-21 18:23:25 +02:00
Raphael Michel ec667545e8 Fix crash/bug in order data export 2020-09-21 18:23:25 +02:00
Raphael Michel afb789226c Webhooks: Fix crash if object was deleted in meantime 2020-09-21 18:23:25 +02:00
Felix Rindt bca7a6db93 Mail service: Allow to attach arbitrary cached files (#1774) 2020-09-21 17:45:29 +02:00
Felix Rindt 429ad4da37 Refactor primary color to settings variable (#1775) 2020-09-21 17:44:43 +02:00
Raphael Michel cd6e6004af Merge pull request #1773 from pretix-translations/weblate-pretix-pretix 2020-09-21 17:43:59 +02:00
Tobias Sundgren e9d5665a3d Translated on translate.pretix.eu (Swedish)
Currently translated at 7.0% (262 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-09-19 20:00:13 +02:00
Tobias Sundgren 4cbc30a7ea Translated on translate.pretix.eu (Swedish)
Currently translated at 6.9% (261 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Tobias Sundgren 2b0388c2ee Translated on translate.pretix.eu (Swedish)
Currently translated at 5.8% (218 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Tobias Sundgren 06b8826e57 Translated on translate.pretix.eu (Swedish)
Currently translated at 100.0% (128 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Tobias Sundgren 7c6f0f45a3 Translated on translate.pretix.eu (Swedish)
Currently translated at 5.7% (213 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Tobias Sundgren 93399f51b3 Translated on translate.pretix.eu (Swedish)
Currently translated at 100.0% (128 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Pernilla Näsfors Östmar 87bd54b233 Translated on translate.pretix.eu (Swedish)
Currently translated at 100.0% (128 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Tobias Sundgren 3fb237f434 Translated on translate.pretix.eu (Swedish)
Currently translated at 5.6% (212 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/

powered by weblate
2020-09-18 18:20:26 +02:00
Maarten van den Berg d7640d25f5 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3756 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-09-18 18:20:26 +02:00
Maarten van den Berg 1669d3f5c7 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3756 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-09-18 18:20:26 +02:00
Maarten van den Berg 5aa3f3e772 Translated on translate.pretix.eu (Dutch)
Currently translated at 99.6% (3741 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-09-18 18:20:26 +02:00
Martin Gross b7a2f0257f Translated on translate.pretix.eu (French)
Currently translated at 80.5% (103 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/fr/

powered by weblate
2020-09-18 18:20:26 +02:00
Martin Gross 5c0f29f959 Translated on translate.pretix.eu (French)
Currently translated at 61.2% (2297 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/

powered by weblate
2020-09-18 18:20:26 +02:00
Raphael Michel 59655dca82 Fix redemption of multiple gift cards 2020-09-18 18:20:08 +02:00
Raphael Michel af2b4ebb4b Properly deprecate pretixdroid 2020-09-18 16:28:19 +02:00
Martin Gross d5b3528f92 Localize Stripe Elements to Order Page Language 2020-09-18 16:26:10 +02:00
Martin Gross 0a1b41235b Add Seat to Order Data Export - but better 2020-09-18 16:25:49 +02:00
Felix Rindt 8ca544064b Fix #1759: order import increasing positionids (#1776) 2020-09-18 16:16:33 +02:00
Raphael Michel 1e2b305376 Quota and check-in list list: Include time of subevent 2020-09-18 13:12:04 +02:00
Raphael Michel bfa20e995a Order API: Include ID of check-in 2020-09-18 13:12:04 +02:00
Martin Gross e7fd0f116b Add Seat to Order Data Export 2020-09-17 09:53:26 +02:00
Raphael Michel e836da09cd Fix bug in a combination of timeouts and custom auth backends 2020-09-16 18:09:53 +02:00
Raphael Michel 22c6553a48 Fix API for organizers and events with a . in their slug 2020-09-16 16:37:55 +02:00
pretix translation bot ea5fc3df40 Translations update from Weblate (#1772)
Co-authored-by: Martin Gross <martin@pc-coholic.de>
2020-09-15 10:38:28 +02:00
pretix translation bot 7977b6dc15 Translations update from Weblate (#1771)
Co-authored-by: Mie Frydensbjerg <mif@aarhus.dk>
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
2020-09-15 09:55:20 +02:00
Raphael Michel 59df5fe052 Fix manifest config 2020-09-14 19:00:29 +02:00
Raphael Michel c4e00e7601 Bump to 3.12.0.dev0 2020-09-14 18:23:42 +02:00
Raphael Michel b3fd515652 Bump to 3.11.0 2020-09-14 18:22:03 +02:00
Raphael Michel 6ee54f6cc1 Add sentence to structure guide 2020-09-14 18:21:09 +02:00
Raphael Michel 403dc9cf98 Sort exported check-ins 2020-09-14 16:28:56 +02:00
Raphael Michel eb462b1950 Fix default item 2020-09-14 16:13:13 +02:00
Raphael Michel cb6d50e570 Merge pull request #1770 from pretix-translations/weblate-pretix-pretix 2020-09-14 14:04:01 +02:00
Raphael Michel 32a2a99b7b Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3756 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-09-14 14:00:24 +02:00
Raphael Michel 7859985ff0 Translated on translate.pretix.eu (German)
Currently translated at 99.9% (3755 of 3756 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-09-14 14:00:23 +02:00
Raphael Michel 7b7cf76028 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-09-14 14:00:14 +02:00
Raphael Michel 4fda9b2205 Fix typo 2020-09-14 13:59:36 +02:00
Raphael Michel ede93f1669 Extend word list 2020-09-14 13:47:39 +02:00
Raphael Michel 4af4dbd9cf Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-09-14 13:46:26 +02:00
Raphael Michel 820f6d52a5 Fix incorrect help text 2020-09-14 13:45:58 +02:00
Raphael Michel 8d04974caa Merge pull request #1769 from pretix-translations/weblate-pretix-pretix 2020-09-14 13:44:58 +02:00
Raphael Michel 8021c9e865 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3750 of 3750 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-09-14 13:44:33 +02:00
Raphael Michel 874ea6750b Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3750 of 3750 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-09-14 13:44:33 +02:00
Felix Rindt 8f2c125435 Payment term in minutes (#1760)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-09-14 13:44:28 +02:00
Raphael Michel 2f21dc8c3c Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-09-14 13:22:10 +02:00
Raphael Michel 05135c779c Add export of all check-in scans 2020-09-14 13:21:24 +02:00
Raphael Michel f08f06ddff Fix infinite recursion 2020-09-11 18:30:35 +02:00
Raphael Michel 9c28537d1c CSV exports: Fix running when file is opened in binary mode 2020-09-11 09:17:11 +02:00
Raphael Michel 95b1a4a434 Fix German language error 2020-09-10 20:23:14 +02:00
Raphael Michel 019801e9dc Cronjob: Fix issue in waiting list handling 2020-09-09 22:15:41 +02:00
Martin Gross 3e97fd87d1 Fix typo in process_waitinglist 2020-09-09 22:10:17 +02:00
Raphael Michel 8bcc0e4641 Cronjob: Try sync execute for quotas 2020-09-09 21:53:52 +02:00
Raphael Michel 878becfee9 Cronjob: Allow keyboard interrupt 2020-09-09 21:52:03 +02:00
Raphael Michel 273c34999c Cronjob: Ignore old events for waiting list 2020-09-09 21:50:55 +02:00
Raphael Michel 3f4f9d98de Increase length of multiple-choice country fields 2020-09-09 20:46:42 +02:00
Raphael Michel d703eeb770 Show device serial in backend 2020-09-09 16:30:14 +02:00
Felix Rindt b7754d8737 Command line exporter: support multiple and all events (#1766) 2020-09-09 16:19:12 +02:00
Raphael Michel ed62ecaccb Adjust "mobile" size of widget 2020-09-09 09:22:06 +02:00
Raphael Michel 5c3ef3f2b9 Widget: Fix CSS issue during load 2020-09-08 18:46:47 +02:00
Raphael Michel f3282807e2 Add documentation for check-in type 2020-09-08 18:26:50 +02:00
Raphael Michel 52944ff3a3 Fix obscure crash in log entry view 2020-09-07 11:27:23 +02:00
Raphael Michel 23a9018988 Remove break-all from email CSS 2020-09-07 11:10:11 +02:00
Raphael Michel 936c771d5e Fix FF Android detection 2020-09-07 10:31:23 +02:00
Raphael Michel d064a7affa Add verbose output to runperiodic management command 2020-09-06 22:34:40 +02:00
Raphael Michel 4b894eb433 Merge pull request #1764 from pretix/seat-orgchoice
Support seat choice by organizer
2020-09-06 19:06:33 +02:00
Raphael Michel 6c7ef89779 Add docs for pretix Webinar API 2020-09-06 17:26:20 +02:00
Raphael Michel e8f3a66a8e Add signal pretix.control.signals.event_dashboard_top 2020-09-06 17:25:47 +02:00
Raphael Michel d999971249 Allow to disable self-choice seating 2020-09-06 17:25:47 +02:00
Raphael Michel fb701f25f4 Merge pull request #1761 from pretix-translations/weblate-pretix-pretix 2020-09-04 15:40:20 +02:00
Svyatoslav 913596459a Translated on translate.pretix.eu (Russian)
Currently translated at 29.8% (1114 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ru/

powered by weblate
2020-09-04 05:01:43 +02:00
Svyatoslav 04e9ea1ae7 Translated on translate.pretix.eu (Latvian)
Currently translated at 29.5% (1100 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/lv/

powered by weblate
2020-09-04 05:01:43 +02:00
Maarten van den Berg 5dc09019ff Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3733 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-09-04 05:01:43 +02:00
Maarten van den Berg 7c3671b383 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3733 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-09-04 05:01:43 +02:00
Raphael Michel b91c16538e Improve mobile shopping cart experience 2020-09-04 05:01:22 +02:00
Raphael Michel 9ba517109d Allow to inspect logs by device 2020-09-03 14:40:19 +02:00
Raphael Michel 5f86fbc21d Allow to filter event log by device 2020-09-03 14:30:21 +02:00
Raphael Michel fae35cc56f Improve error handling of check-in scans 2020-09-03 14:30:18 +02:00
Raphael Michel 78c5eb4516 Merge branch 'master' of github.com:pretix/pretix 2020-09-02 18:58:22 +02:00
Raphael Michel 860f4c36a4 Name length validation 2020-09-02 18:13:42 +02:00
Martin Gross 311dcfaab0 Add notice that list-view is not available for eventseries with more than 100 dates. 2020-09-02 15:13:59 +02:00
Martin Gross 83a6041a32 Expose Order Time in OrderData-Export 2020-09-02 11:07:50 +02:00
Raphael Michel a2f9bb73ad Fix failing tests 2020-09-01 22:13:19 +02:00
Raphael Michel fb92c9dd64 Remove obsolete restriction from documentation 2020-09-01 21:52:03 +02:00
Raphael Michel aa1910fd70 Add pseudonymization ID to search fields 2020-09-01 16:51:07 +02:00
Raphael Michel f66c266ff7 Fix debugging code 2020-09-01 15:53:56 +02:00
Raphael Michel 7cc5179e85 Fix #1040 -- Work around firefox bug in widget 2020-09-01 15:46:31 +02:00
Raphael Michel f633cc3103 Fix errors around subevent editing 2020-09-01 15:06:03 +02:00
Raphael Michel 5e212c83e4 Add Kosovo to country list 2020-08-31 13:23:13 +02:00
Raphael Michel 2d5768aa20 Fix missing fields in CheckinListOrderPositionSerializer 2020-08-29 12:38:23 +02:00
Martin Gross 8ea66bc05b First try at working around Stripe's iDEAL idempotency issues 2020-08-28 23:21:35 +02:00
Raphael Michel eba17e22fb Show beneficiary on order confirmation page 2020-08-27 14:13:31 +02:00
Raphael Michel 620c956ef8 Delete vouchers when deleting events 2020-08-27 12:41:12 +02:00
Raphael Michel 35debba865 Further attempt at more efificent query 2020-08-26 16:42:34 +02:00
Raphael Michel a635ea527e Fix failing tests 2020-08-26 16:33:31 +02:00
Raphael Michel 6e76db40ed Order API: More efficient query for ?subevent_after_qs= 2020-08-26 15:43:22 +02:00
Raphael Michel 7956074d8b API: Add exclude parameter to check-in lists 2020-08-26 15:20:44 +02:00
Raphael Michel 7a3418e32f SubEvent: Automatically bump all orders when date is changed 2020-08-26 11:00:43 +02:00
Raphael Michel 0bfc436970 Check-in list: Redirect back toe diting after save 2020-08-25 16:19:11 +02:00
Raphael Michel b6fc02255d Allow to clone check-in lists 2020-08-25 15:52:46 +02:00
Raphael Michel a06f94fde1 Clarify "disabled" checkbox 2020-08-25 14:08:27 +02:00
Raphael Michel d5073f416c Merge pull request #1757 from pretix-translations/weblate-pretix-pretix 2020-08-25 12:20:32 +02:00
Dennis Lichtenthäler b32ea0dec4 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3733 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-08-25 12:15:52 +02:00
Dennis Lichtenthäler 932851cf96 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3733 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-08-25 12:15:51 +02:00
Dennis Lichtenthäler 4513cd7ec3 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (128 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de_Informal/

powered by weblate
2020-08-25 11:54:59 +02:00
Dennis Lichtenthäler 261878b3fe Translated on translate.pretix.eu (German)
Currently translated at 100.0% (128 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de/

powered by weblate
2020-08-25 11:54:59 +02:00
Dennis Lichtenthäler 31590f7e6c Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3733 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-08-25 11:54:59 +02:00
Dennis Lichtenthäler ebe7560f14 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3733 of 3733 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-08-25 11:54:58 +02:00
Raphael Michel c5b722ebc1 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-08-25 11:54:50 +02:00
Raphael Michel 5ea961819d Remove field Seat.name 2020-08-25 11:54:19 +02:00
Martin Gross 983d734c6a Add .swi to allowed MT940 file extensions 2020-08-25 11:30:51 +02:00
Raphael Michel c1bca2f207 isort fix 2020-08-24 17:37:38 +02:00
Raphael Michel 118f0f55e9 Widget: Do not disable products with require_voucher if a voucher is
given
2020-08-24 17:31:57 +02:00
Raphael Michel d1146add38 Allow to re-check-in someone through the backend 2020-08-24 17:27:06 +02:00
Raphael Michel fc18788cb8 Order API: Add `subevent_after` query filter 2020-08-21 19:06:05 +02:00
Raphael Michel a2eb4444b4 Order API: Add `exclude` query parameter 2020-08-21 18:38:24 +02:00
Raphael Michel 606d13e303 Check-in list API: Add `subevent_match` filter 2020-08-21 17:20:37 +02:00
Raphael Michel d90fcee5e1 Fix crash related to vouchers and seats
PRETIXEU-2PY
2020-08-21 16:12:04 +02:00
Raphael Michel e9a4c3845a Fix crash when processing refund for empty order 2020-08-21 16:07:52 +02:00
Raphael Michel 018fac2361 Merge pull request #1756 from pretix/felix-patch 2020-08-21 15:19:45 +02:00
Raphael Michel 41dd71879e Allow to filter items with query parameters on event page 2020-08-21 15:18:37 +02:00
Felix Rindt 738e5d07aa reorder signal docs 2020-08-20 20:42:31 +02:00
Felix Rindt a22451140b fix typo 2020-08-20 20:42:23 +02:00
Raphael Michel 6759506838 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-08-20 13:52:24 +02:00
Raphael Michel 82bb3f3b6e RelativeDate: Allow to specify "minutes before x" 2020-08-20 13:51:55 +02:00
Raphael Michel cdb8a92a47 Merge pull request #1754 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-08-20 13:49:28 +02:00
Svyatoslav 7597344897 Translated on translate.pretix.eu (Russian)
Currently translated at 29.8% (1110 of 3731 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ru/

powered by weblate
2020-08-19 11:30:39 +02:00
Raphael Michel c94d384e86 Improve algorithm for {name} placeholder (#1745)
Co-authored-by: Felix Rindt <felix@rindt.me>
2020-08-19 11:30:34 +02:00
Raphael Michel b2357b7e29 Merge pull request #1751 from pretix-translations/weblate-pretix-pretix 2020-08-19 11:30:02 +02:00
Raphael Michel c7d1e5d069 Allow to reduce the interval of some cronjobs (#1753) 2020-08-19 11:29:53 +02:00
Svyatoslav 754d498938 Translated on translate.pretix.eu (Russian)
Currently translated at 29.5% (1102 of 3731 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ru/

powered by weblate
2020-08-18 18:21:44 +02:00
Maarten van den Berg ec7fc05108 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3731 of 3731 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-08-18 17:34:51 +02:00
Maarten van den Berg bbba0df6c4 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3731 of 3731 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-08-18 17:34:51 +02:00
Maarten van den Berg 65e87455ec Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 98.5% (3674 of 3731 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-08-18 17:34:51 +02:00
Maarten van den Berg e6d09baacc Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3731 of 3731 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-08-18 17:34:51 +02:00
Raphael Michel fbd38fef58 Fix issue in previous commit 2020-08-18 17:34:39 +02:00
Raphael Michel 253f944951 Quota cache refresh: work in chunks 2020-08-18 16:46:37 +02:00
Raphael Michel 7f30f753d7 Actually do not show date on invoices if not shown on frontpage 2020-08-18 13:57:35 +02:00
Raphael Michel 8789a42dc1 Fix tax calculation for negative fees 2020-08-17 15:56:03 +02:00
Raphael Michel e7740b1735 Fix crash on addons without tax rule
PRETIXEU-2MZ
2020-08-17 09:39:59 +02:00
Raphael Michel 586da71a64 Remove Raphael's personal mail address from the README 2020-08-16 19:21:24 +02:00
Martin Gross 68697f0c6a Update po files
[CI skip]

Signed-off-by: Martin Gross <gross@rami.io>
2020-08-13 14:29:53 +02:00
pretix translation bot a2e1bc9c20 Translations update from Weblate (#1744)
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
Co-authored-by: Martin Gross <martin@pc-coholic.de>
2020-08-13 14:26:14 +02:00
Martin Gross 89a82d75a9 Add eMail-Template for free approval orders (#1750)
Co-authored-by: Felix Rindt <felix@rindt.me>
2020-08-13 14:24:39 +02:00
Martin Gross a2414081af Widget: Do not preset item quantity to 1 if there is only one item but an active seating plan 2020-08-13 11:21:24 +02:00
Martin Gross c812d39b39 Filter BankImportJobs explicitly by organizer 2020-08-13 11:10:27 +02:00
Martin Gross c6f3fdd8e4 Move reserved explanation out of tooltip 2020-08-12 16:37:59 +02:00
Martin Gross 30e0f5ebc7 Show seat in checkout_question-fragment when adequate 2020-08-11 17:54:52 +02:00
Martin Gross f767f2f644 Fix encoding of Umlauts in widget (and hopefully don't break it...) 2020-08-10 17:23:05 +02:00
Martin Gross 750c3c5201 Allow for gt and gte selection of change_allow_user_price (#1746) 2020-08-07 11:54:27 +02:00
Raphael Michel 7d9220ae3e Fix issue in 69879bdae 2020-08-06 10:21:57 +02:00
Raphael Michel 69879bdae0 Fix API bug: Do not delete SubEventItems on PATCH request 2020-08-06 09:28:35 +02:00
Raphael Michel 0e245b41ee Fix duplicate call of form_success 2020-08-05 15:18:40 +02:00
Raphael Michel 2839ee1ffd Fix error in b6f47f6f4 2020-08-05 14:41:12 +02:00
Raphael Michel d72a03c434 Allow to adjust ticket cache duration 2020-08-05 13:23:20 +02:00
Raphael Michel b6f47f6f4a API: More validation in custom fields on event serializers 2020-08-05 11:26:11 +02:00
Raphael Michel ca2dd0d6b6 Limit maximum length of event names in email senders 2020-08-05 11:23:27 +02:00
Raphael Michel c4415beb8c Force Django version to be at least 3.0.9 2020-08-05 11:22:35 +02:00
Raphael Michel 35c8684cd4 Prevent issues with order fees and TaxRule.zero() 2020-08-04 14:07:26 +02:00
Raphael Michel 9bb5c57792 Fix possible crash in migration 2020-08-04 11:47:55 +02:00
Felix Rindt 1c8699662d Allow to create invoices before bank transfer runs (#1734)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-08-04 10:53:59 +02:00
Felix Rindt 9b367cb28b Allow to set multiple confirm texts (#1735) 2020-08-04 10:20:55 +02:00
Felix Rindt 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 8f3dbba859 PDF renderer: Fail silently if bidirectional string handling failes 2020-08-03 18:20:03 +02:00
Felix Rindt bf5b92c465 Copy answers button for addon products (#1733) 2020-08-03 18:15:23 +02:00
Raphael Michel aef09003d9 Make global_html_* signals actually global 2020-08-03 12:32:29 +02:00
Raphael Michel 9d22e833a6 Merge pull request #1737 from pretix-translations/weblate-pretix-pretix 2020-07-31 09:25:00 +02:00
Abdullah 1e121c0f75 Translated on translate.pretix.eu (Arabic)
Currently translated at 78.1% (100 of 128 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ar/

powered by weblate
2020-07-31 09:24:49 +02:00
Abdullah 373755a502 Translated on translate.pretix.eu (Arabic)
Currently translated at 87.6% (3260 of 3720 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ar/

powered by weblate
2020-07-31 09:24:49 +02:00
pajowu 6f694b60ca Add minimum postgres version to docs (#1738) 2020-07-31 09:24:43 +02:00
Felix Rindt 77f76195c8 isort 5.0 config/docs (#1736) 2020-07-30 17:57:26 +02:00
Raphael Michel 355dd4463b Fix typo in docs 2020-07-30 17:57:10 +02:00
Raphael Michel c0c39223aa Addendum to c15344ced 2020-07-30 17:47:05 +02:00
Raphael Michel db7f8d9658 Try to run apt-get update before installations 2020-07-30 16:33:14 +02:00
Raphael Michel c15344ced2 Docker: Pass environment variables when calling supervisord 2020-07-30 16:22:37 +02:00
Raphael Michel 0f3f15a736 Upgrade requests version 2020-07-29 18:30:25 +02:00
Raphael Michel 478f6e3029 Add a !default command to our _variables.scss 2020-07-29 18:30:25 +02:00
Raphael Michel 4c77e2f16e Add signals global_html_head, global_html_page_header, and global_html_footer 2020-07-29 18:30:25 +02:00
Felix Rindt 80b6a3d27d Fix #1675 -- Allow '0' as answer to number questions (#1732)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-07-28 16:32:06 +02:00
Raphael Michel 89e8d3d12f Allow to disable some e-mails depending on sales channel (#1726)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-07-28 09:26:18 +02:00
Raphael Michel baf8a4ae18 Update src/pretix/control/forms/event.py 2020-07-28 09:25:10 +02:00
Raphael Michel 2cdaf07c46 Update src/pretix/control/forms/event.py 2020-07-28 09:24:53 +02:00
Raphael Michel cf76a2e24d Fix typo in docs 2020-07-28 09:23:44 +02:00
Raphael Michel 559b4a8e66 Merge pull request #1730 from pretix-translations/weblate-pretix-pretix 2020-07-27 18:04:19 +02:00
Abdullah 59bf11b98d Translated on translate.pretix.eu (Arabic)
Currently translated at 87.6% (3257 of 3720 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ar/

powered by weblate
2020-07-27 18:03:45 +02:00
Yaling 5b3551fb60 Translated on translate.pretix.eu (Chinese (Simplified))
Currently translated at 82.8% (3081 of 3720 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/zh_Hans/

powered by weblate
2020-07-27 18:03:45 +02:00
Raphael Michel 72a5008513 Allow to remove a product from all sales channels 2020-07-27 18:03:26 +02:00
Raphael Michel c5ace8447d Fix country fields always being required 2020-07-27 18:03:10 +02:00
Raphael Michel 28b82841c2 Use edgecase words correctly 2020-07-27 17:55:19 +02:00
Raphael Michel fbe10a981b Add INV to edgecase words 2020-07-27 17:47:31 +02:00
Raphael Michel 21c22aa63a Revert "Next attempt to fix spellcheck"
This reverts commit fb4116012f.
2020-07-27 17:47:15 +02:00
Raphael Michel fb4116012f Next attempt to fix spellcheck 2020-07-27 16:28:51 +02:00
Raphael Michel 53fe4a32cd PyPI CI: Add check-manifest and twine check 2020-07-27 16:25:23 +02:00
Raphael Michel ff066898d4 Fix RTL issue 2020-07-27 16:25:23 +02:00
Felix Rindt cbb848b3fa style 2020-07-24 18:47:59 +02:00
Felix Rindt 98dfdd8b01 no ugettext 2020-07-24 18:44:35 +02:00
Felix Rindt 0e95a7863f tests for placed and paid mails 2020-07-24 18:44:24 +02:00
Raphael Michel 0913f5bc18 Merge pull request #1729 from pretix/project-setup-things 2020-07-24 18:12:34 +02:00
Raphael Michel d1eb4c4cce Add documentation on additional indices 2020-07-24 18:10:25 +02:00
Felix Rindt 4a0a3aff59 rename to download_reminder 2020-07-24 17:57:25 +02:00
Raphael Michel 83908fde45 [experimental] restructure order search query for different performance characteristics 2020-07-24 17:48:50 +02:00
Felix Rindt 143ac10991 rebase migration 2020-07-24 16:59:24 +02:00
Felix Rindt 413cbec4b9 code format 2020-07-24 16:58:05 +02:00
Felix Rindt b168516d78 user guide 2020-07-24 16:58:05 +02:00
Felix Rindt d0ccc42aff add test for ticket reminder (oops) 2020-07-24 16:58:05 +02:00
Felix Rindt 7aa793f4f7 fix name 2020-07-24 16:58:05 +02:00
Felix Rindt 1b48b519e3 add migration 2020-07-24 16:58:05 +02:00
Felix Rindt 5f502776b1 send canonical mails depending on sales channel 2020-07-24 16:58:05 +02:00
Felix Rindt 985e1ac9bf Fix TypeError: Unknown option(s) for shell command: skip_checks. 2020-07-24 16:53:51 +02:00
Felix Rindt df1014d62f modernize isort config for v5.0 2020-07-24 15:55:24 +02:00
Felix Rindt 062afc42d3 change _decimal to decimal 2020-07-24 15:55:05 +02:00
Raphael Michel 1fb861a117 New attempt at improving CheckinList.checkin_count 2020-07-24 15:41:41 +02:00
Raphael Michel 0a2346778d Revert "Refactor query for check-in count"
This reverts commit 60eee25cd1.
2020-07-24 15:37:45 +02:00
Raphael Michel 605a21a0cf Typeahead: Remove ordering of orders to improve query performance 2020-07-24 15:29:26 +02:00
Raphael Michel 1cfec9cc99 Revert "Typeahead: No substring match in admin sessions"
This reverts commit 2626259492.
2020-07-24 15:28:14 +02:00
Raphael Michel 0a97b0ce67 Add progress bar for checkin list export 2020-07-24 13:54:38 +02:00
Raphael Michel 60eee25cd1 Refactor query for check-in count 2020-07-24 13:54:30 +02:00
Raphael Michel 779ec6c3f6 Metrics: Return accurate counts for less interesting models 2020-07-24 13:53:59 +02:00
Raphael Michel 988eb85c05 Fix exporter issue 2020-07-24 11:40:45 +02:00
Raphael Michel 556cb7c46d Add INV to wordlist 2020-07-24 11:01:29 +02:00
Raphael Michel 86e3c30633 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-24 10:44:45 +02:00
Raphael Michel 6276f213b9 Increae field size for CachedFile.file 2020-07-24 10:44:08 +02:00
Raphael Michel 524f6c9975 Merge pull request #1727 from pretix-translations/weblate-pretix-pretix 2020-07-24 10:43:45 +02:00
Andreas Teuber 125a14c8e9 Translated on translate.pretix.eu (Chinese (Simplified))
Currently translated at 82.9% (3080 of 3714 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/zh_Hans/

powered by weblate
2020-07-24 09:35:20 +02:00
Yaling c7f0e6f652 Translated on translate.pretix.eu (Chinese (Simplified))
Currently translated at 82.9% (3080 of 3714 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/zh_Hans/

powered by weblate
2020-07-24 09:35:20 +02:00
Andreas Teuber 1e58ef6f9e Translated on translate.pretix.eu (Chinese (Simplified))
Currently translated at 82.2% (3052 of 3714 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/zh_Hans/

powered by weblate
2020-07-24 09:35:20 +02:00
Raphael Michel 41127ce978 Fix issue in OrderListExporter when mixing subevents with non-subevents 2020-07-24 09:35:11 +02:00
Raphael Michel 99b42d201e Add missing tqdm binary 2020-07-24 09:08:22 +02:00
Raphael Michel 265da6c746 Progress bar instead of acks_late for event cancellation 2020-07-23 21:54:03 +02:00
Raphael Michel d58c8559fc Long-running async tasks: Expose running state 2020-07-23 21:39:13 +02:00
Raphael Michel b5dca762f0 Cancelling events: Fix send_waitinglist flag 2020-07-23 21:38:58 +02:00
Raphael Michel a310c33497 Add progress bar to some large exports 2020-07-23 21:35:58 +02:00
Raphael Michel fc5c3caf66 Fix memory usage in exporters by using chunked iterators 2020-07-23 20:39:49 +02:00
Raphael Michel bff1041878 Excel export: Use openpyxl's constant memory implementation 2020-07-23 20:37:15 +02:00
Raphael Michel 2626259492 Typeahead: No substring match in admin sessions 2020-07-23 18:20:41 +02:00
Martin Gross 18415c62bb Cancellations now use up to date invoice issuer information and do not copy the information over from the original invoice. 2020-07-23 18:02:18 +02:00
Raphael Michel 85f546a3a6 Ignore deadlock when writing quota caches 2020-07-23 17:48:56 +02:00
Raphael Michel 829b0041fc Use database replica for check-in count for statistical purposes 2020-07-23 17:48:31 +02:00
Raphael Michel 4968a6d995 Do not count exists for checkin count 2020-07-23 17:48:18 +02:00
Raphael Michel 033deb7cf2 Add seat information to check-in list export 2020-07-23 12:26:54 +02:00
Felix Rindt e23e88f5c3 Create invoice exporter mixin (#1725)
* Create invoice exporter mixin

* code style
2020-07-22 17:22:56 +02:00
Raphael Michel c3745e792b Fix PaymentProviderForm issue 2020-07-22 16:09:57 +02:00
Raphael Michel 735d4564f8 Allow to change length of invoice numbers 2020-07-21 18:11:39 +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 7bd9a01f5e Fix error in price calculation in connection with free prices and bundles 2020-07-21 17:23:08 +02:00
Raphael Michel 8bebea61f1 Improve performance of quota cache task 2020-07-21 16:58:18 +02:00
Raphael Michel 6714ab24ee Force-upgrade hierarkey 2020-07-21 16:58:12 +02:00
Raphael Michel a54dbc0110 Allow file upload in payment provider settings 2020-07-21 11:52:46 +02:00
Raphael Michel 19fa2fb016 CSP: Remove child-src, as it is redundant with frame-src and will get deprecated again 2020-07-21 10:59:13 +02:00
Raphael Michel 12b5d6663e Adjust widget tests 2020-07-21 10:09:51 +02:00
Raphael Michel ca4db5f628 Widget: respect item.allow_waitinglist 2020-07-21 09:46:30 +02:00
Raphael Michel b6a343a623 Add umzubuchen to German spelling list 2020-07-20 17:28:19 +02:00
Raphael Michel dc451cdeea Merge pull request #1722 from pretix-translations/weblate-pretix-pretix 2020-07-20 17:24:51 +02:00
Raphael Michel 6732d13439 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3714 of 3714 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-07-20 17:24:32 +02:00
Raphael Michel 5bf67ba613 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3714 of 3714 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-20 17:24:31 +02:00
TimPrd 8885b50972 Translated on translate.pretix.eu (French)
Currently translated at 62.3% (2306 of 3699 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/

powered by weblate
2020-07-20 16:43:06 +02:00
Raphael Michel 940566ab93 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-20 16:42:55 +02:00
Raphael Michel e7b9c49620 Allow customers to change to a different product variation (#1719) 2020-07-20 16:36:24 +02:00
Raphael Michel c8ef825de5 Try again to fix export tests 2020-07-20 14:56:03 +02:00
Raphael Michel 5b25a68599 Fix tests broken in 684212780 2020-07-20 14:27:37 +02:00
Raphael Michel e26a07d44d Add documentation on URL interpolation in digital content module 2020-07-20 11:43:05 +02:00
Martin Gross 6842127802 Absent/Checked Out persons in Checkin lists (#1721) 2020-07-20 10:41:39 +02:00
Raphael Michel 3c5948d2e0 Allow selecting the same add-on multiple times (#1717) 2020-07-20 10:21:12 +02:00
Raphael Michel ed3542e219 Fix error in quota statistics 2020-07-20 10:10:36 +02:00
Raphael Michel e439b20618 Fix crash if gift card does not exist 2020-07-17 17:44:01 +02:00
Raphael Michel 5c1fe6f68c Bump to 3.11.0.dev0 2020-07-17 12:56:57 +02:00
Raphael Michel e4e91523a0 Bump to 3.10.0 2020-07-17 12:56:11 +02:00
Raphael Michel 00827700de Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-17 09:50:28 +02:00
Raphael Michel 0a87225a9a Add missing fields to API 2020-07-17 09:31:25 +02:00
Raphael Michel 9371d221bf Merge pull request #1720 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-07-17 08:56:50 +02:00
Dennis Lichtenthäler 08a3c846b6 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3700 of 3700 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-07-17 00:00:15 +02:00
Raphael Michel 1c84de9ab2 E-Mail: Do not use .prettify(), it does not preserve the original whitespsace 2020-07-16 17:45:17 +02:00
Raphael Michel 980f4012bc Make sure correct language is active when generating email attachments 2020-07-16 12:14:43 +02:00
Raphael Michel 591d70eabe Merge pull request #1718 from pretix-translations/weblate-pretix-pretix
Co-authored-by: Raphael Michel <michel@rami.io>
2020-07-16 09:03:15 +02:00
Raphael Michel 2c4609604d Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3700 of 3700 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-07-16 09:00:34 +02:00
Raphael Michel 30c2b8b03f Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3700 of 3700 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-16 09:00:33 +02:00
Raphael Michel a685af6433 Clone button for products 2020-07-16 08:53:18 +02:00
Raphael Michel f179a220bc Widget: Properly escape voucher codes 2020-07-16 08:42:40 +02:00
Raphael Michel b61893e3b1 Do not even import excluded plugins 2020-07-16 08:42:29 +02:00
Raphael Michel d3282a1acb Fix OrderChangeManager.change_price() for items without tax rule 2020-07-15 09:14:58 +02:00
Raphael Michel c585946e72 Drop "Presale ::" from event page title 2020-07-14 16:53:26 +02:00
Raphael Michel b6245b97ca Validate max length of attendee address 2020-07-14 16:26:46 +02:00
Raphael Michel 51720c3afe Fix irregular behaviour on second use of widget 2020-07-14 09:15:07 +02:00
Andreas Teuber 4746b8e456 Ask only for VAT ID if company is inside EU (#1709)
Co-authored-by: Andreas Teuber <andreas.teuber@passiv.de>
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-13 18:04:09 +02:00
Raphael Michel b2401f7641 Fix grammar error in German translation 2020-07-13 15:57:33 +02:00
Raphael Michel b4cd11ef94 Fix creation of tax rules with custom rules 2020-07-13 15:57:33 +02:00
Raphael Michel 33682e1b38 Fix incorrect preview/history of subject rendering 2020-07-13 15:57:33 +02:00
Raphael Michel e10e3300ba Fix ineffective translation of string 2020-07-12 11:01:15 +02:00
Raphael Michel 4f0eadfd6e Fix language file 2020-07-09 15:18:16 +02:00
Raphael Michel 0f9ec2ce7d Fix ZeroDivisionError in question statistics 2020-07-09 14:56:46 +02:00
Raphael Michel 93e3cf1d99 Update locales 2020-07-09 14:53:16 +02:00
Raphael Michel 3affaa8c85 Show local time if browser timezone is different 2020-07-09 14:51:16 +02:00
Raphael Michel fddf134755 Update spelling wordlist 2020-07-09 10:55:34 +02:00
Raphael Michel 568398e4e7 Merge pull request #1715 from pretix-translations/weblate-pretix-pretix 2020-07-09 10:51:46 +02:00
Raphael Michel fc08531639 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3700 of 3700 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-07-09 10:51:25 +02:00
Raphael Michel bd25ce238d Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3700 of 3700 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-09 10:51:24 +02:00
Raphael Michel c88ce8a9a8 Translated on translate.pretix.eu (German)
Currently translated at 99.4% (3673 of 3696 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-09 10:32:34 +02:00
Raphael Michel 004403e2c8 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-09 10:32:20 +02:00
Raphael Michel 0cde5288ac Fix trailing whitespace 2020-07-09 10:31:46 +02:00
Raphael Michel e585da2901 Merge pull request #1704 from pretix-translations/weblate-pretix-pretix
Co-authored-by: Frank <webappconcept@gmail.com>
Co-authored-by: Dennis Lichtenthäler <lichtenthaeler@rami.io>
Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: oocf <oswaldocerna@gmail.com>
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
2020-07-09 10:31:23 +02:00
Raphael Michel f369fca091 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-07-09 10:20:39 +02:00
Raphael Michel e0e638ac8c Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-09 10:20:39 +02:00
Dennis Lichtenthäler 4abe906511 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-07-09 10:20:38 +02:00
Maarten van den Berg 855a47776f Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-07-09 10:20:24 +02:00
Maarten van den Berg c63c499a95 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 99.8% (3676 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-07-09 10:20:23 +02:00
Maarten van den Berg f06a23ae95 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-07-09 10:20:09 +02:00
oocf 2b68a22aad Translated on translate.pretix.eu (Spanish)
Currently translated at 83.0% (3058 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/es/

powered by weblate
2020-07-09 10:19:56 +02:00
Raphael Michel 86d42cc524 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-09 10:19:36 +02:00
Dennis Lichtenthäler 6e8040ac9d Translated on translate.pretix.eu (German)
Currently translated at 100.0% (125 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de/

powered by weblate
2020-07-09 10:19:35 +02:00
Dennis Lichtenthäler c742c9979b Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-07-09 10:19:19 +02:00
Frank 15f3880fcd Translated on translate.pretix.eu (Italian)
Currently translated at 17.2% (633 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-07-09 10:18:50 +02:00
Raphael Michel 6bf5d8cb5e Revert "Update po files"
This reverts commit 27d772f52f.
2020-07-09 10:07:18 +02:00
Raphael Michel 27d772f52f Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-09 09:58:56 +02:00
Raphael Michel 6e9d921af6 Allow country specific tax rules (#1714) 2020-07-08 15:00:13 +02:00
Martin Gross 1c9a1b5e02 Mark invoice as dirty when changing subevent through OCM. 2020-07-07 16:03:55 +02:00
Raphael Michel 640c05729b Backend: Improve asynctask status feedback 2020-07-07 10:42:06 +02:00
Raphael Michel fc9e5166da Order data and invoice data export: Add payment types 2020-07-07 09:14:06 +02:00
Raphael Michel b1eb5bb3df Fix incorrect link 2020-07-06 15:37:16 +02:00
Raphael Michel f690d74be7 Event list: Respect event date in "running" filter 2020-07-03 17:46:41 +02:00
Raphael Michel c52fdc95a7 Allow to disable display of foreign currencies on invoices 2020-07-03 16:44:26 +02:00
Raphael Michel 039ca36233 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-07-03 14:58:08 +02:00
Raphael Michel 9920a47580 Multi export: Allow restriction to organizer 2020-07-03 11:56:36 +02:00
Raphael Michel 74acfbe2fd Fix issue with new pycountry version 2020-07-02 20:11:39 +02:00
Raphael Michel b0b8f32cb9 Always show net total in backend 2020-07-02 19:32:11 +02:00
Raphael Michel 066cf510e3 Add tax total to cart view even if not showing net prices 2020-07-02 19:31:43 +02:00
Raphael Michel aca963d960 Fix tax rate changes if there hasn't been a tax rate before 2020-07-02 19:24:18 +02:00
Raphael Michel 582c7b50f7 Do not parse list in rich_text_snippet 2020-07-02 12:00:18 +02:00
Martin Gross d6b185193e Fix Timezone in Checkinlist 2020-07-01 12:24:04 +02:00
Raphael Michel fb92d500be Fix accidentally commited settings changes 2020-07-01 10:43:37 +02:00
Raphael Michel 27ed9ae4fd Adjust colors in question statistics 2020-06-30 23:57:47 +02:00
Raphael Michel 06fbf56c04 Question stats: Show percentage 2020-06-30 23:18:12 +02:00
Raphael Michel d843fc1545 Fix colors in graph of boolean questions 2020-06-30 23:04:17 +02:00
Raphael Michel cf2af3c94d Import/startup performance improvements 2020-06-30 11:36:30 +02:00
Martin Gross 5f50aa95eb Add TaxRule selection in OrderPositionChange (#1700)
Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
2020-06-30 11:13:33 +02:00
Raphael Michel 626e332886 Fix issue displaying unlimited quota 2020-06-30 10:04:45 +02:00
Gamy 507e1a5b83 Added various missing punctuation marks, changed "following" to "selected" to match the display. 2020-06-30 09:20:11 +02:00
MrGamy 0d1aa2f96e Localization string unification changes
unifying the text bit 'Go to shop' to display 'shop' with a lowercase s in base.html
2020-06-29 18:02:13 +02:00
Raphael Michel df6038e39b Merge pull request #1703 from pretix/quota_release_after_exit
Allow to release quota after exit scans
2020-06-29 14:35:39 +02:00
Raphael Michel 922f12f55e Allow to release quota after exit scans 2020-06-26 16:49:19 +02:00
Raphael Michel fdea190d72 Merge pull request #1702 from pretix-translations/weblate-pretix-pretix
Co-authored-by: Frank <webappconcept@gmail.com>
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
2020-06-25 12:46:43 +02:00
Maarten van den Berg 34fe34d50a Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-06-24 19:40:23 +02:00
Frank 3412c1d2a9 Translated on translate.pretix.eu (Italian)
Currently translated at 16.9% (623 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-24 19:40:23 +02:00
Maarten van den Berg 6f58f30d92 Translated on translate.pretix.eu (Dutch)
Currently translated at 99.8% (3676 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-06-24 19:40:23 +02:00
Frank 19b5610503 Translated on translate.pretix.eu (Italian)
Currently translated at 15.4% (569 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-24 19:40:23 +02:00
Raphael Michel 55670b92a8 Merge branch 'master' of github.com:pretix/pretix 2020-06-24 19:40:12 +02:00
Raphael Michel e5cc15ffac Improve responsiveness of organizer page 2020-06-24 19:39:57 +02:00
Martin Gross 249e6978ea Display subevent time for each item in addon and question step 2020-06-24 17:06:25 +02:00
Martin Gross a223d57124 Reduce minimal waitinglist voucher validity to 1 hour 2020-06-24 13:26:38 +02:00
Raphael Michel 2a5c24482e Question list: Drop pagination, allow to mix ordering with system fields 2020-06-23 13:05:54 +02:00
Martin Gross 868292f9b3 Fix All Invoice-export (missing file extension; missing "all payment providers") 2020-06-23 10:58:39 +02:00
Raphael Michel 5c24fd966a Fix locale error 2020-06-22 16:09:55 +02:00
Raphael Michel 61490a9ee8 Merge pull request #1701 from pretix-translations/weblate-pretix-pretix 2020-06-22 09:42:55 +02:00
Frank 3c3333c485 Translated on translate.pretix.eu (Italian)
Currently translated at 15.3% (565 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-22 09:42:19 +02:00
Frank 4c19002be6 Translated on translate.pretix.eu (Italian)
Currently translated at 14.7% (541 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-20 19:11:38 +02:00
Frank 2c49eaeef8 Translated on translate.pretix.eu (Italian)
Currently translated at 14.7% (540 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-20 19:11:38 +02:00
Raphael Michel 481e29c3b2 Allow to explicitly disable products for certain subevents 2020-06-20 19:10:44 +02:00
Raphael Michel 0aebde62eb Fix missing variation attributes when copying items 2020-06-20 18:21:12 +02:00
Raphael Michel 49e44f68ba Merge pull request #1699 from pretix-translations/weblate-pretix-pretix 2020-06-19 13:10:52 +02:00
Frank 84dc9f241d Translated on translate.pretix.eu (Italian)
Currently translated at 14.6% (538 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-19 13:07:28 +02:00
Frank 07b05f4a44 Translated on translate.pretix.eu (Italian)
Currently translated at 13.6% (500 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-19 01:00:12 +02:00
Raphael Michel d1c1aed1f2 Widget: Improve support for week calendars 2020-06-18 17:43:22 +02:00
Raphael Michel de9f7248cc Widget: Fix issue navigating back to month calendar 2020-06-18 16:38:58 +02:00
Raphael Michel 0d45706608 Try to fix widget bug in IE introduced in ebb1cc1be 2020-06-18 12:33:26 +02:00
Raphael Michel 016dd88e8b Remove Italian from incubating languages 2020-06-18 12:13:28 +02:00
Raphael Michel 6362c27cba Merge pull request #1697 from pretix-translations/weblate-pretix-pretix 2020-06-18 12:12:57 +02:00
Frank 7396f29b82 Translated on translate.pretix.eu (Italian)
Currently translated at 11.6% (427 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-18 12:00:52 +02:00
Frank ff9f6b6a36 Translated on translate.pretix.eu (Italian)
Currently translated at 10.3% (378 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-17 18:08:14 +02:00
Raphael Michel 7359b5543d Set calendar as default for event series 2020-06-17 18:07:54 +02:00
Raphael Michel 74a0cafa0f Revert "Switch to calendar at 25 subevents already"
This reverts commit 8001063347.
2020-06-17 18:07:07 +02:00
Raphael Michel 16472e915d PDF: Show event time on default layout 2020-06-17 12:27:38 +02:00
Martin Gross ec6844f900 Display Boxoffice iZettle payment details 2020-06-16 22:11:54 +02:00
Raphael Michel e6455f8204 Organizer-level export: Fix incorrect event queryset 2020-06-16 12:03:59 +02:00
Raphael Michel 4c48fcd861 Move export down in organizer navigation 2020-06-16 11:39:44 +02:00
Raphael Michel adfd7834fb Add subevent date to ticket filename 2020-06-16 11:37:47 +02:00
Raphael Michel a4b8315487 Merge pull request #1695 from pretix-translations/weblate-pretix-pretix 2020-06-16 11:07:08 +02:00
Frank 8594fecad4 Translated on translate.pretix.eu (Italian)
Currently translated at 9.0% (331 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:46 +02:00
Frank 61979f0c40 Translated on translate.pretix.eu (Italian)
Currently translated at 8.4% (311 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:46 +02:00
Frank df5f8a340b Translated on translate.pretix.eu (Italian)
Currently translated at 8.4% (310 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:46 +02:00
Frank 651e797264 Translated on translate.pretix.eu (Italian)
Currently translated at 7.9% (290 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:46 +02:00
Frank d40010fab6 Translated on translate.pretix.eu (Italian)
Currently translated at 7.4% (271 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:45 +02:00
Frank 89c3d59e6d Translated on translate.pretix.eu (Italian)
Currently translated at 7.0% (257 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:45 +02:00
Frank b30569a941 Translated on translate.pretix.eu (Italian)
Currently translated at 100.0% (125 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/it/

powered by weblate
2020-06-16 11:06:45 +02:00
Frank fe230fe56d Translated on translate.pretix.eu (Italian)
Currently translated at 6.4% (236 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/

powered by weblate
2020-06-16 11:06:45 +02:00
Martin Gross 0b20d3f6f8 Organizer/MultiEvent-Exports (#1684)
Co-authored-by: Raphael Michel <michel@rami.io>
2020-06-16 11:06:40 +02:00
Raphael Michel e895c13b28 Re-label "Buy tickets" button 2020-06-16 10:35:07 +02:00
Martin Gross 5cc0bd5d36 Optional PayPal Reference Prefix (Z#2359330) (#1696)
* Optional PayPal Reference Prefix (Z#2359330)

* Move prefix to end
2020-06-15 18:23:01 +02:00
Raphael Michel 569379e508 Order API: Add search 2020-06-15 15:12:09 +02:00
Raphael Michel d975a68641 Allow to turn off CSP reporting 2020-06-15 15:12:09 +02:00
Raphael Michel c992de341f Revert "PayPal: Add additional protection against invalid sessions"
This reverts commit 99e02bde36.
2020-06-14 12:29:20 +02:00
Raphael Michel 11cc27dbd6 Fix crash when trying to refund an order with a disabled payment mehtod 2020-06-12 14:01:15 +02:00
Raphael Michel 90e70eae25 Fix test (see 45f120b0c) 2020-06-12 13:58:49 +02:00
Raphael Michel 9eacd38ec7 PayPal: Improve handling of exceptions form paypalrestsdk 2020-06-12 13:21:44 +02:00
Raphael Michel d1c96aa77c PayPal: Remove unused session key 2020-06-12 13:21:44 +02:00
Raphael Michel 99e02bde36 PayPal: Add additional protection against invalid sessions 2020-06-12 13:21:44 +02:00
Raphael Michel e7da2aec53 PayPal: Fix critical bug leading to wrong order being paid in a rare session constellation 2020-06-12 13:21:44 +02:00
Raphael Michel d0c6f0f0e9 Allow to shred data 30 days after event (instead of 60) 2020-06-11 10:44:27 +02:00
Raphael Michel 3ae148956f Add spellcheck lists 2020-06-10 18:24:00 +02:00
Raphael Michel e0436039d2 Merge pull request #1694 from pretix-translations/weblate-pretix-pretix 2020-06-10 18:15:40 +02:00
Raphael Michel 29510b8617 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-06-10 18:13:54 +02:00
Raphael Michel 2d88da3a67 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3684 of 3684 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-06-10 18:13:53 +02:00
Raphael Michel fbb88602d4 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-06-10 18:02:48 +02:00
Raphael Michel 7d7820a4ee Merge pull request #1693 from pretix/series-creation 2020-06-10 18:02:16 +02:00
Raphael Michel 8001063347 Switch to calendar at 25 subevents already 2020-06-10 18:01:52 +02:00
Raphael Michel 0c3a200355 Do not auto-create a first subevent 2020-06-10 17:59:59 +02:00
Maico Timmerman ebb1cc1be7 Fix #1689 -- Widget: disable buy button without selected products (#1692) 2020-06-10 17:58:10 +02:00
Raphael Michel 45f120b0c3 API: Modified settings endpoint for devices 2020-06-10 17:45:31 +02:00
Martin Gross bae0e45d00 Add W-indicator to Week-Calendar Dropdown 2020-06-10 12:59:21 +02:00
Martin Gross 057fd95706 Fix op.address_format() when no zip code is provided 2020-06-10 11:01:08 +02:00
Martin Gross 597d4aa206 Fix attendee_address 2020-06-10 10:32:20 +02:00
Raphael Michel 7f9b245eb5 Fix Preview button for ticket formats 2020-06-09 09:54:28 +02:00
Raphael Michel 42490c6dec New event series selection field 2020-06-08 16:20:50 +02:00
Raphael Michel 60c0b7da12 If date isn't shown on front page, don't show it on invoices 2020-06-08 14:49:06 +02:00
Raphael Michel 7d41922274 Minor improvemnet to widget views 2020-06-07 12:07:03 +02:00
Raphael Michel fc7fbf31c5 Keep cached tickets around for a shorter interval 2020-06-05 12:10:10 +02:00
Raphael Michel da5433325c Fix hardcoded ID in test 2020-06-05 10:03:16 +02:00
Raphael Michel 939a38d53b Fix subsequent issue on event level domains 2020-06-04 20:32:21 +02:00
Raphael Michel a57280004e Fix another multidomain issue 2020-06-04 20:15:26 +02:00
Raphael Michel ce896cec8f Fix bug in previosu commit 2020-06-04 19:05:07 +02:00
Raphael Michel effc9723f1 Add event meta data fields to order search form 2020-06-04 18:39:30 +02:00
Raphael Michel cd5f6b66a1 Do not cache event/organizer instance in multi domain middleware (might be harmful) 2020-06-04 18:33:15 +02:00
Raphael Michel 0d35064d21 Order create API: Fix addon_to in simulated mode
PRETIXEU-275
2020-06-02 16:48:52 +02:00
Raphael Michel 314ce5467f Disable autocomplete for all date/time picker fields 2020-06-02 12:42:12 +02:00
Raphael Michel d97ef380a4 Bump to 3.10.0.dev0 2020-06-02 12:33:17 +02:00
Raphael Michel d3498c419d Bump to 3.9.0 2020-06-02 12:32:09 +02:00
Raphael Michel 0d90ae9d53 SizedField: Do not crash without max_size 2020-06-02 12:31:52 +02:00
Raphael Michel 796d6f92ef Merge pull request #1690 from pretix-translations/weblate-pretix-pretix 2020-06-02 12:31:35 +02:00
Maarten van den Berg 73faecaa39 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-06-02 06:00:10 +02:00
Maarten van den Berg e04e8e8ca6 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-06-01 04:00:15 +02:00
Mikkel Ricky 89a9148073 Translated on translate.pretix.eu (Danish)
Currently translated at 43.6% (1602 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-05-31 12:35:03 +02:00
Maarten van den Berg 205faafc57 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (125 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nl_Informal/

powered by weblate
2020-05-31 12:35:03 +02:00
Maarten van den Berg db8ed065df Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-05-31 12:35:03 +02:00
Maarten van den Berg c84ae364ba Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-05-31 12:35:03 +02:00
Raphael Michel 55a57dced2 Update seating-plan.schema.json 2020-05-31 12:34:46 +02:00
Raphael Michel 62db01e353 Check-in list export: Allow to filter by subevent date 2020-05-29 19:06:14 +02:00
Raphael Michel e435e7140c Check-in list PDF exporter: Cross-subevent improvements 2020-05-29 18:59:02 +02:00
Raphael Michel f4d38965cc Allow to limit distance metric to rows 2020-05-29 17:48:20 +02:00
Martin Gross 5d080a4ab2 Merge pull request #1688 from pretix/paypal_userinfo
Do not hard fail on Unauthorized PayPal Userinfo-calls
2020-05-29 14:30:05 +02:00
Martin Gross 7895729c38 Do not hard fail on Unauthorized PayPal Userinfo-calls (Fixes PRETIXEU-XQ) 2020-05-29 13:48:37 +02:00
Raphael Michel 3b003d0baa Merge pull request #1686 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-05-29 11:44:53 +02:00
Raphael Michel 69a4a16793 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-05-29 11:43:59 +02:00
Raphael Michel cf3412d54d Implement corona-safe seating (#1685) 2020-05-29 11:39:47 +02:00
Raphael Michel 03bcfc7c5a Fix issues from 1c8468c21 2020-05-29 09:20:18 +02:00
Raphael Michel a6c1c85591 Fix broken tests 2020-05-28 22:47:32 +02:00
Raphael Michel 1c8468c21b Cancellation/refund: prefer placeholder over value 2020-05-28 18:55:37 +02:00
Raphael Michel dcc54a0204 SizeFileField: Fix error message format 2020-05-27 14:38:14 +02:00
Raphael Michel 435b32a6b8 Add full attendee address as PDF variable 2020-05-27 12:36:43 +02:00
Raphael Michel 9e93560f7c Add spacing around banners 2020-05-26 16:03:58 +02:00
pajowu e12e7a5dd3 Support HERMA Namensetiketten 50x80mm (4412) (#1681) 2020-05-26 13:50:44 +02:00
Raphael Michel e822ba5430 Only validate size on uploaded files 2020-05-25 16:06:06 +02:00
Raphael Michel b1ee355663 Fix Checkin.MultipleObjectsReturned in backend checkin 2020-05-25 15:46:31 +02:00
Raphael Michel ca40ddc39b Fix AttributeError in SizeFileField 2020-05-25 15:44:46 +02:00
Raphael Michel 1b85911a76 Fix locale to country guessing 2020-05-22 18:20:00 +02:00
Raphael Michel 27b56b5aea Limit extensions and sizes of further file uploads 2020-05-22 15:01:18 +02:00
Raphael Michel 5147508ef9 Fix TypeError 2020-05-22 12:31:07 +02:00
Raphael Michel 39ae22b8b2 Calendar view: Consistent sorting of events at the same time 2020-05-22 11:54:37 +02:00
Raphael Michel 65b612eabd Fix possible ZeroDivisionError in quota calculation 2020-05-19 17:22:52 +02:00
Raphael Michel 48d2f98815 Add acks_late for sendmail task 2020-05-19 16:39:25 +02:00
Raphael Michel 5dd5ff8a7c Set acks_late=True on celery tasks where we would prefer double execution over failure 2020-05-19 16:33:16 +02:00
Martin Gross 059bdc629e Merge pull request #1678 from pretix-translations/weblate-pretix-pretix 2020-05-19 11:20:16 +02:00
Mie Frydensbjerg 36532e5bbb Translated on translate.pretix.eu (Danish)
Currently translated at 43.3% (1591 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/da/

powered by weblate
2020-05-19 11:19:44 +02:00
Mie Frydensbjerg ed318791fb Translated on translate.pretix.eu (Danish)
Currently translated at 75.2% (94 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/da/

powered by weblate
2020-05-19 11:19:09 +02:00
Maarten van den Berg 4d61ec4d86 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (125 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nl/

powered by weblate
2020-05-19 09:35:27 +02:00
Maarten van den Berg cc2f8ac3da Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-05-19 09:35:27 +02:00
Raphael Michel 770293e8ec Fix docs typo 2020-05-19 09:35:18 +02:00
Raphael Michel 0ab11a8134 Timeslot guide: Product creation 2020-05-16 11:52:35 +02:00
Raphael Michel 7e56100c21 Rebuild docs if code changes 2020-05-15 18:21:58 +02:00
Raphael Michel 6fecb42e26 Merge pull request #1677 from pretix/timeslot-docs 2020-05-14 15:29:53 +02:00
Raphael Michel 4c063272d4 Update timeslots.rst 2020-05-14 14:52:41 +02:00
Raphael Michel 029f113b06 Add docs on timeslots 2020-05-14 13:25:07 +02:00
Raphael Michel 7827b026fd Update screenshots in documentation 2020-05-14 13:16:00 +02:00
Raphael Michel bd4ccf4507 Merge pull request #1669 from pretix-translations/weblate-pretix-pretix 2020-05-14 09:42:44 +02:00
Raphael Michel f95d2972d3 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (125 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de/

powered by weblate
2020-05-14 09:40:32 +02:00
Raphael Michel e642098a5f Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-05-14 09:40:32 +02:00
Raphael Michel bf11dea798 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3673 of 3673 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-05-14 09:40:32 +02:00
Raphael Michel 9e47f37097 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (125 of 125 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de_Informal/

powered by weblate
2020-05-14 09:40:32 +02:00
Martin Gross 149c25e609 Translated on translate.pretix.eu (Latvian)
Currently translated at 30.5% (1112 of 3647 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/lv/

powered by weblate
2020-05-14 09:40:32 +02:00
Raphael Michel fccd7a5499 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3647 of 3647 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-05-14 09:40:32 +02:00
Raphael Michel d16acf0bfd Add words to spelling wordlist 2020-05-14 09:40:19 +02:00
Raphael Michel 71c915f5f7 Fix incorrect foreign currency total on invoices 2020-05-14 09:22:52 +02:00
Raphael Michel f1c29daa42 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-05-13 18:45:12 +02:00
Raphael Michel fec31823ee Do not show "None" string to user 2020-05-13 18:41:45 +02:00
Raphael Michel c056db46b6 Overhaul of our check-in features (#1647) 2020-05-13 18:01:49 +02:00
Raphael Michel 640b9c876d Stripe: Lock payment object while processing refund 2020-05-13 16:43:46 +02:00
Martin Gross 25ad2ea475 Fix display of quota items. 2020-05-13 13:56:36 +02:00
Martin Gross d2dfbca913 Fix missing translation tag on order cancellation page 2020-05-13 09:50:19 +02:00
Raphael Michel 7287a16711 Add attendee country as a PDF variable 2020-05-11 10:32:04 +02:00
Raphael Michel c6e969b7fe Do not require rewriting of organizer and event tables because of a django-level field type change 2020-05-10 12:51:19 +02:00
Raphael Michel c03c278ecd Stop using Django's SlugField to avoid conflicting validation 2020-05-10 12:42:37 +02:00
Raphael Michel 140f041cc1 Gift card refund: Use order language 2020-05-07 16:53:16 +02:00
Raphael Michel de9c450648 Week calendar and more improvements to subevent calendars (#1672) 2020-05-07 15:48:47 +02:00
Raphael Michel 6a4c81ff3c Fix two bugs introduced in e117545b3 2020-05-07 14:48:14 +02:00
Raphael Michel e117545b3f Refactor quota calculation (#1668) 2020-05-07 09:34:27 +02:00
Raphael Michel feb7f419d3 Minor performance improvements for generating many subevents 2020-05-06 16:19:46 +02:00
Raphael Michel ea04c85486 Various improvements to the subevent creation form (#1670) 2020-05-06 15:50:43 +02:00
Raphael Michel 094450564a Merge pull request #1671 from pretix/gobal_order_filters_improvements 2020-05-06 14:12:54 +02:00
Martin Gross 66d3c4516f Move stuff to OrderFilterForm 2020-05-06 13:48:45 +02:00
Martin Gross 4b01c42f31 Improve global order filters 2020-05-06 13:12:17 +02:00
Raphael Michel c0972ef39d Re-run form handlers when validation of an async form fails 2020-05-06 09:51:45 +02:00
Raphael Michel 4d1cbd8248 Merge pull request #1667 from pretix-translations/weblate-pretix-pretix 2020-05-05 16:46:31 +02:00
Raphael Michel 07eb71400a Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3647 of 3647 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-05-05 16:43:54 +02:00
Raphael Michel f6f72d4b7f Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3647 of 3647 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-05-05 13:15:15 +02:00
Raphael Michel 08d89acffd Translated on translate.pretix.eu (German)
Currently translated at 99.9% (3646 of 3647 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-05-05 13:15:04 +02:00
Raphael Michel 28831d674f Fix typo in language files 2020-05-05 13:01:58 +02:00
Raphael Michel 65f1c20af0 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-05-05 12:42:49 +02:00
Raphael Michel 5b2b3d71ec Change "Paid" to "confirmed" for free orders 2020-05-05 12:41:58 +02:00
Raphael Michel 15bdcb9973 Change "SOLD OUT" to "FULLY BOOKED" for free tickets 2020-05-05 12:17:31 +02:00
Raphael Michel 1a1afcddc6 Self-service canellations with custom fee: More tolerant decimal parsing 2020-05-04 17:29:29 +02:00
Raphael Michel 219c82b028 Always allow to shred empty event series
PRETIXEU-24B
2020-05-04 17:24:49 +02:00
Raphael Michel 19e2158f19 Payment list export: Allow to filter by payment/refund state 2020-05-04 17:09:12 +02:00
Raphael Michel 23055cfe09 Merge pull request #1665 from pretix-translations/weblate-pretix-pretix 2020-05-04 13:22:25 +02:00
Raphael Michel 790f248388 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3642 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-05-04 13:16:23 +02:00
Raphael Michel ef8d9bdb93 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3642 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-05-04 13:16:23 +02:00
Maarten van den Berg 0d9b534cee Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3642 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-05-04 13:16:23 +02:00
Gonzalo Gabriel Perez b1b303e598 Translated on translate.pretix.eu (Spanish)
Currently translated at 96.2% (102 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/es/

powered by weblate
2020-05-04 13:16:23 +02:00
Maarten van den Berg b4f3a665af Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3642 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-05-04 13:16:23 +02:00
Raphael Michel f71153db4a De-emphasize resend links button 2020-05-04 13:16:10 +02:00
Raphael Michel 1643005a4b simple_logo email renderer: Add top margin to logo 2020-05-04 12:58:22 +02:00
Raphael Michel 0ee2f674bc Stop asking for provinces in china (causes problems for users
apparently)
2020-05-04 11:57:20 +02:00
Martin Gross d142a09ad3 Order Data Export: Add locale to position-sheet 2020-05-04 10:59:30 +02:00
Martin Gross 68c13aaa3c Reverse-sort TLDs for markdown, so longer TLDs match first (.com before .co) 2020-05-04 10:49:43 +02:00
Martin Gross 556c77a54b Correctly process missing, redacted data (Fix PRETIXEU-23M) 2020-04-30 11:56:09 +02:00
Martin Gross 5b689e5fd2 Correctly process missing, redacted data (Fix PRETIXEU-23M) 2020-04-30 11:48:36 +02:00
Raphael Michel 57f5fbc131 Fix race condition when loading styles within the widget 2020-04-29 11:40:25 +02:00
Raphael Michel 7e80ec93d5 Hide PayPal secret key in global settings 2020-04-29 11:27:38 +02:00
Raphael Michel ee1928aeed Do not expose secret keys in global settings 2020-04-29 11:25:22 +02:00
Raphael Michel 5c62f2b852 Fix documentation copy-and-paste error (danke @luto) 2020-04-29 10:52:13 +02:00
Martin Gross ad8be705fd Update bleach to 3.1.4 2020-04-28 15:07:35 +02:00
Raphael Michel 4635d9b5f7 Ensure order gets canceled when locked 2020-04-28 12:32:07 +02:00
Raphael Michel ace32f3fc4 Remove one more usage of non-cached Countries() 2020-04-27 18:06:48 +02:00
Raphael Michel 88a235da30 Allow to set event_list_type on event level 2020-04-27 18:06:37 +02:00
Raphael Michel 4ec24fc884 PayPal: Show sale ID in backend 2020-04-27 11:39:57 +02:00
Raphael Michel e2b9fe8e71 Fix crash in self-service cancellation
PRETIXEU-23B
2020-04-24 16:52:11 +02:00
Raphael Michel 6f1c29581d Merge pull request #1662 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-24 09:59:07 +02:00
Raphael Michel 9bf0a6dfcd Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3642 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-24 09:43:28 +02:00
Raphael Michel 3e6e324027 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3642 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-24 09:43:27 +02:00
Raphael Michel 912e6816df Translated on translate.pretix.eu (German (informal))
Currently translated at 99.9% (3638 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-24 09:41:46 +02:00
Raphael Michel d00aa2f3ad Translated on translate.pretix.eu (German)
Currently translated at 99.9% (3638 of 3642 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-24 09:41:46 +02:00
Raphael Michel 41fecf366c Fix translation typos again 2020-04-24 09:41:29 +02:00
Raphael Michel f7f751bda7 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-24 09:37:15 +02:00
Raphael Michel 7b68614de3 Merge pull request #1660 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-24 09:36:37 +02:00
Maarten van den Berg c0fc259d17 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3639 of 3639 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-04-24 09:36:21 +02:00
Maarten van den Berg d6cad265fc Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3639 of 3639 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-04-24 09:36:21 +02:00
Raphael Michel bb1882aca5 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3639 of 3639 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-24 09:36:21 +02:00
Raphael Michel b887c2c43d More precise texts in the download fragment 2020-04-24 09:36:01 +02:00
Raphael Michel c05bf779bd Remove icon again 2020-04-24 09:35:55 +02:00
Raphael Michel 68ff001bb6 Do not run tests on translation-only PRs 2020-04-24 09:15:49 +02:00
Martin Gross 3c6fdd15af Expose apple-developer-merchantid-domain-association on event_p… (#1661) 2020-04-24 09:14:39 +02:00
Raphael Michel 16957eec33 Initialize bulk create form with weekly instead of yearly events 2020-04-22 16:57:28 +02:00
Raphael Michel 1bcf1ec26a Actually run isort instead of flake8 2020-04-22 12:16:29 +02:00
Raphael Michel d224b5387d Replace Travis with GitHub actions and fix many typos (#1657)
* Create django.yml

* Fix working directory

* ..

* .

* ..

* a.

* ..

* .

* Fix typo

* Install hunspell

* maxfail

* Fix install

* .

* Reduce number of typos

* Even less typos

* Postgres debug

* Spelling fixes, yet again

* Postgres with PW

* Fix failing test

* New workflows

* Fix syntax error

* Install gettext

* Test aginst python 3.6 as well

* Clean up strategies

* Add badge, do not ignore migrations

* Use pip cache
2020-04-22 12:07:58 +02:00
Raphael Michel 27d6e49c4a GiftcarD Only allow reversal for refunds 2020-04-22 09:34:15 +02:00
Raphael Michel 50bb66a32b Merge pull request #1658 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-21 18:45:16 +02:00
Raphael Michel 207149f681 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3639 of 3639 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-21 18:44:51 +02:00
Raphael Michel e0ed25a1d3 Translated on translate.pretix.eu (German)
Currently translated at 99.9% (3638 of 3639 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-21 18:44:49 +02:00
Raphael Michel c0c177d755 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-21 15:57:55 +02:00
Raphael Michel f2844ac686 Add expiry dates and individual conditions to gift cards (#1656)
* 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
2020-04-21 15:57:02 +02:00
Raphael Michel d9fd4b33a0 Enforce language in timeline test 2020-04-21 11:14:29 +02:00
Raphael Michel d2415f46df Hide some header elements when printing 2020-04-21 11:14:09 +02:00
Raphael Michel ad7c745465 Fix bug introduced in last commit 2020-04-21 10:44:40 +02:00
Raphael Michel b260cca412 Event setup: Do not create additional teams for staff 2020-04-21 09:33:50 +02:00
Raphael Michel 82c84a0fdc Merge pull request #1655 from pretix-translations/weblate-pretix-pretix 2020-04-20 19:18:03 +02:00
Raphael Michel d703c4de7a Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3622 of 3622 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-20 19:17:24 +02:00
Raphael Michel ff5fbf1c15 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3622 of 3622 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-20 19:17:23 +02:00
Raphael Michel 41ff4bca7f Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-20 19:14:38 +02:00
Raphael Michel 37f45de8a5 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3621 of 3621 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-20 19:14:30 +02:00
Raphael Michel 71f01c17bd Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3621 of 3621 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-20 19:14:29 +02:00
Raphael Michel 43b1df572f Add translation context 2020-04-20 19:14:02 +02:00
Raphael Michel ecda905ceb Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-20 19:06:28 +02:00
Raphael Michel 4e59b02bb1 Re-label cart button if cart is not visible or all products are free 2020-04-20 19:05:21 +02:00
Raphael Michel 234bf093ff Fix isort issues 2020-04-20 17:46:27 +02:00
Raphael Michel ae9bd1b6ba Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-20 17:46:02 +02:00
Raphael Michel b84b51250f More visible download buttons for single tickets 2020-04-20 17:45:20 +02:00
Raphael Michel d0dd2116ca Enlarge download button for multi downloads 2020-04-20 17:45:19 +02:00
Raphael Michel 945218035e Re-design number of products in cart overview 2020-04-20 17:45:19 +02:00
Raphael Michel 89f8436e9a Merge pull request #1649 from pretix-translations/weblate-pretix-pretix 2020-04-20 17:44:52 +02:00
Raphael Michel 4992b17966 Squash some migrations 2020-04-20 17:16:02 +02:00
Raphael Michel f7d057f9fa Translated on translate.pretix.eu (French)
Currently translated at 64.1% (2315 of 3609 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/

powered by weblate
2020-04-20 17:15:54 +02:00
Maarten van den Berg 96ba32b1bb Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3609 of 3609 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-04-20 17:15:54 +02:00
Maarten van den Berg 02792e3ae8 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3609 of 3609 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-04-20 17:15:54 +02:00
Raphael Michel a87fe3ef41 Allow to revert a gift card refund 2020-04-20 13:19:32 +02:00
Raphael Michel bb673e0cc9 Fix localized decimal validation when creating manual gift card transactions 2020-04-20 12:57:03 +02:00
Raphael Michel 0b02bcea8b Prevent cancelling all subevents by accident 2020-04-19 14:17:41 +02:00
Martin Gross 1d8668aaf1 Exclude all kinds of Umlauts from GiroCodes (Fix: #1314) 2020-04-17 19:14:54 +02:00
Martin Gross 0783add3b9 Restrict PayPal plugin to supported PayPal currencies (Fix: #1160) 2020-04-17 18:56:00 +02:00
Martin Gross 2030aaf12e Fix #1488 some more: compile the regex' less often for better performance 2020-04-17 17:53:57 +02:00
Martin Gross 7ce4c30922 Parse more nTLDs and gTLDs (Fix #1488) 2020-04-17 17:44:08 +02:00
Raphael Michel f1e772c829 Bump to 3.9.0.dev0 2020-04-17 17:19:40 +02:00
Raphael Michel 31d1fc31cd Bump version to 3.8.0 2020-04-17 17:19:02 +02:00
Raphael Michel 597211d83a Merge pull request #1646 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-17 17:11:24 +02:00
Raphael Michel 17679d4304 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3609 of 3609 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-17 17:11:08 +02:00
Raphael Michel 0fb70c78a9 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3609 of 3609 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-17 17:11:07 +02:00
Raphael Michel e254e90e49 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-17 16:26:52 +02:00
Raphael Michel 9c6e5f025d Merge pull request #1642 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-17 16:26:21 +02:00
Raphael Michel 3c86532218 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3601 of 3601 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-17 16:25:29 +02:00
Raphael Michel 3834ae566f Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3601 of 3601 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-17 16:25:29 +02:00
Raphael Michel 6766b2b19e Fix #1645 -- Allow one-letter event slugs 2020-04-17 16:25:04 +02:00
Raphael Michel b6d2f67c7c Cache sorting of countries 2020-04-17 13:21:13 +02:00
Raphael Michel e70f593a94 Minor SQL performance improvements 2020-04-17 12:14:37 +02:00
Raphael Michel ed5726fc0c Merge branch 'master' of github.com:pretix/pretix 2020-04-17 12:04:41 +02:00
Martin Gross 5400d26c60 Log the reason for failed PayPal refunds 2020-04-17 12:02:43 +02:00
Raphael Michel 0bb6104532 Flip order of invoices and tickets in email attachments 2020-04-16 13:14:06 +02:00
Raphael Michel 16aa403735 Fix incorrect checkin list tests 2020-04-15 13:06:24 +02:00
Martin Gross 1c279a92a7 Merge pull request #1643 from pretix/event_cancellation_giftcard_refund
Allow to issue gift card refunds when cancelling whole events
2020-04-15 13:00:41 +02:00
Martin Gross 35985dcb11 Remove legal warning, make refund_as_giftcard-option clearer. 2020-04-15 12:58:43 +02:00
Raphael Michel b0dcbe31fa Fix incorrect quota error when changing subevent and item of a position 2020-04-15 12:54:57 +02:00
Martin Gross b3c3ee3b22 Allow to issue gift card refunds when cancelling whole events 2020-04-15 10:08:12 +02:00
Raphael Michel aab340fd87 Fix missing translation context 2020-04-15 09:43:58 +02:00
Raphael Michel 1871324ef4 Restrict length of item name in quick setup
PRETIXEU-21V
2020-04-15 09:20:55 +02:00
Raphael Michel d799d560b7 Fix typo in settings definition 2020-04-14 09:47:47 +02:00
Raphael Michel 01e2851a76 Invoice model: Do not crash on invalid states 2020-04-14 09:47:34 +02:00
Raphael Michel ef2a4244ed Merge branch 'master' of github.com:pretix/pretix 2020-04-09 09:29:58 +02:00
Raphael Michel 55539dc8e5 Fix confusing background color in subevents 2020-04-09 09:29:40 +02:00
Martin Gross ef303bfcc4 Add cancel_allow_user_paid_adjust_fees_explanation (#1639)
* Add cancel_allow_user_paid_adjust_fees_explanation

* Cleanup
2020-04-08 17:49:36 +02:00
Martin Gross fff9ac04a9 Fix test (Caused by 31fdf8721b) 2020-04-08 17:49:16 +02:00
Martin Gross 76d27fbfaa Cleanup 2020-04-08 17:08:58 +02:00
Martin Gross 2b1123b487 Add cancel_allow_user_paid_adjust_fees_explanation 2020-04-08 16:43:29 +02:00
pretix translation bot 3607d8706d Translations update from Weblate (#1638)
* Translated on translate.pretix.eu (German)

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de/

powered by weblate

* Translated on translate.pretix.eu (German (informal))

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de_Informal/

powered by weblate

* Translated on translate.pretix.eu (Dutch)

Currently translated at 100.0% (3601 of 3601 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate

* Translated on translate.pretix.eu (Dutch (informal))

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nl_Informal/

powered by weblate

* Translated on translate.pretix.eu (Dutch (informal))

Currently translated at 100.0% (3601 of 3601 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate

Co-authored-by: Martin Gross <martin@pc-coholic.de>
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
2020-04-08 15:48:55 +02:00
Raphael Michel 31fdf8721b API: Fix selecting checkin question answers by option identifier 2020-04-07 15:16:58 +02:00
Raphael Michel 128a1f349a Revert accidentally commited change 2020-04-03 14:47:44 +02:00
Raphael Michel 7d432f0639 Improve display of attendee addresses 2020-04-03 14:35:38 +02:00
Raphael Michel 1ffc799c4d Split banner text into top and bottom 2020-04-03 13:02:23 +02:00
Raphael Michel 25dd8f2e2f Introduce banner text 2020-04-02 18:35:28 +02:00
Raphael Michel b121596e4b Merge pull request #1635 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-02 18:28:50 +02:00
Raphael Michel cf835df62e Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3601 of 3601 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-04-02 18:28:27 +02:00
Raphael Michel 7a3b7d4f02 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3601 of 3601 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-04-02 18:28:26 +02:00
Maarten van den Berg b151d8f455 Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3590 of 3590 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-04-02 18:17:28 +02:00
Raphael Michel 06de74d877 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-04-02 18:17:18 +02:00
Raphael Michel 2ae9e3e0d9 Directly load editor on supported browsers 2020-04-02 18:16:33 +02:00
Raphael Michel 0c0fe58bbf Improve UX of ticket download settings 2020-04-02 18:16:22 +02:00
Raphael Michel 7b1e1a48ef Enable PDF and passbook outputs for new events by default 2020-04-02 18:03:26 +02:00
Raphael Michel c7dd50de0d CartMixin: Prevent None values in sorting function 2020-04-02 16:53:17 +02:00
Raphael Michel a1caa65776 Revert "Upgrade jQuery version (but keep old one around for now for plugins)"
We've got to many instances of this around:
https://stackoverflow.com/questions/38871753/uncaught-typeerror-a-indexof-is-not-a-function-error-when-opening-new-foundat

This reverts commit cc46d55f5e.
2020-04-02 16:42:54 +02:00
Raphael Michel 260973345d Merge pull request #1634 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-04-02 14:41:19 +02:00
Raphael Michel 2c9b2620ea Add company and address fields to attendees (#1633)
* Add company and address fields to attendees

* Update src/pretix/control/templates/pretixcontrol/event/settings.html

Co-Authored-By: Martin Gross <gross@rami.io>

Co-authored-by: Martin Gross <gross@rami.io>
2020-04-02 14:41:09 +02:00
Maarten van den Berg 909c80e710 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nl/

powered by weblate
2020-04-02 09:51:33 +02:00
Maarten van den Berg 5a218ae6a9 Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3590 of 3590 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-04-02 09:51:33 +02:00
Raphael Michel b498d45621 Pass gift_cards to order_fee_calculation 2020-04-02 09:50:44 +02:00
Raphael Michel b02196434b Re-compute fees after applying a giftcard 2020-04-01 17:09:58 +02:00
Raphael Michel c0edce7760 AJAX: Do not throw error on "abort" in Safari 2020-04-01 16:06:46 +02:00
Raphael Michel cc46d55f5e Upgrade jQuery version (but keep old one around for now for plugins) 2020-04-01 16:06:46 +02:00
Martin Gross ea8abb8dab Add Giftcard Redemption Export 2020-04-01 15:46:40 +02:00
Raphael Michel f765d094b4 Fix crash in UCBrowser (PRETIXEU-20M) 2020-04-01 11:14:30 +02:00
Raphael Michel 86f222870d Cancelling orders: Do not send email to organizer if the refund is in transit 2020-03-31 17:56:51 +02:00
Martin Gross 19b5270d76 Fix tests (Caused by 61a1368ed2) 2020-03-31 14:34:10 +02:00
Martin Gross db76b9b0ef Tiny fix to make Edge happy and display cancellation-slider 2020-03-31 14:04:57 +02:00
pretix translation bot d23e53873f Translations update from Weblate (#1632)
* Translated on translate.pretix.eu (German)

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de/

powered by weblate

* Translated on translate.pretix.eu (German (informal))

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de_Informal/

powered by weblate

Co-authored-by: Martin Gross <martin@pc-coholic.de>
2020-03-31 13:35:14 +02:00
pretix translation bot c116a4b998 Translations update from Weblate (#1631)
* Translated on translate.pretix.eu (German)

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de/

powered by weblate

* Translated on translate.pretix.eu (German (informal))

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/de_Informal/

powered by weblate

* Translated on translate.pretix.eu (Dutch)

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nl/

powered by weblate

* Translated on translate.pretix.eu (Dutch (informal))

Currently translated at 100.0% (106 of 106 strings)

Translation: pretix/pretix (frontend)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nl_Informal/

powered by weblate

* Translated on translate.pretix.eu (Dutch)

Currently translated at 99.4% (3569 of 3589 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate

* Translated on translate.pretix.eu (Dutch)

Currently translated at 100.0% (3589 of 3589 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate

* Translated on translate.pretix.eu (Dutch (informal))

Currently translated at 100.0% (3589 of 3589 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate

Co-authored-by: Raphael Michel <michel@rami.io>
Co-authored-by: Maarten van den Berg <maartenberg1@gmail.com>
2020-03-31 13:28:34 +02:00
Martin Gross 2471d4bca5 Update po files
[CI skip]

Signed-off-by: Martin Gross <gross@rami.io>
2020-03-31 12:47:09 +02:00
Martin Gross 8e04dbdcca Change "we keep" to "The organizer keeps" to avoid confusion 2020-03-31 12:45:32 +02:00
Raphael Michel 0928358396 Fix > vs >= in gift card message 2020-03-29 13:53:58 +02:00
Raphael Michel 23f783c15c Force django-libsass version to be upgraded 2020-03-26 20:51:54 +01:00
Raphael Michel edae96c84f Fix TypeError during cancellation 2020-03-26 20:49:53 +01:00
Martin Gross 242ebdfae9 Show Subevent start time in select2-pickers (#1630)
* Add Subevent time to __str__

* Show subevent-dates in select2 picker

* Show event-dateblock (if enabled) on Widget Voucher redemption page

* Update src/pretix/base/models/event.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Update src/pretix/control/templates/pretixcontrol/vouchers/index.html

Co-Authored-By: Raphael Michel <michel@rami.io>

* Update src/pretix/control/views/typeahead.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Remove date-block on non-subevent voucher redemption pages

Co-authored-by: Raphael Michel <michel@rami.io>
2020-03-26 13:10:45 +01:00
Raphael Michel 0ee502abec Improve performance by not re-evaluating main context processors on
every template rendering in a signal receiver
2020-03-26 09:50:58 +01:00
Raphael Michel 29cb1e93d8 Reduce number of queries on the order change form 2020-03-26 09:50:14 +01:00
Raphael Michel c89242855c Reduce number of SQL queries on order detail page 2020-03-26 09:38:56 +01:00
Raphael Michel 61a1368ed2 Widget: Show date and time of subevent after calendar selection 2020-03-25 17:48:24 +01:00
Raphael Michel ac3e00fa03 Color buttons green if they otherwise look like a headline 2020-03-25 17:48:09 +01:00
Raphael Michel d9d0f7b6f3 Add Order.cancellation_date (#1629)
* Add Order.cancellation_date

* Add tests
2020-03-25 16:37:34 +01:00
Raphael Michel ad5e2df3be Merge pull request #1628 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-03-25 14:59:07 +01:00
Raphael Michel ec34561815 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3589 of 3589 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-03-25 14:58:32 +01:00
Raphael Michel e1540b1648 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3589 of 3589 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-03-25 14:58:31 +01:00
Raphael Michel a6b265455d Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-03-25 14:14:28 +01:00
Raphael Michel 8a6334bd86 Introduce cancellation requests (#1627)
* 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
2020-03-25 14:13:55 +01:00
Raphael Michel 173a23722a Merge pull request #1625 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-03-25 14:12:26 +01:00
Raphael Michel ab8eb2a34d Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3546 of 3546 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-03-25 13:03:51 +01:00
pajowu 30dcda616b Send checkin list mapping in event_copy_data signal (#1624)
* Send checkin list map in event_copy_data signal

* Add checkin_list_map to documentation and definition of event_copy_data
2020-03-25 13:03:45 +01:00
Raphael Michel 3eafec9d6e Allow customers to choose to receive their refund as a gift card (#1626)
* Minor text adjustments

* Allow users to receive their cancellation as a gift card
2020-03-25 11:41:40 +01:00
Raphael Michel a5910016fd Allow users to increase cancellation fees (#1622)
* Allow users to increase cancellation fees

* Fix typo
2020-03-25 10:11:29 +01:00
pajowu 0a49b93b26 Render remaining badges onto new page even if it doesn't fill t… (#1621) 2020-03-24 17:43:58 +01:00
Raphael Michel 7449bea836 Add request argument to order_info/position_info signals 2020-03-24 15:57:00 +01:00
Raphael Michel 0fc4478332 Add docs on pretix-digital 2020-03-24 15:56:51 +01:00
Raphael Michel 0df4a6e7ed Add signals order_info_top and position_info_top 2020-03-24 14:22:02 +01:00
Benjamin Hättasch a37cd380c8 Fix sample service config (#1620) 2020-03-24 09:10:56 +01:00
Raphael Michel 11b2bd8887 Allow markdown in multiple-choice question options 2020-03-23 17:55:52 +01:00
Raphael Michel 8986db0975 Merge pull request #1619 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-03-23 17:55:50 +01:00
Raphael Michel 2921611cb1 Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3546 of 3546 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-03-23 17:55:20 +01:00
Raphael Michel 785fb29513 Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3546 of 3546 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-03-23 17:55:19 +01:00
Raphael Michel 81c3d7fa17 Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-03-23 17:02:11 +01:00
Raphael Michel 8ff963698d Text change "Modify" → "Add or remove tickets" on review order page 2020-03-23 16:47:25 +01:00
Raphael Michel 6da63e0169 Question form: Guess default country 2020-03-23 16:44:37 +01:00
Raphael Michel f84903ae27 Drop removed context attribute from from_db_value 2020-03-23 16:44:37 +01:00
Raphael Michel a0a7859b33 Update redis 2020-03-23 16:03:19 +01: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 7e9c9beace Allow to use a custom domain per event (#1617)
* Drop support for maindomain_urls/subdomain_urls in plugins

* Allow to use a custom domain per event

* Fix bug when manually saving domains

* Fix custom domains in debugging

* Fix middleware

* Fix middleware again, update docs
2020-03-23 13:03:14 +01:00
Raphael Michel ac2fc2de5c Cancelling events: Allow to cancel all dates in a series 2020-03-23 10:37:10 +01:00
Raphael Michel 45e548873e Do not crash event page on social image generation 2020-03-22 11:04:51 +01:00
Raphael Michel f484eb65df PayPal: Do not crash on failed refund 2020-03-22 11:04:51 +01:00
Raphael Michel 027a785ab5 Log out other sessions after email or 2FA changes 2020-03-22 11:04:51 +01:00
Raphael Michel 25b80cbb57 Fix invalid requirement spec 2020-03-20 12:46:15 +01:00
Raphael Michel 589fa0f9de Cancelling events: Send email even if refund failed 2020-03-20 12:38:57 +01:00
Raphael Michel 6d2989d15a Run a forked version of vat_moss 2020-03-20 11:06:19 +01:00
Raphael Michel 5bb27b29ae Seat statistics: Only use active variations 2020-03-16 16:32:34 +01:00
Raphael Michel d17f8a71e6 Fix crashes in new statistical feature 2020-03-16 16:12:48 +01:00
Raphael Michel b664cc712a Cancelling events: Allow to create manual and partial refunds 2020-03-16 16:00:44 +01:00
Raphael Michel d61e8a9204 Cancelling events: Allow to select fee types to keep 2020-03-16 15:44:37 +01:00
Martin Gross f00012a63e Statistics on sold and unsold seats, as well as potential profi… (#1613)
* Statistics on sold and unsold seats, as well as potential profits

* Rework of seats-stats

* Fix crash when all seats are assigned

* Update src/pretix/plugins/statistics/views.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Update src/pretix/plugins/statistics/views.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Update src/pretix/plugins/statistics/views.py

Co-Authored-By: Raphael Michel <michel@rami.io>

* Fix count of sold seats

Co-authored-by: Raphael Michel <mail@raphaelmichel.de>
Co-authored-by: Raphael Michel <michel@rami.io>
2020-03-16 15:20:30 +01:00
Raphael Michel bd238f76ce Fix broken test 2020-03-16 13:29:12 +01:00
Raphael Michel 703ae97820 Fix typo in German translation 2020-03-16 13:27:33 +01:00
Raphael Michel 1a60c5ea64 Fix missing bleach call in invoice renderer 2020-03-16 11:44:31 +01:00
Raphael Michel 1d3ac5f02f Fix StaticDevice.MultipleObjectsReturned
PRETIXEU-1YX
2020-03-16 11:41:33 +01:00
Raphael Michel 8d23d75dfd Only send download reminders if there's actually a download 2020-03-16 09:26:11 +01:00
Maico Timmerman 9a32668ee1 Make next url authentication backend dependent (#1609)
* Make next url authentication backend dependent

* Rename authentication next_url to get_next_url.

* Add test for custom authentication backend get_next_url.

* Fix typo in docstring of authentication backend get_next_url.
2020-03-15 11:05:57 +01:00
pajowu ca0407a133 Subclass MultipleChoiceField to serialize to list (#1605)
* Subclass MultipleChoiceField to serialize to list

* Rename pretix.api.serializers.MultipleChoiceField to ListMultipleChoiceField

* Keep order in ListMultipleChoiceField
2020-03-14 22:04:12 +01:00
Raphael Michel 1de77b0784 Translations update from Weblate (#1612)
Translations update from Weblate
2020-03-14 22:02:09 +01:00
Maarten van den Berg d0907d3dcf Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3516 of 3516 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-03-13 08:00:11 +01:00
pajowu 81cc4bd768 Do not validate event creation form on back button (#1611) 2020-03-12 19:17:49 +01:00
pajowu 262639e063 Show checkbox if items per order limit is 1 (#1610) 2020-03-12 18:47:14 +01:00
Martin Gross dedd93fb89 Add Support for Square POS payment_data 2020-03-12 14:33:37 +01:00
Raphael Michel 45f94aee03 Merge pull request #1602 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-03-12 13:31:40 +01:00
Maarten van den Berg d36e7d033f Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 100.0% (3516 of 3516 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-03-12 13:31:17 +01:00
Maarten van den Berg b94bd277bf Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3516 of 3516 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-03-12 13:31:16 +01:00
Maico Timmerman e5095185d9 Send widget_data in voucher redeem request. (#1606) 2020-03-12 13:31:12 +01:00
pajowu d76ce47597 Allow creating question with dependency_question=None (#1607) 2020-03-12 13:30:18 +01:00
Martin Gross 58717850c2 Add date-on-frontpage check to secondary template 2020-03-12 12:06:26 +01:00
Martin Gross 29d52d4fe5 Second attempt at hiding date on frontpage in title 2020-03-12 12:00:18 +01:00
Martin Gross 34c9c40ddc Option to hide date-block on frontpage (#1603)
* Option to hide date-block on frontpage

* Also hide date in headline
2020-03-12 10:28:47 +01:00
Martin Gross 39d05a6c40 Duplicate generate_ticket for items on duplication 2020-03-11 18:44:29 +01:00
Martin Gross b664222c62 Calculation fix for unlimited Quota w/ Waitinglist 2020-03-11 16:48:57 +01:00
Raphael Michel 1ee48a10b5 Allow to reactivate canceled orders (#1601) 2020-03-11 11:40:56 +01:00
Raphael Michel 2431a8b767 Fix typo 2020-03-09 17:37:13 +01:00
Raphael Michel af84354e51 Resolve some warnings in the test suite 2020-03-09 14:57:19 +01:00
Raphael Michel b04de880fc Bump to 3.8.0.dev0 2020-03-09 14:34:00 +01:00
Raphael Michel 11f3057f76 Bump version to 3.7.0 2020-03-09 14:33:17 +01:00
Raphael Michel ba164c16f6 Fix test failure that only happens in the 20 days before daylight saving time changes 2020-03-09 12:56:58 +01:00
Raphael Michel 7ef766ddfa Cancelling events: Only show email fields conditionally 2020-03-09 11:44:25 +01:00
Raphael Michel bcafcc7dd8 Fix invalid translation file 2020-03-09 11:36:59 +01:00
Raphael Michel e5b7102abc Merge pull request #1600 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-03-09 11:21:33 +01:00
Raphael Michel 3601dd6bee Translated on translate.pretix.eu (German (informal))
Currently translated at 100.0% (3516 of 3516 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/

powered by weblate
2020-03-09 11:20:45 +01:00
Raphael Michel a1d5854fbf Translated on translate.pretix.eu (German)
Currently translated at 100.0% (3516 of 3516 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/

powered by weblate
2020-03-09 11:20:44 +01:00
Raphael Michel 09544a688d Update po files
[CI skip]

Signed-off-by: Raphael Michel <mail@raphaelmichel.de>
2020-03-09 11:11:54 +01:00
Raphael Michel 58a5892cc0 Merge pull request #1598 from pretix-translations/weblate-pretix-pretix
Translations update from Weblate
2020-03-09 11:11:12 +01:00
Maarten van den Berg c9af76b46e Translated on translate.pretix.eu (Dutch (informal))
Currently translated at 97.9% (3436 of 3510 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl_Informal/

powered by weblate
2020-03-09 01:00:13 +01:00
Maarten van den Berg 91753935cf Translated on translate.pretix.eu (Dutch)
Currently translated at 100.0% (3510 of 3510 strings)

Translation: pretix/pretix
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/

powered by weblate
2020-03-09 01:00:12 +01:00
772 changed files with 345263 additions and 148353 deletions
+7
View File
@@ -1,3 +1,10 @@
doc/
env/
res/
local/
.git/
pretixeu/
src/data/
src/pretix/static.dist/
src/dist/
+23
View File
@@ -0,0 +1,23 @@
---
name: Bug report
about: Please only create issues for bug reports. Feature requests or general questions
should start as a "Discussion" on GitHub.
title: ''
labels: ''
assignees: ''
---
<!-- Please only create issues for bug reports. Feature requests or general questions should start as a "Discussion" on GitHub. -->
**Describe the bug**
A clear and concise description of what the bug is.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.
+42
View File
@@ -0,0 +1,42 @@
name: Documentation
on:
push:
branches: [ master ]
paths-ignore:
- 'src/pretix/locale/**'
- 'src/pretix/static/**'
- 'src/tests/**'
pull_request:
branches: [ master ]
paths-ignore:
- 'src/pretix/locale/**'
- 'src/pretix/static/**'
- 'src/tests/**'
jobs:
spelling:
name: Spellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/cache@v1
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install system packages
run: sudo apt update && sudo apt install enchant hunspell aspell-en
- name: Install Dependencies
run: pip3 install -Ur doc/requirements.txt
- name: Spellcheck docs
run: make spelling
working-directory: ./doc
- name:
run: '[ ! -s _build/spelling/output.txt ]'
working-directory: ./doc
+62
View File
@@ -0,0 +1,62 @@
name: Strings
on:
push:
branches: [ master ]
paths:
- 'doc/**'
- 'src/pretix/locale/**'
pull_request:
branches: [ master ]
paths:
- 'doc/**'
- 'src/pretix/locale/**'
jobs:
compile:
runs-on: ubuntu-latest
name: Check gettext syntax
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/cache@v1
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install system packages
run: sudo apt update && sudo apt install gettext
- name: Install Dependencies
run: pip3 install -Ur src/requirements.txt
- name: Compile messages
run: python manage.py compilemessages
working-directory: ./src
- name: Compile jsi18n
run: python manage.py compilejsi18n
working-directory: ./src
spelling:
runs-on: ubuntu-latest
name: Spellcheck
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/cache@v1
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install system packages
run: sudo apt update && sudo apt install enchant hunspell hunspell-de-de aspell-en aspell-de
- name: Install Dependencies
run: pip3 install -Ur src/requirements/dev.txt
- name: Spellcheck translations
run: potypo
working-directory: ./src
+55
View File
@@ -0,0 +1,55 @@
name: Code Style
on:
push:
branches: [ master ]
paths-ignore:
- 'src/pretix/locale/**'
- 'src/pretix/static/**'
pull_request:
branches: [ master ]
paths-ignore:
- 'src/pretix/locale/**'
- 'src/pretix/static/**'
jobs:
isort:
name: isort
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/cache@v1
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install Dependencies
run: pip3 install -Ur src/requirements/dev.txt
- name: Run isort
run: isort -c .
working-directory: ./src
flake:
name: flake8
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/cache@v1
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install Dependencies
run: pip3 install -r src/requirements.txt -Ur src/requirements/dev.txt
- name: Run flake8
run: flake8 .
working-directory: ./src
+75
View File
@@ -0,0 +1,75 @@
name: Tests
on:
push:
branches: [ master ]
paths-ignore:
- 'doc/**'
- 'src/pretix/locale/**'
pull_request:
branches: [ master ]
paths-ignore:
- 'doc/**'
- 'src/pretix/locale/**'
jobs:
test:
runs-on: ubuntu-latest
name: Tests
strategy:
matrix:
python-version: [3.6, 3.7, 3.8]
database: [sqlite, postgres, mysql]
exclude:
- database: mysql
python-version: 3.7
- database: sqlite
python-version: 3.7
- database: mysql
python-version: 3.6
- database: sqlite
python-version: 3.6
steps:
- uses: actions/checkout@v2
- uses: getong/mariadb-action@v1.1
with:
mariadb version: '10.4'
mysql database: 'pretix'
mysql root password: ''
if: matrix.database == 'mysql'
- uses: harmon758/postgresql-action@v1
with:
postgresql version: '11'
postgresql db: 'pretix'
postgresql user: 'postgres'
postgresql password: 'postgres'
if: matrix.database == 'postgres'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v1
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install system dependencies
run: sudo apt update && sudo apt install gettext mysql-client
- name: Install Python dependencies
run: pip3 install -r src/requirements.txt -Ur src/requirements/dev.txt mysqlclient psycopg2-binary
- name: Run checks
run: python manage.py check
working-directory: ./src
- name: Compile
working-directory: ./src
run: make all compress
- name: Run tests
working-directory: ./src
run: PRETIX_CONFIG_FILE=tests/travis_${{ matrix.database }}.cfg py.test -n 3 -p no:sugar --cov=./ --cov-report=xml --reruns 3 tests --maxfail=100
- name: Upload coverage
uses: codecov/codecov-action@v1
with:
file: src/coverage.xml
fail_ci_if_error: true
if: matrix.database == 'postgres' && matrix.python-version == '3.8'
+10 -4
View File
@@ -5,7 +5,11 @@ tests:
- virtualenv env
- source env/bin/activate
- pip install -U pip wheel setuptools
- XDG_CACHE_HOME=/cache bash .travis.sh tests
- XDG_CACHE_HOME=/cache pip3 install -r src/requirements.txt --no-use-pep517 -Ur src/requirements/dev.txt
- cd src
- python manage.py check
- make all compress
- py.test --reruns 3 -n 3 tests
tags:
- python3
except:
@@ -16,15 +20,17 @@ pypi:
- cp /keys/.pypirc ~/.pypirc
- virtualenv env
- source env/bin/activate
- pip install -U pip wheel setuptools
- pip install -U pip wheel setuptools check-manifest twine
- XDG_CACHE_HOME=/cache pip3 install -Ur src/requirements.txt -r src/requirements/dev.txt
- cd src
- python setup.py sdist
- pip install dist/pretix-*.tar.gz
- python -m pretix migrate
- python -m pretix check
- python setup.py sdist upload
- python setup.py bdist_wheel upload
- check-manifest
- python setup.py sdist bdist_wheel
- twine check dist/*
- twine upload dist/*
tags:
- python3
only:
-68
View File
@@ -1,68 +0,0 @@
#!/bin/bash
set -e
set -x
echo "Executing job $1"
if [ "$PRETIX_CONFIG_FILE" == "tests/travis_mysql.cfg" ]; then
mysql -u root -e 'CREATE DATABASE pretix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;'
pip3 install -Ur src/requirements/mysql.txt
fi
if [ "$PRETIX_CONFIG_FILE" == "tests/travis_postgres.cfg" ]; then
psql -c 'create database travis_ci_test;' -U postgres
fi
if [ "$1" == "style" ]; then
XDG_CACHE_HOME=/cache pip3 install --no-use-pep517 -Ur src/requirements.txt -r src/requirements/dev.txt
cd src
flake8 .
isort -c -rc -df .
fi
if [ "$1" == "doctests" ]; then
XDG_CACHE_HOME=/cache pip3 install --no-use-pep517 -Ur doc/requirements.txt
cd doc
make doctest
fi
if [ "$1" == "doc-spelling" ]; then
XDG_CACHE_HOME=/cache pip3 install --no-use-pep517 -Ur doc/requirements.txt
cd doc
make spelling
if [ -s _build/spelling/output.txt ]; then
exit 1
fi
fi
if [ "$1" == "translation-spelling" ]; then
XDG_CACHE_HOME=/cache pip3 install --no-use-pep517 -Ur src/requirements/dev.txt
cd src
potypo
fi
if [ "$1" == "tests" ]; then
pip3 install -r src/requirements.txt --no-use-pep517 -Ur src/requirements/dev.txt
cd src
python manage.py check
make all compress
py.test --reruns 5 -n 3 tests
fi
if [ "$1" == "tests-cov" ]; then
pip3 install -r src/requirements.txt --no-use-pep517 -Ur src/requirements/dev.txt
cd src
python manage.py check
make all compress
coverage run -m py.test --reruns 5 tests && codecov
fi
if [ "$1" == "plugins" ]; then
pip3 install -r src/requirements.txt --no-use-pep517 -Ur src/requirements/dev.txt
cd src
python setup.py develop
make all compress
pushd ~
git clone --depth 1 https://github.com/pretix/pretix-cartshare.git
cd pretix-cartshare
python setup.py develop
make
py.test --reruns 5 tests
popd
fi
-45
View File
@@ -1,45 +0,0 @@
language: python
dist: xenial
sudo: false
install:
- pip install -U pip wheel setuptools
script:
- bash .travis.sh $JOB
cache:
directories:
- $HOME/.cache/pip
services:
- mysql
- postgresql
matrix:
include:
- python: 3.7
env: JOB=tests PRETIX_CONFIG_FILE=tests/travis_sqlite.cfg
- python: 3.7
env: JOB=tests-cov PRETIX_CONFIG_FILE=tests/travis_postgres.cfg
- python: 3.7
env: JOB=style
- python: 3.7
env: JOB=tests PRETIX_CONFIG_FILE=tests/travis_mysql.cfg
- python: 3.7
env: JOB=tests PRETIX_CONFIG_FILE=tests/travis_postgres.cfg
- python: 3.5
env: JOB=tests PRETIX_CONFIG_FILE=tests/travis_postgres.cfg
- python: 3.7
env: JOB=doc-spelling
- python: 3.7
env: JOB=translation-spelling
addons:
postgresql: "9.4"
mariadb: '10.3'
apt:
packages:
- enchant
- myspell-de-de
- aspell-en
- sqlite3
sources:
- travis-ci/sqlite3
branches:
except:
- /^weblate-.*/
+8 -6
View File
@@ -1,4 +1,4 @@
FROM python:3.6
FROM python:3.8
RUN apt-get update && \
apt-get install -y --no-install-recommends \
@@ -29,8 +29,9 @@ RUN apt-get update && \
mkdir /etc/pretix && \
mkdir /data && \
useradd -ms /bin/bash -d /pretix -u 15371 pretixuser && \
echo 'pretixuser ALL=(ALL) NOPASSWD: /usr/bin/supervisord' >> /etc/sudoers && \
mkdir /static
echo 'pretixuser ALL=(ALL) NOPASSWD:SETENV: /usr/bin/supervisord' >> /etc/sudoers && \
mkdir /static && \
mkdir /etc/supervisord
ENV LC_ALL=C.UTF-8 \
DJANGO_SETTINGS_MODULE=production_settings
@@ -47,12 +48,13 @@ RUN pip3 install -U \
-r requirements.txt \
-r requirements/memcached.txt \
-r requirements/mysql.txt \
-r requirements/redis.txt \
gunicorn && \
gunicorn django-extensions ipython && \
rm -rf ~/.cache/pip
COPY deployment/docker/pretix.bash /usr/local/bin/pretix
COPY deployment/docker/supervisord.conf /etc/supervisord.conf
COPY deployment/docker/supervisord /etc/supervisord
COPY deployment/docker/supervisord.all.conf /etc/supervisord.all.conf
COPY deployment/docker/supervisord.web.conf /etc/supervisord.web.conf
COPY deployment/docker/nginx.conf /etc/nginx/nginx.conf
COPY deployment/docker/production_settings.py /pretix/src/production_settings.py
COPY src /pretix/src
+13 -11
View File
@@ -4,11 +4,10 @@ pretix
.. image:: https://img.shields.io/pypi/v/pretix.svg
:target: https://pypi.python.org/pypi/pretix
.. image:: https://readthedocs.org/projects/pretix/badge/?version=latest
.. image:: https://github.com/pretix/pretix/workflows/Documentation/badge.svg
:target: https://docs.pretix.eu/en/latest/
.. image:: https://travis-ci.org/pretix/pretix.svg?branch=master
:target: https://travis-ci.org/pretix/pretix
.. image:: https://github.com/pretix/pretix/workflows/Tests/badge.svg
.. image:: https://codecov.io/gh/pretix/pretix/branch/master/graph/badge.svg
:target: https://codecov.io/gh/pretix/pretix
@@ -20,9 +19,8 @@ Reinventing ticket presales, one ticket at a time.
Project status & release cycle
------------------------------
While there is always a lot to do and improve on, pretix by now has been in use for more than a dozen
conferences that sold over ten thousand tickets combined without major problems. We therefore think of
pretix as being stable and ready to use.
While there is always a lot to do and improve on, pretix by now has been in use for thousands of events
conferences that sold millions of tickets combined. We therefore think of pretix as being stable and ready to use.
If you want to use or extend pretix, we strongly recommend to follow our `blog`_. We will announce all
releases there. You can always find the latest stable version on PyPI or in the ``release/X.Y`` branch of
@@ -31,9 +29,13 @@ the sense that it does not break your data, but its APIs might change without p
To get started using pretix on your own server, look at the `installation guide`_ in our documentation.
This project is 100 percent free and open source software. If you are interested in commercial support,
hosting services or supporting this project financially, please go to `pretix.eu`_ or contact us at
support@pretix.eu.
Support
-------
This project is 100 percent free and open source software. You are welcome to ask questions in the GitHub
repository. Private support via email or phone is only offered to customers of our pretix Hosted or pretix
Enterprise offerings. If you are interested in commercial support, hosting services or supporting this project
financially, please go to `pretix.eu`_ or contact us at support@pretix.eu.
Contributing
------------
@@ -53,8 +55,8 @@ License
The code in this repository is published under the terms of the Apache License.
See the LICENSE file for the complete license text.
This project is maintained by Raphael Michel <mail@raphaelmichel.de>. See the
AUTHORS file for a list of all the awesome folks who contributed to this project.
This project is maintained by Raphael Michel. See the AUTHORS file for a list of all
the awesome folks who contributed to this project.
.. _installation guide: https://docs.pretix.eu/en/latest/admin/installation/index.html
.. _developer documentation: https://docs.pretix.eu/en/latest/development/index.html
+5 -2
View File
@@ -1,10 +1,13 @@
user www-data www-data;
worker_processes 1;
worker_processes auto;
pid /var/run/nginx.pid;
daemon off;
worker_rlimit_nofile 262144;
events {
worker_connections 4096;
worker_connections 16384;
multi_accept on;
use epoll;
}
http {
+15 -11
View File
@@ -3,7 +3,10 @@ cd /pretix/src
export DJANGO_SETTINGS_MODULE=production_settings
export DATA_DIR=/data/
export HOME=/pretix
export NUM_WORKERS=$((2 * $(nproc --all)))
AUTOMIGRATE=${AUTOMIGRATE:-yes}
NUM_WORKERS_DEFAULT=$((2 * $(nproc --all)))
export NUM_WORKERS=${NUM_WORKERS:-$NUM_WORKERS_DEFAULT}
if [ ! -d /data/logs ]; then
mkdir /data/logs;
@@ -16,10 +19,16 @@ if [ "$1" == "cron" ]; then
exec python3 -m pretix runperiodic
fi
python3 -m pretix migrate --noinput
if [ "$AUTOMIGRATE" != "skip" ]; then
python3 -m pretix migrate --noinput
fi
if [ "$1" == "all" ]; then
exec sudo /usr/bin/supervisord -n -c /etc/supervisord.conf
exec sudo -E /usr/bin/supervisord -n -c /etc/supervisord.all.conf
fi
if [ "$1" == "web" ]; then
exec sudo -E /usr/bin/supervisord -n -c /etc/supervisord.web.conf
fi
if [ "$1" == "webworker" ]; then
@@ -33,17 +42,12 @@ if [ "$1" == "webworker" ]; then
fi
if [ "$1" == "taskworker" ]; then
export C_FORCE_ROOT=True
exec celery -A pretix.celery_app worker -l info
fi
if [ "$1" == "shell" ]; then
exec python3 -m pretix shell
shift
exec celery -A pretix.celery_app worker -l info "$@"
fi
if [ "$1" == "upgrade" ]; then
exec python3 -m pretix updatestyles
fi
echo "Specify argument: all|cron|webworker|taskworker|shell|upgrade"
exit 1
exec python3 -m pretix "$@"
+2
View File
@@ -0,0 +1,2 @@
[include]
files = /etc/supervisord/*.conf
-44
View File
@@ -1,44 +0,0 @@
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[program:pretixweb]
command=/usr/local/bin/pretix webworker
autostart=true
autorestart=true
priority=5
user=pretixuser
environment=HOME=/pretix
[program:pretixtask]
command=/usr/local/bin/pretix taskworker
autostart=true
autorestart=true
priority=5
user=pretixuser
[program:nginx]
command=/usr/sbin/nginx
autostart=true
autorestart=true
priority=10
stdout_events_enabled=true
stderr_events_enabled=true
[include]
files = /etc/supervisord-*.conf
+2
View File
@@ -0,0 +1,2 @@
[include]
files = /etc/supervisord/base.conf /etc/supervisord/nginx.conf /etc/supervisord/pretixweb.conf
+17
View File
@@ -0,0 +1,17 @@
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
logfile=/dev/stdout
logfile_maxbytes=0
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
+9
View File
@@ -0,0 +1,9 @@
[program:nginx]
command=/usr/sbin/nginx
autostart=true
autorestart=true
priority=10
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0
@@ -0,0 +1,10 @@
[program:pretixtask]
command=/usr/local/bin/pretix taskworker
autostart=true
autorestart=true
priority=5
user=pretixuser
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0
@@ -0,0 +1,11 @@
[program:pretixweb]
command=/usr/local/bin/pretix webworker
autostart=true
autorestart=true
priority=5
user=pretixuser
environment=HOME=/pretix
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
stderr_logfile=/dev/fd/2
stderr_logfile_maxbytes=0
+3
View File
@@ -6099,3 +6099,6 @@ img.screenshot, a.screenshot img {
.versionchanged p:last-child {
margin-bottom: 0;
}
.rst-content td > .line-block {
margin-left: 0 !important;
}
+28 -1
View File
@@ -23,6 +23,14 @@ The config file may contain the following sections (all settings are optional an
default values). We suggest that you start from the examples given in one of the
installation tutorials.
.. note::
The configuration file is the recommended way to configure pretix. However, you can
also set them through environment variables. In this case, the syntax is
``PRETIX_SECTION_CONFIG``. For example, to configure the setting ``password_reset``
from the ``[pretix]`` section, set ``PRETIX_PRETIX_PASSWORD_RESET=off`` in your
environment.
pretix settings
---------------
@@ -92,9 +100,19 @@ Example::
``trust_x_forwarded_proto``
Specifies whether the ``X-Forwarded-Proto`` header can be trusted. Only set to ``on`` if you have a reverse
proxy that actively removes and re-adds the header to make sure the correct client IP is the first value.
proxy that actively removes and re-adds the header to make sure the correct value is set.
Defaults to ``off``.
``csp_log``
Log violations of the Content Security Policy (CSP). Defaults to ``on``.
``csp_additional_header``
Specifies a CSP header that will be **merged** with pretix's default header. For example, if you set this
to ``script-src https://mycdn.com``, pretix will add ``https://mycdn.com`` as an **additional** allowed source
to all CSP headers. Empty by default.
``loglevel``
Set console and file log level (``DEBUG``, ``INFO``, ``WARNING``, ``ERROR`` or ``CRITICAL``). Defaults to ``INFO``.
Locale settings
---------------
@@ -337,6 +355,15 @@ application. If you want to use sentry, you need to set a DSN in the configurati
You will be given this value by your sentry installation.
Caching
-------
You can adjust some caching settings to control how much storage pretix uses::
[cache]
tickets=48 ; Number of hours tickets (PDF, passbook, …) are cached
Secret length
-------------
+1
View File
@@ -12,3 +12,4 @@ This documentation is for everyone who wants to install pretix on a server.
config
maintainance
scaling
indexes
+73
View File
@@ -0,0 +1,73 @@
Additional database indices
===========================
If you have a large pretix database, some features such as search for orders or events might turn pretty slow.
For PostgreSQL, we have compiled a list of additional database indexes that you can add to speed things up.
Just like any index, they in turn make write operations insignificantly slower and cause the database to use
more disk space.
The indexes aren't automatically created by pretix since Django does not allow us to do so only on PostgreSQL
(and they won't work on other databases). Also, they're really not necessary if you're not having tens of
thousands of records in your database.
However, this also means they won't automatically adapt if some of the referred fields change in future updates of pretix
and you might need to re-check this page and change them manually.
Here is the currently recommended set of commands::
CREATE EXTENSION pg_trgm;
CREATE INDEX CONCURRENTLY pretix_addidx_event_slug
ON pretixbase_event
USING gin (upper("slug") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_event_name
ON pretixbase_event
USING gin (upper("name") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_order_code
ON pretixbase_order
USING gin (upper("code") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_voucher_code
ON pretixbase_voucher
USING gin (upper("code") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_invoice_nu1
ON "pretixbase_invoice" (UPPER("invoice_no"));
CREATE INDEX CONCURRENTLY pretix_addidx_invoice_nu2
ON "pretixbase_invoice" (UPPER("full_invoice_no"));
CREATE INDEX CONCURRENTLY pretix_addidx_organizer_name
ON pretixbase_organizer
USING gin (upper("name") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_organizer_slug
ON pretixbase_organizer
USING gin (upper("slug") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_order_email
ON pretixbase_order
USING gin (upper("email") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_order_comment
ON pretixbase_order
USING gin (upper("comment") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_name
ON pretixbase_orderposition
USING gin (upper("attendee_name_cached") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_scret
ON pretixbase_orderposition
USING gin (upper("secret") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_orderpos_email
ON pretixbase_orderposition
USING gin (upper("attendee_email") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_ia_name
ON pretixbase_invoiceaddress
USING gin (upper("name_cached") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_ia_company
ON pretixbase_invoiceaddress
USING gin (upper("company") gin_trgm_ops);
Also, if you use our ``pretix-shipping`` plugin::
CREATE INDEX CONCURRENTLY pretix_addidx_sa_name
ON pretix_shipping_shippingaddress
USING gin (upper("name") gin_trgm_ops);
CREATE INDEX CONCURRENTLY pretix_addidx_sa_company
ON pretix_shipping_shippingaddress
USING gin (upper("company") gin_trgm_ops);
+24 -4
View File
@@ -26,7 +26,7 @@ installation guides):
* `Docker`_
* A SMTP server to send out mails, e.g. `Postfix`_ on your machine or some third-party server you have credentials for
* A HTTP reverse proxy, e.g. `nginx`_ or Apache to allow HTTPS connections
* A `PostgreSQL`_, `MySQL`_ 5.7+, or MariaDB 10.2.7+ database server
* A `PostgreSQL`_ 9.5+, `MySQL`_ 5.7+, or MariaDB 10.2.7+ database server
* A `redis`_ server
We also recommend that you use a firewall, although this is not a pretix-specific recommendation. If you're new to
@@ -135,7 +135,7 @@ Fill the configuration file ``/etc/pretix/pretix.cfg`` with the following conten
user=pretix
; Replace with the password you chose above
password=*********
; In most docker setups, 172.17.0.1 is the address of the docker host. Adjuts
; In most docker setups, 172.17.0.1 is the address of the docker host. Adjust
; this to wherever your database is running, e.g. the name of a linked container
; or of a mounted MySQL socket.
host=172.17.0.1
@@ -182,7 +182,7 @@ named ``/etc/systemd/system/pretix.service`` with the following content::
-v /var/pretix-data:/data \
-v /etc/pretix:/etc/pretix \
-v /var/run/redis:/var/run/redis \
--sysctl net.core.somaxconn=4096
--sysctl net.core.somaxconn=4096 \
pretix/standalone:stable all
ExecStop=/usr/bin/docker stop %n
@@ -284,13 +284,33 @@ Then, go to that directory and build the image::
You can now use that image ``mypretix`` instead of ``pretix/standalone`` in your service file (see above). Be sure
to re-build your custom image after you pulled ``pretix/standalone`` if you want to perform an update.
Scaling up
----------
If you need to scale to multiple machines, please first read our :ref:`scaling guide <scaling>`.
If you run the official docker container on multiple machines, it is recommended to set the environment
variable ``AUTOMIGRATE=skip`` on all containers and run ``docker exec -it pretix.service pretix migrate``
on one machine after each upgrade manually, otherwise multiple containers might try to upgrade the
database schema at the same time.
To run only the ``pretix-web`` component of pretix as well as a nginx server serving static files, you
can invoke the container with ``docker run … pretix/standalone:stable web`` (instead of ``all``). You
can adjust the number of ``gunicorn`` processes with the ``NUM_WORKERS`` environment variable (defaults to
two times the number of CPUs detected).
To run only ``pretix-worker``, you can run ``docker run … pretix/standalone:stable taskworker``. You can
also pass arguments to limit the worker to specific queues or to change the number of concurrent task
workers, e.g. ``docker run … taskworker -Q notifications --concurrency 32``.
.. _Docker: https://docs.docker.com/engine/installation/linux/debian/
.. _Postfix: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-16-04
.. _nginx: https://botleg.com/stories/https-with-lets-encrypt-and-nginx/
.. _Let's Encrypt: https://letsencrypt.org/
.. _pretix.eu: https://pretix.eu/
.. _MySQL: https://dev.mysql.com/doc/refman/5.7/en/linux-installation-apt-repo.html
.. _PostgreSQL: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-9-4-on-debian-8
.. _PostgreSQL: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04
.. _redis: https://blog.programster.org/debian-8-install-redis-server/
.. _ufw: https://en.wikipedia.org/wiki/Uncomplicated_Firewall
.. _redis website: https://redis.io/topics/security
+4 -4
View File
@@ -12,7 +12,7 @@ solution with many things readily set-up, look at :ref:`dockersmallscale`.
get it right. If you're not feeling comfortable managing a Linux server, check out our hosting and service
offers at `pretix.eu`_.
We tested this guide on the Linux distribution **Debian 8.0** but it should work very similar on other
We tested this guide on the Linux distribution **Debian 10.0** but it should work very similar on other
modern distributions, especially on all systemd-based ones.
Requirements
@@ -23,7 +23,7 @@ installation guides):
* A SMTP server to send out mails, e.g. `Postfix`_ on your machine or some third-party server you have credentials for
* A HTTP reverse proxy, e.g. `nginx`_ or Apache to allow HTTPS connections
* A `PostgreSQL`_, `MySQL`_ 5.7+, or MariaDB 10.2.7+ database server
* A `PostgreSQL`_ 9.5+, `MySQL`_ 5.7+, or MariaDB 10.2.7+ database server
* A `redis`_ server
We also recommend that you use a firewall, although this is not a pretix-specific recommendation. If you're new to
@@ -133,7 +133,7 @@ command if you're running MySQL::
(venv)$ pip3 install "pretix[postgres]" gunicorn
Note that you need Python 3.5 or newer. You can find out your Python version using ``python -V``.
Note that you need Python 3.6 or newer. You can find out your Python version using ``python -V``.
We also need to create a data directory::
@@ -308,7 +308,7 @@ example::
.. _Let's Encrypt: https://letsencrypt.org/
.. _pretix.eu: https://pretix.eu/
.. _MySQL: https://dev.mysql.com/doc/refman/5.7/en/linux-installation-apt-repo.html
.. _PostgreSQL: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-9-4-on-debian-8
.. _PostgreSQL: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04
.. _redis: https://blog.programster.org/debian-8-install-redis-server/
.. _ufw: https://en.wikipedia.org/wiki/Uncomplicated_Firewall
.. _strong encryption settings: https://mozilla.github.io/server-side-tls/ssl-config-generator/
+8 -1
View File
@@ -92,7 +92,14 @@ pretix_task_duration_seconds
pretix_model_instances
Gauge. Measures number of instances of a certain model within the database, labeled with
the ``model`` name.
the ``model`` name. Starting with pretix 3.11, these numbers might only be approximate for
most tables when running on PostgreSQL to mitigate performance impact.
pretix_celery_tasks_queued_count
The number of background tasks in the worker queue, labeled with ``queue``.
pretix_celery_tasks_queued_age_seconds
The age of the longest-waiting in the worker queue in seconds, labeled with ``queue``.
.. _metric types: https://prometheus.io/docs/concepts/metric_types/
.. _Prometheus: https://prometheus.io/
+64 -5
View File
@@ -49,11 +49,15 @@ information on your device as well as your API token:
"device_id": 5,
"unique_serial": "HHZ9LW9JWP390VFZ",
"api_token": "1kcsh572fonm3hawalrncam4l1gktr2rzx25a22l8g9hx108o9oi0rztpcvwnfnd",
"name": "Bar"
"name": "Bar",
"gate": {
"id": 3,
"name": "South entrance"
}
}
Please make sure that you store this ``api_token`` value. We also recommend storing your device ID, your assigned
``unique_serial``, and the ``organizer`` you have access to, but that's up to you.
``unique_serial``, and the ``organizer`` you have access to, but that's up to you. ``gate`` might be ``null``.
In case of an error, the response will look like this:
@@ -98,6 +102,8 @@ following endpoint:
"software_version": "4.1.0"
}
You will receive a response equivalent to the response of your initialization request.
Creating a new API key
----------------------
@@ -126,12 +132,65 @@ invalidate your API key. There is no way to reverse this operation.
This can also be done by the user through the web interface.
Permissions
-----------
Permissions & security profiles
-------------------------------
Device authentication is currently hardcoded to grant the following permissions:
* View event meta data and products etc.
* View and change orders
* View orders
* Change orders
* Manage gift cards
Devices cannot change events or products and cannot access vouchers.
Additionally, when creating a device through the user interface or API, a user can specify a "security profile" for
the device. These include an allow list of specific API calls that may be made by the device. pretix ships with security
policies for official pretix apps like pretixSCAN and pretixPOS.
Removing a device
-----------------
If you want implement a way to to deprovision a device in your software, you can call the ``revoke`` endpoint to
invalidate your API key. There is no way to reverse this operation.
.. sourcecode:: http
POST /api/v1/device/revoke HTTP/1.1
Host: pretix.eu
Authorization: Device 1kcsh572fonm3hawalrncam4l1gktr2rzx25a22l8g9hx108o9oi0rztpcvwnfnd
This can also be done by the user through the web interface.
Event selection
---------------
In most cases, your application should allow the user to select the event and check-in list they work with manually
from a list. However, in some cases it is required to automatically configure the device for the correct event, for
example in a kiosk-like situation where nobody is operating the device. In this case, the app can query the server
for a suggestion which event should be used. You can also submit the configuration that is currently in use via
query parameters:
.. sourcecode:: http
GET /api/v1/device/eventselection?current_event=democon&current_subevent=42&current_checkinlist=542 HTTP/1.1
Host: pretix.eu
Authorization: Device 1kcsh572fonm3hawalrncam4l1gktr2rzx25a22l8g9hx108o9oi0rztpcvwnfnd
You can get three response codes:
* ``304`` The server things you already selected a good event
* ``404`` The server has not found a suggestion for you
* ``200`` The server suggests a new event (body see below)
.. sourcecode:: http
HTTP/1.1 200 OK
Content-Type: application/json
{
"event": "democon",
"subevent": 23,
"checkinlist": 5
}
+47
View File
@@ -183,6 +183,9 @@ Relative date *either* String in ISO 8601 ``"2017-12-27"``,
constructed from a number of
days before the base point
and the base point.
File URL in responses, ``file:`` ``"https://…"``, ``"file:…"``
specifiers in requests
(see below).
===================== ============================ ===================================
Query parameters
@@ -227,4 +230,48 @@ We store idempotency keys for 24 hours, so you should never retry a request afte
All ``POST``, ``PUT``, ``PATCH``, or ``DELETE`` api calls support idempotency keys. Adding an idempotency key to a
``GET``, ``HEAD``, or ``OPTIONS`` request has no effect.
File upload
-----------
In some places, the API supports working with files, for example when setting the picture of a product. In this case,
you will first need to make a separate request to our file upload endpoint:
.. sourcecode:: http
POST /api/v1/upload HTTP/1.1
Host: pretix.eu
Authorization: Token e1l6gq2ye72thbwkacj7jbri7a7tvxe614ojv8ybureain92ocub46t5gab5966k
Content-Type: image/png
Content-Disposition: attachment; filename="logo.png"
Content-Length: 1234
<raw file content>
Note that the ``Content-Type`` and ``Content-Disposition`` headers are required. If the upload was successful, you will
receive a JSON response with the ID of the file:
.. sourcecode:: http
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "file:1cd99455-1ebd-4cda-b1a2-7a7d2a969ad1"
}
You can then use this file ID in the request you want to use it in. File IDs are currently valid for 24 hours and can only
be used using the same authorization method and user that was used to upload them.
.. sourcecode:: http
PATCH /api/v1/organizers/test/events/test/items/3/ HTTP/1.1
Host: pretix.eu
Content-Type: application/json
{
"picture": "file:1cd99455-1ebd-4cda-b1a2-7a7d2a969ad1"
}
.. _CSRF policies: https://docs.djangoproject.com/en/1.11/ref/csrf/#ajax
+1
View File
@@ -8,4 +8,5 @@ This part of the documentation contains how-to guides on some special use cases
.. toctree::
:maxdepth: 2
order_lifecycle
custom_checkout
+56
View File
@@ -0,0 +1,56 @@
Understanding the life cycle of orders
======================================
When integrating pretix with other systems, it is important that you understand how orders and related objects
such as order positions, fees, payments, refunds, and invoices work together, in order to react to their changes
properly and map them to processes in your system.
Order states
------------
Generally, an order can be in six states. For compatibility reasons, the ``status`` field only allows four values
and the two remaining states are modeled through the ``require_approval`` field and the number of positions within
an order. The states and their allowed changes are shown in the following graph:
.. image:: /images/order_states.png
Object types
------------
Order
One order represents one purchase. It's the main object you interact with and bundles all the other objects
together. Orders can change in many ways during their lifetime, but will never be deleted (unless ``testmode``
is set to ``true``).
Order position
An order position represents one product contained in the order. Orders can usually have multiple positions.
There might be a parent-child relation between order positions if one position is an add-on to another position.
Order positions can change in many ways during their lifetime, and can also be removed or added to an order.
Order fees
A fee represents a charge that is not related to a product. Examples include shipping fees, service fees, and
cancellation fees.
Order fees can change in many ways during their lifetime, and can also be removed or added to an order.
Order payment
An order payment represents one payment attempt with a specific payment method and amount. An order can have
multiple payments attached.
Order payments have their own state diagram. Apart from their state and their meta information (e.g. used
credit card, …) they usually don't change. They may be added at any time, but will never be deleted.
Order refund
An order payment represents one refund attempt with a specific payment method and amount. An order can have
multiple refunds attached.
Order refunds have their own state diagram. Apart from their state and their meta information (e.g. used
credit card, …) they usually don't change. They may be added at any time, but will never be deleted.
Invoice
An invoice represents a legal document stating the contents of an order. While the backend technically allows
to update an invoice in some situations, invoices are generally considered immutable. Once they are issued,
they no longer change. If the order changes substantially (e.g. prices change), an invoice is canceled through
creation of a new invoice with the opposite amount, plus the issuance of a new invoice.
Here's an example of how they all play together:
.. image:: /images/order_objects.png
-3
View File
@@ -7,9 +7,6 @@ This part of the documentation contains information about the REST-style API
exposed by pretix since version 1.5 that can be used by third-party programs
to interact with pretix and its data structures.
Currently, the API provides mostly read-only capabilities, but it will be extended
in functionality over time.
.. toctree::
:maxdepth: 2
+9 -10
View File
@@ -25,7 +25,7 @@ Obtaining an authorization grant
--------------------------------
To authorize a new user, link or redirect them to the ``authorize`` endpoint, passing your client ID as a query
parameter. Additionally, you can pass a scope (currently either ``read``, ``write``, or ``read write``)
parameter. Additionally, you can pass a scope (currently either ``read``, ``write``, ``read write`` or ``profile``)
and an URL the user should be redirected to after successful or failed authorization. You also need to pass the
``response_type`` parameter with a value of ``code``. Example::
@@ -47,11 +47,9 @@ You will need this ``code`` parameter to perform the next step.
On a failed registration, a query string like ``?error=access_denied`` will be appended to the redirection URL.
.. note:: In this step, the user is allowed to restrict your access to certain organizer accounts. If you try to
re-authenticate the user later, the user might be instantly redirected back to you if authorization is already
given and would therefore be unable to review their organizer restriction settings. You can append the
``approval_prompt=force`` query parameter if you want to make sure the user actively needs to confirm the
authorization.
.. note:: By default, the user is asked to give permission on every call to this URL. If you **only** request the
``profile`` scope, i.e. no access to organizer data, you can pass the ``approval_prompt=auto`` parameter
to skip user interaction on subsequent calls.
Getting an access token
-----------------------
@@ -193,10 +191,11 @@ If you need the user's meta data, you can fetch it here:
Content-Type: application/json
{
email: "admin@localhost",
fullname: "John Doe",
locale: "de",
timezone: "Europe/Berlin"
"email": "admin@localhost",
"fullname": "John Doe",
"locale": "de",
"is_staff": false,
"timezone": "Europe/Berlin"
}
:statuscode 200: no error
-4
View File
@@ -42,10 +42,6 @@ seat objects The assigned se
└ seat_guid string Identifier of the seat within the seating plan
===================================== ========================== =======================================================
.. versionchanged:: 1.17
This resource has been added.
.. versionchanged:: 3.0
This ``seat`` attribute has been added.
-8
View File
@@ -25,14 +25,6 @@ is_addon boolean If ``true``, it
defining add-ons for other products.
===================================== ========================== =======================================================
.. versionchanged:: 1.14
The operations POST, PATCH, PUT and DELETE have been added.
.. versionchanged:: 1.16
The field ``internal_name`` has been added.
Endpoints
---------
+30 -37
View File
@@ -30,31 +30,28 @@ position_count integer Number of ticke
checkin_count integer Number of check-ins performed on this list (read-only).
include_pending boolean If ``true``, the check-in list also contains tickets from orders in pending state.
auto_checkin_sales_channels list of strings All items on the check-in list will be automatically marked as checked-in when purchased through any of the listed sales channels.
allow_multiple_entries boolean If ``true``, subsequent scans of a ticket on this list should not show a warning but instead be stored as an additional check-in.
allow_entry_after_exit boolean If ``true``, subsequent scans of a ticket on this list are valid if the last scan of the ticket was an exit scan.
rules object Custom check-in logic. The contents of this field are currently not considered a stable API and modifications through the API are highly discouraged.
exit_all_at datetime Automatically check out (i.e. perform an exit scan) at this point in time. After this happened, this property will automatically be set exactly one day into the future. Note that this field is considered "internal configuration" and if you pull the list with ``If-Modified-Since``, the daily change in this field will not trigger a response.
===================================== ========================== =======================================================
.. versionchanged:: 1.10
.. versionchanged:: 3.9
This resource has been added.
The ``subevent`` attribute may now be ``null`` inside event series. The ``allow_multiple_entries``,
``allow_entry_after_exit``, and ``rules`` attributes have been added.
.. versionchanged:: 1.11
.. versionchanged:: 3.11
The ``positions`` endpoints have been added.
The ``subevent_match`` and ``exclude`` query parameters have been added.
.. versionchanged:: 1.13
.. versionchanged:: 3.12
The ``include_pending`` field has been added.
.. versionchanged:: 3.2
The ``auto_checkin_sales_channels`` field has been added.
The ``exit_all_at`` attribute has been added.
Endpoints
---------
.. versionchanged:: 1.15
The ``../status/`` detail endpoint has been added.
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/
Returns a list of all check-in lists within a given event.
@@ -89,6 +86,10 @@ Endpoints
"limit_products": [],
"include_pending": false,
"subevent": null,
"allow_multiple_entries": false,
"allow_entry_after_exit": true,
"exit_all_at": null,
"rules": {},
"auto_checkin_sales_channels": [
"pretixpos"
]
@@ -98,6 +99,8 @@ Endpoints
:query integer page: The page number in case of a multi-page result set, default is 1
:query integer subevent: Only return check-in lists of the sub-event with the given ID
:query integer subevent_match: Only return check-in lists that are valid for the sub-event with the given ID (i.e. also lists valid for all subevents)
:query string exclude: Exclude a field from the output, e.g. ``checkin_count``. Can be used as a performance optimization. Can be passed multiple times.
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:statuscode 200: no error
@@ -133,6 +136,10 @@ Endpoints
"limit_products": [],
"include_pending": false,
"subevent": null,
"allow_multiple_entries": false,
"allow_entry_after_exit": true,
"exit_all_at": null,
"rules": {},
"auto_checkin_sales_channels": [
"pretixpos"
]
@@ -168,6 +175,7 @@ Endpoints
{
"checkin_count": 17,
"position_count": 42,
"inside_count": 12,
"event": {
"name": "Demo Conference"
},
@@ -229,6 +237,8 @@ Endpoints
"all_products": false,
"limit_products": [1, 2],
"subevent": null,
"allow_multiple_entries": false,
"allow_entry_after_exit": true,
"auto_checkin_sales_channels": [
"pretixpos"
]
@@ -251,6 +261,8 @@ Endpoints
"limit_products": [1, 2],
"include_pending": false,
"subevent": null,
"allow_multiple_entries": false,
"allow_entry_after_exit": true,
"auto_checkin_sales_channels": [
"pretixpos"
]
@@ -303,6 +315,8 @@ Endpoints
"limit_products": [1, 2],
"include_pending": false,
"subevent": null,
"allow_multiple_entries": false,
"allow_entry_after_exit": true,
"auto_checkin_sales_channels": [
"pretixpos"
]
@@ -346,29 +360,6 @@ Endpoints
Order position endpoints
------------------------
.. versionchanged:: 1.15
The order positions endpoint has been extended by the filter queries ``item__in``, ``variation__in``,
``order__status__in``, ``subevent__in``, ``addon_to__in``, and ``search``. The search for attendee names and order
codes is now case-insensitive.
The ``.../redeem/`` endpoint has been added.
.. versionchanged:: 2.0
The order positions endpoint has been extended by the filter queries ``voucher`` and ``voucher__code``.
.. versionchanged:: 2.7
The resource now contains the new attributes ``require_attention`` and ``order__status`` and accepts the new
``ignore_status`` filter. The ``attendee_name`` field is now "smart" (see below) and the redemption endpoint
returns ``400`` instead of ``404`` on tickets which are known but not paid.
.. versionchanged:: 3.2
The ``checkins`` dict now also contains a ``auto_checked_in`` value to indicate if the check-in has been performed
automatically by the system.
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/(list)/positions/
Returns a list of all order positions within a given event. The result is the same as
@@ -582,6 +573,7 @@ Order position endpoints
:<json datetime datetime: Specifies the datetime of the check-in. If not supplied, the current time will be used.
:<json boolean force: Specifies that the check-in should succeed regardless of previous check-ins or required
questions that have not been filled. Defaults to ``false``.
:<json string type: Send ``"exit"`` for an exit and ``"entry"`` (default) for an entry.
:<json boolean ignore_unpaid: Specifies that the check-in should succeed even if the order is in pending state.
Defaults to ``false`` and only works when ``include_pending`` is set on the check-in
list.
@@ -696,6 +688,7 @@ Order position endpoints
``canceled_supported`` to ``true``, otherwise these orders return ``unpaid``.
* ``already_redeemed`` - Ticket already has been redeemed
* ``product`` - Tickets with this product may not be scanned at this device
* ``rules`` - Check-in prevented by a user-defined rule
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
+224
View File
@@ -0,0 +1,224 @@
.. spelling:: fullname
.. _`rest-devices`:
Devices
=======
See also :ref:`rest-deviceauth`.
Device resource
----------------
The device resource contains the following public fields:
.. rst-class:: rest-resource-table
===================================== ========================== =======================================================
Field Type Description
===================================== ========================== =======================================================
device_id integer Internal ID of the device within this organizer
unique_serial string Unique identifier of this device
name string Device name
all_events boolean Whether this device has access to all events
limit_events list List of event slugs this device has access to
hardware_brand string Device hardware manufacturer (read-only)
hardware_model string Device hardware model (read-only)
software_brand string Device software product (read-only)
software_version string Device software version (read-only)
created datetime Creation time
initialized datetime Time of initialization (or ``null``)
initialization_token string Token for initialization
revoked boolean Whether this device no longer has access
security_profile string The name of a supported security profile restricting API access
===================================== ========================== =======================================================
Device endpoints
----------------
.. http:get:: /api/v1/organizers/(organizer)/devices/
Returns a list of all devices within a given organizer.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/devices/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"device_id": 1,
"unique_serial": "UOS3GNZ27O39V3QS",
"initialization_token": "frkso3m2w58zuw70",
"all_events": false,
"limit_events": [
"museum"
],
"revoked": false,
"name": "Scanner",
"created": "2020-09-18T14:17:40.971519Z",
"initialized": "2020-09-18T14:17:44.190021Z",
"security_profile": "full",
"hardware_brand": "Zebra",
"hardware_model": "TC25",
"software_brand": "pretixSCAN",
"software_version": "1.5.1"
}
]
}
:query integer page: The page number in case of a multi-page result set, default is 1
:param organizer: The ``slug`` field of the organizer to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to view this resource.
.. http:get:: /api/v1/organizers/(organizer)/devices/(device_id)/
Returns information on one device, identified by its ID.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/devices/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"device_id": 1,
"unique_serial": "UOS3GNZ27O39V3QS",
"initialization_token": "frkso3m2w58zuw70",
"all_events": false,
"limit_events": [
"museum"
],
"revoked": false,
"name": "Scanner",
"created": "2020-09-18T14:17:40.971519Z",
"initialized": "2020-09-18T14:17:44.190021Z",
"security_profile": "full",
"hardware_brand": "Zebra",
"hardware_model": "TC25",
"software_brand": "pretixSCAN",
"software_version": "1.5.1"
}
:param organizer: The ``slug`` field of the organizer to fetch
:param device_id: The ``device_id`` field of the device to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to view this resource.
.. http:post:: /api/v1/organizers/(organizer)/devices/
Creates a new device
**Example request**:
.. sourcecode:: http
POST /api/v1/organizers/bigevents/devices/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
{
"name": "Scanner",
"all_events": true,
"limit_events": [],
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 201 Created
Vary: Accept
Content-Type: application/json
{
"device_id": 1,
"unique_serial": "UOS3GNZ27O39V3QS",
"initialization_token": "frkso3m2w58zuw70",
"all_events": true,
"limit_events": [],
"revoked": false,
"name": "Scanner",
"created": "2020-09-18T14:17:40.971519Z",
"security_profile": "full",
"initialized": null
"hardware_brand": null,
"hardware_model": null,
"software_brand": null,
"software_version": null
}
:param organizer: The ``slug`` field of the organizer to create a device for
:statuscode 201: no error
:statuscode 400: The device could not be created due to invalid submitted data.
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to create this resource.
.. http:patch:: /api/v1/organizers/(organizer)/devices/(device_id)/
Update a device.
**Example request**:
.. sourcecode:: http
PATCH /api/v1/organizers/bigevents/devices/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
Content-Length: 94
{
"name": "Foo"
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"id": 1,
"name": "Foo",
...
}
:param organizer: The ``slug`` field of the organizer to modify
:param device_id: The ``device_id`` field of the device to modify
:statuscode 200: no error
:statuscode 400: The device could not be modified due to invalid submitted data
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to change this resource.
+63 -33
View File
@@ -44,34 +44,14 @@ seat_category_mapping object An object mappi
(strings) to items in the event (integers or ``null``).
timezone string Event timezone name
item_meta_properties object Item-specific meta data parameters and default values.
valid_keys object Cryptographic keys for non-default signature schemes.
For performance reason, value is omitted in lists and
only contained in detail views. Value can be cached.
sales_channels list A list of sales channels this event is available for
sale on.
===================================== ========================== =======================================================
.. versionchanged:: 1.7
The ``meta_data`` field has been added.
.. versionchanged:: 1.15
The ``plugins`` field has been added.
The operations POST, PATCH, PUT and DELETE have been added.
.. versionchanged:: 2.1
Filters have been added to the list of events.
.. versionchanged:: 2.5
The ``testmode`` attribute has been added.
.. versionchanged:: 2.8
When cloning events, the ``testmode`` attribute will now be cloned, too.
.. versionchanged:: 3.0
The attributes ``seating_plan`` and ``seat_category_mapping`` have been added.
.. versionchanged:: 3.3
The attributes ``geo_lat`` and ``geo_lon`` have been added.
@@ -84,6 +64,15 @@ item_meta_properties object Item-specific m
The attribute ``item_meta_properties`` has been added.
.. versionchanged:: 3.12
The attribute ``valid_keys`` has been added.
.. versionchanged:: 3.14
The attribute ``sales_channels`` has been added.
Endpoints
---------
@@ -140,10 +129,15 @@ Endpoints
"timezone": "Europe/Berlin",
"item_meta_properties": {},
"plugins": [
"pretix.plugins.banktransfer"
"pretix.plugins.stripe"
"pretix.plugins.paypal"
"pretix.plugins.banktransfer",
"pretix.plugins.stripe",
"pretix.plugins.paypal",
"pretix.plugins.ticketoutputpdf"
],
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
]
@@ -163,6 +157,7 @@ Endpoints
only contain the events matching the set criteria. Providing ``?attr[Format]=Seminar`` would return only those
events having set their ``Format`` meta data to ``Seminar``, ``?attr[Format]=`` only those, that have no value
set. Please note that this filter will respect default values set on organizer level.
:query sales_channel: If set to a sales channel identifier, only events allowed to be sold on the specified sales channel are returned.
:param organizer: The ``slug`` field of a valid organizer
:statuscode 200: no error
:statuscode 401: Authentication failure
@@ -212,10 +207,20 @@ Endpoints
"timezone": "Europe/Berlin",
"item_meta_properties": {},
"plugins": [
"pretix.plugins.banktransfer"
"pretix.plugins.stripe"
"pretix.plugins.paypal"
"pretix.plugins.banktransfer",
"pretix.plugins.stripe",
"pretix.plugins.paypal",
"pretix.plugins.ticketoutputpdf"
],
"valid_keys": {
"pretix_sig1": [
"LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUNvd0JRWURLMlZ3QXlFQTdBRDcvdkZBMzNFc1k0ejJQSHI3aVpQc1o4bjVkaDBhalA4Z3l6Tm1tSXM9Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQo="
]
},
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
@@ -267,6 +272,11 @@ Endpoints
"plugins": [
"pretix.plugins.stripe",
"pretix.plugins.paypal"
],
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
@@ -302,6 +312,11 @@ Endpoints
"plugins": [
"pretix.plugins.stripe",
"pretix.plugins.paypal"
],
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
@@ -357,6 +372,11 @@ Endpoints
"plugins": [
"pretix.plugins.stripe",
"pretix.plugins.paypal"
],
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
@@ -392,6 +412,11 @@ Endpoints
"plugins": [
"pretix.plugins.stripe",
"pretix.plugins.paypal"
],
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
@@ -461,6 +486,11 @@ Endpoints
"pretix.plugins.stripe",
"pretix.plugins.paypal",
"pretix.plugins.pretixdroid"
],
"sales_channels": [
"web",
"pretixpos",
"resellers"
]
}
@@ -472,7 +502,7 @@ Endpoints
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to create this resource.
.. http:delete:: /api/v1/organizers/(organizer)/events/(event)/items/(id)/
.. http:delete:: /api/v1/organizers/(organizer)/events/(event)/
Delete an event. Note that events with orders cannot be deleted to ensure data integrity.
@@ -526,7 +556,7 @@ information about the properties.
Get current values of event settings.
Permission required: "Can change event settings"
Permission required: "Can change event settings" (Exception: with device auth, *some* settings can always be *read*.)
**Example request**:
+215
View File
@@ -0,0 +1,215 @@
.. spelling:: checkin
Data exporters
==============
pretix and it's plugins include a number of data exporters that allow you to bulk download various data from pretix in
different formats. This page shows you how to use these exporters through the API.
.. versionchanged:: 3.13
This feature has been added to the API.
.. warning::
While we consider the methods listed on this page to be a stable API, the availability and specific input field
requirements of individual exporters is **not considered a stable API**. Specific exporters and their input parameters
may change at any time without warning.
Listing available exporters
---------------------------
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/exporters/
Returns a list of all exporters available for a given event. You will receive a list of export methods as well as their
supported input fields. Note that the exact type and validation requirements of the input fields are not given in the
response, and you might need to look into the pretix web interface to figure out the exact input required.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/events/sampleconf/exporters/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"identifier": "orderlist",
"verbose_name": "Order data",
"input_parameters": [
{
"name": "_format",
"required": true,
"choices": [
"xlsx",
"orders:default",
"orders:excel",
"orders:semicolon",
"positions:default",
"positions:excel",
"positions:semicolon",
"fees:default",
"fees:excel",
"fees:semicolon"
]
},
{
"name": "paid_only",
"required": false
}
]
}
]
}
:query integer page: The page number in case of a multi-page result set, default is 1
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
.. http:get:: /api/v1/organizers/(organizer)/exporters/
Returns a list of all cross-event exporters available for a given organizer. You will receive a list of export methods as well as their
supported input fields. Note that the exact type and validation requirements of the input fields are not given in the
response, and you might need to look into the pretix web interface to figure out the exact input required.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/exporters/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"identifier": "orderlist",
"verbose_name": "Order data",
"input_parameters": [
{
"name": "events",
"required": true
},
{
"name": "_format",
"required": true,
"choices": [
"xlsx",
"orders:default",
"orders:excel",
"orders:semicolon",
"positions:default",
"positions:excel",
"positions:semicolon",
"fees:default",
"fees:excel",
"fees:semicolon"
]
},
{
"name": "paid_only",
"required": false
}
]
}
]
}
:query integer page: The page number in case of a multi-page result set, default is 1
:param organizer: The ``slug`` field of the organizer to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
Running an export
-----------------
Since exports often include large data sets, they might take longer than the duration of an HTTP request. Therefore,
creating an export is a two-step process. First you need to start an export task with one of the following to API
endpoints:
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/exporters/(identifier)/run/
Starts an export task. If your input parameters validate correctly, a ``202 Accepted`` status code is returned.
The body points you to the download URL of the result.
**Example request**:
.. sourcecode:: http
POST /api/v1/organizers/bigevents/events/sampleconf/exporters/orderlist/run/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
{
"_format": "xlsx"
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"download": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderlist/download/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/"
}
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:param identifier: The ``identifier`` field of the exporter to run
:statuscode 202: no error
:statuscode 400: Invalid input options
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
.. http:post:: /api/v1/organizers/(organizer)/exporters/(identifier)/run/
The endpoint for organizer-level exports works just like event-level exports (see above).
Downloading the result
----------------------
When starting an export, you receive a ``url`` for downloading the result. Running a ``GET`` request on that result will
yield one of the following status codes:
* ``200 OK`` The export succeeded. The body will be your resulting file. Might be large!
* ``409 Conflict`` Your export is still running. The body will be JSON with the structure ``{"status": "running", "percentage": 40}``. ``percentage`` can be ``null`` if it is not known and ``status`` can be ``waiting`` before the task is actually being processed. Please retry, but wait at least one second before you do.
* ``410 Gone`` Running the export has failed permanently. The body will be JSON with the structure ``{"status": "failed", "message": "Error message"}``
* ``404 Not Found`` The export does not exist / is expired.
.. warning::
Running exports puts a lot of stress on the system, we kindly ask you not to run more than two exports at the same time.
+77 -3
View File
@@ -18,11 +18,32 @@ secret string Gift card code
value money (string) Current gift card value
currency string Currency of the value (can not be modified later)
testmode boolean Whether this is a test gift card
expires datetime Expiry date (or ``null``)
conditions string Special terms and conditions for this card (or ``null``)
===================================== ========================== =======================================================
The gift card transaction resource contains the following public fields:
.. rst-class:: rest-resource-table
===================================== ========================== =======================================================
Field Type Description
===================================== ========================== =======================================================
id integer Internal ID of the gift card transaction
datetime datetime Creation date of the transaction
value money (string) Transaction amount
event string Event slug, if the gift card was used in the web shop (or ``null``)
order string Order code, if the gift card was used in the web shop (or ``null``)
text string Custom text of the transaction (or ``null``)
===================================== ========================== =======================================================
Endpoints
---------
.. versionadded:: 3.14
The transaction list endpoint was added.
.. http:get:: /api/v1/organizers/(organizer)/giftcards/
Returns a list of all gift cards issued by a given organizer.
@@ -53,6 +74,8 @@ Endpoints
"secret": "HLBYVELFRC77NCQY",
"currency": "EUR",
"testmode": false,
"expires": null,
"conditions": null,
"value": "13.37"
}
]
@@ -92,6 +115,8 @@ Endpoints
"secret": "HLBYVELFRC77NCQY",
"currency": "EUR",
"testmode": false,
"expires": null,
"conditions": null,
"value": "13.37"
}
@@ -134,6 +159,8 @@ Endpoints
"secret": "HLBYVELFRC77NCQY",
"testmode": false,
"currency": "EUR",
"expires": null,
"conditions": null,
"value": "13.37"
}
@@ -180,6 +207,8 @@ Endpoints
"secret": "HLBYVELFRC77NCQY",
"testmode": false,
"currency": "EUR",
"expires": null,
"conditions": null,
"value": "14.00"
}
@@ -199,14 +228,15 @@ Endpoints
.. sourcecode:: http
PATCH /api/v1/organizers/bigevents/giftcards/1/transact/ HTTP/1.1
POST /api/v1/organizers/bigevents/giftcards/1/transact/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
Content-Length: 94
Content-Length: 79
{
"value": "2.00"
"value": "2.00",
"text": "Optional value explaining the transaction"
}
**Example response**:
@@ -222,6 +252,8 @@ Endpoints
"secret": "HLBYVELFRC77NCQY",
"currency": "EUR",
"testmode": false,
"expires": null,
"conditions": null,
"value": "15.37"
}
@@ -237,3 +269,45 @@ Endpoints
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to change this resource.
:statuscode 409: There is not sufficient credit on the gift card.
.. http:get:: /api/v1/organizers/(organizer)/giftcards/(id)/transactions/
List all transactions of a gift card.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/giftcards/1/transactions/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 82,
"datetime": "2020-06-22T15:41:42.800534Z",
"value": "50.00",
"event": "democon",
"order": "FXQYW",
"text": null
}
]
}
:param organizer: The ``slug`` field of the organizer to view
:param id: The ``id`` field of the gift card to view
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to view this resource.
+2
View File
@@ -24,7 +24,9 @@ Resources and endpoints
giftcards
carts
teams
devices
webhooks
seatingplans
exporters
billing_invoices
billing_var
-18
View File
@@ -46,24 +46,6 @@ internal_reference string Customer's refe
===================================== ========================== =======================================================
.. versionchanged:: 1.6
The attribute ``invoice_no`` has been dropped in favor of ``number`` which includes the number including the prefix,
since the prefix can now vary. Also, invoices now need to be identified by their ``number`` instead of the raw
number.
.. versionchanged:: 1.7
The attributes ``lines.tax_name``, ``foreign_currency_display``, ``foreign_currency_rate``, and
``foreign_currency_rate_date`` have been added.
.. versionchanged:: 1.9
The attribute ``internal_reference`` has been added.
.. versionchanged:: 3.4
The attribute ``lines.number`` has been added.
+7 -4
View File
@@ -24,13 +24,10 @@ addon_category integer Internal ID of
min_count integer The minimal number of add-ons that need to be chosen.
max_count integer The maximal number of add-ons that can be chosen.
position integer An integer, used for sorting
multi_allowed boolean Adding the same item multiple times is allowed
price_included boolean Adding this add-on to the item is free
===================================== ========================== =======================================================
.. versionchanged:: 1.12
This resource has been added.
Endpoints
---------
@@ -65,6 +62,7 @@ Endpoints
"min_count": 0,
"max_count": 10,
"position": 0,
"multi_allowed": false,
"price_included": true
},
{
@@ -73,6 +71,7 @@ Endpoints
"min_count": 0,
"max_count": 10,
"position": 1,
"multi_allowed": false,
"price_included": true
}
]
@@ -112,6 +111,7 @@ Endpoints
"min_count": 0,
"max_count": 10,
"position": 1,
"multi_allowed": false,
"price_included": true
}
@@ -141,6 +141,7 @@ Endpoints
"min_count": 0,
"max_count": 10,
"position": 1,
"multi_allowed": false,
"price_included": true
}
@@ -158,6 +159,7 @@ Endpoints
"min_count": 0,
"max_count": 10,
"position": 1,
"multi_allowed": false,
"price_included": true
}
@@ -206,6 +208,7 @@ Endpoints
"min_count": 0,
"max_count": 10,
"position": 1,
"multi_allowed": false,
"price_included": true
}
-4
View File
@@ -30,10 +30,6 @@ designated_price money (string) Designated pric
taxation. This is not added to the price.
===================================== ========================== =======================================================
.. versionchanged:: 2.6
This resource has been added.
Endpoints
---------
-8
View File
@@ -26,14 +26,6 @@ description multi-lingual string A public descri
position integer An integer, used for sorting
===================================== ========================== =======================================================
.. versionchanged:: 2.7
The attribute ``original_price`` has been added.
.. versionchanged:: 1.12
This resource has been added.
Endpoints
---------
+7 -40
View File
@@ -36,8 +36,8 @@ admission boolean ``true`` for it
(such as primary tickets) and ``false`` for others
(such as add-ons or merchandise).
position integer An integer, used for sorting
picture string A product picture to be displayed in the shop
(read-only, can be ``null``).
picture file A product picture to be displayed in the shop
(can be ``null``).
sales_channels list of strings Sales channels this product is available on, such as
``"web"`` or ``"resellers"``. Defaults to ``["web"]``.
available_from datetime The first date time at which this item can be bought
@@ -104,6 +104,7 @@ addons list of objects Definition of a
├ min_count integer The minimal number of add-ons that need to be chosen.
├ max_count integer The maximal number of add-ons that can be chosen.
├ position integer An integer, used for sorting
├ multi_allowed boolean Adding the same item multiple times is allowed
└ price_included boolean Adding this add-on to the item is free
bundles list of objects Definition of bundles that are included in this item.
Only writable during creation,
@@ -117,48 +118,14 @@ bundles list of objects Definition of b
meta_data object Values set for event-specific meta data parameters.
===================================== ========================== =======================================================
.. versionchanged:: 2.7
The attribute ``original_price`` has been added for ``variations``.
.. versionchanged:: 1.7
The attribute ``tax_rule`` has been added. ``tax_rate`` is kept for compatibility. The attribute
``checkin_attention`` has been added.
.. versionchanged:: 1.12
The write operations ``POST``, ``PATCH``, ``PUT``, and ``DELETE`` have been added.
The attribute ``price_included`` has been added to ``addons``.
.. versionchanged:: 1.16
The ``internal_name`` and ``original_price`` fields have been added.
.. versionchanged:: 2.0
The field ``require_approval`` has been added.
.. versionchanged:: 2.3
The ``sales_channels`` attribute has been added.
.. versionchanged:: 2.4
The ``generate_tickets`` attribute has been added.
.. versionchanged:: 2.6
The ``bundles`` and ``require_bundling`` attributes have been added.
.. versionchanged:: 3.0
The ``show_quota_left``, ``allow_waitinglist``, and ``hidden_if_available`` attributes have been added.
.. versionchanged:: 3.7
The attribute ``meta_data`` has been added.
.. versionchanged:: 3.10
The attribute ``multi_allowed`` has been added to ``addons``.
Notes
-----
+257 -128
View File
@@ -30,6 +30,7 @@ testmode boolean If ``true``, th
test mode. Only orders in test mode can be deleted.
secret string The secret contained in the link sent to the customer
email string The customer email address
phone string The customer phone number
locale string The locale used for communication with this customer
sales_channel string Channel this sale was created through, such as
``"web"``.
@@ -93,64 +94,30 @@ last_modified datetime Last modificati
===================================== ========================== =======================================================
.. versionchanged:: 1.6
The ``invoice_address.country`` attribute contains a two-letter country code for all new orders. For old orders,
a custom text might still be returned.
.. versionchanged:: 1.7
The attributes ``invoice_address.vat_id_validated`` and ``invoice_address.is_business`` have been added.
The attributes ``order.payment_fee``, ``order.payment_fee_tax_rate`` and ``order.payment_fee_tax_value`` have been
deprecated in favor of the new ``fees`` attribute but will still be served and removed in 1.9.
.. versionchanged:: 1.9
First write operations (``…/mark_paid/``, ``…/mark_pending/``, ``…/mark_canceled/``, ``…/mark_expired/``) have been added.
The attribute ``invoice_address.internal_reference`` has been added.
.. versionchanged:: 1.13
The field ``checkin_attention`` has been added.
.. versionchanged:: 1.15
The attributes ``order.payment_fee``, ``order.payment_fee_tax_rate``, ``order.payment_fee_tax_value`` and
``order.payment_fee_tax_rule`` have finally been removed.
.. versionchanged:: 1.16
The attributes ``order.last_modified`` as well as the corresponding filters to the resource have been added.
An endpoint for order creation as well as ``…/mark_refunded/`` has been added.
.. versionchanged:: 2.0
The ``order.payment_date`` and ``order.payment_provider`` attributes have been deprecated in favor of the new
nested ``payments`` and ``refunds`` resources, but will still be served and removed in 2.2. The ``require_approval``
attribute has been added, as have been the ``…/approve/`` and ``…/deny/`` endpoints.
.. versionchanged:: 2.3
The ``sales_channel`` attribute has been added.
.. versionchanged:: 2.4
``order.status`` can no longer be ``r``, ``…/mark_canceled/`` now accepts a ``cancellation_fee`` parameter and
``…/mark_refunded/`` has been deprecated.
.. versionchanged:: 2.5
The ``testmode`` attribute has been added and ``DELETE`` has been implemented for orders.
.. versionchanged:: 3.1
The ``invoice_address.state`` and ``url`` attributes have been added. When creating orders through the API,
vouchers are now supported and many fields are now optional.
.. versionchanged:: 3.5
The ``order.fees.canceled`` attribute has been added.
.. versionchanged:: 3.8
The ``reactivate`` operation has been added.
.. versionchanged:: 3.10
The ``search`` query parameter has been added.
.. versionchanged:: 3.11
The ``exclude`` and ``subevent_after`` query parameter has been added.
.. versionchanged:: 3.13
The ``subevent_before`` query parameter has been added.
.. versionchanged:: 3.14
The ``phone`` attribute has been added.
.. _order-position-resource:
@@ -173,6 +140,13 @@ price money (string) Price of this p
attendee_name string Specified attendee name for this position (or ``null``)
attendee_name_parts object of strings Decomposition of attendee name (i.e. given name, family name)
attendee_email string Specified attendee email address for this position (or ``null``)
company string Attendee company name (or ``null``)
street string Attendee street (or ``null``)
zipcode string Attendee ZIP code (or ``null``)
city string Attendee city (or ``null``)
country string Attendee country code (or ``null``)
state string Attendee state (ISO 3166-2 code). Only supported in
AU, BR, CA, CN, MY, MX, and US, otherwise ``null``.
voucher integer Internal ID of the voucher used for this position (or ``null``)
tax_rate decimal (string) VAT rate applied for this position
tax_value money (string) VAT included in this position
@@ -182,15 +156,17 @@ addon_to integer Internal ID of
subevent integer ID of the date inside an event series this position belongs to (or ``null``).
pseudonymization_id string A random ID, e.g. for use in lead scanning apps
checkins list of objects List of check-ins with this ticket
├ id integer Internal ID of the check-in event
├ list integer Internal ID of the check-in list
├ datetime datetime Time of check-in
├ type string Type of scan (defaults to ``entry``)
└ auto_checked_in boolean Indicates if this check-in been performed automatically by the system
downloads list of objects List of ticket download options
├ output string Ticket output provider (e.g. ``pdf``, ``passbook``)
└ url string Download URL
answers list of objects Answers to user-defined questions
├ question integer Internal ID of the answered question
├ answer string Text representation of the answer
├ answer string Text representation of the answer (URL if answer is a file)
├ question_identifier string The question's ``identifier`` field
├ options list of integers Internal IDs of selected option(s)s (only for choice types)
└ option_identifiers list of strings The ``identifier`` fields of the selected option(s)s
@@ -203,30 +179,6 @@ pdf_data object Data object req
``pdf_data=true`` query parameter to your request.
===================================== ========================== =======================================================
.. versionchanged:: 1.7
The attribute ``tax_rule`` has been added.
.. versionchanged:: 1.11
The attribute ``checkins.list`` has been added.
.. versionchanged:: 1.14
The attributes ``answers.question_identifier`` and ``answers.option_identifiers`` have been added.
.. versionchanged:: 1.16
The attributes ``pseudonymization_id`` and ``pdf_data`` have been added.
.. versionchanged:: 3.0
The attribute ``seat`` has been added.
.. versionchanged:: 3.2
The value ``auto_checked_in`` has been added to the ``checkins``-attribute.
.. versionchanged:: 3.3
The ``url`` of a ticket ``download`` can now also return a ``text/uri-list`` instead of a file. See
@@ -236,6 +188,18 @@ pdf_data object Data object req
The attribute ``canceled`` has been added.
.. versionchanged:: 3.8
The attributes ``company``, ``street``, ``zipcode``, ``city``, ``country``, and ``state`` have been added.
.. versionchanged:: 3.9
The ``checkin.type`` attribute has been added.
.. versionchanged:: 3.16
Answers to file questions are now returned as an URL.
.. _order-payment-resource:
Order payment resource
@@ -264,14 +228,6 @@ details object Payment-specifi
the object is empty.
===================================== ========================== =======================================================
.. versionchanged:: 2.0
This resource has been added.
.. versionchanged:: 3.1
The attributes ``payment_url`` and ``details`` have been added.
.. _order-refund-resource:
Order refund resource
@@ -287,21 +243,14 @@ state string Payment state,
source string How this refund has been created, one of ``buyer``, ``admin``, or ``external``
amount money (string) Payment amount
created datetime Date and time of creation of this payment
payment_date datetime Date and time of completion of this payment (or ``null``)
comment string Reason for refund (shown to the customer in some cases, can be ``null``).
execution_date datetime Date and time of completion of this refund (or ``null``)
provider string Identification string of the payment provider
===================================== ========================== =======================================================
.. versionchanged:: 2.0
This resource has been added.
List of all orders
------------------
.. versionchanged:: 1.15
Filtering for emails or order codes is now case-insensitive.
.. versionchanged:: 3.5
The ``include_canceled_positions`` and ``include_canceled_fees`` query parameters have been added.
@@ -339,6 +288,7 @@ List of all orders
"secret": "k24fiuwvu8kxz3y1",
"url": "https://test.pretix.eu/dummy/dummy/order/ABC12/k24fiuwvu8kxz3y1/",
"email": "tester@example.org",
"phone": "+491234567",
"locale": "en",
"sales_channel": "web",
"datetime": "2017-12-01T10:00:00Z",
@@ -380,6 +330,12 @@ List of all orders
"full_name": "Peter",
},
"attendee_email": null,
"company": "Sample company",
"street": "Test street 12",
"zipcode": "12345",
"city": "Testington",
"country": "DE",
"state": null,
"voucher": null,
"tax_rate": "0.00",
"tax_value": "0.00",
@@ -392,6 +348,7 @@ List of all orders
"checkins": [
{
"list": 44,
"type": "entry",
"datetime": "2017-12-25T12:45:23Z",
"auto_checked_in": false
}
@@ -441,6 +398,7 @@ List of all orders
``last_modified``, and ``status``. Default: ``datetime``
:query string code: Only return orders that match the given order code
:query string status: Only return orders in the given order status (see above)
:query string search: Only return orders matching a given search query
:query boolean testmode: Only return orders with ``testmode`` set to ``true`` or ``false``
:query boolean require_approval: If set to ``true`` or ``false``, only categories with this value for the field
``require_approval`` will be returned.
@@ -453,6 +411,9 @@ List of all orders
recommend using this in combination with ``testmode=false``, since test mode orders can vanish at any time and
you will not notice it using this method.
:query datetime created_since: Only return orders that have been created since the given date.
:query datetime subevent_after: Only return orders that contain a ticket for a subevent taking place after the given date. This is an exclusive after, and it considers the **end** of the subevent (or its start, if the end is not set).
:query datetime subevent_before: Only return orders that contain a ticket for a subevent taking place after the given date. This is an exclusive before, and it considers the **start** of the subevent.
:query string exclude: Exclude a field from the output, e.g. ``fees`` or ``positions.downloads``. Can be used as a performance optimization. Can be passed multiple times.
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:resheader X-Page-Generated: The server time at the beginning of the operation. If you're using this API to fetch
@@ -495,6 +456,7 @@ Fetching individual orders
"secret": "k24fiuwvu8kxz3y1",
"url": "https://test.pretix.eu/dummy/dummy/order/ABC12/k24fiuwvu8kxz3y1/",
"email": "tester@example.org",
"phone": "+491234567",
"locale": "en",
"sales_channel": "web",
"datetime": "2017-12-01T10:00:00Z",
@@ -536,6 +498,12 @@ Fetching individual orders
"full_name": "Peter",
},
"attendee_email": null,
"company": "Sample company",
"street": "Test street 12",
"zipcode": "12345",
"city": "Testington",
"country": "DE",
"state": null,
"voucher": null,
"tax_rate": "0.00",
"tax_rule": null,
@@ -548,6 +516,7 @@ Fetching individual orders
"checkins": [
{
"list": 44,
"type": "entry",
"datetime": "2017-12-25T12:45:23Z",
"auto_checked_in": false
}
@@ -654,6 +623,8 @@ Updating order fields
* ``email``
* ``phone``
* ``checkin_attention``
* ``locale``
@@ -816,9 +787,9 @@ Creating orders
* ``consume_carts`` (optional) A list of cart IDs. All cart positions with these IDs will be deleted if the
order creation is successful. Any quotas or seats that become free by this operation will be credited to your order
creation.
* ``email``
* ``email`` (optional)
* ``locale``
* ``sales_channel``
* ``sales_channel`` (optional)
* ``payment_provider`` (optional) The identifier of the payment provider set for this order. This needs to be an
existing payment provider. You should use ``"free"`` for free orders, and we strongly advise to use ``"manual"``
for all orders you create as paid. This field is optional when the order status is ``"n"`` or the order total is
@@ -851,15 +822,21 @@ Creating orders
* ``positionid`` (optional, see below)
* ``item``
* ``variation``
* ``variation`` (optional)
* ``price`` (optional, if set to ``null`` or missing the price will be computed from the given product)
* ``seat`` (The ``seat_guid`` attribute of a seat. Required when the specified ``item`` requires a seat, otherwise must be ``null``.)
* ``attendee_name`` **or** ``attendee_name_parts``
* ``attendee_name`` **or** ``attendee_name_parts`` (optional)
* ``voucher`` (optional, the ``code`` attribute of a valid voucher)
* ``attendee_email``
* ``attendee_email`` (optional)
* ``company`` (optional)
* ``street`` (optional)
* ``zipcode`` (optional)
* ``city`` (optional)
* ``country`` (optional)
* ``state`` (optional)
* ``secret`` (optional)
* ``addon_to`` (optional, see below)
* ``subevent``
* ``subevent`` (optional)
* ``answers``
* ``question``
@@ -883,8 +860,9 @@ Creating orders
during order generation and is not respected automatically when the order changes later.)
* ``force`` (optional). If set to ``true``, quotas will be ignored.
* ``send_mail`` (optional). If set to ``true``, the same emails will be sent as for a regular order. Defaults to
``false``.
* ``send_email`` (optional). If set to ``true``, the same emails will be sent as for a regular order, regardless of
whether these emails are enabled for certain sales channels. Defaults to
``false``. Used to be ``send_mail`` before pretix 3.14.
If you want to use add-on products, you need to set the ``positionid`` fields of all positions manually
to incrementing integers starting with ``1``. Then, you can reference one of these
@@ -977,6 +955,10 @@ Creating orders
Order state operations
----------------------
.. versionchanged:: 3.12
The ``mark_paid`` operation now takes a ``send_email`` parameter.
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/mark_paid/
Marks a pending or expired order as successfully paid.
@@ -988,6 +970,11 @@ Order state operations
POST /api/v1/organizers/bigevents/events/sampleconf/orders/ABC12/mark_paid/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
{
"send_email": true
}
**Example response**:
@@ -1057,6 +1044,42 @@ Order state operations
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
:statuscode 404: The requested order does not exist.
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/reactivate/
Reactivates a canceled order. This will set the order to pending or paid state. Only possible if all products are
still available.
**Example request**:
.. sourcecode:: http
POST /api/v1/organizers/bigevents/events/sampleconf/orders/ABC12/reactivate/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"code": "ABC12",
"status": "n",
...
}
:param organizer: The ``slug`` field of the organizer to modify
:param event: The ``slug`` field of the event to modify
:param code: The ``code`` field of the order to modify
:statuscode 200: no error
:statuscode 400: The order cannot be reactivated
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
:statuscode 404: The requested order does not exist.
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/mark_pending/
Marks a paid order as unpaid.
@@ -1333,21 +1356,6 @@ Sending e-mails
List of all order positions
---------------------------
.. versionchanged:: 1.15
The order positions endpoint has been extended by the filter queries ``item__in``, ``variation__in``,
``order__status__in``, ``subevent__in``, ``addon_to__in`` and ``search``. The search for attendee names and order
codes is now case-insensitive.
.. versionchanged:: 2.0
The order positions endpoint has been extended by the filter queries ``voucher``, ``voucher__code`` and
``pseudonymization_id``.
.. versionchanged:: 3.2
The value ``auto_checked_in`` has been added to the ``checkins``-attribute.
.. versionchanged:: 3.5
The ``include_canceled_positions`` and ``include_canceled_fees`` query parameters have been added.
@@ -1402,6 +1410,7 @@ List of all order positions
"checkins": [
{
"list": 44,
"type": "entry",
"datetime": "2017-12-25T12:45:23Z",
"auto_checked_in": false
}
@@ -1507,6 +1516,7 @@ Fetching individual positions
"checkins": [
{
"list": 44,
"type": "entry",
"datetime": "2017-12-25T12:45:23Z",
"auto_checked_in": false
}
@@ -1592,6 +1602,67 @@ Order position ticket download
Manipulating individual positions
---------------------------------
.. versionchanged:: 3.15
The ``PATCH`` method has been added for individual positions.
.. http:patch:: /api/v1/organizers/(organizer)/events/(event)/orderpositions/(id)/
Updates specific fields on an order position. Currently, only the following fields are supported:
* ``attendee_email``
* ``attendee_name_parts`` or ``attendee_name``
* ``company``
* ``street``
* ``zipcode``
* ``city``
* ``country``
* ``state``
* ``answers``: If specified, you will need to provide **all** answers for this order position.
Validation is handled the same way as when creating orders through the API. You are therefore
expected to provide ``question``, ``answer``, and possibly ``options``. ``question_identifier``
and ``option_identifiers`` will be ignored.
**Example request**:
.. sourcecode:: http
PATCH /api/v1/organizers/bigevents/events/sampleconf/orderpositions/23442/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
{
"attendee_email": "other@example.org"
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
(Full order resource, see above.)
:param organizer: The ``slug`` field of the organizer of the event
:param event: The ``slug`` field of the event
:param id: The ``id`` field of the order position to update
:statuscode 200: no error
:statuscode 400: The order could not be updated due to invalid submitted data.
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to update this order.
.. http:delete:: /api/v1/organizers/(organizer)/events/(event)/orderpositions/(id)/
Deletes an order position, identified by its internal ID.
@@ -1624,14 +1695,14 @@ Manipulating individual positions
Order payment endpoints
-----------------------
.. versionchanged:: 2.0
These endpoints have been added.
.. versionchanged:: 3.6
Payments can now be created through the API.
.. versionchanged:: 3.12
The ``confirm`` operation now takes a ``send_email`` parameter.
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/payments/
Returns a list of all payments for an order.
@@ -1732,7 +1803,10 @@ Order payment endpoints
Accept: application/json, text/javascript
Content-Type: application/json
{"force": false}
{
"send_email": true,
"force": false
}
**Example response**:
@@ -1864,6 +1938,7 @@ Order payment endpoints
"amount": "23.00",
"payment_date": "2017-12-04T12:13:12Z",
"info": {},
"send_email": false,
"provider": "banktransfer"
}
@@ -1899,10 +1974,6 @@ Order payment endpoints
Order refund endpoints
----------------------
.. versionchanged:: 2.0
These endpoints have been added.
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/orders/(code)/refunds/
Returns a list of all refunds for an order.
@@ -1936,6 +2007,7 @@ Order refund endpoints
"payment": 1,
"created": "2017-12-01T10:00:00Z",
"execution_date": "2017-12-04T12:13:12Z",
"comment": "Cancellation",
"provider": "banktransfer"
}
]
@@ -1978,6 +2050,7 @@ Order refund endpoints
"payment": 1,
"created": "2017-12-01T10:00:00Z",
"execution_date": "2017-12-04T12:13:12Z",
"comment": "Cancellation",
"provider": "banktransfer"
}
@@ -2012,6 +2085,7 @@ Order refund endpoints
"amount": "23.00",
"payment": 1,
"execution_date": null,
"comment": "Cancellation",
"provider": "manual",
"mark_canceled": false,
"mark_pending": true
@@ -2033,6 +2107,7 @@ Order refund endpoints
"payment": 1,
"created": "2017-12-01T10:00:00Z",
"execution_date": null,
"comment": "Cancellation",
"provider": "manual"
}
@@ -2156,3 +2231,57 @@ Order refund endpoints
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
:statuscode 404: The requested order or refund does not exist.
Revoked ticket secrets
----------------------
With some non-default ticket secret generation methods, a list of revoked ticket secrets is required for proper validation.
.. versionchanged:: 3.12
Added revocation lists.
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/revokedsecrets/
Returns a list of all revoked secrets within a given event.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/events/sampleconf/revokedsecrets/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
X-Page-Generated: 2017-12-01T10:00:00Z
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1234,
"secret": "k24fiuwvu8kxz3y1",
"created": "2017-12-01T10:00:00Z",
}
]
}
:query integer page: The page number in case of a multi-page result set, default is 1
:query string ordering: Manually set the ordering of results. Valid fields to be used are ``secret`` and ``created``. Default: ``-created``
:query datetime created_since: Only return revocations that have been created since the given date.
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:resheader X-Page-Generated: The server time at the beginning of the operation. If you're using this API to fetch
differences, this is the value you want to use as ``created_since`` in your next call.
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
+117
View File
@@ -90,3 +90,120 @@ Endpoints
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to view it.
Organizer settings
------------------
pretix organizers and events have lots and lots of parameters of different types that are stored in a key-value store on our system.
Since many of these settings depend on each other in complex ways, we can not give direct access to all of these
settings through the API. However, we do expose many of the simple and useful flags through the API.
Please note that the available settings flags change between pretix versions, and we do not give a guarantee on backwards-compatibility like with other parts of the API.
Therefore, we're also not including a list of the options here, but instead recommend to look at the endpoint output
to see available options. The ``explain=true`` flag enables a verbose mode that provides you with human-readable
information about the properties.
.. note:: Please note that this is not a complete representation of all organizer settings. You will find more settings
in the web interface.
.. warning:: This API is intended for advanced users. Even though we take care to validate your input, you will be
able to break your shops using this API by creating situations of conflicting settings. Please take care.
.. versionchanged:: 3.14
Initial support for settings has been added to the API.
.. http:get:: /api/v1/organizers/(organizer)/settings/
Get current values of organizer settings.
Permission required: "Can change organizer settings"
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/settings/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example standard response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"event_list_type": "calendar",
}
**Example verbose response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"event_list_type":
{
"value": "calendar",
"label": "Default overview style",
"help_text": "If your event series has more than 50 dates in the future, only the month or week calendar can be used."
}
},
}
:param organizer: The ``slug`` field of the organizer to access
:query explain: Set to ``true`` to enable verbose response mode
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to view this resource.
.. http:patch:: /api/v1/organizers/(organizer)/settings/
Updates organizer settings. Note that ``PUT`` is not allowed here, only ``PATCH``.
.. warning::
Settings can be stored at different levels in pretix. If a value is not set on organizer level, a default setting
from a higher level (global) will be returned. If you explicitly set a setting on organizer level, it
will no longer be inherited from the higher levels. Therefore, we recommend you to send only settings that you
explicitly want to set on organizer level. To unset a settings, pass ``null``.
**Example request**:
.. sourcecode:: http
PATCH /api/v1/organizers/bigevents/settings/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
{
"event_list_type": "calendar"
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"event_list_type": "calendar",
}
:param organizer: The ``slug`` field of the organizer to update
:statuscode 200: no error
:statuscode 400: The organizer could not be updated due to invalid submitted data.
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer does not exist **or** you have no permission to create this resource.
-4
View File
@@ -19,10 +19,6 @@ identifier string An arbitrary st
answer multi-lingual string The displayed value of this option
===================================== ========================== =======================================================
.. versionchanged:: 1.12
This resource has been added.
Endpoints
---------
+38 -23
View File
@@ -1,4 +1,7 @@
.. spelling:: checkin
.. spelling::
checkin
datetime
.. _rest-questions:
@@ -53,6 +56,12 @@ options list of objects In case of ques
├ identifier string An arbitrary string that can be used for matching with
other sources.
└ answer multi-lingual string The displayed value of this option
valid_number_min string Minimum value for number questions (optional)
valid_number_max string Maximum value for number questions (optional)
valid_date_min date Minimum value for date questions (optional)
valid_date_max date Maximum value for date questions (optional)
valid_datetime_min datetime Minimum value for date and time questions (optional)
valid_datetime_max datetime Maximum value for date and time questions (optional)
dependency_question integer Internal ID of a different question. The current
question will only be shown if the question given in
this attribute is set to the value given in
@@ -66,32 +75,14 @@ dependency_value string An old version
for one value. **Deprecated.**
===================================== ========================== =======================================================
.. versionchanged:: 1.12
The values ``D``, ``H``, and ``W`` for the field ``type`` are now allowed and the ``ask_during_checkin`` field has
been added.
.. versionchanged:: 1.14
Write methods have been added. The attribute ``identifier`` has been added to both the resource itself and the
options resource. The ``position`` attribute has been added to the options resource.
.. versionchanged:: 2.7
The attribute ``hidden`` and the question type ``CC`` have been added.
.. versionchanged:: 3.0
The attribute ``dependency_values`` has been added.
.. versionchanged:: 3.1
The attribute ``print_on_invoice`` has been added.
.. versionchanged:: 3.5
The attribute ``help_text`` has been added.
.. versionchanged:: 3.14
The attributes ``valid_*`` have been added.
Endpoints
---------
@@ -137,6 +128,12 @@ Endpoints
"ask_during_checkin": false,
"hidden": false,
"print_on_invoice": false,
"valid_number_min": null,
"valid_number_max": null,
"valid_date_min": null,
"valid_date_max": null,
"valid_datetime_min": null,
"valid_datetime_max": null,
"dependency_question": null,
"dependency_value": null,
"dependency_values": [],
@@ -208,6 +205,12 @@ Endpoints
"ask_during_checkin": false,
"hidden": false,
"print_on_invoice": false,
"valid_number_min": null,
"valid_number_max": null,
"valid_date_min": null,
"valid_date_max": null,
"valid_datetime_min": null,
"valid_datetime_max": null,
"dependency_question": null,
"dependency_value": null,
"dependency_values": [],
@@ -302,6 +305,12 @@ Endpoints
"dependency_question": null,
"dependency_value": null,
"dependency_values": [],
"valid_number_min": null,
"valid_number_max": null,
"valid_date_min": null,
"valid_date_max": null,
"valid_datetime_min": null,
"valid_datetime_max": null,
"options": [
{
"id": 1,
@@ -377,6 +386,12 @@ Endpoints
"dependency_question": null,
"dependency_value": null,
"dependency_values": [],
"valid_number_min": null,
"valid_number_max": null,
"valid_date_min": null,
"valid_date_max": null,
"valid_datetime_min": null,
"valid_datetime_max": null,
"options": [
{
"id": 1,
+5 -6
View File
@@ -26,15 +26,13 @@ close_when_sold_out boolean If ``true``, th
again.
closed boolean Whether the quota is currently closed (see above
field).
release_after_exit boolean Whether the quota regains capacity as soon as some tickets
have been scanned at an exit.
===================================== ========================== =======================================================
.. versionchanged:: 1.10
.. versionchanged:: 3.10
The write operations ``POST``, ``PATCH``, ``PUT``, and ``DELETE`` have been added.
.. versionchanged:: 3.0
The attributes ``close_when_sold_out`` and ``closed`` have been added.
The attribute ``release_after_exit`` has been added.
Endpoints
@@ -283,6 +281,7 @@ Endpoints
"total_size": 1000,
"pending_orders": 25,
"paid_orders": 423,
"exited_orders": 0,
"cart_positions": 7,
"blocking_vouchers": 126,
"waiting_list": 0
-4
View File
@@ -20,10 +20,6 @@ layout object JSON representa
still evolves. The version in use can be found `here`_.
===================================== ========================== =======================================================
.. versionchanged:: 3.0
This endpoint has been added.
Endpoints
---------
+21 -19
View File
@@ -33,47 +33,40 @@ date_to datetime The sub-event's
date_admission datetime The sub-event's admission date (or ``null``)
presale_start datetime The sub-date at which the ticket shop opens (or ``null``)
presale_end datetime The sub-date at which the ticket shop closes (or ``null``)
frontpage_text multi-lingual string The description of the event (or ``null``)
location multi-lingual string The sub-event location (or ``null``)
geo_lat float Latitude of the location (or ``null``)
geo_lon float Longitude of the location (or ``null``)
item_price_overrides list of objects List of items for which this sub-event overrides the
default price
├ item integer The internal item ID
├ disabled boolean If ``true``, item should not be available for this sub-event
└ price money (string) The price or ``null`` for the default price
variation_price_overrides list of objects List of variations for which this sub-event overrides
the default price
├ variation integer The internal variation ID
├ disabled boolean If ``true``, variation should not be available for this sub-event
└ price money (string) The price or ``null`` for the default price
meta_data object Values set for organizer-specific meta data parameters.
seating_plan integer If reserved seating is in use, the ID of a seating
plan. Otherwise ``null``.
seat_category_mapping object An object mapping categories of the seating plan
(strings) to items in the event (integers or ``null``).
last_modified datetime Last modification of this object
===================================== ========================== =======================================================
.. versionchanged:: 1.7
The ``meta_data`` field has been added.
.. versionchanged:: 2.1
The ``event`` field has been added, together with filters on the list of dates and an organizer-level list.
.. versionchanged:: 2.6
The write operations ``POST``, ``PATCH``, ``PUT``, and ``DELETE`` have been added.
.. versionchanged:: 2.7
The attribute ``is_public`` has been added.
.. versionchanged:: 3.0
The attributes ``seating_plan`` and ``seat_category_mapping`` have been added.
.. versionchanged:: 3.3
The attributes ``geo_lat`` and ``geo_lon`` have been added.
.. versionchanged:: 3.10
The ``disabled`` attribute has been added to ``item_price_overrides`` and ``variation_price_overrides``.
.. versionchanged:: 3.12
The ``last_modified`` attribute has been added.
Endpoints
---------
@@ -125,6 +118,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "12.00"
}
],
@@ -141,6 +135,8 @@ Endpoints
:query ends_after: If set to a date and time, only events that happen during of after the given time are returned.
:param organizer: The ``slug`` field of a valid organizer
:param event: The ``slug`` field of the main event
:query datetime modified_since: Only return objects that have changed since the given date. Be careful: This does not
allow you to know if a subevent was deleted.
:query array attr[meta_data_key]: By providing the key and value of a meta data attribute, the list of sub-events
will only contain the sub-events matching the set criteria. Providing ``?attr[Format]=Seminar`` would return
only those sub-events having set their ``Format`` meta data to ``Seminar``, ``?attr[Format]=`` only those, that
@@ -182,6 +178,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "12.00"
}
],
@@ -216,6 +213,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "12.00"
}
],
@@ -271,6 +269,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "12.00"
}
],
@@ -307,6 +306,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "23.42"
}
],
@@ -339,6 +339,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "23.42"
}
],
@@ -427,6 +428,7 @@ Endpoints
"item_price_overrides": [
{
"item": 2,
"disabled": false,
"price": "12.00"
}
],
-8
View File
@@ -24,14 +24,6 @@ home_country string Merchant countr
``null`` or empty string
===================================== ========================== =======================================================
.. versionchanged:: 1.7
This resource has been added.
.. versionchanged:: 1.9
The write operations ``POST``, ``PATCH``, ``PUT``, and ``DELETE`` have been added.
Endpoints
---------
-8
View File
@@ -46,14 +46,6 @@ show_hidden_items boolean Only if set to
===================================== ========================== =======================================================
.. versionchanged:: 1.9
The write operations ``POST``, ``PATCH``, ``PUT``, and ``DELETE`` have been added.
.. versionchanged:: 3.0
The attribute ``show_hidden_items`` has been added.
.. versionchanged:: 3.4
The attribute ``seat`` has been added.
+8
View File
@@ -31,8 +31,10 @@ action_types list of strings A list of actio
The following values for ``action_types`` are valid with pretix core:
* ``pretix.event.order.placed``
* ``pretix.event.order.placed.require_approval``
* ``pretix.event.order.paid``
* ``pretix.event.order.canceled``
* ``pretix.event.order.reactivated``
* ``pretix.event.order.expired``
* ``pretix.event.order.modified``
* ``pretix.event.order.contact.changed``
@@ -42,6 +44,12 @@ The following values for ``action_types`` are valid with pretix core:
* ``pretix.event.order.denied``
* ``pretix.event.checkin``
* ``pretix.event.checkin.reverted``
* ``pretix.event.added``
* ``pretix.event.changed``
* ``pretix.event.deleted``
* ``pretix.subevent.added``
* ``pretix.subevent.changed``
* ``pretix.subevent.deleted``
Installed plugins might register more valid values.
+3
View File
@@ -70,6 +70,9 @@ and ``checkin_list``.
only include the minimum amount of data necessary for you to fetch the changed objects from our
:ref:`rest-api` in an authenticated way.
.. warning:: In very rare cases, you could receive the same webhook notification twice. We try to avoid it, but we
prefer it over missing a notification.
If you want to further prevent others from accessing your webhook URL, you can also use `Basic authentication`_ and
supply the URL to us in the format of ``https://username:password@domain.com/path/``.
We recommend that you use HTTPS for your webhook URL and might require it in the future. If HTTPS is used, we require
+1
View File
@@ -52,6 +52,7 @@ extensions = [
'sphinx.ext.coverage',
'sphinxcontrib.httpdomain',
'sphinxcontrib.images',
'sphinxemoji.sphinxemoji',
]
if HAS_PYENCHANT:
extensions.append('sphinxcontrib.spelling')
+25 -10
View File
@@ -14,7 +14,9 @@ Control panel views
-------------------
If you want to add a custom view to the control area of an event, just register an URL in your
``urls.py`` that lives in the ``/control/`` subpath::
``urls.py`` that lives in the ``/control/`` subpath:
.. code-block:: python
from django.conf.urls import url
@@ -44,7 +46,9 @@ If only the ``organizer`` parameter is present, it will be ensured that:
* The user has permission to access view the current organizer
If you want to require specific permission types, we provide you with a decorator or a mixin for
your views::
your views:
.. code-block:: python
from pretix.control.permissions import (
event_permission_required, EventPermissionRequiredMixin
@@ -61,12 +65,13 @@ your views::
...
Similarly, there is ``organizer_permission_required`` and ``OrganizerPermissionRequiredMixin``. In case of
event-related views, there is also a signal that allows you to add the view to the event navigation like this::
event-related views, there is also a signal that allows you to add the view to the event navigation like this:
.. code-block:: python
from django.urls import resolve, reverse
from django.dispatch import receiver
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from pretix.control.signals import nav_event
@@ -90,7 +95,9 @@ Event settings view
-------------------
A special case of a control panel view is a view hooked into the event settings page. For this case, there is a
special navigation signal::
special navigation signal:
.. code-block:: python
@receiver(nav_event_settings, dispatch_uid='friends_tickets_nav_settings')
def navbar_settings(sender, request, **kwargs):
@@ -105,7 +112,9 @@ special navigation signal::
}]
Also, your view should inherit from ``EventSettingsViewMixin`` and your template from ``pretixcontrol/event/settings_base.html``
for good integration. If you just want to display a form, you could do it like the following::
for good integration. If you just want to display a form, you could do it like the following:
.. code-block:: python
class MySettingsView(EventSettingsViewMixin, EventSettingsFormView):
model = Event
@@ -147,7 +156,9 @@ Including a custom view into the participant-facing frontend is a little bit dif
no path prefix like ``control/``.
First, define your URL in your ``urls.py``, but this time in the ``event_patterns`` section and wrapped by
``event_url``::
``event_url``:
.. code-block:: python
from pretix.multidomain import event_url
@@ -182,8 +193,9 @@ standard Django request handling: There are `ViewSets`_ to group related views i
automatically build URL configurations from them.
To integrate a custom viewset with pretix' REST API, you can just register with one of our routers within the
``urls.py`` module of your plugin::
``urls.py`` module of your plugin:
.. code-block:: python
from pretix.api.urls import event_router, router, orga_router
@@ -200,7 +212,9 @@ in the control panel. However, you need to make sure on your own only to return
.event`` and ``request.organizer`` are available as usual.
To require a special permission like ``can_view_orders``, you do not need to inherit from a special ViewSet base
class, you can just set the ``permission`` attribute on your viewset::
class, you can just set the ``permission`` attribute on your viewset:
.. code-block:: python
class MyViewSet(ModelViewSet):
permission = 'can_view_orders'
@@ -208,8 +222,9 @@ class, you can just set the ``permission`` attribute on your viewset::
If you want to check the permission only for some methods of your viewset, you have to do it yourself. Note here that
API authentications can be done via user sessions or API tokens and you should therefore check something like the
following::
following:
.. code-block:: python
perm_holder = (request.auth if isinstance(request.auth, TeamAPIToken) else request.user)
if perm_holder.has_event_permission(request.event.organizer, request.event, 'can_view_orders'):
+6 -2
View File
@@ -15,7 +15,9 @@ Output registration
The email HTML renderer API does not make a lot of usage from signals, however, it
does use a signal to get a list of all available email renderers. Your plugin
should listen for this signal and return the subclass of ``pretix.base.email.BaseHTMLMailRenderer``
that we'll provide in this plugin::
that we'll provide in this plugin:
.. code-block:: python
from django.dispatch import receiver
@@ -72,7 +74,9 @@ class ``TemplateBasedMailRenderer`` that you can re-use to perform the following
* Call `inlinestyler`_ to convert all ``<style>`` style sheets to inline ``style=""``
attributes for better compatibility
To use it, you just need to implement some variables::
To use it, you just need to implement some variables:
.. code-block:: python
class ClassicMailRenderer(TemplateBasedMailRenderer):
verbose_name = _('pretix default')
+21 -1
View File
@@ -17,7 +17,9 @@ Exporter registration
The exporter API does not make a lot of usage from signals, however, it does use a signal to get a list of
all available exporters. Your plugin should listen for this signal and return the subclass of
``pretix.base.exporter.BaseExporter``
that we'll provide in this plugin::
that we'll provide in this plugin:
.. code-block:: python
from django.dispatch import receiver
@@ -29,6 +31,24 @@ that we'll provide in this plugin::
from .exporter import MyExporter
return MyExporter
Some exporters might also prove to be useful, when provided on an organizer-level. In order to declare your
exporter as capable of providing exports spanning multiple events, your plugin should listen for this signal
and return the subclass of ``pretix.base.exporter.BaseExporter`` that we'll provide in this plugin:
.. code-block:: python
from django.dispatch import receiver
from pretix.base.signals import register_multievent_data_exporters
@receiver(register_multievent_data_exporters, dispatch_uid="multieventexporter_myexporter")
def register_multievent_data_exporter(sender, **kwargs):
from .exporter import MyExporter
return MyExporter
If your exporter supports both event-level and multi-event level exports, you will need to listen for both
signals.
The exporter class
------------------
+9 -14
View File
@@ -12,7 +12,8 @@ Core
.. automodule:: pretix.base.signals
:members: periodic_task, event_live_issues, event_copy_data, email_filter, register_notification_types,
item_copy_data, register_sales_channels, register_global_settings, quota_availability, global_email_filter
item_copy_data, register_sales_channels, register_global_settings, quota_availability, global_email_filter,
register_ticket_secret_generators
Order events
""""""""""""
@@ -20,7 +21,7 @@ Order events
There are multiple signals that will be sent out in the ordering cycle:
.. automodule:: pretix.base.signals
:members: validate_cart, validate_cart_addons, validate_order, order_fee_calculation, order_paid, order_placed, order_canceled, order_expired, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, invoice_line_text
:members: validate_cart, validate_cart_addons, validate_order, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, invoice_line_text
Check-ins
"""""""""
@@ -33,11 +34,11 @@ Frontend
--------
.. automodule:: pretix.presale.signals
:members: html_head, html_footer, footer_link, front_page_top, front_page_bottom, front_page_bottom_widget, fee_calculation_for_cart, contact_form_fields, question_form_fields, checkout_confirm_messages, checkout_confirm_page_content, checkout_all_optional, html_page_header, sass_preamble, sass_postamble, render_seating_plan, checkout_flow_steps, position_info, item_description
:members: html_head, html_footer, footer_link, global_footer_link, front_page_top, front_page_bottom, front_page_bottom_widget, fee_calculation_for_cart, contact_form_fields, question_form_fields, contact_form_fields_overrides, question_form_fields_overrides, checkout_confirm_messages, checkout_confirm_page_content, checkout_all_optional, html_page_header, sass_preamble, sass_postamble, render_seating_plan, checkout_flow_steps, position_info, position_info_top, item_description, global_html_head, global_html_footer, global_html_page_header
.. automodule:: pretix.presale.signals
:members: order_info, order_meta_from_request
:members: order_info, order_info_top, order_meta_from_request
Request flow
""""""""""""
@@ -57,7 +58,7 @@ Backend
.. automodule:: pretix.control.signals
:members: nav_event, html_head, html_page_start, quota_detail_html, nav_topbar, nav_global, nav_organizer, nav_event_settings,
order_info, event_settings_widget, oauth_application_registered, order_position_buttons, subevent_forms,
item_formsets, order_search_filter_q
item_formsets, order_search_filter_q, order_search_forms
.. automodule:: pretix.base.signals
:members: logentry_display, logentry_object_link, requiredaction_display, timeline_events
@@ -66,25 +67,19 @@ Vouchers
""""""""
.. automodule:: pretix.control.signals
:members: item_forms
Vouchers
""""""""
.. automodule:: pretix.control.signals
:members: voucher_form_class, voucher_form_html, voucher_form_validation
:members: item_forms, voucher_form_class, voucher_form_html, voucher_form_validation
Dashboards
""""""""""
.. automodule:: pretix.control.signals
:members: event_dashboard_widgets, user_dashboard_widgets
:members: event_dashboard_widgets, user_dashboard_widgets, event_dashboard_top
Ticket designs
""""""""""""""
.. automodule:: pretix.base.signals
:members: layout_text_variables
:members: layout_text_variables, layout_image_variables
.. automodule:: pretix.plugins.ticketoutputpdf.signals
:members: override_layout
+3 -1
View File
@@ -15,7 +15,9 @@ Output registration
The invoice renderer API does not make a lot of usage from signals, however, it
does use a signal to get a list of all available invoice renderers. Your plugin
should listen for this signal and return the subclass of ``pretix.base.invoice.BaseInvoiceRenderer``
that we'll provide in this plugin::
that we'll provide in this plugin:
.. code-block:: python
from django.dispatch import receiver
+16 -2
View File
@@ -19,7 +19,9 @@ Provider registration
The payment provider API does not make a lot of usage from signals, however, it
does use a signal to get a list of all available payment providers. Your plugin
should listen for this signal and return the subclass of ``pretix.base.payment.BasePaymentProvider``
that the plugin will provide::
that the plugin will provide:
.. code-block:: python
from django.dispatch import receiver
@@ -104,14 +106,22 @@ The provider class
.. automethod:: payment_control_render
.. automethod:: payment_control_render_short
.. automethod:: payment_refund_supported
.. automethod:: payment_partial_refund_supported
.. automethod:: payment_presale_render
.. automethod:: execute_refund
.. automethod:: refund_control_render
.. automethod:: new_refund_control_form_render
.. automethod:: new_refund_control_form_process
.. automethod:: api_payment_details
.. automethod:: matching_id
@@ -126,6 +136,8 @@ The provider class
.. autoattribute:: test_mode_message
.. autoattribute:: requires_invoice_immediately
Additional views
----------------
@@ -138,7 +150,9 @@ it is necessary to introduce additional views. One example is the PayPal
provider. It redirects the user to a PayPal website in the
:py:meth:`BasePaymentProvider.checkout_prepare` step of the checkout process
and provides PayPal with a URL to redirect back to. This URL points to a
view which looks roughly like this::
view which looks roughly like this:
.. code-block:: python
@login_required
def success(request):
+6 -2
View File
@@ -13,7 +13,9 @@ Placeholder registration
The placeholder API does not make a lot of usage from signals, however, it
does use a signal to get a list of all available email placeholders. Your plugin
should listen for this signal and return an instance of a subclass of ``pretix.base.email.BaseMailTextPlaceholder``::
should listen for this signal and return an instance of a subclass of ``pretix.base.email.BaseMailTextPlaceholder``:
.. code-block:: python
from django.dispatch import receiver
@@ -71,7 +73,9 @@ Helper class for simple placeholders
------------------------------------
pretix ships with a helper class that makes it easy to provide placeholders based on simple
functions::
functions:
.. code-block:: python
placeholder = SimpleFunctionalMailTextPlaceholder(
'code', ['order'], lambda order: order.code, sample='F8VVL'
+18 -10
View File
@@ -55,13 +55,15 @@ restricted boolean (optional) ``False`` by default, restricts a plugin
compatibility string Specifier for compatible pretix versions.
================== ==================== ===========================================================
A working example would be::
A working example would be:
.. code-block:: python
try:
from pretix.base.plugins import PluginConfig
except ImportError:
raise RuntimeError("Please use pretix 2.7 or above to run this plugin!")
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
class PaypalApp(PluginConfig):
@@ -81,7 +83,7 @@ A working example would be::
default_app_config = 'pretix_paypal.PaypalApp'
The ``AppConfig`` class may implement a property ``compatiblity_errors``, that checks
The ``AppConfig`` class may implement a property ``compatibility_errors``, that checks
whether the pretix installation meets all requirements of the plugin. If so,
it should contain ``None`` or an empty list, otherwise a list of strings containing
human-readable error messages. We recommend using the ``django.utils.functional.cached_property``
@@ -96,7 +98,9 @@ Plugin registration
Somehow, pretix needs to know that your plugin exists at all. For this purpose, we
make use of the `entry point`_ feature of setuptools. To register a plugin that lives
in a separate python package, your ``setup.py`` should contain something like this::
in a separate python package, your ``setup.py`` should contain something like this:
.. code-block:: python
setup(
args...,
@@ -118,7 +122,9 @@ The various components of pretix define a number of signals which your plugin ca
listen for. We will go into the details of the different signals in the following
pages. We suggest that you put your signal receivers into a ``signals`` submodule
of your plugin. You should extend your ``AppConfig`` (see above) by the following
method to make your receivers available::
method to make your receivers available:
.. code-block:: python
class PaypalApp(AppConfig):
@@ -127,7 +133,9 @@ method to make your receivers available::
from . import signals # NOQA
You can optionally specify code that is executed when your plugin is activated for an event
in the ``installed`` method::
in the ``installed`` method:
.. code-block:: python
class PaypalApp(AppConfig):
@@ -136,7 +144,7 @@ in the ``installed`` method::
pass # Your code here
Note that ``installed`` will *not* be called if the plugin in indirectly activated for an event
Note that ``installed`` will *not* be called if the plugin is indirectly activated for an event
because the event is created with settings copied from another event.
Views
@@ -151,8 +159,8 @@ your Django app label.
with checking that the calling user is logged in, has appropriate permissions,
etc. We plan on providing native support for this in a later version.
.. _Django app: https://docs.djangoproject.com/en/1.7/ref/applications/
.. _signal dispatcher: https://docs.djangoproject.com/en/1.7/topics/signals/
.. _namespace packages: http://legacy.python.org/dev/peps/pep-0420/
.. _Django app: https://docs.djangoproject.com/en/3.0/ref/applications/
.. _signal dispatcher: https://docs.djangoproject.com/en/3.0/topics/signals/
.. _namespace packages: https://legacy.python.org/dev/peps/pep-0420/
.. _entry point: https://setuptools.readthedocs.io/en/latest/pkg_resources.html#locating-plugins
.. _cookiecutter: https://cookiecutter.readthedocs.io/en/latest/
+1 -1
View File
@@ -74,7 +74,7 @@ looks like this:
def generate_files(self) -> List[Tuple[str, str, str]]:
yield 'invoice-addresses.json', 'application/json', json.dumps({
ia.order.code: InvoiceAdddressSerializer(ia).data
ia.order.code: InvoiceAddressSerializer(ia).data
for ia in InvoiceAddress.objects.filter(order__event=self.event)
}, indent=4)
+7 -1
View File
@@ -17,7 +17,9 @@ Output registration
The ticket output API does not make a lot of usage from signals, however, it
does use a signal to get a list of all available ticket outputs. Your plugin
should listen for this signal and return the subclass of ``pretix.base.ticketoutput.BaseTicketOutput``
that we'll provide in this plugin::
that we'll provide in this plugin:
.. code-block:: python
from django.dispatch import receiver
@@ -72,6 +74,10 @@ The output class
.. autoattribute:: download_button_icon
.. autoattribute:: multi_download_button_text
.. autoattribute:: long_download_button_text
.. autoattribute:: preview_allowed
.. autoattribute:: javascript_required
+6 -2
View File
@@ -82,11 +82,15 @@ Orders
^^^^^^
If a customer completes the checkout process, an **Order** will be created containing all the entered information.
An order can be in one of currently four states that are listed in the diagram below:
An order can be in one of currently six states that are listed in the diagram below:
.. image:: /images/order_states.png
There are additional "fake" states that are displayed like states but not represented as states in the system:
The dotted lines represent status changes that usually do not happen as part of the regular process, but can be
performed manually in the admin backend.
For historical reasons, there are only four valid values of the ``status`` field, and the two additional states are
represented differently:
* An order is considered **canceled (with paid fee)** if it is in **paid** status but does not include any non-cancelled positions.
+2 -2
View File
@@ -7,7 +7,7 @@ Coding style and quality
for more information. Use four spaces for indentation.
* We sort our imports by a certain schema, but you don't have to do this by hand. Again, ``setup.cfg`` contains
some definitions that allow the command ``isort -rc <directory>`` to automatically sort the imports in your source
some definitions that allow the command ``isort <directory>`` to automatically sort the imports in your source
files.
* For templates and models, please take a look at the `Django Coding Style`_. We like Django's `class-based views`_ and
@@ -18,7 +18,7 @@ Coding style and quality
* We expect all new code to come with proper tests. When writing new tests, please write them using `pytest-style`_
test functions and raw ``assert`` statements. Use `fixtures`_ to prevent repetitive code. Some old parts of pretix'
test suite are in the style of Python's unit test module. If you extend those files, you might continue in this style,
but please use pytest style for any new test files.
but please use ``pytest`` style for any new test files.
* Please keep the first line of your commit messages short. When referencing an issue, please phrase it like
``Fix #123 -- Problems with order creation`` or ``Refs #123 -- Fix this part of that bug``.
+10 -4
View File
@@ -12,7 +12,9 @@ Implementing a task
-------------------
A common pattern for implementing asynchronous tasks can be seen a lot in ``pretix.base.services``
and looks like this::
and looks like this:
.. code-block:: python
from pretix.celery_app import app
@@ -34,13 +36,15 @@ If your user needs to wait for the response of the asynchronous task, there are
that will probably move to ``pretix.base`` at some point. They consist of the view mixin ``AsyncAction`` that allows
you to easily write a view that kicks off and waits for an asynchronous task. ``AsyncAction`` will determine whether
to run the task asynchronously or not and will do some magic to look nice for users with and without JavaScript support.
A usage example taken directly from the code is::
A usage example taken directly from the code is:
.. code-block:: python
class OrderCancelDo(EventViewMixin, OrderDetailMixin, AsyncAction, View):
"""
A view that executes a task asynchronously. A POST request will kick off the
task into the background or run it in the foreground if celery is not installed.
In the former case, subsequent GET calls can be used to determinine the current
In the former case, subsequent GET calls can be used to determine the current
status of the task.
"""
@@ -79,7 +83,9 @@ A usage example taken directly from the code is::
return super().get_error_message(exception)
On the client side, this can be used by simply adding a ``data-asynctask`` attribute to an HTML form. This will enable
AJAX sending of the form and display a loading indicator::
AJAX sending of the form and display a loading indicator:
.. code-block:: html
<form method="post" data-asynctask
action="{% eventurl request.event "presale:event.order.cancel.do" %}">
+3 -1
View File
@@ -27,7 +27,9 @@ numbers and dates, ``LazyDate`` and ``LazyNumber``. There also is a ``LazyLocale
exceptions with gettext-localized exception messages.
Last, but definitely not least, we have the ``language`` context manager (``pretix.base.i18n.language``) that allows
you to execute a piece of code with a different locale::
you to execute a piece of code with a different locale:
.. code-block:: python
with language('de'):
render_mail_template()
+25 -9
View File
@@ -16,7 +16,9 @@ We recommend all relevant models to inherit from ``LoggedModel`` as it simplifie
.. autoclass:: pretix.base.models.LoggedModel
:members: log_action, all_logentries
To actually log an action, you can just call the ``log_action`` method on your object::
To actually log an action, you can just call the ``log_action`` method on your object:
.. code-block:: python
order.log_action('pretix.event.order.canceled', user=user, data={})
@@ -29,7 +31,9 @@ Logging form actions
""""""""""""""""""""
A very common use case is to log the changes to a model that have been done in a ``ModelForm``. In this case,
we generally use a custom ``form_valid`` method on our ``FormView`` that looks like this::
we generally use a custom ``form_valid`` method on our ``FormView`` that looks like this:
.. code-block:: python
@transaction.atomic
def form_valid(self, form):
@@ -40,7 +44,9 @@ we generally use a custom ``form_valid`` method on our ``FormView`` that looks l
messages.success(self.request, _('Your changes have been saved.'))
return super().form_valid(form)
It gets a little bit more complicated if your form allows file uploads::
It gets a little bit more complicated if your form allows file uploads:
.. code-block:: python
@transaction.atomic
def form_valid(self, form):
@@ -67,9 +73,11 @@ following ready-to-include template::
We now need a way to translate the action codes like ``pretix.event.changed`` into human-readable
strings. The :py:attr:`pretix.base.signals.logentry_display` signals allows you to do so. A simple
implementation could look like::
implementation could look like:
from django.utils.translation import ugettext as _
.. code-block:: python
from django.utils.translation import gettext as _
from pretix.base.signals import logentry_display
@receiver(signal=logentry_display)
@@ -88,7 +96,9 @@ Sending notifications
If you think that the logged information might be important or urgent enough to send out a notification to interested
organizers. In this case, you should listen for the :py:attr:`pretix.base.signals.register_notification_types` signal
to register a notification type::
to register a notification type:
.. code-block:: python
@receiver(register_notification_types)
def register_my_notification_types(sender, **kwargs):
@@ -103,7 +113,9 @@ You should subclass the base ``NotificationType`` class and implement all its me
.. autoclass:: pretix.base.notifications.NotificationType
:members: action_type, verbose_name, required_permission, build_notification
A simple implementation could look like this::
A simple implementation could look like this:
.. code-block:: python
class MyNotificationType(NotificationType):
required_permission = "can_view_orders"
@@ -143,7 +155,9 @@ Logging technical information
-----------------------------
If you just want to log technical information to a log file on disk that does not need to be parsed
and displayed later, you can just use Python's ``logging`` module::
and displayed later, you can just use Python's ``logging`` module:
.. code-block:: python
import logging
@@ -151,7 +165,9 @@ and displayed later, you can just use Python's ``logging`` module::
logger.info('Startup complete.')
This is also very useful to provide debugging information when an exception occurs::
This is also very useful to provide debugging information when an exception occurs:
.. code-block:: python
try:
foo()
+12 -4
View File
@@ -15,7 +15,9 @@ Requiring permissions for a view
--------------------------------
pretix provides a number of useful mixins and decorators that allow you to specify that a user needs a certain
permission level to access a view::
permission level to access a view:
.. code-block:: python
from pretix.control.permissions import (
OrganizerPermissionRequiredMixin, organizer_permission_required
@@ -44,7 +46,9 @@ permission level to access a view::
# Only users with *any* permission on this organizer can access this
Of course, the same is available on event level::
Of course, the same is available on event level:
.. code-block:: python
from pretix.control.permissions import (
EventPermissionRequiredMixin, event_permission_required
@@ -73,7 +77,9 @@ Of course, the same is available on event level::
# Only users with *any* permission on this event can access this
You can also require that this view is only accessible by system administrators with an active "admin session"
(see below for what this means)::
(see below for what this means):
.. code-block:: python
from pretix.control.permissions import (
AdministratorPermissionRequiredMixin, administrator_permission_required
@@ -89,7 +95,9 @@ You can also require that this view is only accessible by system administrators
# ...
In rare cases it might also be useful to expose a feature only to people who have a staff account but do not
necessarily have an active admin session::
necessarily have an active admin session:
.. code-block:: python
from pretix.control.permissions import (
StaffMemberRequiredMixin, staff_member_required
+6 -2
View File
@@ -39,7 +39,9 @@ subclass that also adds support for internationalized fields:
.. autoclass:: pretix.base.forms.SettingsForm
You can simply use it like this::
You can simply use it like this:
.. code-block:: python
class EventSettingsForm(SettingsForm):
show_date_to = forms.BooleanField(
@@ -56,7 +58,9 @@ You can simply use it like this::
Defaults in plugins
-------------------
Plugins can add custom hardcoded defaults in the following way::
Plugins can add custom hardcoded defaults in the following way:
.. code-block:: python
from pretix.base.settings import settings_hierarkey
+3 -3
View File
@@ -98,7 +98,7 @@ pull request nevertheless and ask us for help, we are happy to assist you.
Execute the following commands to check for code style errors::
flake8 .
isort -c -rc .
isort -c .
python manage.py check
Execute the following command to run pretix' test suite (might take a couple of minutes)::
@@ -117,11 +117,11 @@ for example, to check for any errors in any staged files when committing::
export GIT_WORK_TREE=../
export GIT_DIR=../.git
source ../env/bin/activate # Adjust to however you activate your virtual environment
for file in $(git diff --cached --name-only | grep -E '\.py$' | grep -Ev "migrations|mt940\.py|pretix/settings\.py|make_testdata\.py|testutils/settings\.py|tests/settings\.py|pretix/base/models/__init__\.py")
for file in $(git diff --cached --name-only | grep -E '\.py$' | grep -Ev "migrations|mt940\.py|pretix/settings\.py|make_testdata\.py|testutils/settings\.py|tests/settings\.py|pretix/base/models/__init__\.py|.*_pb2\.py")
do
echo $file
git show ":$file" | flake8 - --stdin-display-name="$file" || exit 1 # we only want to lint the staged changes, not any un-staged changes
git show ":$file" | isort -df --check-only - | grep ERROR && exit 1 || true
git show ":$file" | isort -c - | grep ERROR && exit 1 || true
done
Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

+34
View File
@@ -0,0 +1,34 @@
@startuml
participant User
collections "OrderPayment\nOrderRefund" as P
collections "Order\nOrderPosition" as O
collections "Invoice\nInvoiceLine" as I
User -> O: Order placed (€100)
rnote over O #6DD96D: Order A1B2C\nstatus = **n**\ntotal = €100
O -> P: Payment created
O -> I: Invoice created\n(can also happen later)
rnote over I #6DD96D: Invoice 00001\n€100
rnote over P #6DD96D: OrderPayment A1B2C-P-1\nstate = **created**
P -> User: Payment details (web, email)
User -> P: Payment performed
rnote over P #EFF46B: OrderPayment A1B2C-P-1\nstate = **confirmed**
P -> O: Order marked as paid
rnote over O #EFF46B: Order A1B2C\nstatus = **p**\ntotal = €100
User -> O: Data change (e.g. invoice address)
O -> I: Invoice reissued
rnote over I #6DD96D: Invoice 00002\n€-100
rnote over I #6DD96D: Invoice 00003\n€100
rnote over O #EFF46B: Order A1B2C\nstatus = **p**\ntotal = €100
User -> O: Order canceled
rnote over O #EFF46B: Order A1B2C\nstatus = **c**
O -> I: Invoice canceled
rnote over I #6DD96D: Invoice 00004\n€-100
O -> P: Refund started
rnote over P #6DD96D: OrderRefund\nA1B2C-R-1\nstate = **created**
P -> User: Money sent
rnote over P #EFF46B: OrderRefund\nA1B2C-R-1\nstate = **done**
@enduml
Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 93 KiB

+34 -14
View File
@@ -1,19 +1,39 @@
@startuml
Pending: Order is expecting payment\nOrder reduces quotas
Expired: Payment period is over\nOrder does not affect quotas
Paid: Order was successful\nOrder reduces quotas
Canceled: Order has been canceled\nOrder does not affect quotas
state "Approval Pending" as AP
state "Canceled (with paid fee)" as CP
AP: status = "n"
AP: require_approval = true
Pending: status = "n"
Pending: require_approval = false
Pending: Tickets reserved: yes
Expired: status = "e"
Expired: Tickets reserved: no
Paid: status = "p"
Paid: count(positions | !canceled) > 0
Paid: Tickets reserved: yes
CP: status = "p"
CP: count(positions | !canceled) = 0
Canceled: status = "c"
Canceled: Tickets reserved: no
[*] --> Pending: customer\nplaces order
Pending --> Paid: successful payment
Pending --> Expired: automatically\nor manually\non admin action
Expired --> Paid: if payment is received\nonly if quota left
Expired --> Canceled
Expired --> Pending: manually\non admin action
Paid --> Canceled: manually on\nadmin action\nor if an external\npayment provider\nnotifies about a\npayment refund
Pending --> Canceled: on admin or\ncustomer action
Paid -> Pending: manually on admin action
[*] --> Paid: customer\nplaces free order
[*] -> Pending: order placed\ntotal > 0
[*] -> Paid: order placed\ntotal = 0
[*] -> AP: order placed\napproval required
Pending --> Paid: order paid
Pending --> Expired: after payment\ndeadline
Expired --> Paid: order paid\n(only if quota left)
Expired -[dashed]-> Canceled
Expired -[dashed]-> Pending: order extended
Paid --> Canceled: order canceled
Pending --> Canceled: order canceled
Paid -[dashed]-> Pending: refund
AP --> Pending: order approved
AP --> Canceled: order denied
Paid --> CP: order canceled\n(with cancellation fee)
Canceled -[dashed]-> Pending: order reactivated
Canceled -[dashed]-> Paid: order reactivated
CP -[dashed]-> Canceled: fee canceled
@enduml
-4
View File
@@ -22,10 +22,6 @@ item_assignments list of objects Products this l
└ item integer Item ID
===================================== ========================== =======================================================
.. versionchanged:: 1.16
This resource has been added.
Endpoints
---------
+6
View File
@@ -34,6 +34,8 @@ transactions list of objects Transactions in
├ payer string Payment source
├ reference string Payment reference
├ amount string Payment amount
├ iban string Payment IBAN
├ bic string Payment BIC
├ date string Payment date (in **user-inputted** format)
├ order string Associated order code (or ``null``)
└ comment string Internal comment
@@ -83,6 +85,8 @@ Endpoints
"date": "26.06.2017",
"payer": "John Doe",
"order": null,
"iban": "",
"bic": "",
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
"reference": "GUTSCHRIFT\r\nSAMPLECONF-NAB12 EREF: SAMPLECONF-NAB12\r\nIBAN: DE1234556…",
"state": "nomatch",
@@ -132,6 +136,8 @@ Endpoints
"comment": "",
"date": "26.06.2017",
"payer": "John Doe",
"iban": "",
"bic": "",
"order": null,
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
"reference": "GUTSCHRIFT\r\nSAMPLECONF-NAB12 EREF: SAMPLECONF-NAB12\r\nIBAN: DE1234556…",
+356
View File
@@ -0,0 +1,356 @@
Digital content
===============
URL interpolation and JWT authentication
----------------------------------------
In the simplest case, you can use the digital content module to point users to a specific piece of content on some
platform after their ticket purchase, or show them an embedded video or live stream. However, the full power of the
module can be utilized by passing additional information to the target system to automatically authenticate the user
or pre-fill some fields with their data. For example, you could use an URL like this::
https://webinars.example.com/join?as={attendee_name}&userid={order_code}-{positionid}
While this is already useful, it does not provide much security anyone could guess a valid combination for that URL.
Therefore, the module allows you to pass information as a `JSON Web Token`_, which isn't encrypted, but signed with a
shared secret such that nobody can create their own tokens or modify the contents. To use a token, set up a URL like this::
https://webinars.example.com/join?with_token={token}
Additionally, you will need to set a JWT secret and a token template, either through the pretix interface or through the
API (see below). pretix currently only supports tokens signed with ``HMAC-SHA256`` (``HS256``). Your token template can contain
whatever JSON you'd like to pass on based on the same variables, for example::
{
"iss": "pretix.eu",
"aud": "webinars.example.com",
"user": {
"id": "{order_code}-{positionid}",
"product": "{product_id}",
"variation": "{variation_id}",
"name": "{attendee_name}"
}
}
Variables can only be used in strings inside the JSON structure.
pretix will automatically add an ``iat`` claim with the current timestamp and an ``exp`` claim with an expiration timestamp
based on your configuration.
List of variables
"""""""""""""""""
The following variables are currently supported:
.. rst-class:: rest-resource-table
=================================== ====================================================================
Variable Description
=================================== ====================================================================
``order_code`` Order code (alphanumerical, unique per order, not per ticket)
``positionid`` ID of the ticket within the order (integer, starting at 1)
``order_email`` E-mail address of the ticket purchaser
``product_id`` Internal ID of the purchased product
``product_variation`` Internal ID of the purchased product variation (or empty)
``attendee_name`` Full name of the ticket holder (or empty)
``attendee_name_*`` Name parts of the ticket holder, depending on configuration, e.g. ``attendee_name_given_name`` or ``attendee_name_family_name``
``attendee_email`` E-mail address of the ticket holder (or empty)
``attendee_company`` Company of the ticket holder (or empty)
``attendee_street`` Street of the ticket holder's address (or empty)
``attendee_zipcode`` ZIP code of the ticket holder's address (or empty)
``attendee_city`` City of the ticket holder's address (or empty)
``attendee_country`` Country code of the ticket holder's address (or empty)
``attendee_state`` State of the ticket holder's address (or empty)
``answer[XYZ]`` Answer to the custom question with identifier ``XYZ``
``invoice_name`` Full name of the invoice address (or empty)
``invoice_name_*`` Name parts of the invoice address, depending on configuration, e.g. ``invoice_name_given_name`` or ``invoice_name_family_name``
``invoice_company`` Company of the invoice address (or empty)
``invoice_street`` Street of the invoice address (or empty)
``invoice_zipcode`` ZIP code of the invoice address (or empty)
``invoice_city`` City of the invoice address (or empty)
``invoice_country`` Country code of the invoice address (or empty)
``invoice_state`` State of the invoice address (or empty)
``meta_XYZ`` Value of the event's ``XYZ`` meta property
``token`` Signed JWT (only to be used in URLs, not in tokens)
=================================== ====================================================================
API Resource description
-------------------------
The digital content plugin provides a HTTP API that allows you to create new digital content for your ticket holders,
such as live streams, videos, or material downloads.
The digital content resource contains the following public fields:
.. rst-class:: rest-resource-table
===================================== ========================== =======================================================
Field Type Description
===================================== ========================== =======================================================
id integer Internal content ID
title multi-lingual string The content title (required)
content_type string The type of content, valid values are ``webinar``, ``video``, ``livestream``, ``link``, ``file``
url string The location of the digital content
description multi-lingual string A public description of the item. May contain Markdown
syntax and is not required.
available_from datetime The first date time at which this content will be shown
(or ``null``).
available_until datetime The last date time at which this content will b e shown
(or ``null``).
all_products boolean If ``true``, the content is available to all buyers of tickets for this event. The ``limit_products`` field is ignored in this case.
limit_products list of integers List of product/item IDs. This content is only shown to buyers of these ticket types.
position integer An integer, used for sorting
subevent integer Date in an event series this content should be shown for. Should be ``null`` if this is not an event series or if this should be shown to all customers.
jwt_template string Template for JWT token generation
jwt_secret string Secret for JWT token generation
jwt_validity integer JWT validity in days
===================================== ========================== =======================================================
API Endpoints
-------------
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/digitalcontents/
Returns a list of all digital content configured for an event.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/events/sampleconf/digitalcontents/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"subevent": null,
"title": {
"en": "Concert livestream"
},
"content_type": "link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"description": {
"en": "Watch our event live here on YouTube!"
},
"all_products": true,
"limit_products": [],
"available_from": "2020-03-22T23:00:00Z",
"available_until": null,
"position": 1
}
]
}
:query page: The page number in case of a multi-page result set, default is 1
:param organizer: The ``slug`` field of a valid organizer
:param event: The ``slug`` field of the event to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer or event does not exist **or** you have no permission to view it.
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/digitalcontents/(id)/
Returns information on one content item, identified by its ID.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/events/sampleconf/digitalcontents/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"id": 1,
"subevent": null,
"title": {
"en": "Concert livestream"
},
"content_type": "link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"description": {
"en": "Watch our event live here on YouTube!"
},
"all_products": true,
"limit_products": [],
"available_from": "2020-03-22T23:00:00Z",
"available_until": null,
"position": 1
}
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:param id: The ``id`` field of the content to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event/content does not exist **or** you have no permission to view it.
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/digitalcontents/
Create a new digital content.
**Example request**:
.. sourcecode:: http
POST /api/v1/organizers/bigevents/events/sampleconf/digitalcontents/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
Content-Length: 166
{
"subevent": null,
"title": {
"en": "Concert livestream"
},
"content_type": "link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"description": {
"en": "Watch our event live here on YouTube!"
},
"all_products": true,
"limit_products": [],
"available_from": "2020-03-22T23:00:00Z",
"available_until": null,
"position": 1
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 201 Created
Vary: Accept
Content-Type: application/json
{
"id": 2,
"subevent": null,
"title": {
"en": "Concert livestream"
},
"content_type": "link",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"description": {
"en": "Watch our event live here on YouTube!"
},
"all_products": true,
"limit_products": [],
"available_from": "2020-03-22T23:00:00Z",
"available_until": null,
"position": 1
}
:param organizer: The ``slug`` field of the organizer to create new content for
:param event: The ``slug`` field of the event to create new content for
:statuscode 201: no error
:statuscode 400: The content could not be created due to invalid submitted data.
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to create digital contents.
.. http:patch:: /api/v1/organizers/(organizer)/events/(event)/digitalcontents/(id)/
Update a content. You can also use ``PUT`` instead of ``PATCH``. With ``PUT``, you have to provide all fields of
the resource, other fields will be reset to default. With ``PATCH``, you only need to provide the fields that you
want to change.
**Example request**:
.. sourcecode:: http
PATCH /api/v1/organizers/bigevents/events/sampleconf/digitalcontents/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
Content-Length: 34
{
"url": "https://mywebsite.com"
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript
{
"id": 2,
"subevent": null,
"title": {
"en": "Concert livestream"
},
"content_type": "link",
"url": "https://mywebsite.com",
"description": {
"en": "Watch our event live here on YouTube!"
},
"all_products": true,
"limit_products": [],
"available_from": "2020-03-22T23:00:00Z",
"available_until": null,
"position": 1
}
:param organizer: The ``slug`` field of the organizer to modify
:param event: The ``slug`` field of the event to modify
:param id: The ``id`` field of the content to modify
:statuscode 200: no error
:statuscode 400: The content could not be modified due to invalid submitted data.
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event/content does not exist **or** you have no permission to change it.
.. http:delete:: /api/v1/organizers/(organizer)/events/(event)/digitalcontents/(id)/
Delete a digital content.
**Example request**:
.. sourcecode:: http
DELETE /api/v1/organizers/bigevents/events/sampleconf/digitalcontents/1/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 204 No Content
Vary: Accept
:param organizer: The ``slug`` field of the organizer to modify
:param event: The ``slug`` field of the event to modify
:param id: The ``id`` field of the content to delete
:statuscode 204: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event/content does not exist **or** you have no permission to change it
.. _JSON Web Token: https://en.wikipedia.org/wiki/JSON_Web_Token
+2
View File
@@ -15,3 +15,5 @@ If you want to **create** a plugin, please go to the
ticketoutputpdf
badges
campaigns
digital
webinar
-8
View File
@@ -24,14 +24,6 @@ item_assignments list of objects Products this l
└ item integer Item ID
===================================== ========================== =======================================================
.. versionchanged:: 1.16
This resource has been added.
.. versionchanged:: 2.3
The ``item_assignments.sales_channel`` field has been added.
Endpoints
---------
+43
View File
@@ -0,0 +1,43 @@
pretix Webinar
==============
Fetch host URLs
---------------
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/webinars/
Returns a list of all currently available webinar calls configured for an event.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/events/sampleconf/webinars/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
[
{
"name": "Webinar B Sept. 8th, 2020",
"hosturl": "http://pretix.eu/demo/museum/webinar/host/a9aded3d7bd4df60/30611a34f9fee5d3/"
},
{
"name": "Webinar A Sept. 8, 2020",
"hosturl": "http://pretix.eu/demo/museum/webinar/host/e714x7d4a4a36a04/b9cc444665xxx757/"
}
]
:query subevent: Limit the result to the webinar(s) for a specific subevent.
:param organizer: The ``slug`` field of a valid organizer
:param event: The ``slug`` field of the event to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer or event does not exist **or** you have no permission to view it.
+2 -1
View File
@@ -3,7 +3,8 @@ sphinx==2.3.*
sphinx-rtd-theme
sphinxcontrib-httpdomain
sphinxcontrib-images
sphinxcontrib-spelling
sphinxcontrib-spelling==4.*
sphinxemoji
pygments-markdown-lexer
# See https://github.com/rfk/pyenchant/pull/130
git+https://github.com/raphaelm/pyenchant.git@patch-1#egg=pyenchant
Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Some files were not shown because too many files have changed in this diff Show More