From 37d0a0de22e0708338fcf7a3944a6919c5b8e548 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 29 Sep 2025 09:37:14 +0200 Subject: [PATCH 001/134] Bump version to 2024.9.0.dev0 --- src/pretix/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/__init__.py b/src/pretix/__init__.py index 1c6c57b98..4a748f45b 100644 --- a/src/pretix/__init__.py +++ b/src/pretix/__init__.py @@ -19,4 +19,4 @@ # You should have received a copy of the GNU Affero General Public License along with this program. If not, see # . # -__version__ = "2025.8.0" +__version__ = "2024.9.0.dev0" -- 2.49.1 From cbe18608e4885b51fc9db845b43078fc3b77ef1a Mon Sep 17 00:00:00 2001 From: Yasunobu YesNo Kawaguchi Date: Fri, 26 Sep 2025 09:07:06 +0200 Subject: [PATCH 002/134] Translations: Update Japanese Currently translated at 100.0% (6068 of 6068 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/ powered by weblate --- src/pretix/locale/ja/LC_MESSAGES/django.po | 171 ++++++++++----------- 1 file changed, 83 insertions(+), 88 deletions(-) diff --git a/src/pretix/locale/ja/LC_MESSAGES/django.po b/src/pretix/locale/ja/LC_MESSAGES/django.po index 0c9e7a158..831a20cd5 100644 --- a/src/pretix/locale/ja/LC_MESSAGES/django.po +++ b/src/pretix/locale/ja/LC_MESSAGES/django.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-25 19:00+0000\n" -"Last-Translator: Aki \n" +"POT-Creation-Date: 2025-08-19 16:35+0000\n" +"PO-Revision-Date: 2025-09-26 11:10+0000\n" +"Last-Translator: Yasunobu YesNo Kawaguchi \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -444,7 +444,7 @@ msgstr "新しい注文には承認が必要です" #: pretix/api/webhooks.py:270 pretix/base/notifications.py:245 msgid "Order marked as paid" -msgstr "注文が支払い済みとして設定されました" +msgstr "支払い済みとしてマークされた注文" #: pretix/api/webhooks.py:274 pretix/base/models/checkin.py:355 #: pretix/base/notifications.py:251 @@ -6219,7 +6219,7 @@ msgstr "保留" #: pretix/base/models/orders.py:203 pretix/base/payment.py:568 #: pretix/base/services/invoices.py:486 msgid "paid" -msgstr "支払済み" +msgstr "支払い済み" #: pretix/base/models/orders.py:204 pretix/control/forms/filter.py:1602 #: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:37 @@ -6285,7 +6285,7 @@ msgstr "承認保留中" #: pretix/base/models/orders.py:416 msgctxt "order state" msgid "pending (confirmed)" -msgstr "支払い済みの注文" +msgstr "保留中(確認済み)" #: pretix/base/models/orders.py:418 msgid "canceled (paid fee)" @@ -6385,7 +6385,7 @@ msgstr "作成済み" #: pretix/base/models/orders.py:2124 msgctxt "refund_state" msgid "in transit" -msgstr "輸送中" +msgstr "配送中" #: pretix/base/models/orders.py:2125 msgctxt "refund_state" @@ -7275,7 +7275,7 @@ msgstr "新しい注文があり、承認が必要です:{order.code}" #: pretix/base/notifications.py:246 #, python-brace-format msgid "Order {order.code} has been marked as paid." -msgstr "注文{order.code}は支払い済みとマークされました。" +msgstr "注文 {order.code} が支払い済みとしてマークされました。" #: pretix/base/notifications.py:252 #, python-brace-format @@ -7574,9 +7574,8 @@ msgstr "手動支払い" msgid "" "In test mode, you can just manually mark this order as paid in the backend " "after it has been created." -msgstr "" -"テストモードでは、作成後にバックエンドでこの注文を手動で支払い済みにマークす" -"ることができます。" +msgstr "テストモードでは、注文が作成された後、バックエンドでこの注文を手動で支払い済" +"みとしてマークできます。" #: pretix/base/payment.py:1240 pretix/base/payment.py:1427 #: pretix/plugins/banktransfer/payment.py:149 @@ -9727,9 +9726,8 @@ msgstr "一部支払い済みの請求書に支払い済み金額を表示" msgid "" "If an invoice has already been paid partially, this option will add the paid " "and pending amount to the invoice." -msgstr "" -"もし請求書が部分的に支払われている場合、このオプションは支払済みと未払いの金" -"額を請求書に追加します。" +msgstr "請求書が既に部分的に支払われている場合、このオプションは支払い済み金額と保留" +"中金額を請求書に追加します。" #: pretix/base/settings.py:641 msgid "Show free products on invoices" @@ -9933,10 +9931,10 @@ msgid "" "methods. Please note that for technical reasons, the actual time frame might " "be a few minutes longer before the order is marked as expired." msgstr "" -"注文後の支払い期限は、ユーザーが予約を保持するために持っている分数です。これ" -"はリアルタイムの支払い方法のみを提供している場合にのみ使用してください。技術" -"的な理由から、実際の時間枠が注文が期限切れとマークされる前に数分長くなること" -"がありますので、ご注意ください。" +"注文後、ユーザーが予約を保持するために支払いを完了しなければならない時間(分" +")。リアルタイム支払い方法のみを提供する場合のみ使用してください。技術的な理" +"由により、注文が期限切れとしてマークされるまでの実際の時間枠は数分長くなる場" +"合があることにご注意ください。" #: pretix/base/settings.py:934 msgid "Last date of payments" @@ -10065,7 +10063,7 @@ msgstr "ユーザーのリクエストに応じて自動的に" #: pretix/base/settings.py:1082 pretix/base/settings.py:1095 msgid "Automatically on user request for paid orders" -msgstr "支払い済み注文をユーザのリクエストに応じて自動的に" +msgstr "支払い済み注文に対してユーザーの要求時に自動的に" #: pretix/base/settings.py:1083 msgid "Automatically for all created orders" @@ -10491,8 +10489,8 @@ msgid "" "\"admission ticket\"in the product settings. You can also turn off ticket " "issuing in every product separately." msgstr "" -"オフにすると、チケットは製品設定で「入場券」としてマークされた製品にのみ発行" -"されます。また、個々の製品ごとにチケットの発行をオフにすることもできます。" +"無効にした場合、チケットは商品設定で「入場券」としてマークされた商品に対して" +"のみ発行されます。各商品で個別にチケット発行を無効にすることも可能です。" #: pretix/base/settings.py:1618 msgid "Generate tickets for pending orders" @@ -10502,9 +10500,8 @@ msgstr "保留中の注文のチケットを生成します" msgid "" "If turned off, ticket downloads are only possible after an order has been " "marked as paid." -msgstr "" -"電源を切った場合、チケットのダウンロードは、注文が支払い済みとマークされた後" -"にのみ可能です。" +msgstr "無効にした場合、チケットのダウンロードは注文が支払い済みとしてマークされた後" +"にのみ可能になります。" #: pretix/base/settings.py:1630 msgid "Do not issue ticket before email address is validated" @@ -10760,15 +10757,14 @@ msgstr "その後のキャンセルは許可しない" #: pretix/base/settings.py:1912 msgid "Customers can cancel their paid orders" -msgstr "お客様は支払い済みの注文をキャンセル可能" +msgstr "顧客は支払い済み注文をキャンセルできます" #: pretix/base/settings.py:1913 msgid "" "Paid money will be automatically paid back if the payment method allows it. " "Otherwise, a manual refund will be created for you to process manually." -msgstr "" -"払われた金額は、決済方法が対応している場合は自動的に払い戻されます。対応して" -"いない場合は、手動で処理するための手動払い戻しが作成されます。" +msgstr "決済方法が対応している場合、支払われた金額は自動的に返金されます。対応してい" +"ない場合は、手動で処理するための手動返金が作成されます。" #: pretix/base/settings.py:1926 pretix/control/forms/orders.py:909 msgid "Keep a fixed cancellation fee" @@ -10799,9 +10795,9 @@ msgid "" "However, if you want us to help keep the lights on here, please consider " "using the slider below to request a smaller refund. Thank you!" msgstr "" -"ただし、私たちがここで運営を続けられるよう支援していただける場合は、下のスラ" -"イダーを使用してより少ない払い戻し金額をリクエストすることをご検討ください。" -"ありがとうございます!" +"ただし、ここでサービスを継続できるようサポートしていただける場合は、以下のス" +"ライダーを使用してより少額の返金を選択していただくことをご検討ください。あり" +"がとうございます!" #: pretix/base/settings.py:1969 msgid "Voluntary lower refund explanation" @@ -13129,7 +13125,7 @@ msgstr "お客様は無料または未払いの注文をキャンセルするこ #: pretix/base/timeline.py:155 msgctxt "timeline" msgid "Customers can no longer cancel paid orders" -msgstr "お客様はもはや支払い済みの注文をキャンセルすることができません" +msgstr "顧客は支払い済み注文をキャンセルできなくなりました" #: pretix/base/timeline.py:167 msgctxt "timeline" @@ -13563,9 +13559,8 @@ msgstr "チェックアウトメールの販売チャネル" msgid "" "The order placed and paid emails will only be send to orders from these " "sales channels. The online shop must be enabled." -msgstr "" -"注文済みおよび支払い済みメールは、これらの販売チャネルからの注文にのみ送信さ" -"れます。オンラインショップを有効にする必要があります。" +msgstr "注文完了メールおよび支払い完了メールは、これらの販売チャネルからの注文にのみ" +"送信されます。オンラインショップを有効にする必要があります。" #: pretix/control/forms/event.py:977 msgid "" @@ -13919,9 +13914,9 @@ msgid "" "then import your bank statements to process the payments within pretix, or " "mark them as paid manually." msgstr "" -"お客様には、お客様の口座に送金するよう指示されます。その後、pretix内で銀行取" -"引明細をインポートして支払いを処理するか、手動で支払い済みとしてマークするこ" -"とができます。" +"顧客にはあなたのアカウントに送金するよう指示されます。その後、銀行取引明細書" +"をインポートしてpretix内で支払いを処理するか、手動で支払い済みとしてマークで" +"きます。" #: pretix/control/forms/event.py:1781 #: pretix/control/templates/pretixcontrol/event/quick_setup.html:45 @@ -13962,7 +13957,7 @@ msgstr "支払われた(または支払われた手数料でキャンセルさ #: pretix/control/forms/filter.py:221 #: pretix/control/templates/pretixcontrol/items/question.html:27 msgid "Paid or confirmed" -msgstr "支払い済みの注文" +msgstr "支払い済みまたは確認済み" #: pretix/control/forms/filter.py:222 #: pretix/control/templates/pretixcontrol/datasync/control_order_info.html:47 @@ -13976,7 +13971,7 @@ msgstr "保留中" #: pretix/control/forms/filter.py:223 #: pretix/control/templates/pretixcontrol/items/question.html:29 msgid "Pending or paid" -msgstr "保留中または支払済" +msgstr "保留中または支払い済み" #: pretix/control/forms/filter.py:225 msgid "Cancellations" @@ -14032,7 +14027,7 @@ msgstr "未払い(ただし、確認済み)" #: pretix/control/forms/filter.py:239 msgid "Pending (but fully paid)" -msgstr "保留中(ただし支払済み)" +msgstr "保留中(ただし完全支払い済み)" #: pretix/control/forms/filter.py:240 msgid "Pending (but no current payment)" @@ -14144,7 +14139,7 @@ msgstr "作成された支払(まで)" #: pretix/control/forms/filter.py:1072 msgid "Paid from" -msgstr "支払い済みの注文" +msgstr "支払い元" #: pretix/control/forms/filter.py:1077 msgid "Paid until" @@ -15060,7 +15055,7 @@ msgstr "グループ化列に基づいて複数行を同じ注文にまとめま #: pretix/control/forms/modelimport.py:87 msgid "Create orders as fully paid" -msgstr "注文を完全に支払い済みにする" +msgstr "注文を完全支払い済みとして作成" #: pretix/control/forms/modelimport.py:88 msgid "Create orders as pending and still require payment" @@ -15092,13 +15087,12 @@ msgid "" "deadline arrives, since we expect that you want to collect the amount " "somehow and not auto-cancel the order." msgstr "" -"このボックスをチェックすると、この注文はまだ支払われていないにもかかわらず、" -"ほとんどの目的で支払い済みの注文のように振る舞います。これは、お客様がイベン" -"トの設定に関係なくすでにチケットをダウンロードして使用できることを意味し、一" -"部のプラグインによって支払い済みとして扱われる可能性があります。このボックス" -"をチェックすると、支払い期限が到達してもこの注文は自動的に「期限切れ」にマー" -"クされません。なぜなら、金額をどうにかして集めたいと思っていると予想されるた" -"め、注文を自動的にキャンセルしたくないからです。" +"このボックスをチェックすると、まだ支払いが完了していなくても、ほとんどの目的" +"においてこの注文は支払い済み注文として動作します。これにより、イベント設定に" +"関係なく顧客がすでにチケットをダウンロードして使用でき、一部のプラグインによ" +"って支払い済みとして扱われる場合があります。これをチェックした場合、何らかの" +"方法で金額を回収したいと考えているため注文が自動キャンセルされることはなく、" +"支払い期限が到来してもこの注文は自動的に「期限切れ」としてマークされません。" #: pretix/control/forms/orders.py:94 msgid "Overbook quota" @@ -16376,7 +16370,7 @@ msgstr "注文の詳細が変更されました。" #: pretix/control/logdisplay.py:500 msgid "The order has been marked as unpaid." -msgstr "注文は未払いとしてマークされています。" +msgstr "注文が未払いとしてマークされました。" #: pretix/control/logdisplay.py:501 msgid "The order's secret has been changed." @@ -16400,7 +16394,7 @@ msgstr "注文は期限切れとしてマークされました。" #: pretix/control/logdisplay.py:506 pretix/control/views/orders.py:1469 msgid "The order has been marked as paid." -msgstr "注文は支払い済みとマークされました。" +msgstr "注文が支払い済みとしてマークされました。" #: pretix/control/logdisplay.py:507 msgid "The cancellation request has been deleted." @@ -17324,7 +17318,7 @@ msgstr "支払い{local_id}が失敗しました。" #: pretix/control/logdisplay.py:914 #, python-brace-format msgid "The order could not be marked as paid: {message}" -msgstr "注文は支払い済みとしてマークされませんでした:{message}" +msgstr "注文を支払い済みとしてマークできませんでした: {message}" #: pretix/control/logdisplay.py:915 msgid "The order has been overpaid." @@ -18419,7 +18413,7 @@ msgstr "結果" #: pretix/control/templates/pretixcontrol/order/index.html:432 #, python-format msgid "Automatically marked not present: %(date)s" -msgstr "自動的にマークされていません:%(date)s" +msgstr "自動的に不参加とマーク済み: %(date)s" #: pretix/control/templates/pretixcontrol/checkin/checkins.html:82 #: pretix/control/templates/pretixcontrol/order/index.html:437 @@ -19229,9 +19223,9 @@ msgid "" "take manual action. However, you have currently turned off notifications for " "this event." msgstr "" -"ユーザーが支払い済み注文のキャンセルを要求し、選択された決済方法などの理由で" -"自動的に払い戻しができない場合、手動での対応が必要になります。ただし、このイ" -"ベントの通知を現在オフにしています。" +"ユーザーが支払い済み注文のキャンセルを要求し、選択された支払い方法などの理由" +"により自動的に返金できない場合、手動による対応が必要になります。しかし、この" +"イベントの通知は現在無効になっています。" #: pretix/control/templates/pretixcontrol/event/cancel.html:46 #: pretix/control/templates/pretixcontrol/user/settings.html:29 @@ -19566,10 +19560,10 @@ msgid "" "arrived. You should review the cases and consider either refunding the " "customer or creating more space." msgstr "" -"このイベントには、支払い済みとマークされていない完全支払い済み注文が含まれています。これは、支払いが到着した時点で枠が残っていなかったこ" -"とが原因と考えられます。該当するケースを確認し、顧客への払い戻しまたは追加枠" -"の作成を検討してください。" +"このイベントには、支払いが到着した時点でクォータが残っていなかったため、支払" +"い済みとしてマークされていない完全に支払い済みの注文が含まれ" +"ています。個別に確認し、顧客への払い戻しまたはより多くの枠の確保を検討してく" +"ださい。" #: pretix/control/templates/pretixcontrol/event/index.html:79 msgid "Show affected orders" @@ -19758,9 +19752,9 @@ msgid "" "As long as the shop is in test mode, all orders that are created are marked " "as test orders and can be deleted again." msgstr "" -"テスト注文を行いたい場合は、ショップのテストモードを有効にすることができま" -"す。ショップがテストモードにある限り、作成されたすべての注文はテスト注文とし" -"てマークされ、再度削除することができます。" +"テスト注文を行いたい場合は、ショップのテストモードを有効にできます。ショップ" +"がテストモード中の間、作成されるすべての注文はテスト注文としてマークされ、再" +"度削除できます。" #: pretix/control/templates/pretixcontrol/event/live.html:104 msgid "" @@ -21799,7 +21793,7 @@ msgstr "質問を編集" #: pretix/plugins/reports/exporters.py:397 #: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:23 msgid "Paid" -msgstr "支払済み" +msgstr "支払い済み" #: pretix/control/templates/pretixcontrol/items/question.html:66 msgid "No matching answers found." @@ -22548,7 +22542,7 @@ msgstr "拒絶" #: pretix/control/templates/pretixcontrol/order/index.html:58 #: pretix/control/templates/pretixcontrol/order/pay_complete.html:37 msgid "Mark as paid" -msgstr "支払済みを記録する" +msgstr "支払い済みとしてマーク" #: pretix/control/templates/pretixcontrol/order/index.html:73 #: pretix/control/templates/pretixcontrol/order/reactivate.html:5 @@ -22953,7 +22947,7 @@ msgstr "カレンダーの招待" #: pretix/control/templates/pretixcontrol/order/pay.html:5 #: pretix/control/templates/pretixcontrol/order/pay.html:9 msgid "Mark order as paid" -msgstr "注文を支払い済みにします" +msgstr "注文を支払い済みとしてマーク" #: pretix/control/templates/pretixcontrol/order/pay.html:20 msgid "Do you really want to create a manual payment for this order?" @@ -22990,9 +22984,9 @@ msgid "" "products in the order are still available. If the order is pending payment, " "the expiry date will be reset." msgstr "" -"注文を再度アクティブにすることで、そのキャンセルを取り消し、保留中または支払" -"済みの注文に戻すことができます。これは、注文内のすべての商品がまだ利用可能で" -"ある限りのみ可能です。注文が支払い保留中の場合、有効期限がリセットされます。" +"注文を再有効化すると、キャンセルが取り消され、保留中または支払い済みの注文に" +"戻ります。これは、注文内のすべての商品がまだ利用可能である限り可能です。注文" +"が支払い保留中の場合、有効期限がリセットされます。" #: pretix/control/templates/pretixcontrol/order/reactivate.html:34 msgid "Reactivate" @@ -23041,9 +23035,9 @@ msgid "" "refunds will be created as pending refunds, you can then later mark them as " "done once you actually transferred the money back to the customer." msgstr "" -"自動払い戻しに選択した支払いについては、直ちに関連する決済事業者に払い戻し要" -"求が送信されます。手動払い戻しは保留中の払い戻しとして作成され、実際に顧客へ" -"の資金返金が完了した後で完了済みとしてマークできます。" +"自動払い戻しに選択した支払いは、該当する決済プロバイダーに払い戻し要求が即座" +"に通知されます。手動払い戻しは保留中の払い戻しとして作成され、実際に顧客に送" +"金した後で完了済みとしてマークできます。" #: pretix/control/templates/pretixcontrol/order/refund_choose.html:32 msgid "Refund to original payment method" @@ -23218,7 +23212,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:5 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:7 msgid "Modify orders" -msgstr "支払い済みの注文" +msgstr "注文を変更" #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:12 #, python-format @@ -23653,7 +23647,7 @@ msgstr "フィルターを除去" #: pretix/control/templates/pretixcontrol/orders/index.html:145 #: pretix/control/templates/pretixcontrol/organizers/customer.html:207 msgid "Order paid / total" -msgstr "支払済の注文 / 合計" +msgstr "支払い済みの注文 / 合計" #: pretix/control/templates/pretixcontrol/orders/index.html:176 #: pretix/control/templates/pretixcontrol/organizers/devices.html:109 @@ -25733,7 +25727,7 @@ msgstr "開始" #: pretix/control/templates/pretixcontrol/subevents/index.html:176 msgid "Show orders" -msgstr "支払い済みの注文" +msgstr "注文を表示" #: pretix/control/templates/pretixcontrol/subevents/index.html:187 msgctxt "subevent" @@ -26781,11 +26775,11 @@ msgstr "選択されたチェックインが元に戻されました。" #: pretix/control/views/checkin.py:283 msgid "The selected tickets have been marked as checked out." -msgstr "選択されたチケットはチェックアウト済みとしてマークされました。" +msgstr "選択されたチケットがチェックアウト済みとしてマークされました。" #: pretix/control/views/checkin.py:285 msgid "The selected tickets have been marked as checked in." -msgstr "選択されたチケットはチェックイン済みとしてマークされました。" +msgstr "選択されたチケットがチェックイン済みとしてマークされました。" #: pretix/control/views/checkin.py:374 msgid "The new check-in list has been created." @@ -27375,10 +27369,10 @@ msgid "" "the domain. You can do so through the DNS settings at the provider you " "registered your domain with." msgstr "" -"使用しようとしているドメインのSPFレコードが見つかりませんでした。これは、ほと" -"んどのメールが拒否されるかスパムとしてマークされる可能性が非常に高いことを意" -"味します。ドメインにSPFレコードを設定することを強く推奨します。これは、ドメイ" -"ンを登録したプロバイダーのDNS設定で行うことができます。" +"使用しようとしているドメインに設定されたSPFレコードが見つかりませんでした。こ" +"れは、ほとんどのメールが拒否されるかスパムとしてマークされる可能性が非常に高" +"いことを意味します。ドメインにSPFレコードを設定することを強く推奨します。これ" +"は、ドメインを登録したプロバイダーのDNS設定から行えます。" #: pretix/control/views/mailsetup.py:207 msgid "" @@ -28658,7 +28652,7 @@ msgstr "新しい注文が入りました" #: pretix/plugins/autocheckin/models.py:37 msgid "After order was paid" -msgstr "支払い済みと表示された商品" +msgstr "注文の支払い後" #: pretix/plugins/autocheckin/models.py:48 msgid "" @@ -28733,7 +28727,7 @@ msgstr "新しいチェックインルールを作成" #: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:32 msgid "Payment methods" -msgstr "支払い済みの注文" +msgstr "支払い方法" #: pretix/plugins/autocheckin/views.py:119 pretix/plugins/sendmail/views.py:603 msgid "Your rule has been created." @@ -29613,8 +29607,9 @@ msgid_plural "" "You are trying to download a refund export from %(date)s with %(cnt)s order " "and a total of %(sum)s." msgstr[0] "" -"%(date)s 日間、 %(cnt)s 件の注文に対する、合計 %(sum)s件の払戻し情報のエクス" -"ポートファイルのダウンロードしようとしています。" +"%(date)s 日間、 %(cnt)s 件の注文に対する、合計 " +"%(sum)s件の払い戻し情報のエクスポートファイルのダウンロードしようとしています" +"。" #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/sepa_export.html:23 msgid "" @@ -29814,7 +29809,7 @@ msgstr "" #: pretix/plugins/checkinlists/exporters.py:374 msgctxt "tablehead" msgid "paid" -msgstr "支払済み" +msgstr "支払い済み" #: pretix/plugins/checkinlists/exporters.py:477 msgid "" @@ -34541,7 +34536,7 @@ msgstr "チケットの変更を確認してください。" #: pretix/presale/templates/pretixpresale/event/position_modify.html:5 #: pretix/presale/templates/pretixpresale/event/position_modify.html:8 msgid "Modify ticket" -msgstr "支払い済みの注文" +msgstr "チケットを変更" #: pretix/presale/templates/pretixpresale/event/resend_link.html:4 #: pretix/presale/templates/pretixpresale/event/resend_link.html:11 -- 2.49.1 From af2d35cc5a17c2b0b3117b584e6e8171bbd21cb3 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 26 Sep 2025 15:01:41 +0200 Subject: [PATCH 003/134] Translations: Update German Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/ powered by weblate --- src/pretix/locale/de/LC_MESSAGES/django.po | 74 +++++++++------------- 1 file changed, 29 insertions(+), 45 deletions(-) diff --git a/src/pretix/locale/de/LC_MESSAGES/django.po b/src/pretix/locale/de/LC_MESSAGES/django.po index 8cf2ef6b8..730d99ff1 100644 --- a/src/pretix/locale/de/LC_MESSAGES/django.po +++ b/src/pretix/locale/de/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-23 16:13+0000\n" +"PO-Revision-Date: 2025-09-26 13:02+0000\n" "Last-Translator: Raphael Michel \n" "Language-Team: German \n" @@ -808,28 +808,23 @@ msgstr "" "Sie zunächst die E-Mail-Adresse in Ihrem Kundenkonto." #: pretix/base/datasync/datasync.py:255 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" -"Feld \"{field_name}\" ist nicht gültig für {available_inputs}. Bitte prüfen " -"Sie die Einstellungen für {provider_name}." +"Feld \"{field_name}\" existiert nicht. Bitte prüfen Sie die Einstellungen " +"für {provider_name}." #: pretix/base/datasync/datasync.py:262 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -"Feld \"{field_name}\" ist nicht gültig für {available_inputs}. Bitte prüfen " -"Sie die Einstellungen für {provider_name}." +"Feld \"{field_name}\" erfordert, {required_input}, aber nur " +"{available_inputs} sind vorhanden. Bitte prüfen Sie die Einstellungen für " +"{provider_name}." #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -3548,6 +3543,10 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"Diese PDF-Datei ist eine Sichtkopie der Rechnung und stellt keine Rechnung " +"für Umsatzsteuerzwecke dar. Die Rechnung wurde im XML-Format ausgestellt und " +"im Einklang mit den Regularien aus dem Dekret Nr. 89757/2018 vom 30. April " +"2018 des Direktors der Finanzbehörde übermittelt." #: pretix/base/invoicing/pdf.py:141 #, python-format @@ -3817,12 +3816,9 @@ msgid "Peppol participant ID" msgstr "Peppol-Teilnehmer-ID" #: pretix/base/invoicing/peppol.py:170 -#, fuzzy -#| msgctxt "italian_invoice" -#| msgid "Fiscal code" msgctxt "peppol_invoice" msgid "Visual copy" -msgstr "Steuernummer" +msgstr "Sichtkopie" #: pretix/base/invoicing/peppol.py:175 msgctxt "peppol_invoice" @@ -3831,6 +3827,9 @@ msgid "" "invoice for VAT purposes. The original invoice is issued in XML format and " "transmitted through the Peppol network." msgstr "" +"Diese PDF-Datei ist eine Sichtkopie der Rechnung und stellt keine Rechnung " +"für Umsatzsteuerzwecke dar. Die Originalrechnung wurde im XML-Format " +"ausgestellt und über das Peppol-Netzwerk übertragen." #: pretix/base/logentrytype_registry.py:43 msgid "" @@ -14406,10 +14405,8 @@ msgid "Canceled (fully or with paid fee)" msgstr "Storniert (komplett oder mit Gebühr)" #: pretix/control/forms/filter.py:228 -#, fuzzy -#| msgid "Cancel this position" msgid "Canceled (at least one position)" -msgstr "Diese Position stornieren" +msgstr "storniert (mindestens eine Position)" #: pretix/control/forms/filter.py:229 msgid "Cancellation requested" @@ -17149,10 +17146,9 @@ msgid "The voucher has been deleted." msgstr "Der Gutschein wurde gelöscht." #: pretix/control/logdisplay.py:584 -#, fuzzy, python-brace-format -#| msgid "The voucher has been sent to {email} through the waiting list." +#, python-brace-format msgid "The voucher has been assigned to {email} through the waiting list." -msgstr "Der Gutschein wurde über die Warteliste an {email} verschickt." +msgstr "Der Gutschein wurde über die Warteliste an {email} zugewiesen." #: pretix/control/logdisplay.py:593 #, python-brace-format @@ -27691,11 +27687,11 @@ msgstr "" "ausgeführt." #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 -#, fuzzy -#| msgid "The voucher \"{voucher}\" has been used in the meantime." msgid "" "The sync job could not be found. It may have been processed in the meantime." -msgstr "Der Gutschein \"{voucher}\" wurde zwischenzeitlich verwendet." +msgstr "" +"Der Synchronisationsauftrag wurde nicht gefunden. Möglicherweise wurde er " +"zwischenzeitlich bearbeitet." #: pretix/control/views/datasync.py:93 pretix/control/views/datasync.py:107 msgid "The sync job is already in progress." @@ -28689,12 +28685,12 @@ msgstr "" "im Anhang dieser E-Mail finden Sie einen neuen Bericht für {name}." #: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 -#, fuzzy -#| msgid "You do not have sufficient permission to perform this export." msgid "" "Your user account does not have sufficient permission to run this report, " "therefore you cannot schedule it." -msgstr "Sie haben keine Berechtigung, um diesen Export durchzuführen." +msgstr "" +"Sie haben nicht genug Berechtigungen um diesen Bericht auszuführen, daher " +"können Sie ihn nicht einplanen." #: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 msgid "" @@ -29061,17 +29057,13 @@ msgstr "" "Der Termin kann nicht gelöscht werden, da es bereits Bestellungen dafür gibt." #: pretix/control/views/subevents.py:203 -#, fuzzy -#| msgid "" -#| "The channel could not be deleted as some constraints (e.g. data created " -#| "by plug-ins) did not allow it." msgctxt "subevent" msgid "" "The date could not be deleted as some constraints (e.g. data created by plug-" "ins) did not allow it. The date was disabled instead." msgstr "" -"Der Verkaufskanal konnte nicht gelöscht werden, da einige Bedingungen (z.B. " -"von Plugins erstellte Daten) es nicht erlauben." +"Der Termin konnte nicht gelöscht werden, da einige Bedingungen (z.B. Daten " +"von Plugins) es verhindert haben. Der Termin wurde stattdessen deaktiviert." #: pretix/control/views/subevents.py:207 msgctxt "subevent" @@ -33875,18 +33867,12 @@ msgstr "" "Bestellung bestätigt werden kann und einen gültigen Vertrag darstellt." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:192 -#, fuzzy -#| msgid "" -#| "After you submitted your order using the button below, it will require " -#| "approval by the event organizer before it can be confirmed and forms a " -#| "valid contract." msgid "" "After you submitted your order using the button below, it will require " "approval by the event organizer." msgstr "" "Nachdem Sie Ihre Bestellung mit dem untenstehenden Button abgeschickt haben, " -"erfordert sie noch eine Freigabe durch den Veranstalter, bevor die " -"Bestellung bestätigt werden kann und einen gültigen Vertrag darstellt." +"erfordert sie noch eine Freigabe durch den Veranstalter." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:195 msgid "" @@ -36491,10 +36477,8 @@ msgid "The selected date does not exist in this event series." msgstr "Der ausgewählte Termin gehört nicht zu dieser Veranstaltungsreihe." #: pretix/presale/views/widget.py:412 -#, fuzzy -#| msgid "The selected seat \"{seat}\" is not available." msgid "The selected date is not available." -msgstr "Der ausgewählte Sitzplatz \"{seat}\" ist nicht verfügbar." +msgstr "Der gewählte Termin ist nicht verfügbar." #: pretix/presale/views/widget.py:476 #, python-format -- 2.49.1 From b8d09a15e267452c0df395c78ae026890bc75077 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 26 Sep 2025 15:02:35 +0200 Subject: [PATCH 004/134] Translations: Update German (informal) (de_Informal) Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/ powered by weblate --- .../locale/de_Informal/LC_MESSAGES/django.po | 74 ++++++++----------- 1 file changed, 29 insertions(+), 45 deletions(-) diff --git a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po index b65e3f724..c9a307659 100644 --- a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po +++ b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-23 16:13+0000\n" +"PO-Revision-Date: 2025-09-26 13:02+0000\n" "Last-Translator: Raphael Michel \n" "Language-Team: German (informal) \n" @@ -809,28 +809,23 @@ msgstr "" "zunächst die E-Mail-Adresse in deinem Kundenkonto." #: pretix/base/datasync/datasync.py:255 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" -"Feld \"{field_name}\" ist nicht gültig für {available_inputs}. Bitte prüfe " -"die Einstellungen für {provider_name}." +"Feld \"{field_name}\" existiert nicht. Bitte prüfe die Einstellungen für " +"{provider_name}." #: pretix/base/datasync/datasync.py:262 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -"Feld \"{field_name}\" ist nicht gültig für {available_inputs}. Bitte prüfe " -"die Einstellungen für {provider_name}." +"Feld \"{field_name}\" erfordert {required_input}, aber hat nur " +"{available_inputs} sind verfügbar. Bitte prüfe die Einstellungen für " +"{provider_name}." #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -3548,6 +3543,10 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"Diese PDF-Datei ist eine Sichtkopie der Rechnung und stellt keine Rechnung " +"für Umsatzsteuerzwecke dar. Die Rechnung wurde im XML-Format ausgestellt und " +"im Einklang mit den Regularien aus dem Dekret Nr. 89757/2018 vom 30. April " +"2018 des Direktors der Finanzbehörde übermittelt." #: pretix/base/invoicing/pdf.py:141 #, python-format @@ -3817,12 +3816,9 @@ msgid "Peppol participant ID" msgstr "Peppol-Teilnehmer-ID" #: pretix/base/invoicing/peppol.py:170 -#, fuzzy -#| msgctxt "italian_invoice" -#| msgid "Fiscal code" msgctxt "peppol_invoice" msgid "Visual copy" -msgstr "Steuernummer" +msgstr "Sichtkopie" #: pretix/base/invoicing/peppol.py:175 msgctxt "peppol_invoice" @@ -3831,6 +3827,9 @@ msgid "" "invoice for VAT purposes. The original invoice is issued in XML format and " "transmitted through the Peppol network." msgstr "" +"Diese PDF-Datei ist eine Sichtkopie der Rechnung und stellt keine Rechnung " +"für Umsatzsteuerzwecke dar. Die Originalrechnung wurde im XML-Format " +"ausgestellt und über das Peppol-Netzwerk übertragen." #: pretix/base/logentrytype_registry.py:43 msgid "" @@ -14382,10 +14381,8 @@ msgid "Canceled (fully or with paid fee)" msgstr "Storniert (komplett oder mit Gebühr)" #: pretix/control/forms/filter.py:228 -#, fuzzy -#| msgid "Cancel this position" msgid "Canceled (at least one position)" -msgstr "Diese Position stornieren" +msgstr "Storniert (mindestens eine Position)" #: pretix/control/forms/filter.py:229 msgid "Cancellation requested" @@ -17125,10 +17122,9 @@ msgid "The voucher has been deleted." msgstr "Der Gutschein wurde gelöscht." #: pretix/control/logdisplay.py:584 -#, fuzzy, python-brace-format -#| msgid "The voucher has been sent to {email} through the waiting list." +#, python-brace-format msgid "The voucher has been assigned to {email} through the waiting list." -msgstr "Der Gutschein wurde über die Warteliste an {email} verschickt." +msgstr "Der Gutschein wurde über die Warteliste an {email} zugewiesen." #: pretix/control/logdisplay.py:593 #, python-brace-format @@ -27650,11 +27646,11 @@ msgstr "" "ausgeführt." #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 -#, fuzzy -#| msgid "The voucher \"{voucher}\" has been used in the meantime." msgid "" "The sync job could not be found. It may have been processed in the meantime." -msgstr "Der Gutschein \"{voucher}\" wurde zwischenzeitlich verwendet." +msgstr "" +"Der Synchronisationsauftrag wurde nicht gefunden. Möglicherweise wurde er " +"zwischenzeitlich bearbeitet." #: pretix/control/views/datasync.py:93 pretix/control/views/datasync.py:107 msgid "The sync job is already in progress." @@ -28645,12 +28641,12 @@ msgstr "" "im Anhang dieser E-Mail findest du einen neuen Bericht für {name}." #: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 -#, fuzzy -#| msgid "You do not have sufficient permission to perform this export." msgid "" "Your user account does not have sufficient permission to run this report, " "therefore you cannot schedule it." -msgstr "Du hast nicht die nötige Berechtigung, um diesen Export durchzuführen." +msgstr "" +"Du hast nicht genug Berechtigungen um diesen Bericht auszuführen, daher " +"kannst du ihn nicht einplanen." #: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 msgid "" @@ -29017,17 +29013,13 @@ msgstr "" "Der Termin kann nicht gelöscht werden, da es bereits Bestellungen dafür gibt." #: pretix/control/views/subevents.py:203 -#, fuzzy -#| msgid "" -#| "The channel could not be deleted as some constraints (e.g. data created " -#| "by plug-ins) did not allow it." msgctxt "subevent" msgid "" "The date could not be deleted as some constraints (e.g. data created by plug-" "ins) did not allow it. The date was disabled instead." msgstr "" -"Der Verkaufskanal konnte nicht gelöscht werden, da einige Bedingungen (z.B. " -"von Plugins erstellte Daten) es nicht erlauben." +"Der Termin konnte nicht gelöscht werden, da einige Bedingungen (z.B. Daten " +"von Plugins) es verhindert haben. Der Termin wurde stattdessen deaktiviert." #: pretix/control/views/subevents.py:207 msgctxt "subevent" @@ -33820,18 +33812,12 @@ msgstr "" "Bestellung bestätigt werden kann und einen gültigen Vertrag darstellt." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:192 -#, fuzzy -#| msgid "" -#| "After you submitted your order using the button below, it will require " -#| "approval by the event organizer before it can be confirmed and forms a " -#| "valid contract." msgid "" "After you submitted your order using the button below, it will require " "approval by the event organizer." msgstr "" "Nachdem du deine Bestellung mit dem untenstehenden Button abgeschickt hast, " -"erfordert sie noch eine Freigabe durch den Veranstalter, bevor die " -"Bestellung bestätigt werden kann und einen gültigen Vertrag darstellt." +"erfordert sie noch eine Freigabe durch den Veranstalter." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:195 msgid "" @@ -36431,10 +36417,8 @@ msgid "The selected date does not exist in this event series." msgstr "Der ausgewählte Termin gehört nicht zu dieser Veranstaltungsreihe." #: pretix/presale/views/widget.py:412 -#, fuzzy -#| msgid "The selected seat \"{seat}\" is not available." msgid "The selected date is not available." -msgstr "Der ausgewählte Sitzplatz \"{seat}\" ist nicht verfügbar." +msgstr "Der gewählte Termin ist nicht verfügbar." #: pretix/presale/views/widget.py:476 #, python-format -- 2.49.1 From 21d084c3fad2e1f9751d508462c63d055bdbdc27 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 26 Sep 2025 14:55:36 +0200 Subject: [PATCH 005/134] Translations: Update Italian Currently translated at 37.2% (2261 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/ powered by weblate --- src/pretix/locale/it/LC_MESSAGES/django.po | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/it/LC_MESSAGES/django.po b/src/pretix/locale/it/LC_MESSAGES/django.po index 88294b930..2a76c81f3 100644 --- a/src/pretix/locale/it/LC_MESSAGES/django.po +++ b/src/pretix/locale/it/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-10 21:00+0000\n" -"Last-Translator: Davide Wayan Mores \n" +"PO-Revision-Date: 2025-09-26 13:02+0000\n" +"Last-Translator: Raphael Michel \n" "Language-Team: Italian \n" "Language: it\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.13.2\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -3588,6 +3588,10 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"Il presente documento pdf non costituisce fattura ai fini IVA. La fattura si " +"intende emessa nel formato xml trasmesso nei modi e termini di cui al " +"Provvedimento n. 89757/2018 del 30 aprile 2018 del direttore dell'Agenzia " +"delle Entrate." #: pretix/base/invoicing/pdf.py:141 #, python-format -- 2.49.1 From 7629bbbb6aac4208919350f9c3773f88a877645b Mon Sep 17 00:00:00 2001 From: Yasunobu YesNo Kawaguchi Date: Sat, 27 Sep 2025 11:52:17 +0200 Subject: [PATCH 006/134] Translations: Update Japanese Currently translated at 99.8% (6064 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/ powered by weblate --- src/pretix/locale/ja/LC_MESSAGES/django.po | 451 ++++++++++----------- 1 file changed, 206 insertions(+), 245 deletions(-) diff --git a/src/pretix/locale/ja/LC_MESSAGES/django.po b/src/pretix/locale/ja/LC_MESSAGES/django.po index 831a20cd5..9213e6c91 100644 --- a/src/pretix/locale/ja/LC_MESSAGES/django.po +++ b/src/pretix/locale/ja/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-19 16:35+0000\n" -"PO-Revision-Date: 2025-09-26 11:10+0000\n" +"PO-Revision-Date: 2025-09-27 16:00+0000\n" "Last-Translator: Yasunobu YesNo Kawaguchi \n" "Language-Team: Japanese \n" @@ -2589,7 +2589,7 @@ msgstr "注文コメント" #: pretix/base/exporters/orderlist.py:631 msgid "Add-on to position ID" -msgstr "ポジションIDの追加部分" +msgstr "ポジションIDのアドオン" #: pretix/base/exporters/orderlist.py:661 msgctxt "address" @@ -4334,8 +4334,8 @@ msgid "" "there is always exactly one matching add-on ticket. Ambiguous scans will be " "rejected.." msgstr "" -"スキャンは、チェックインリストが常に正確に1つの追加チケットに一致するように構" -"成されている場合にのみ可能です。曖昧なスキャンは拒否されます。" +"スキャンは、チェックインリストが常に正確に1つの一致するアドオンチケットが存在" +"するように構成されている場合にのみ可能です。曖昧なスキャンは拒否されます。" #: pretix/base/models/checkin.py:85 pretix/control/navigation.py:652 #: pretix/control/templates/pretixcontrol/organizers/gates.html:5 @@ -4607,7 +4607,7 @@ msgstr "特定の製品に申し込む" #: pretix/base/models/discount.py:110 msgid "Count add-on products" -msgstr "アドオン製品を数えます" +msgstr "アドオン製品をカウント" #: pretix/base/models/discount.py:111 pretix/base/models/discount.py:166 msgid "Discounts never apply to bundled products" @@ -4679,7 +4679,7 @@ msgstr "" #: pretix/base/models/discount.py:165 msgid "Apply to add-on products" -msgstr "アドオン製品に申し込む" +msgstr "アドオン製品に適用" #: pretix/base/models/discount.py:171 msgid "" @@ -4688,10 +4688,10 @@ msgid "" "to e.g. unlock a hidden product or gain access to sold-out quota will still " "receive the discount." msgstr "" -"このオプションがチェックされている場合、すでにバウチャーを使用して割引を受け" -"た商品には割引が適用されません。ただし、バウチャーを使用して隠し商品を解除し" -"たり、完売したクォータにアクセスするために使用する商品には引き続き割引が適用" -"されます。" +"このオプションがチェックされている場合、既にバウチャーによって割引を受けた製" +"品は割引されません。ただし、隠された製品のロック解除や売り切れクォータへのア" +"クセス権取得などの目的でのみバウチャーを使用する製品については、引き続き割引" +"が適用されます。" #: pretix/base/models/discount.py:177 msgctxt "subevent" @@ -4707,9 +4707,8 @@ msgstr "利用可能な開催日:終了日" msgid "" "You can either set a minimum number of matching products or a minimum value, " "not both." -msgstr "" -"一致する商品の最小数を設定するか、最小値を設定するかのどちらかを選択できます" -"が、両方を選択することはできません。" +msgstr "最低一致製品数または最低価格のいずれかを設定できますが、両方は設定できません" +"。" #: pretix/base/models/discount.py:219 msgid "" @@ -4737,9 +4736,8 @@ msgstr "" msgid "" "You cannot apply the discount to a different set of products if the discount " "is only valid for bookings of different dates." -msgstr "" -"もし割引が異なる日付の予約にのみ有効な場合、その割引を異なる商品セットに適用" -"することはできません。" +msgstr "異なる日程の予約限定の割引では、それとは異なる製品セットに割引を適用すること" +"はできません。" #: pretix/base/models/event.py:88 msgid "The end of the presale period has to be later than its start." @@ -4783,9 +4781,8 @@ msgstr "" msgid "" "Optional. No products will be sold after this date. If you do not set this " "value, the presale will end after the end date of your event." -msgstr "" -"任意です。この日付以降に商品は販売されません。この値を設定しない場合、前売り" -"はイベントの終了日後に終了します。" +msgstr "任意。この日付以降は製品の販売が停止されます。この値を設定しない場合、前売り" +"販売はイベントの終了日後に終了します。" #: pretix/base/models/event.py:635 pretix/base/models/event.py:1540 #: pretix/control/forms/subevents.py:94 @@ -5143,8 +5140,8 @@ msgid "" "their own. They can only be bought in combination with a product that has " "this category configured as a possible source for add-ons." msgstr "" -"選択された場合、このカテゴリに属する製品は単独で販売されません。このカテゴリ" -"をアドオンの可能なソースとして構成した製品との組み合わせでのみ購入できます。" +"選択すると、このカテゴリに属する製品は単独では販売されません。このカテゴリを" +"アドオンの可能なソースとして設定した製品と組み合わせた場合のみ購入できます。" #: pretix/base/models/items.py:114 pretix/base/models/items.py:159 #: pretix/control/forms/item.py:97 @@ -5178,7 +5175,7 @@ msgstr "クロスセリング条件" #: pretix/base/models/items.py:137 msgid "Cross-selling condition products" -msgstr "クロスセリングの関連商品" +msgstr "クロスセリング条件製品" #: pretix/base/models/items.py:143 #: pretix/control/templates/pretixcontrol/items/categories.html:3 @@ -5298,10 +5295,9 @@ msgid "" "have without the free price option. This will be ignored if a voucher is " "used that lowers the price." msgstr "" -"この価格は、入力フィールドのデフォルト値として使用されます。ユーザーはより低" -"い値を選択することができますが、無料価格オプションなしでこの商品の価格が下が" -"ることはありません。また、価格を下げるバウチャーが使用された場合は無視されま" -"す。" +"この価格は入力フィールドのデフォルト値として使用されます。ユーザーはより低い" +"値を選択できますが、自由価格オプションなしでこの製品が持つ価格を下回ることは" +"できません。価格を下げるバウチャーが使用された場合、この設定は無視されます。" #: pretix/base/models/items.py:527 msgid "Whether or not buying this product allows a person to enter your event" @@ -5772,7 +5768,7 @@ msgstr "" #: pretix/base/models/items.py:1477 msgid "Allow the same product to be selected multiple times" -msgstr "同じ商品を複数回選択できるようにする" +msgstr "同じ製品を複数回選択することを許可" #: pretix/base/models/items.py:1496 msgid "The add-on's category must belong to the same event as the item." @@ -6075,9 +6071,9 @@ msgid "" "that is added to each event but should not stop the event from being shown " "as sold out." msgstr "" -"これを有効にすると、イベントカレンダーでイベントの有効性を判定する際、この" -"クォータが無視されます。これは例えば、各イベントに追加されているが、イベント" -"が売り切れとして表示されることを妨げるべきではない商品などに有効です。" +"これを有効にすると、イベントカレンダーでイベントの空き状況を判定する際にこの" +"クォータは無視されます。これは例えば、各イベントに追加されるグッズなどで、イ" +"ベントが売り切れとして表示されることを妨げるべきでない場合に便利です。" #: pretix/base/models/items.py:2100 msgid "Close this quota permanently once it is sold out" @@ -6312,7 +6308,7 @@ msgstr "この注文はまだイベント主催者によって承認されてい #: pretix/base/models/orders.py:1060 #, python-brace-format msgid "The ordered product \"{item}\" is no longer available." -msgstr "注文した商品「{item}」はもう利用できません。" +msgstr "注文された製品「{item}」は利用できません。" #: pretix/base/models/orders.py:1061 #, python-brace-format @@ -6746,7 +6742,7 @@ msgstr "税金免除(理由なし)" #: pretix/base/models/tax.py:177 msgctxt "tax_code" msgid "Zero-rated goods" -msgstr "ゼロ税率の商品" +msgstr "ゼロ税率商品" #: pretix/base/models/tax.py:180 msgctxt "tax_code" @@ -6756,8 +6752,8 @@ msgstr "無料の輸出品のため、消費税やVATは課税されません" #: pretix/base/models/tax.py:183 msgctxt "tax_code" msgid "VAT exempt for EEA intra-community supply of goods and services" -msgstr "" -"EEA(欧州経済領域)内での商品やサービスの国内供給は、VAT(付加価値税)が免除" +msgstr "EEA(欧州経済領域)域内事業者間取引における商品・サービス供給のVAT(付加価値税" +")免税" #: pretix/base/models/tax.py:187 msgid "Special cases" @@ -7004,10 +7000,10 @@ msgid "" "usages in some cases can be lower than this limit, e.g. in case of " "cancellations." msgstr "" -"もし複数に設定されている場合、バウチャーは初回使用時にこの数の商品と引き換え" -"る必要があります。後の使用では、より少ない数の商品にも使用できます。ただし、" -"これは一部の場合において、例えばキャンセルの場合には、合計の使用回数がこの制" -"限よりも少なくなることを意味します。" +"複数(1を超える値)に設定した場合、バウチャーは初回使用時にこの数の製品と引き" +"換える必要があります。その後の使用では、より少ない数の製品にも使用できます。" +"ただし、キャンセルなどの場合には、合計使用回数がこの制限を下回ることがありま" +"す。" #: pretix/base/models/vouchers.py:217 msgid "" @@ -7082,17 +7078,15 @@ msgstr "異なるイベントに属するクォータを選択することはで #: pretix/base/models/vouchers.py:344 msgid "You cannot select a quota and a specific product at the same time." -msgstr "特定の商品とクォータを同時に選択することはできません。" +msgstr "クォータと特定の製品を同時に選択することはできません。" #: pretix/base/models/vouchers.py:347 msgid "" "You cannot select a product that is only available as an add-on product or " "as part of a bundle, since vouchers cannot be applied to add-on products or " "bundled products." -msgstr "" -"追加商品またはバンドル商品としてのみ利用可能な商品を選択することはできませ" -"ん。なぜなら、バウチャーは追加商品やバンドル商品に適用することができないから" -"です。" +msgstr "アドオン製品またはバンドルの一部としてのみ利用可能な製品は選択できません。バ" +"ウチャーはアドオン製品やバンドル製品には適用できないためです。" #: pretix/base/models/vouchers.py:351 msgid "You cannot select a product that belongs to a different event." @@ -7118,9 +7112,8 @@ msgstr "現在、アドオン製品のためのバウチャーを作成するこ msgid "" "You need to select a specific product or quota if this voucher should " "reserve tickets." -msgstr "" -"このバウチャーでチケットを予約する場合は、特定の商品やクォータを選択する必要" -"があります。" +msgstr "このバウチャーでチケットを予約する場合は、特定の製品またはクォータを選択する" +"必要があります。" #: pretix/base/models/vouchers.py:370 #, python-format @@ -7154,9 +7147,8 @@ msgstr "" msgid "" "You cannot create a voucher that blocks quota as the selected product or " "quota is currently sold out or completely reserved." -msgstr "" -"選択した商品やクォータが売り切れまたは完全に予約済みのため、クォータをブロッ" -"クするバウチャーを作成することはできません。" +msgstr "選択した製品・クォータが現在売り切れまたは完全に予約済みのため、クォータをブ" +"ロックするバウチャーを作成することはできません。" #: pretix/base/models/vouchers.py:507 #, python-brace-format @@ -7553,7 +7545,7 @@ msgstr "この決済プロバイダーは自動払い戻しに対応していま msgid "" "No payment is required as this order only includes products which are free " "of charge." -msgstr "支払いは必要ありません。この注文には無料の商品のみが含まれています。" +msgstr "この注文は無料の製品のみが含まれているため、支払いは不要です。" #: pretix/base/payment.py:1134 msgid "Free of charge" @@ -7696,7 +7688,7 @@ msgstr "製品の説明" #: pretix/base/pdf.py:134 pretix/base/services/tickets.py:99 #: pretix/control/views/event.py:889 pretix/control/views/pdf.py:95 msgid "Sample product description" -msgstr "サンプル商品説明" +msgstr "サンプル製品説明" #: pretix/base/pdf.py:138 msgid "Product name and variation" @@ -7712,7 +7704,7 @@ msgstr "製品のバリエーションの説明" #: pretix/base/pdf.py:147 msgid "Sample product variation description" -msgstr "サンプル商品のバリエーション説明" +msgstr "サンプル製品バリエーション説明" #: pretix/base/pdf.py:154 msgid "Ticket category" @@ -7724,11 +7716,11 @@ msgstr "123.45 EUR" #: pretix/base/pdf.py:165 msgid "Price including bundled products" -msgstr "バンドル商品を含む価格" +msgstr "バンドル製品を含む価格" #: pretix/base/pdf.py:174 msgid "Price including add-ons and bundled products" -msgstr "アドオンおよびバンドル商品を含む価格" +msgstr "アドオンおよびバンドル製品を含む価格" #: pretix/base/pdf.py:184 pretix/base/pdf.py:342 #: pretix/base/services/invoices.py:487 @@ -8172,7 +8164,7 @@ msgstr "" #: pretix/base/services/cart.py:105 pretix/presale/views/cart.py:262 msgid "You did not select any products." -msgstr "選択した商品がありません。" +msgstr "製品が選択されていません。" #: pretix/base/services/cart.py:106 msgid "Unknown cart position." @@ -8185,7 +8177,7 @@ msgstr "日付は指定されていません。" #: pretix/base/services/cart.py:108 pretix/base/services/orders.py:192 msgid "You selected a product which is not available for sale." -msgstr "選択した商品は販売されていません。" +msgstr "販売されていない製品が選択されています。" #: pretix/base/services/cart.py:110 msgid "" @@ -8232,17 +8224,14 @@ msgstr[0] "1つの注文には %s を超えるアイテムを選択すること msgid "You cannot select more than %(max)s item of the product %(product)s." msgid_plural "" "You cannot select more than %(max)s items of the product %(product)s." -msgstr[0] "" -"商品 %(product)sについて、 %(max)s 個を超えるアイテムを選択することはできませ" -"ん。" +msgstr[0] "製品%(product)sは%(max)s個を超えて選択することはできません。" #: pretix/base/services/cart.py:136 pretix/base/services/orders.py:1603 #, python-format msgid "You need to select at least %(min)s item of the product %(product)s." msgid_plural "" "You need to select at least %(min)s items of the product %(product)s." -msgstr[0] "" -"商品 %(product)sについて、最低でも %(min)s 件のアイテムを選択してください。" +msgstr[0] "製品%(product)sは最低%(min)s個選択する必要があります。" #: pretix/base/services/cart.py:141 #, python-format @@ -8364,9 +8353,8 @@ msgstr "" msgid "" "You already used this voucher code. Remove the associated line from your " "cart if you want to use it for a different product." -msgstr "" -"このバウチャーはすでに使用されています。別の商品に使用する場合は、関連する行" -"をカートから削除してください。" +msgstr "このバウチャーコードは既に使用されています。別の製品に使用したい場合は、関連" +"する行をカートから削除してください。" #: pretix/base/services/cart.py:182 msgid "This voucher is expired." @@ -8374,7 +8362,7 @@ msgstr "このバウチャーは期限切れです。" #: pretix/base/services/cart.py:183 msgid "This voucher is not valid for this product." -msgstr "このバウチャーはこの商品には有効ではありません。" +msgstr "このバウチャーはこの製品には有効ではありません。" #: pretix/base/services/cart.py:184 msgid "This voucher is not valid for this seat." @@ -8392,7 +8380,7 @@ msgstr "" #: pretix/base/services/cart.py:191 msgid "Your voucher is valid for a product that is currently not for sale." -msgstr "ご利用いただけるバウチャーは、現在販売されていない商品に有効です。" +msgstr "お客様のバウチャーは現在販売されていない製品に対して有効です。" #: pretix/base/services/cart.py:192 msgctxt "subevent" @@ -8401,7 +8389,7 @@ msgstr "このバウチャーはこのイベント日には有効ではありま #: pretix/base/services/cart.py:193 msgid "You need a valid voucher code to order this product." -msgstr "この商品を注文するには有効なバウチャーコードが必要です。" +msgstr "この製品を注文するには有効なバウチャーコードが必要です。" #: pretix/base/services/cart.py:194 msgctxt "subevent" @@ -8806,14 +8794,16 @@ msgstr "カレンダーの招待" msgid "" "You selected a membership for the product \"{product}\" which does not " "require a membership." -msgstr "選択した商品「{product}」にはメンバーシップが必要ありません。" +msgstr "製品「{product}」にメンバーシップを選択しましたが、この製品はメンバーシップを" +"必要としません。" #: pretix/base/services/memberships.py:116 #, python-brace-format msgid "" "You selected the product \"{product}\" which requires an active membership " "to be selected." -msgstr "選択した商品は「{product}」ですが、有効なメンバーシップが必要です。" +msgstr "製品「{product}」を選択しましたが、この製品はアクティブなメンバーシップの選択" +"が必要です。" #: pretix/base/services/memberships.py:149 msgid "" @@ -9032,9 +9022,8 @@ msgstr "" msgid "" "The voucher code used for one of the items in your cart has already been too " "often. We adjusted the price of the item in your cart." -msgstr "" -"お客様のカート内の商品の1つに使用されたバウチャーコードは既に多く使用されてい" -"ます。私たちはカート内の商品の価格を調整しました。" +msgstr "カートの商品の一つに使用されているバウチャーコードは既に使用回数を超えていま" +"す。カート内の商品価格を調整しました。" #: pretix/base/services/orders.py:175 msgid "" @@ -9089,7 +9078,7 @@ msgstr "" #: pretix/base/services/orders.py:207 msgid "Paid products not supported without a valid currency." -msgstr "有効な通貨がないと、有料商品はサポートされません。" +msgstr "有効な通貨がない場合、有料製品はサポートされません。" #: pretix/base/services/orders.py:223 msgid "The order was not canceled." @@ -9435,7 +9424,7 @@ msgstr "" #: pretix/base/settings.py:192 msgid "Activate re-usable media" -msgstr "再利用可能なメディアをアクティブにします" +msgstr "再利用可能メディアを有効化" #: pretix/base/settings.py:193 msgid "" @@ -9731,15 +9720,13 @@ msgstr "請求書が既に部分的に支払われている場合、このオプ #: pretix/base/settings.py:641 msgid "Show free products on invoices" -msgstr "請求書に無料商品を表示" +msgstr "請求書に無料製品を表示" #: pretix/base/settings.py:642 msgid "" "Note that invoices will never be generated for orders that contain only free " "products." -msgstr "" -"無料の商品のみを含む注文については、請求書は発行されませんことに注意してくだ" -"さい。" +msgstr "無料製品のみを含む注文については請求書は生成されませんので、ご注意ください。" #: pretix/base/settings.py:652 msgid "Show expiration date of order" @@ -9769,7 +9756,7 @@ msgstr "請求書を連番で生成" #: pretix/base/settings.py:676 msgid "If deactivated, the order code will be used in the invoice number." -msgstr "非アクティブ化された場合、注文コードは請求書番号に使用されます。" +msgstr "無効化されている場合、請求書番号に注文コードが使用されます。" #: pretix/base/settings.py:685 msgid "Invoice number prefix" @@ -9839,8 +9826,7 @@ msgstr "ユーザーのカート内のアイテムがユーザーによって予 #: pretix/base/settings.py:808 msgid "" "Directly redirect to check-out after a product has been added to the cart." -msgstr "" -"商品がカートに追加されたら直接チェックアウトにリダイレクトしてください。" +msgstr "製品がカートに追加された後、チェックアウトに直接リダイレクトする。" #: pretix/base/settings.py:817 msgid "End of presale text" @@ -9915,10 +9901,9 @@ msgid "" "some countries by civil law. This will not effect the last date of payments " "configured below." msgstr "" -"もしもこれがアクティブになっており、注文の支払い期日が土曜日または日曜日に終" -"了する場合、それは代わりに翌月曜日に移動されます。これは一部の国で民法によっ" -"て必要とされています。これは以下で設定された支払いの最終日に影響を与えませ" -"ん。" +"もしもこれが有効化されており、注文の支払い期日が土曜日または日曜日に終了する" +"場合、それは代わりに翌月曜日に移動されます。これは一部の国で民法によって必要" +"とされています。これは以下で設定された支払いの最終日に影響を与えません。" #: pretix/base/settings.py:910 msgid "Payment term in minutes" @@ -10283,7 +10268,7 @@ msgstr "無効にすると、イベントの開始日と終了日が日中の時 #: pretix/base/settings.py:1389 msgid "Hide all products that are sold out" -msgstr "全ての売り切れ商品を非表示にしてください" +msgstr "売り切れの製品をすべて非表示にする" #: pretix/base/settings.py:1399 pretix/control/forms/event.py:1691 msgid "Publicly show how many tickets of a certain type are still available." @@ -10406,7 +10391,7 @@ msgstr "" #: pretix/base/settings.py:1539 msgid "Maximum number of entries per email address for the same product" -msgstr "同一商品に対するメールアドレス当たりの最大登録件数" +msgstr "同じ製品に対する1つのメールアドレスあたりの最大エントリー数" #: pretix/base/settings.py:1543 msgid "" @@ -10416,10 +10401,10 @@ msgid "" "if they want more than one ticket, as every entry only grants one single " "ticket at a time." msgstr "" -"上限を増やすことで、顧客は同一の固有のメールアドレスを使用して特定の商品に対" -"して複数のチケットを申請できます。ただし、この設定に関係なく、複数のチケット" -"が必要な場合は空席待ちリストフォームを複数回記入する必要があります。各登録に" -"つき一度に1枚のチケットのみが付与されるためです。" +"上限を増やすことで、顧客は同一の固有メールアドレスを使用して特定の製品に対し" +"て複数のチケットを申請できます。ただし、この設定に関係なく、複数のチケットが" +"必要な場合は空席待ちリストフォームを複数回記入する必要があります。各登録につ" +"き一度に1枚のチケットのみが付与されるためです。" #: pretix/base/settings.py:1555 msgid "Show number of check-ins to customer" @@ -10467,7 +10452,7 @@ msgstr "" #: pretix/base/settings.py:1591 msgid "Generate tickets for add-on products and bundled products" -msgstr "追加製品やバンドル製品のチケットを生成します" +msgstr "アドオン製品とバンドル製品のチケットを生成" #: pretix/base/settings.py:1592 msgid "" @@ -10489,8 +10474,8 @@ msgid "" "\"admission ticket\"in the product settings. You can also turn off ticket " "issuing in every product separately." msgstr "" -"無効にした場合、チケットは商品設定で「入場券」としてマークされた商品に対して" -"のみ発行されます。各商品で個別にチケット発行を無効にすることも可能です。" +"オフにすると、製品設定で「入場券」としてマークされた製品に対してのみチケット" +"が発行されます。各製品で個別にチケット発行をオフにすることもできます。" #: pretix/base/settings.py:1618 msgid "Generate tickets for pending orders" @@ -10649,7 +10634,7 @@ msgstr "" #: pretix/base/settings.py:1774 msgid "Customers can change the variation of the products they purchased" -msgstr "お客様は購入した商品のバリエーションを変更することができます" +msgstr "顧客は購入した製品のバリエーションを変更できます" #: pretix/base/settings.py:1783 msgid "Customers can change their selected add-on products" @@ -11145,10 +11130,10 @@ msgid "" msgstr "" "こんにちは、\n" "\n" -"{event}の注文が完了しました。\n" -"無料の商品のみを注文したため、支払いは必要ありません。\n" +"{event}のご注文が完了しました。無料製品のみのご注文のため、\n" +"お支払いは不要です。\n" "\n" -"注文の詳細の変更と確認は、以下のURLをご覧ください。\n" +"注文の詳細の変更やステータス確認は、以下のURLから行えます:\n" "{url}\n" "\n" "よろしくお願いいたします。\n" @@ -11172,10 +11157,10 @@ msgstr "" "こんにちは\n" "\n" "{event}のご注文を正常に受け付けました。\n" -"イベント主催者の承認が必要な商品をご注文されましたので、\n" +"イベント主催者の承認が必要な製品をご注文されましたので、\n" "次回のメールまでしばらくお待ちください。\n" "\n" -"ご注文の詳細変更および状況確認は以下でご確認いただけます:\n" +"ご注文の詳細変更およびステータス確認は以下でご確認いただけます:\n" "{url}\n" "\n" "よろしくお願いいたします\n" @@ -11669,10 +11654,9 @@ msgstr "" "こんにちは、\n" "\n" "{event}のご注文を承認し、当イベントへのご参加を心よりお待ちしております。無料" -"の商品のみをご注文いただいたため、お支払いは必要ありません。\n" +"の製品のみをご注文いただいたため、お支払いは必要ありません。\n" "\n" -"ご注文の詳細を変更したり、ご注文の状況をご確認いただくには、以下のURLからご確" -"認いただけます。\n" +"注文の詳細変更やステータス確認は以下のURLから行えます:\n" "\n" "{url}\n" "\n" @@ -11815,7 +11799,7 @@ msgstr "" #: pretix/base/settings.py:2756 #, python-brace-format msgid "Activate your account at {organizer}" -msgstr "{organizer}でアカウントをアクティブにする" +msgstr "{organizer}でアカウントを有効化" #: pretix/base/settings.py:2760 #, python-brace-format @@ -13178,7 +13162,7 @@ msgstr "製品バリエーション「{product} – {variation}」が提供可 #, python-brace-format msgctxt "timeline" msgid "Product variation \"{product} – {variation}\" becomes unavailable" -msgstr "商品バリエーション \"{product} – {variation}\" が提供不能になりました" +msgstr "製品バリエーション「{product} – {variation}」が利用不可になります" #: pretix/base/timeline.py:351 #, python-brace-format @@ -14215,7 +14199,7 @@ msgstr "有効" #: pretix/control/forms/filter.py:1530 #: pretix/control/templates/pretixcontrol/organizers/customer.html:44 msgid "not yet activated" -msgstr "まだアクティブ化されていません" +msgstr "まだ有効化されていません" #: pretix/control/forms/filter.py:1534 #: pretix/control/templates/pretixcontrol/organizers/customer.html:110 @@ -14353,7 +14337,7 @@ msgstr "バウチャーを検索" #: pretix/control/views/vouchers.py:132 #, python-brace-format msgid "Any product in quota \"{quota}\"" -msgstr "クォータ”{quota}”にある任意の商品" +msgstr "クォータ「{quota}」内のすべての製品" #: pretix/control/forms/filter.py:2312 msgid "Refund status" @@ -14763,7 +14747,7 @@ msgstr "カテゴリーなし" #: pretix/control/forms/item.py:410 msgid "Copy product information" -msgstr "商品情報のコピー" +msgstr "製品情報をコピー" #: pretix/control/forms/item.py:419 msgid "No taxation" @@ -14923,15 +14907,14 @@ msgstr "アドオン" #: pretix/control/forms/item.py:1110 msgid "You added the same add-on category twice" -msgstr "同じアドオンカテゴリーを2回追加しました" +msgstr "同じアドオンカテゴリを2回追加しました" #: pretix/control/forms/item.py:1155 msgid "" "Be aware that setting a minimal number makes it impossible to buy this " "product if all available add-ons are sold out." -msgstr "" -"最小数を設定すると、すべての利用可能なアドオンが売り切れの場合、この製品を購" -"入することができなくなりますので、ご注意ください。" +msgstr "最小数を設定すると、利用可能なアドオンがすべて売り切れた場合、この製品を購入" +"できなくなることにご注意ください。" #: pretix/control/forms/item.py:1162 msgid "Bundled products" @@ -14995,9 +14978,8 @@ msgstr "一般的にポート465で有効です。" msgid "" "You can activate either SSL or STARTTLS security, but not both at the same " "time." -msgstr "" -"SSLとSTARTTLSのセキュリティをそれぞれアクティブにすることはできますが、同時に" -"両方をアクティブにすることはできません。" +msgstr "SSLまたはSTARTTLSセキュリティのいずれかを有効化できますが、両方を同時に有効化" +"することはできません。" #: pretix/control/forms/mailsetup.py:95 pretix/control/forms/mailsetup.py:100 msgid "" @@ -15266,7 +15248,8 @@ msgstr "メンバーシップ" #: pretix/control/forms/orders.py:356 msgid "Including taxes, if any. Keep empty for the product's default price" -msgstr "税金を含めると、商品のデフォルト価格になります" +msgstr "税込み価格(該当する場合)。製品のデフォルト価格の場合は空欄のままにしてくだ" +"さい" #: pretix/control/forms/orders.py:470 pretix/control/forms/orders.py:474 #: pretix/control/forms/orders.py:502 pretix/control/forms/orders.py:544 @@ -15742,11 +15725,11 @@ msgid "" "will grant the other organizer access to cryptographic key material required " "to interact with the media type." msgstr "" -"これは、他の主催者が共有システムに参加するために必要です。例えば、NFC支払い" -"チップなどのシステムに参加するために必要です。このオプションは信頼できる主催" -"者にのみ使用すべきです。なぜなら(アクティブ化されたメディアタイプに依存し" -"て)、これにより他の主催者がメディアタイプとやり取りするために必要な暗号鍵素" -"材にアクセスできるようになるからです。" +"これは、他の主催者が共有システムに参加するために必要です。例えば、NFC支払いチ" +"ップなどのシステムに参加するために必要です。このオプションは信頼できる主催者" +"にのみ使用すべきです。なぜなら(有効化されたメディアタイプに依存して)、これ" +"により他の主催者がメディアタイプとやり取りするために必要な暗号鍵素材にアクセ" +"スできるようになるからです。" #: pretix/control/forms/organizer.py:1168 msgid "The selected organizer does not exist or cannot be invited." @@ -15872,9 +15855,8 @@ msgstr "選択された製品は無効です。" msgid "" "The voucher only matches hidden products but you have not selected that it " "should show them." -msgstr "" -"そのバウチャーは非表示商品にのみ適用されますが、それを表示するように選択して" -"いません。" +msgstr "バウチャーは非表示製品のみに一致しますが、それらを表示する設定が選択されてい" +"ません。" #: pretix/control/forms/vouchers.py:271 msgid "Codes" @@ -16406,7 +16388,7 @@ msgstr "注文が払い戻しされました。" #: pretix/control/logdisplay.py:509 pretix/control/views/orders.py:1886 msgid "The order has been reactivated." -msgstr "注文が再度アクティブ化されました。" +msgstr "注文が再有効化されました。" #: pretix/control/logdisplay.py:510 msgid "The order has been created." @@ -19250,9 +19232,8 @@ msgstr "" msgid "" "It is possible to switch to a different variation of the same product, but " "not to an entirely different product (except for add-on products)." -msgstr "" -"同じ製品の異なるバリエーションに切り替えることは可能ですが、完全に異なる製品" -"に切り替えることはできません(アドオン製品を除く)。" +msgstr "同じ製品の異なるバリエーションに切り替えることは可能ですが、まったく異なる製" +"品(アドオン製品を除く)に切り替えることはできません。" #: pretix/control/templates/pretixcontrol/event/cancel.html:62 msgid "" @@ -19275,17 +19256,15 @@ msgstr "" msgid "" "If an add-on product is newly added, the system currently does not validate " "if there are required questions or fields that need to be filled out." -msgstr "" -"新しいアドオン製品が追加された場合、現在のシステムは必須の質問や入力フィール" -"ドが埋められているかどうかを検証しません。" +msgstr "アドオン製品が新しく追加された場合、システムは現在、記入が必要な必須の質問や" +"フィールドがあるかどうかを検証しません。" #: pretix/control/templates/pretixcontrol/event/cancel.html:65 msgid "" "Customers currently cannot switch to a product variation or add an add-on " "product that requires them to use a voucher or membership." -msgstr "" -"現在、顧客は製品のバリエーションを切り替えたり、バウチャーやメンバーシップを" -"使用する必要があるアドオン製品を追加することができません。" +msgstr "顧客は現在、バウチャーやメンバーシップの使用を必要とする製品バリエーションに" +"切り替えたり、アドオン製品を追加したりすることはできません。" #: pretix/control/templates/pretixcontrol/event/cancel.html:66 msgid "" @@ -20147,9 +20126,8 @@ msgid "" "You can scroll down and create your first ticket products quickly, or you " "can use the navigation on the left to modify the settings of your event in " "much more detail." -msgstr "" -"すばやく最初のチケット商品を作成するためにスクロールダウンするか、左側のナビ" -"ゲーションを使用してイベントの設定を詳細に変更することができます。" +msgstr "下にスクロールして最初のチケット製品を素早く作成するか、左側のナビゲーション" +"を使用してイベントの設定をより詳細に変更することができます。" #: pretix/control/templates/pretixcontrol/event/quick_setup.html:36 msgid "Create ticket types" @@ -20337,7 +20315,7 @@ msgstr "表示" #: pretix/control/templates/pretixcontrol/event/settings.html:244 msgid "Product list" -msgstr "商品リスト" +msgstr "製品リスト" #: pretix/control/templates/pretixcontrol/event/settings.html:253 #: pretix/control/templates/pretixcontrol/event/settings.html:389 @@ -20454,13 +20432,12 @@ msgstr "クローンイベント" msgid "" "You can now scroll down and modify the settings in more detail, if you want, " "or you can create your first product to start selling tickets right away!" -msgstr "" -"今、詳細な設定をスクロールして変更することができます。または、すぐにチケット" -"販売を開始するために最初の商品を作成することもできます!" +msgstr "必要に応じて下にスクロールして設定をより詳細に変更することもできますし、最初" +"の製品を作成してすぐにチケットの販売を開始することもできます!" #: pretix/control/templates/pretixcontrol/event/settings_base.html:23 msgid "Create a first product" -msgstr "最初の商品を作成" +msgstr "最初の製品を作成" #: pretix/control/templates/pretixcontrol/event/tax_delete.html:4 #: pretix/control/templates/pretixcontrol/event/tax_delete.html:6 @@ -20588,9 +20565,9 @@ msgid "" "You activated ticket downloads but no output provider is enabled. Be sure to " "enable a plugin and activate an output provider." msgstr "" -"チケットのダウンロードを有効にしましたが、出力プロバイダが有効になっていませ" -"ん。プラグインを有効にし、出力プロバイダをアクティブにするようにしてくださ" -"い。" +"チケットのダウンロードを有効化しましたが、利用可能な出力プロバイダがありませ" +"ん。プラグインが利用可能で、出力プロバイダが有効化されていることを確認してく" +"ださい。" #: pretix/control/templates/pretixcontrol/event/tickets.html:28 msgid "Download formats" @@ -20604,7 +20581,7 @@ msgid "" "output plugins." msgstr "" "チケットの出力が利用できません。 プラグイン設定 に移動して、1つ以上のチケット出力プラグインを有効にしてください。" +"a> に移動して、1つ以上のチケット出力プラグインを有効化してください。" #: pretix/control/templates/pretixcontrol/event/tickets.html:62 msgid "Download time" @@ -21203,7 +21180,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/item/create.html:58 #: pretix/control/templates/pretixcontrol/item/index.html:66 msgid "Examples: Merchandise, donations, gift cards, add-ons to a main ticket." -msgstr "例:商品、寄付、ギフトカード、メインチケットに追加するアドオン。" +msgstr "例:グッズ、寄付、ギフトカード、メインチケットのアドオン。" #: pretix/control/templates/pretixcontrol/item/create.html:68 #: pretix/control/templates/pretixcontrol/item/index.html:76 @@ -21271,9 +21248,9 @@ msgid "" "\"reduced\", merchandise with variations for different sizes, workshop add-" "on with variations for simultaneous workshops." msgstr "" -"例:「全額」および「割引」のバリエーションを持つチケットカテゴリ、異なるサイ" -"ズのバリエーションを持つ商品、同時ワークショップのバリエーションを持つワーク" -"ショップアドオン。" +"例:「通常料金」と「割引」のバリエーションがあるチケットカテゴリ、異なるサイ" +"ズのバリエーションがあるグッズ、同時開催ワークショップのバリエーションがある" +"ワークショップアドオン。" #: pretix/control/templates/pretixcontrol/item/create.html:165 msgid "Quota settings" @@ -21323,14 +21300,13 @@ msgstr "影響を受けるバウチャーを表示します" msgid "" "You cannot delete the product %(item)s because it already " "has been ordered, but you can deactivate it." -msgstr "" -"製品%(item)sはすでに注文されているため削除できませんが、非ア" -"クティブにすることはできます。" +msgstr "製品 %(item)s " +"は既に注文されているため削除できませんが、無効化することができます。" #: pretix/control/templates/pretixcontrol/item/delete.html:41 #: pretix/control/templates/pretixcontrol/items/discount_delete.html:36 msgid "Deactivate" -msgstr "無効にする" +msgstr "無効化" #: pretix/control/templates/pretixcontrol/item/include_addons.html:5 msgid "" @@ -21532,7 +21508,7 @@ msgstr "カテゴリーの歴史" #: pretix/control/templates/pretixcontrol/items/category_delete.html:4 #: pretix/control/templates/pretixcontrol/items/category_delete.html:6 msgid "Delete product category" -msgstr "商品カテゴリを削除" +msgstr "製品カテゴリを削除" #: pretix/control/templates/pretixcontrol/items/category_delete.html:9 #, python-format @@ -21593,9 +21569,9 @@ msgstr "割引を削除してもよろしいですか、%(name)s%(name)s because it already " "has been used as part of an order, but you can deactivate it." -msgstr "" -"割引%(name)sはすでに注文の一部として使用されているため、削除" -"することはできませんが、無効にすることはできます。" +msgstr "割引 %(name)s " +"は既に注文の一部として使用されているため削除できませんが、無効化することがで" +"きます。" #: pretix/control/templates/pretixcontrol/items/discounts.html:4 #: pretix/control/templates/pretixcontrol/items/discounts.html:6 @@ -21642,9 +21618,8 @@ msgid "" "Every product in the cart can only be affected by one discount. If you have " "overlapping discounts, the first one in the order of the list below will " "apply." -msgstr "" -"カート内のすべての商品は1つの割引のみが適用されます。重複する割引がある場合、" -"以下のリストの順に最初の割引が適用されます。" +msgstr "カート内の各製品は1つの割引のみが適用されます。重複する割引がある場合、以下の" +"リストの順序で最初のものが適用されます。" #: pretix/control/templates/pretixcontrol/items/discounts.html:37 msgid "You haven't created any discounts yet." @@ -21719,7 +21694,7 @@ msgstr "まだ製品を作成していません。" #: pretix/control/templates/pretixcontrol/items/index.html:25 #: pretix/control/templates/pretixcontrol/items/index.html:30 msgid "Create a new product" -msgstr "新しい商品を作成" +msgstr "新しい製品を作成" #: pretix/control/templates/pretixcontrol/items/index.html:102 msgid "Personalized admission ticket" @@ -21740,11 +21715,11 @@ msgstr "1 つまたは複数の日付に対する座席プランに割り当て #: pretix/control/templates/pretixcontrol/items/index.html:118 msgid "Product assigned to seating plan" -msgstr "座席プランが割り当てられている商品" +msgstr "座席表に割り当てられた製品" #: pretix/control/templates/pretixcontrol/items/index.html:126 msgid "Only available as an add-on product" -msgstr "追加商品としてのみ利用可能" +msgstr "アドオン製品としてのみ利用可能" #: pretix/control/templates/pretixcontrol/items/index.html:129 msgid "Only available as part of a bundle" @@ -21801,7 +21776,7 @@ msgstr "一致する回答が見つかりませんでした。" #: pretix/control/templates/pretixcontrol/items/question.html:72 msgid "You need to assign the question to a product to collect answers." -msgstr "質問を正しい答えの商品に割り当てる必要があります。" +msgstr "回答を収集するには、質問を製品に割り当てる必要があります。" #: pretix/control/templates/pretixcontrol/items/question.html:91 msgid "Count" @@ -21994,10 +21969,8 @@ msgstr "このクォータは現在%(num)sチケット分超過予約されて msgid "" "Your event contains vouchers that affect products covered by this quota and " "that allow a user to buy products even if this quota is sold out." -msgstr "" -"あなたのイベントには、このクォータが対象とする商品に影響するバウチャーが含ま" -"れており、このクォータが完売していてもユーザーが商品を購入できるようになって" -"います。" +msgstr "このイベントには、このクォータの対象製品に影響し、クォータが売り切れでもユー" +"ザーが製品を購入できるバウチャーが含まれています。" #: pretix/control/templates/pretixcontrol/items/quota.html:104 msgid "Quota history" @@ -22027,9 +22000,9 @@ msgid "" "applied to. If you apply two quotas to the same product, it will only be " "available if both quotas have capacity left." msgstr "" -"このクォータを適用する商品または商品バリエーションを選択してください。同じ商" +"このクォータを適用する製品または製品バリエーションを選択してください。同じ製" "品に2つのクォータを適用した場合、両方のクォータに残り容量が" -"ある場合にのみ利用可能になります。" +"ある場合のみ利用可能になります。" #: pretix/control/templates/pretixcontrol/items/quota_edit.html:41 msgid "Advanced options" @@ -22286,7 +22259,7 @@ msgid "" "implications, e.g. the payment method fee might change or additional " "questions can be added to the order that need to be answered by the user." msgstr "" -"このツールを使用して、注文した商品を変更したり、注文を部分的にキャンセルした" +"このツールを使用して、注文した製品を変更したり、注文を部分的にキャンセルした" "りできます。注文を変更すると、支払い方法の手数料が変更されたり、ユーザーが回" "答する必要がある追加の質問が注文に追加されたりする可能性があるなど、いくつか" "の影響があることに注意してください。" @@ -22364,9 +22337,9 @@ msgid "" "will not affect the membership. Memberships can be managed in the customer " "account." msgstr "" -"このポジションの販売により、メンバーシップが作成されました。ここで商品を変更" -"してもメンバーシップに影響はありません。メンバーシップは顧客アカウントで管理" -"できます。" +"このポジションの販売によりメンバーシップが作成されました。ここで製品を変更し" +"てもメンバーシップには影響しません。メンバーシップは顧客アカウントで管理でき" +"ます。" #: pretix/control/templates/pretixcontrol/order/change.html:220 msgid "Ticket block" @@ -22428,7 +22401,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/order/change.html:358 #: pretix/control/templates/pretixcontrol/order/change.html:386 msgid "Add product" -msgstr "すべての商品" +msgstr "製品を追加" #: pretix/control/templates/pretixcontrol/order/change.html:446 msgid "" @@ -22548,7 +22521,7 @@ msgstr "支払い済みとしてマーク" #: pretix/control/templates/pretixcontrol/order/reactivate.html:5 #: pretix/control/templates/pretixcontrol/order/reactivate.html:9 msgid "Reactivate order" -msgstr "注文を再度有効にする" +msgstr "注文を再有効化" #: pretix/control/templates/pretixcontrol/order/index.html:81 msgid "View order as user" @@ -22597,8 +22570,9 @@ msgid "" "can choose to refund the money below or reactivate it by extending the " "payment deadline." msgstr "" -"この注文は%(amount)sの支払いを受け取ったにもかかわらず期限切れです。以下で払" -"い戻しを選択するか、支払い期限を延長して再度有効にすることができます。" +"この注文は %(amount)s " +"の支払いを受けたにもかかわらず期限切れです。下記で返金するか、支払い期限を延" +"長して再有効化することができます。" #: pretix/control/templates/pretixcontrol/order/index.html:143 msgid "Cancellation request" @@ -22768,9 +22742,8 @@ msgid "" "The price of this product was reduced because of an automatic discount or " "this product was part of the discount calculation for a different product in " "this order." -msgstr "" -"この製品の価格が割引されたのは、自動割引のためであるか、この製品が別の商品の" -"割引計算の一部であるためです。" +msgstr "この製品の価格は自動割引により減額されたか、この製品がこの注文の別の製品の割" +"引計算の一部になっています。" #: pretix/control/templates/pretixcontrol/order/index.html:491 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:103 @@ -22984,13 +22957,13 @@ msgid "" "products in the order are still available. If the order is pending payment, " "the expiry date will be reset." msgstr "" -"注文を再有効化すると、キャンセルが取り消され、保留中または支払い済みの注文に" -"戻ります。これは、注文内のすべての商品がまだ利用可能である限り可能です。注文" -"が支払い保留中の場合、有効期限がリセットされます。" +"注文を再有効化することで、キャンセルを取り消し、保留中または支払い済みの注文" +"に戻します。これは注文内のすべての製品がまだ利用可能な場合にのみ可能です。注" +"文が支払い保留中の場合、有効期限がリセットされます。" #: pretix/control/templates/pretixcontrol/order/reactivate.html:34 msgid "Reactivate" -msgstr "再起動します" +msgstr "再有効化" #: pretix/control/templates/pretixcontrol/order/refund_cancel.html:4 #: pretix/control/templates/pretixcontrol/order/refund_cancel.html:8 @@ -23009,9 +22982,9 @@ msgid "" "will just mark this transfer as aborted in pretix. This will also not " "reactivate the order, it will just allow you to choose a new refund method." msgstr "" -"資金が既に返金処理中の場合、この操作で資金の移動は停止されませんが、pretixで" -"はこの転送が中止されたとマークされます。また、注文が再有効化されることもな" -"く、単に新しい払い戻し方法を選択できるようになるだけです。" +"払い戻しが既に処理中の場合、これによって払い戻しは停止されず、pretix内でこの" +"転送が中止としてマークされるだけです。これは注文を再有効化することもなく、新" +"しい払い戻し方法を選択できるようになるだけです。" #: pretix/control/templates/pretixcontrol/order/refund_cancel.html:32 msgid "Yes, cancel refund" @@ -23240,7 +23213,7 @@ msgid "" "orders or pending refunds that you need to take care of manually." msgstr "" "イベントを中止する必要がある場合、このページを使用して全注文を一度にキャンセ" -"ルし払い戻すことができます。これにより全商品も無効化され、新しい注文は作成で" +"ルし払い戻すことができます。これにより全製品も無効化され、新しい注文は作成で" "きなくなります。その後、手動で対処する必要がある過払い注文や保留中の払い戻し" "がないか必ず確認してください。" @@ -24272,9 +24245,9 @@ msgid "" "same barcode may be re-used during the sale of a different product." msgstr "" "「バーコードメディア」とは、バーコードの印刷物またはデジタル表現のことです。" -"このメディアは、まず商品の販売によって作成され、その商品にはメディアの使用が" +"このメディアは、まず製品の販売によって作成され、その製品にはメディアの使用が" "必要なメディアポリシーがあり、また「再利用可能メディアID」がQRコードとしてチ" -"ケットやバッジのレイアウトに含まれています。後に、同じバーコードは異なる商品" +"ケットやバッジのレイアウトに含まれています。後に、同じバーコードは異なる製品" "の販売時に再利用されることがあります。" #: pretix/control/templates/pretixcontrol/organizers/edit.html:239 @@ -24488,10 +24461,9 @@ msgid "" "on the activated medium types) this will grant the other organizer access to " "cryptographic key material required to interact with the media type." msgstr "" -"信頼できる主催者にのみこのオプションを使用するべきです。なぜなら(アクティブ" -"化されたメディアタイプによって異なりますが)、これにより他の主催者がメディア" -"タイプとやり取りするために必要な暗号鍵素材にアクセスできるようになるからで" -"す。" +"このオプションは信頼できる主催者に対してのみ使用してください。なぜなら(有効" +"化されたメディアの種類によっては)これにより他の主催者がメディアの種類とやり" +"取りするために必要な暗号鍵素材にアクセスできるようになるからです。" #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:106 msgid "Invite new organizer" @@ -24506,8 +24478,8 @@ msgid "" "You haven't issued any gift cards yet. You can either set up a product in an " "event shop to sell gift cards, or you can manually issue gift cards." msgstr "" -"まだギフトカードを発行していません。ギフトカードを販売するためにイベント" -"ショップで商品を設定するか、手動でギフトカードを発行することができます。" +"まだギフトカードを発行していません。ギフトカードを販売するためにイベントショ" +"ップで製品を設定するか、手動でギフトカードを発行することができます。" #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:20 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:50 @@ -24580,7 +24552,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/organizers/membershiptypes.html:15 msgid "" "This can be used to enable products like year passes, tickets of ten, etc." -msgstr "これは年間パスや10枚券などの商品を有効にするために使用できます。" +msgstr "これは年間パスや10枚券などの製品を有効にするために使用できます。" #: pretix/control/templates/pretixcontrol/organizers/plugin_events.html:6 #: pretix/control/templates/pretixcontrol/organizers/plugin_events.html:12 @@ -25747,11 +25719,11 @@ msgstr "選択したものを削除します" #: pretix/control/templates/pretixcontrol/subevents/index.html:214 msgid "Activate selected" -msgstr "選択されたものをアクティブにします" +msgstr "選択されたものを有効化" #: pretix/control/templates/pretixcontrol/subevents/index.html:217 msgid "Deactivate selected" -msgstr "選択したものを無効にします" +msgstr "選択されたものを無効化" #: pretix/control/templates/pretixcontrol/user/2fa_add.html:4 #: pretix/control/templates/pretixcontrol/user/2fa_add.html:6 @@ -25966,7 +25938,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/user/2fa_main.html:49 msgid "Please activate two-factor authentication using the button below." -msgstr "以下のボタンを使用して、二段階認証を有効にしてください。" +msgstr "以下のボタンを使用して二要素認証を有効化してください。" #: pretix/control/templates/pretixcontrol/user/2fa_main.html:53 #, python-format @@ -26600,12 +26572,12 @@ msgid "" " " msgstr "" "\n" -" 待機中、商品 %(num)sx 提供可能\n" +" 待機中、製品 %(num)sx 提供可能\n" " " #: pretix/control/templates/pretixcontrol/waitinglist/index.html:246 msgid "Waiting, product unavailable" -msgstr "お待ちください。商品は利用できません" +msgstr "空席待ち中、製品は利用できません" #: pretix/control/templates/pretixcontrol/waitinglist/index.html:256 msgid "Send a voucher" @@ -26961,7 +26933,7 @@ msgstr "選択した割引が削除されました。" #: pretix/control/views/discounts.py:85 msgid "The selected discount has been deactivated." -msgstr "選択された割引は無効になりました。" +msgstr "選択された割引が無効化されました。" #: pretix/control/views/discounts.py:176 msgid "The new discount has been created." @@ -27321,16 +27293,14 @@ msgstr "要求されたアイテムは存在しません。" msgid "" "You cannot add add-ons to a product that is only available as an add-on " "itself." -msgstr "" -"製品がアドオン自体としてのみ利用可能な場合、その製品にアドオンを追加すること" -"はできません。" +msgstr "それ自体がアドオンとしてのみ利用可能な製品にアドオンを追加することはできませ" +"ん。" #: pretix/control/views/item.py:1390 msgid "" "You cannot add bundles to a product that is only available as an add-on " "itself." -msgstr "" -"製品がアドオン自体としてのみ利用可能な場合、バンドルを追加することはできませ" +msgstr "それ自体がアドオンとしてのみ利用可能な製品にバンドルを追加することはできませ" "ん。" #: pretix/control/views/item.py:1522 @@ -27359,7 +27329,7 @@ msgstr "選択した製品は削除されました。" #: pretix/control/views/item.py:1633 msgid "The selected product has been deactivated." -msgstr "選択された製品は無効になりました。" +msgstr "選択された製品が無効化されました。" #: pretix/control/views/mailsetup.py:200 msgid "" @@ -28658,9 +28628,7 @@ msgstr "注文の支払い後" msgid "" "If you keep this empty, all lists that match the purchased product will be " "used." -msgstr "" -"もし空欄のままにしておくと、購入した商品に一致するすべてのリストが使用されま" -"す。" +msgstr "空欄のままにすると、購入した製品に一致するすべてのリストが使用されます。" #: pretix/plugins/autocheckin/models.py:59 msgid "All sales channels" @@ -30178,9 +30146,9 @@ msgid "" "pay in multiple installments or within 30 days. You, as the merchant, are " "getting your money right away." msgstr "" -"お客様には、一定の限度額までの商品を今すぐ購入し、複数回の分割払いまたは30日" -"以内に支払うことができるオプションを提供しています。これにより、販売者として" -"はすぐにお金を受け取ることができます。" +"顧客には、一定の限度額まで今すぐ購入し、複数回の分割払いまたは30日以内に支払" +"うことができる選択肢を提供します。販売者であるあなたは、すぐに代金を受け取る" +"ことができます。" #: pretix/plugins/paypal2/payment.py:217 msgid "-- Automatic --" @@ -31539,8 +31507,8 @@ msgid "" msgstr "" "Stripeを介したSEPAダイレクトデビット支払いは即座に処理されるわけでは" "ありませんが、場合によっては最大14日かかることがあ" -"ります。この遅延を考慮して、お支払い条件が許容する場合のみ、この支払い方法を" -"有効にしてください。" +"ります。この遅延を考慮して、お支払い条件が許容する場合のみ、この決済方法を有" +"効化してください。" #: pretix/plugins/stripe/payment.py:380 msgid "SEPA Creditor Mandate Name" @@ -31731,8 +31699,8 @@ msgid "" "banking account and login information available." msgstr "" "giropayは、ほとんどのドイツの銀行の顧客に利用可能なオンライン決済方法です。通" -"常、一度だけのアクティベーション後に利用できます。オンラインバンキングの口座" -"とログイン情報を手元に用意してください。" +"常、一度だけの有効化後に利用できます。オンラインバンキングの口座とログイン情" +"報を手元に用意してください。" #: pretix/plugins/stripe/payment.py:1505 pretix/plugins/stripe/payment.py:1573 #: pretix/plugins/stripe/payment.py:1686 @@ -32427,9 +32395,7 @@ msgstr "メンバーシップ" msgid "" "Your cart includes a product that requires an active membership to be " "selected." -msgstr "" -"お客様のカートには、選択するためにアクティブなメンバーシップが必要な商品が含" -"まれています。" +msgstr "カートに含まれている製品は、選択するために有効なメンバーシップが必要です。" #: pretix/presale/checkoutflow.py:489 msgctxt "checkoutflow" @@ -32461,9 +32427,8 @@ msgid "" "Due to the invoice address you entered, we need to apply a different tax " "rate to your purchase and the price of the products in your cart has changed " "accordingly." -msgstr "" -"入力された請求先住所により、ご購入に異なる税率を適用する必要があり、カート内" -"の商品価格がそれに応じて変更されました。" +msgstr "入力された請求書宛先により、ご購入に異なる税率を適用する必要があり、カート内" +"の製品の価格がそれに応じて変更されました。" #: pretix/presale/checkoutflow.py:1024 pretix/presale/checkoutflow.py:1030 msgid "Please enter a valid email address." @@ -32851,13 +32816,12 @@ msgstr "" msgid "" "A product in your cart is only sold in combination with add-on products that " "are not available. Please contact the event organizer." -msgstr "" -"カート内の商品は、利用できないアドオン商品との組み合わせでのみ販売されていま" +msgstr "カート内の製品は、利用できないアドオン製品との組み合わせでのみ販売されていま" "す。イベント主催者にお問い合わせください。" #: pretix/presale/templates/pretixpresale/event/checkout_addons.html:20 msgid "We're now trying to book these add-ons for you!" -msgstr "これらのアドオンを予約しようとしています!" +msgstr "これらのアドオンを予約しています!" #: pretix/presale/templates/pretixpresale/event/checkout_addons.html:28 msgid "Additional options for" @@ -33055,9 +33019,8 @@ msgstr "" msgid "" "Some of the products in your cart can only be purchased if there is an " "active membership on your account." -msgstr "" -"カート内の一部の商品は、アカウントに有効なメンバーシップがある場合のみ購入で" -"きます。" +msgstr "カート内の一部の製品は、アカウントに有効なメンバーシップがある場合にのみ購入" +"できます。" #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:34 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:112 @@ -33118,7 +33081,7 @@ msgstr "支払いプロバイダーは有効になっていません。" #: pretix/presale/templates/pretixpresale/event/checkout_payment.html:117 msgid "" "Please go to the payment settings and activate one or more payment providers." -msgstr "支払い設定に移動し、1つ以上の支払いプロバイダーを有効にしてください。" +msgstr "決済設定に移動し、1つ以上の決済事業者を有効化してください。" #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:9 msgid "Before we continue, we need you to answer some questions." @@ -33352,11 +33315,11 @@ msgstr "数量を増やしてください" #: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:379 msgid "There are no add-ons available for this product." -msgstr "この製品には利用可能なアドオンはありません。" +msgstr "この製品に利用可能なアドオンはありません。" #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:6 msgid "Enter a voucher code below to buy this product." -msgstr "この商品を購入するために、下記にバウチャーコードを入力してください。" +msgstr "この製品を購入するには、以下にバウチャーコードを入力してください。" #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:10 #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:14 @@ -33389,8 +33352,7 @@ msgstr "予約済み" #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:39 msgid "All remaining products are reserved but might become available again." -msgstr "" -"すべての残りの商品は予約済みですが、再度利用可能になる可能性があります。" +msgstr "残りの製品はすべて予約済みですが、再び利用可能になる可能性があります。" #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:18 msgid "Price per item" @@ -33611,7 +33573,7 @@ msgstr "\"%(old_item)s\"から\"%(new_item)s\"への%(positionid)s座席を変 #: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:106 #, python-format msgid "Add-on product to position #%(positionid)s" -msgstr "#%(positionid)sの追加製品" +msgstr "ポジション #%(positionid)s へのアドオン製品" #: pretix/presale/templates/pretixpresale/event/fragment_change_confirm.html:40 #, python-format @@ -34181,7 +34143,7 @@ msgstr "" #: pretix/presale/templates/pretixpresale/event/order.html:199 #: pretix/presale/templates/pretixpresale/event/position.html:33 msgid "Change ordered items" -msgstr "注文された商品を変更します" +msgstr "注文した商品を変更" #: pretix/presale/templates/pretixpresale/event/order.html:200 #: pretix/presale/templates/pretixpresale/event/order.html:291 @@ -34594,7 +34556,7 @@ msgstr "" msgid "" "There are currently no products available that can be bought with this " "voucher." -msgstr "現在、このバウチャーで購入できる商品はありません。" +msgstr "現在、このバウチャーで購入できる製品はありません。" #: pretix/presale/templates/pretixpresale/event/voucher.html:52 msgid "" @@ -35156,7 +35118,7 @@ msgstr "正の数のみ入力してください。" #: pretix/presale/views/cart.py:441 msgid "We applied the voucher to as many products in your cart as we could." -msgstr "カート内の商品に可能な限りバウチャーを適用しました。" +msgstr "カート内の製品に可能な限りバウチャーを適用しました。" #: pretix/presale/views/cart.py:476 pretix/presale/views/cart.py:484 msgid "" @@ -35177,7 +35139,7 @@ msgstr "カートのタイムアウトが延長されました。" #: pretix/presale/views/cart.py:584 msgid "The products have been successfully added to your cart." -msgstr "商品が正常にカートに追加されました。" +msgstr "製品が正常にカートに追加されました。" #: pretix/presale/views/cart.py:608 pretix/presale/views/event.py:543 #: pretix/presale/views/widget.py:396 @@ -35188,8 +35150,7 @@ msgstr "このイベントのチケットは、この販売チャンネルでは msgid "" "The gift card has been saved to your cart. Please now select the products " "you want to purchase." -msgstr "" -"ギフトカードがカートに追加されました。購入したい商品を選択してください。" +msgstr "ギフトカードがカートに追加されました。購入したい製品を選択してください。" #: pretix/presale/views/cart.py:791 msgctxt "subevent" -- 2.49.1 From c060322f2f8e81f9624d8fc2f9f373744df1958e Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 29 Sep 2025 09:39:38 +0200 Subject: [PATCH 007/134] Translations: Update Catalan Currently translated at 31.1% (1895 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ca/ powered by weblate --- src/pretix/locale/ca/LC_MESSAGES/django.po | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/pretix/locale/ca/LC_MESSAGES/django.po b/src/pretix/locale/ca/LC_MESSAGES/django.po index 3d1aa0791..3180a039d 100644 --- a/src/pretix/locale/ca/LC_MESSAGES/django.po +++ b/src/pretix/locale/ca/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-04-22 15:36+0000\n" -"Last-Translator: Paul Berschick \n" +"PO-Revision-Date: 2025-09-29 07:39+0000\n" +"Last-Translator: Raphael Michel \n" "Language-Team: Catalan \n" "Language: ca\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.11\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -35318,11 +35318,6 @@ msgstr "" "Tingueu en compte que heu de fer el pagament per a finalitzar el procés." #: pretix/presale/templates/pretixpresale/event/order.html:55 -#, fuzzy -#| msgid "" -#| "Please bookmark or save the link to this exact page if you want to access " -#| "your order later. We also sent you an email containing the link to the " -#| "address you specified." msgid "" "Please bookmark or save the link to this exact page if you want to access " "your order later. We also sent you an email to the address you specified " -- 2.49.1 From 9d2ef94389b91665e3ac4fdf63a0488016d6c4ff Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 8 Sep 2025 10:57:57 +0200 Subject: [PATCH 008/134] Invoicing: Configurable service date --- doc/api/resources/invoices.rst | 21 ++- src/pretix/api/serializers/event.py | 1 + src/pretix/api/serializers/order.py | 6 +- src/pretix/base/invoicing/pdf.py | 127 +++++++++++--- .../migrations/0289_invoiceline_period.py | 78 +++++++++ src/pretix/base/models/invoices.py | 45 ++++- src/pretix/base/services/invoices.py | 99 ++++++++++- src/pretix/base/settings.py | 29 ++++ src/pretix/control/forms/event.py | 1 + .../pretixcontrol/event/invoicing.html | 13 ++ src/tests/api/test_invoices.py | 8 +- src/tests/api/test_order_change.py | 8 +- src/tests/base/test_invoices.py | 157 +++++++++++++++++- 13 files changed, 536 insertions(+), 57 deletions(-) create mode 100644 src/pretix/base/migrations/0289_invoiceline_period.py diff --git a/doc/api/resources/invoices.rst b/doc/api/resources/invoices.rst index 9188b73c2..de9245941 100644 --- a/doc/api/resources/invoices.rst +++ b/doc/api/resources/invoices.rst @@ -80,17 +80,12 @@ lines list of objects The actual invo for all invoice lines created before this field was introduced as well as for all lines not created by a fee (e.g. a product). -├ event_date_from datetime Start date of the (sub)event this line was created for as it - was set during invoice creation. Can be ``null`` for all invoice - lines created before this was introduced as well as for lines in - an event series not created by a product (e.g. shipping or - cancellation fees). -├ event_date_to datetime End date of the (sub)event this line was created for as it - was set during invoice creation. Can be ``null`` for all invoice - lines created before this was introduced as well as for lines in - an event series not created by a product (e.g. shipping or - cancellation fees) as well as whenever the respective (sub)event - has no end date set. +├ period_start datetime Start date of the service or delivery period of the invoice line. + Can be ``null`` if not known. +├ period_end datetime End date of the service or delivery period of the invoice line. + Can be ``null`` if not known. +├ event_date_from datetime Deprecated alias of ``period_start``. +├ event_date_to datetime Deprecated alias of ``period_end``. ├ event_location string Location of the (sub)event this line was created for as it was set during invoice creation. Can be ``null`` for all invoice lines created before this was introduced as well as for lines in @@ -274,6 +269,8 @@ List of all invoices "fee_internal_type": null, "event_date_from": "2017-12-27T10:00:00Z", "event_date_to": null, + "period_start": "2017-12-27T10:00:00Z", + "period_end": "2017-12-27T10:00:00Z", "event_location": "Heidelberg", "attendee_name": null, "gross_value": "23.00", @@ -420,6 +417,8 @@ Fetching individual invoices "fee_internal_type": null, "event_date_from": "2017-12-27T10:00:00Z", "event_date_to": null, + "period_start": "2017-12-27T10:00:00Z", + "period_end": "2017-12-27T10:00:00Z", "event_location": "Heidelberg", "attendee_name": null, "gross_value": "23.00", diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index e271ecc9c..98e011db7 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -805,6 +805,7 @@ class EventSettingsSerializer(SettingsSerializer): 'invoice_reissue_after_modify', 'invoice_include_free', 'invoice_generate', + 'invoice_period', 'invoice_numbers_consecutive', 'invoice_numbers_prefix', 'invoice_numbers_prefix_cancellations', diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py index 68c7f7e9f..470c99490 100644 --- a/src/pretix/api/serializers/order.py +++ b/src/pretix/api/serializers/order.py @@ -1757,12 +1757,14 @@ class LinePositionField(serializers.IntegerField): class InlineInvoiceLineSerializer(I18nAwareModelSerializer): position = LinePositionField(read_only=True) + event_date_from = serializers.DateTimeField(read_only=True, source="period_start") + event_date_to = serializers.DateTimeField(read_only=True, source="period_end") class Meta: model = InvoiceLine fields = ('position', 'description', 'item', 'variation', 'subevent', 'attendee_name', 'event_date_from', - 'event_date_to', 'gross_value', 'tax_value', 'tax_rate', 'tax_code', 'tax_name', 'fee_type', - 'fee_internal_type', 'event_location') + 'event_date_to', 'period_start', 'period_end', 'gross_value', 'tax_value', 'tax_rate', 'tax_code', + 'tax_name', 'fee_type', 'fee_internal_type', 'event_location') class InvoiceSerializer(I18nAwareModelSerializer): diff --git a/src/pretix/base/invoicing/pdf.py b/src/pretix/base/invoicing/pdf.py index a6cbea7ea..1c0443a44 100644 --- a/src/pretix/base/invoicing/pdf.py +++ b/src/pretix/base/invoicing/pdf.py @@ -19,6 +19,7 @@ # You should have received a copy of the GNU Affero General Public License along with this program. If not, see # . # +import datetime import logging import math import re @@ -526,6 +527,20 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): textobject.textLine(self._normalize(self._upper(pgettext('invoice', 'Event')))) canvas.drawText(textobject) + def _date_range_in_header(self): + if self.invoice.event.has_subevents or not self.invoice.event.settings.show_dates_on_frontpage: + return None, None + tz = self.invoice.event.timezone + show_end_date = ( + self.invoice.event.settings.show_date_to and + self.invoice.event.date_to and + self.invoice.event.date_to.astimezone(tz).date() != self.invoice.event.date_from.astimezone(tz).date() + ) + if show_end_date: + return self.invoice.event.date_from.astimezone(tz).date(), self.invoice.event.date_to.astimezone(tz).date() + else: + return self.invoice.event.date_from.astimezone(tz).date(), None + def _draw_event(self, canvas): def shorten(txt): txt = str(txt) @@ -539,25 +554,17 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): p_size = p.wrap(self.event_width, self.event_height) return txt - if not self.invoice.event.has_subevents and self.invoice.event.settings.show_dates_on_frontpage: - tz = self.invoice.event.timezone - show_end_date = ( - self.invoice.event.settings.show_date_to and - self.invoice.event.date_to and - self.invoice.event.date_to.astimezone(tz).date() != self.invoice.event.date_from.astimezone(tz).date() + d_from, d_to = self._date_range_in_header() + if d_from and d_to: + p_str = ( + shorten(self.invoice.event.name) + '\n' + + pgettext('invoice', '{from_date}\nuntil {to_date}').format( + from_date=date_format(d_from, "DATE_FORMAT"), + to_date=date_format(d_to, "DATE_FORMAT"), + ) ) - if show_end_date: - p_str = ( - shorten(self.invoice.event.name) + '\n' + - pgettext('invoice', '{from_date}\nuntil {to_date}').format( - from_date=self.invoice.event.get_date_from_display(show_times=False), - to_date=self.invoice.event.get_date_to_display(show_times=False) - ) - ) - else: - p_str = ( - shorten(self.invoice.event.name) + '\n' + self.invoice.event.get_date_from_display(show_times=False) - ) + elif d_from: + p_str = shorten(self.invoice.event.name) + '\n' + date_format(d_from, "DATE_FORMAT") else: p_str = shorten(self.invoice.event.name) @@ -685,7 +692,14 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): return story def _get_story(self, doc): - has_taxes = any(il.tax_value for il in self.invoice.lines.all()) or self.invoice.reverse_charge + all_lines = list(self.invoice.lines.all()) + has_taxes = any(il.tax_value for il in all_lines) or self.invoice.reverse_charge + header_dates = self._date_range_in_header() + tz = self.invoice.event.timezone + has_multiple_service_dates = len(set( + (il.period_start, il.period_end) for il in all_lines + )) > 1 + request_show_service_date = False story = [ NextPageTemplate('FirstPage'), @@ -729,15 +743,75 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): )] def _group_key(line): - return (line.description, line.tax_rate, line.tax_name, line.net_value, line.gross_value, line.subevent_id, - line.event_date_from, line.event_date_to) + return (line.description, line.tax_rate, line.tax_name, line.net_value, line.gross_value, line.subevent, + line.period_start, line.period_end) + + def day(dt: datetime.datetime) -> datetime.date: + if dt is None: + return None + return dt.astimezone(tz).date() total = Decimal('0.00') - for (description, tax_rate, tax_name, net_value, gross_value, *ignored), lines in addon_aware_groupby( - self.invoice.lines.all(), + for (description, tax_rate, tax_name, net_value, gross_value, subevent, period_start, period_end), lines in addon_aware_groupby( + all_lines, key=_group_key, is_addon=lambda l: l.description.startswith(" +"), ): + # Try to be clever and figure out when organizers would want to show the period. This heuristic is + # not perfect and the only "fully correct" way would be to include the period on every line always, + # however this will cause confusion (a) due to useless repetition of the same date all over the invoice + # (b) due to not respecting the show_date_to setting of events in cases where we could have respected it. + # Still, we want to show the date explicitly if its different to the event or invoice date. + period_start_day = day(period_start) + period_end_day = day(period_end) + if period_start and period_end and period_end_day != period_start_day: + # It's a multi-day period, such as the validity of the ticket or an event date period + + if period_start_day == header_dates[0] and period_end_day == header_dates[1]: + # This is the exact event period we already printed in the header, no need to repeat it. + period_line = "" + + elif (self.event.has_subevents and subevent and day(subevent.date_from) == period_start_day and + day(subevent.date_to) == period_end_day): + # For subevents, build_invoice already includes the date in the description in the event-default format. + period_line = "" + + else: + period_line = f"{date_format(period_start_day, 'SHORT_DATE_FORMAT')} – {date_format(period_end_day, 'SHORT_DATE_FORMAT')}" + + elif period_start or period_end: + # It's a single-day period + + delivery_day = period_end_day or period_start_day + if delivery_day in header_dates: + # This is the event date we already printed in the header, no need to repeat it. + period_line = "" + + elif self.event.has_subevents and subevent and delivery_day in (day(subevent.date_from), day(subevent.date_to)): + # For subevents, build_invoice already includes the date in the description in the event-default format. + period_line = "" + + elif (delivery_day == self.invoice.date) and header_dates[0] is None: + # This is a shop that doesn't show the date of the event in the header, and the period is the invoice + # date. We assume that this is an 'everything is executed immediately' situation and do not want to + # confuse with showing additional dates on the invoice. This is the case that is not guaranteed to be + # correct in all cases and might need to change in the future. If customers have legal concerns, a + # quick fix is including a sentence like "Delivery date is the invoice date unless otherwise indicated:" + # in a custom text on the invoice. + period_line = "" + + else: + period_line = date_format(delivery_day, 'SHORT_DATE_FORMAT') + else: + # No period known + period_line = "" + + if not has_multiple_service_dates and period_line: + # Group together at the end of the invoice + request_show_service_date = period_line + elif period_line: + description += "\n" + period_line + lines = list(lines) if has_taxes: if len(lines) > 1: @@ -746,6 +820,7 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): gross_price=money_filter(gross_value, self.invoice.event.currency), ) description = description + "\n" + single_price_line + tdata.append(( FontFallbackParagraph( self._clean_text(description, tags=['br']), @@ -850,6 +925,12 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer): story.append(Spacer(1, 10 * mm)) + if request_show_service_date: + story.append(FontFallbackParagraph( + self._normalize(pgettext('invoice', 'Invoice period: {daterange}').format(daterange=request_show_service_date)), + self.stylesheet['Normal'] + )) + if self.invoice.payment_provider_text: story.append(FontFallbackParagraph( self._normalize(self.invoice.payment_provider_text), diff --git a/src/pretix/base/migrations/0289_invoiceline_period.py b/src/pretix/base/migrations/0289_invoiceline_period.py new file mode 100644 index 000000000..56f68b8b3 --- /dev/null +++ b/src/pretix/base/migrations/0289_invoiceline_period.py @@ -0,0 +1,78 @@ +# Generated by Django 4.2.17 on 2025-09-08 08:14 +from django.core.cache import cache +from django.db import migrations + + +def set_invoice_period(apps, schema_editor): + EventSettingsStore = apps.get_model("pretixbase", "Event_SettingsStore") + ev_seen = set() + insert_queue = [] + flush_queue = [] + + def store(): + EventSettingsStore.objects.bulk_create( + insert_queue, + update_conflicts=True, + update_fields=["value"], + unique_fields=["object", "key"], + ) + cache.delete_many(flush_queue) + flush_queue.clear() + insert_queue.clear() + + # Existing events that use pretix-zugferd and have explicitly disabled delivery dates + for setting in EventSettingsStore.objects.filter(key="zugferd_include_delivery_date", value="False"): + flush_queue.append("hierarkey_{}_{}".format("event", setting.object_id)) + insert_queue.append( + EventSettingsStore( + object_id=setting.object_id, + key="invoice_period", + value="invoice_date", + ) + ) + ev_seen.add(setting.object_id) + + if len(insert_queue) > 1000: + store() + + # Existing events that previously hid their date on invoices + for setting in EventSettingsStore.objects.filter(key="show_dates_on_frontpage", value="False"): + if setting.object_id in ev_seen: + continue + + flush_queue.append("hierarkey_{}_{}".format("event", setting.object_id)) + insert_queue.append( + EventSettingsStore( + object_id=setting.object_id, + key="invoice_period", + value="auto_no_event", + ) + ) + + if len(insert_queue) > 1000: + store() + + store() + + +class Migration(migrations.Migration): + dependencies = [ + ("pretixbase", "0288_invoice_transmission"), + ] + + operations = [ + migrations.RenameField( + model_name="invoiceline", + old_name="event_date_to", + new_name="period_end", + ), + migrations.RenameField( + model_name="invoiceline", + old_name="event_date_from", + new_name="period_start", + ), + migrations.RunPython( + set_invoice_period, + migrations.RunPython.noop, + ) + ] diff --git a/src/pretix/base/models/invoices.py b/src/pretix/base/models/invoices.py index 0dfde5d57..d9401f857 100644 --- a/src/pretix/base/models/invoices.py +++ b/src/pretix/base/models/invoices.py @@ -33,6 +33,7 @@ # License for the specific language governing permissions and limitations under the License. import string +import warnings from decimal import Decimal import pycountry @@ -404,10 +405,10 @@ class InvoiceLine(models.Model): :type tax_name: str :param subevent: The subevent this line refers to :type subevent: SubEvent - :param event_date_from: Event date of the (sub)event at the time the invoice was created - :type event_date_from: datetime - :param event_date_to: Event end date of the (sub)event at the time the invoice was created - :type event_date_to: datetime + :param period_start: Start if service period invoiced + :type period_start: datetime + :param period_end: End of service period invoiced + :type period_end: datetime :param event_location: Event location of the (sub)event at the time the invoice was created :type event_location: str :param item: The item this line refers to @@ -426,8 +427,8 @@ class InvoiceLine(models.Model): tax_name = models.CharField(max_length=190) tax_code = models.CharField(max_length=190, null=True, blank=True) subevent = models.ForeignKey('SubEvent', null=True, blank=True, on_delete=models.PROTECT) - event_date_from = models.DateTimeField(null=True) - event_date_to = models.DateTimeField(null=True) + period_start = models.DateTimeField(null=True) + period_end = models.DateTimeField(null=True) event_location = models.TextField(null=True, blank=True) item = models.ForeignKey('Item', null=True, blank=True, on_delete=models.PROTECT) variation = models.ForeignKey('ItemVariation', null=True, blank=True, on_delete=models.PROTECT) @@ -444,3 +445,35 @@ class InvoiceLine(models.Model): def __str__(self): return 'Line {} of invoice {}'.format(self.position, self.invoice) + + @property + def event_date_from(self): + warnings.warn( + 'InvoiceLine.event_date_from is deprecated, use period_start instead,', + category=DeprecationWarning, + ) + return self.period_start + + @event_date_from.setter + def event_date_from(self, value): + warnings.warn( + 'InvoiceLine.event_date_from is deprecated, use period_start instead,', + category=DeprecationWarning, + ) + self.period_start = value + + @property + def event_date_to(self): + warnings.warn( + 'InvoiceLine.event_date_to is deprecated, use period_end instead,', + category=DeprecationWarning, + ) + return self.period_end + + @event_date_to.setter + def event_date_to(self, value): + warnings.warn( + 'InvoiceLine.event_date_to is deprecated, use period_end instead,', + category=DeprecationWarning, + ) + self.period_to = value diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index bbc7438dd..a47be9fef 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -82,6 +82,10 @@ def build_invoice(invoice: Invoice) -> Invoice: lp = invoice.order.payments.last() + min_period_start = None + max_period_end = None + now_dt = now() + with (language(invoice.locale, invoice.event.settings.region)): invoice.invoice_from = invoice.event.settings.get('invoice_address_from') invoice.invoice_from_name = invoice.event.settings.get('invoice_address_from_name') @@ -208,7 +212,9 @@ def build_invoice(invoice: Invoice) -> Invoice: positions = list( invoice.order.positions.select_related('addon_to', 'item', 'tax_rule', 'subevent', 'variation').annotate( addon_c=Count('addons') - ).prefetch_related('answers', 'answers__options', 'answers__question').order_by('positionid', 'id') + ).prefetch_related( + 'answers', 'answers__options', 'answers__question', 'granted_memberships', + ).order_by('positionid', 'id') ) reverse_charge = False @@ -267,6 +273,10 @@ def build_invoice(invoice: Invoice) -> Invoice: location=_location_oneliner(location) ) + period_start, period_end = _service_period_for_position(invoice, p, now_dt) + min_period_start = min(min_period_start or period_start, period_start) + max_period_end = min(max_period_end or period_end, period_end) + InvoiceLine.objects.create( position=i, invoice=invoice, @@ -277,8 +287,8 @@ def build_invoice(invoice: Invoice) -> Invoice: item=p.item, variation=p.variation, attendee_name=p.attendee_name if invoice.event.settings.invoice_attendee_name else None, - event_date_from=p.subevent.date_from if invoice.event.has_subevents else invoice.event.date_from, - event_date_to=p.subevent.date_to if invoice.event.has_subevents else invoice.event.date_to, + period_start=period_start, + period_end=period_end, event_location=location if invoice.event.settings.invoice_event_location else None, tax_rate=p.tax_rate, tax_code=p.tax_code, @@ -301,13 +311,29 @@ def build_invoice(invoice: Invoice) -> Invoice: fee_title = _(fee.get_fee_type_display()) if fee.description: fee_title += " - " + fee.description + + if min_period_start and max_period_end: + # Consider fees to have the same service period as the products sold + period_start = min_period_start + period_end = max_period_end + else: + # Usually can only happen if everything except a cancellation fee is removed + if invoice.event.settings.invoice_period in ("auto", "auto_no_event", "event_date") and not invoice.event.has_subevents: + # Non-series event, let's be backwards-compatible and tag everything with the event period + period_start = invoice.event.date_from + period_end = invoice.event.date_to + else: + # We could try to work from the canceled positions, but it doesn't really make sense. A cancellation + # fee is not "delivered" at the event date, it is rather effective right now. + period_start = period_end = now() + InvoiceLine.objects.create( position=i + offset, invoice=invoice, description=fee_title, gross_value=fee.value, - event_date_from=None if invoice.event.has_subevents else invoice.event.date_from, - event_date_to=None if invoice.event.has_subevents else invoice.event.date_to, + period_start=period_start, + period_end=period_end, event_location=( None if invoice.event.has_subevents else (str(invoice.event.location) @@ -351,6 +377,55 @@ def build_cancellation(invoice: Invoice): return invoice +def _service_period_for_position(invoice, position, invoice_dt): + if invoice.event.settings.invoice_period in ("auto", "auto_no_event"): + if position.valid_from and position.valid_until: + period_start = position.valid_from + period_end = position.valid_until + elif position.valid_from: + period_start = position.valid_from + period_end = position.valid_from # weird, but we have nothing else to base this on + elif position.valid_until: + period_start = min(invoice.order.datetime, position.valid_until) + period_end = position.valid_until + elif memberships := list(position.granted_memberships.all()): + period_start = min(m.date_start for m in memberships) + period_end = max(m.date_end for m in memberships) + elif invoice.event.has_subevents: + if position.subevent: + period_start = position.subevent.date_from + period_end = position.subevent.date_to + else: + # Currently impossible case, but might not be in the future and never makes + # sense to use the event date here + period_start = invoice_dt + period_end = invoice_dt + elif invoice.event.settings.invoice_period == "auto_no_event": + period_start = invoice_dt + period_end = invoice_dt + else: + period_start = invoice.event.date_from + period_end = invoice.event.date_to + elif invoice.event.settings.invoice_period == "order_date": + period_start = invoice.order.datetime + period_end = invoice.order.datetime + elif invoice.event.settings.invoice_period == "event_date": + if position.subevent: + period_start = position.subevent.date_from + period_end = position.subevent.date_to + else: + period_start = invoice.event.date_from + period_end = invoice.event.date_to + elif invoice.event.settings.invoice_period == "invoice_date": + period_start = period_end = invoice_dt + else: + raise ValueError(f"Invalid invoice period setting '{invoice.event.settings.invoice_period}'") + + if not period_end: + period_end = period_start + return period_start, period_end + + def generate_cancellation(invoice: Invoice, trigger_pdf=True): if invoice.canceled: raise ValueError("Invoice should not be canceled twice.") @@ -456,6 +531,12 @@ def build_preview_invoice_pdf(event): if not locale or locale == '__user__': locale = event.settings.locale + if event.settings.invoice_period in ("auto", "auto_no_event", "event_date"): + period_start = event.date_from + period_end = event.date_to or event.date_from + else: + period_start = period_end = timezone.now() + with rolledback_transaction(), language(locale, event.settings.region): order = event.orders.create( status=Order.STATUS_PENDING, datetime=timezone.now(), @@ -506,8 +587,8 @@ def build_preview_invoice_pdf(event): invoice=invoice, description=_("Sample product {}").format(i + 1), gross_value=tax.gross, tax_value=tax.tax, tax_rate=tax.rate, tax_name=tax.name, tax_code=tax.code, - event_date_from=event.date_from, - event_date_to=event.date_to, + period_start=period_start, + period_end=period_end, event_location=event.settings.invoice_event_location, ) else: @@ -515,8 +596,8 @@ def build_preview_invoice_pdf(event): InvoiceLine.objects.create( invoice=invoice, description=_("Sample product A"), gross_value=100, tax_value=0, tax_rate=0, tax_code=None, - event_date_from=event.date_from, - event_date_to=event.date_to, + period_start=period_start, + period_end=period_end, event_location=event.settings.invoice_event_location, ) diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index fbc52b31a..2b87f00bb 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -1098,6 +1098,35 @@ DEFAULTS = { help_text=_("Invoices will never be automatically generated for free orders.") ) }, + 'invoice_period': { + 'default': 'auto', + 'type': str, + 'form_class': forms.ChoiceField, + 'serializer_class': serializers.ChoiceField, + 'serializer_kwargs': dict( + choices=( + ('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date)')), + ('auto_no_event', _('Automatic, but prefer invoice date over event date')), + ('event_date', _('Event date')), + ('order_date', _('Order date')), + ('invoice_date', _('Invoice date')), + ), + ), + 'form_kwargs': dict( + label=_("Date of service"), + widget=forms.RadioSelect, + choices=( + ('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date)')), + ('auto_no_event', _('Automatic, but prefer invoice date over event date')), + ('event_date', _('Event date')), + ('order_date', _('Order date')), + ('invoice_date', _('Invoice date')), + ), + help_text=_("This controls what dates are shown on the invoice, but is especially important for " + "electronic invoicing."), + required=True, + ) + }, 'invoice_reissue_after_modify': { 'default': 'False', 'type': bool, diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index 1b4f6cdc9..171c94d17 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -857,6 +857,7 @@ class InvoiceSettingsForm(EventSettingsValidationMixin, SettingsForm): 'invoice_show_payments', 'invoice_reissue_after_modify', 'invoice_generate', + 'invoice_period', 'invoice_attendee_name', 'invoice_event_location', 'invoice_include_expire_date', diff --git a/src/pretix/control/templates/pretixcontrol/event/invoicing.html b/src/pretix/control/templates/pretixcontrol/event/invoicing.html index d2b21e70e..52d9a7e9b 100644 --- a/src/pretix/control/templates/pretixcontrol/event/invoicing.html +++ b/src/pretix/control/templates/pretixcontrol/event/invoicing.html @@ -15,6 +15,19 @@ {% bootstrap_field form.invoice_email_attachment layout="control" %} {% bootstrap_field form.invoice_email_organizer layout="control" %} {% bootstrap_field form.invoice_language layout="control" %} + {% bootstrap_field form.invoice_period layout="control" %} + + {% if not request.event.settings.show_dates_on_frontpage %} +
+
+ {% blocktrans trimmed %} + You configured that your shop is not an event and the event date should not be shown. + Therefore, we recommend that you set the date of service to a different option. + {% endblocktrans %} +
+
+ {% endif %} + {% bootstrap_field form.invoice_include_free layout="control" %} {% bootstrap_field form.invoice_show_payments layout="control" %} {% bootstrap_field form.invoice_reissue_after_modify layout="control" %} diff --git a/src/tests/api/test_invoices.py b/src/tests/api/test_invoices.py index 829008226..10cf0fb1a 100644 --- a/src/tests/api/test_invoices.py +++ b/src/tests/api/test_invoices.py @@ -231,7 +231,9 @@ TEST_INVOICE_RES = { "description": "Budget Ticket
Attendee: Peter", 'subevent': None, 'event_date_from': '2017-12-27T10:00:00Z', - 'event_date_to': None, + 'event_date_to': '2017-12-27T10:00:00Z', + 'period_start': '2017-12-27T10:00:00Z', + 'period_end': '2017-12-27T10:00:00Z', 'event_location': None, 'attendee_name': 'Peter', 'item': None, @@ -249,7 +251,9 @@ TEST_INVOICE_RES = { "description": "Payment fee", 'subevent': None, 'event_date_from': '2017-12-27T10:00:00Z', - 'event_date_to': None, + 'event_date_to': '2017-12-27T10:00:00Z', + 'period_start': '2017-12-27T10:00:00Z', + 'period_end': '2017-12-27T10:00:00Z', 'event_location': None, 'attendee_name': None, 'fee_type': "payment", diff --git a/src/tests/api/test_order_change.py b/src/tests/api/test_order_change.py index f137e352b..e061aad40 100644 --- a/src/tests/api/test_order_change.py +++ b/src/tests/api/test_order_change.py @@ -608,7 +608,9 @@ def test_order_create_invoice(token_client, organizer, event, order): 'description': 'Budget Ticket
Attendee: Peter', 'subevent': None, 'event_date_from': '2017-12-27T10:00:00Z', - 'event_date_to': None, + 'event_date_to': '2017-12-27T10:00:00Z', + 'period_start': '2017-12-27T10:00:00Z', + 'period_end': '2017-12-27T10:00:00Z', 'event_location': None, 'fee_type': None, 'fee_internal_type': None, @@ -626,7 +628,9 @@ def test_order_create_invoice(token_client, organizer, event, order): 'description': 'Payment fee', 'subevent': None, 'event_date_from': '2017-12-27T10:00:00Z', - 'event_date_to': None, + 'event_date_to': '2017-12-27T10:00:00Z', + 'period_start': '2017-12-27T10:00:00Z', + 'period_end': '2017-12-27T10:00:00Z', 'event_location': None, 'fee_type': "payment", 'fee_internal_type': None, diff --git a/src/tests/base/test_invoices.py b/src/tests/base/test_invoices.py index 584a2bb01..b50a98f80 100644 --- a/src/tests/base/test_invoices.py +++ b/src/tests/base/test_invoices.py @@ -33,7 +33,7 @@ # License for the specific language governing permissions and limitations under the License. import json -from datetime import date, timedelta +from datetime import date, datetime, timedelta, timezone from decimal import Decimal import pytest @@ -42,6 +42,7 @@ from django.utils.itercompat import is_iterable from django.utils.timezone import now from django_countries.fields import Country from django_scopes import scope, scopes_disabled +from i18nfield.strings import LazyI18nString from pretix.base.invoice import addon_aware_groupby from pretix.base.models import ( @@ -62,7 +63,8 @@ def env(): with scope(organizer=o): event = Event.objects.create( organizer=o, name='Dummy', slug='dummy', - date_from=now(), plugins='pretix.plugins.banktransfer' + date_from=datetime(2024, 12, 1, 9, 0, 0, tzinfo=timezone.utc), + plugins='pretix.plugins.banktransfer' ) o = Order.objects.create( code='FOO', event=event, email='dummy@dummy.test', @@ -660,3 +662,154 @@ def test_addon_aware_groupby(): [True, 102, 3.00], ]], ] + + +@pytest.mark.django_db +@pytest.mark.parametrize("period", ["auto", "event_date"]) +def test_period_from_event_start(env, period): + event, order = env + event.settings.invoice_period = period + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == event.date_from + assert l1.period_end == event.date_from + + +@pytest.mark.django_db +@pytest.mark.parametrize("period", ["auto", "event_date"]) +def test_period_from_event_range(env, period): + event, order = env + event.date_to = event.date_from + timedelta(days=1) + event.settings.invoice_period = period + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == event.date_from + assert l1.period_end == event.date_to + + +@pytest.mark.django_db +@pytest.mark.parametrize("period", ["auto", "auto_no_event"]) +def test_period_from_ticket_validity(env, period): + event, order = env + p1 = order.positions.first() + p1.valid_from = datetime(2025, 1, 1, 0, 0, 0, tzinfo=event.timezone) + p1.valid_until = datetime(2025, 12, 31, 23, 59, 59, tzinfo=event.timezone) + p1.save() + event.date_to = event.date_from + timedelta(days=1) + event.settings.invoice_period = period + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == p1.valid_from + assert l1.period_end == p1.valid_until + + +@pytest.mark.django_db +@pytest.mark.parametrize("period", ["auto", "auto_no_event"]) +def test_period_from_subevent(env, period): + event, order = env + event.has_subevents = True + event.save() + se1 = event.subevents.create( + name=event.name, + active=True, + date_from=datetime((now().year + 1), 7, 31, 9, 0, 0, tzinfo=timezone.utc), + date_to=datetime((now().year + 1), 7, 31, 17, 0, 0, tzinfo=timezone.utc), + ) + p1 = order.positions.first() + p1.subevent = se1 + p1.save() + event.date_to = event.date_from + timedelta(days=1) + event.settings.invoice_period = period + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == se1.date_from + assert l1.period_end == se1.date_to + + +@pytest.mark.django_db +@pytest.mark.parametrize("period", ["auto", "auto_no_event"]) +def test_period_from_memberships(env, period): + event, order = env + event.date_to = event.date_from + timedelta(days=1) + event.settings.invoice_period = period + p1 = order.positions.first() + membershiptype = event.organizer.membership_types.create( + name=LazyI18nString({"en": "Week pass"}), + transferable=True, + allow_parallel_usage=False, + max_usages=15, + ) + customer = event.organizer.customers.create( + identifier="8WSAJCJ", + email="foo@example.org", + name_parts={"_legacy": "Foo"}, + name_cached="Foo", + is_verified=False, + ) + m = customer.memberships.create( + membership_type=membershiptype, + granted_in=p1, + date_start=datetime(2021, 4, 1, 0, 0, 0, 0, tzinfo=timezone.utc), + date_end=datetime(2021, 4, 8, 23, 59, 59, 999999, tzinfo=timezone.utc), + attendee_name_parts={ + "_scheme": "given_family", + 'given_name': 'John', + 'family_name': 'Doe', + } + ) + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == m.date_start + assert l1.period_end == m.date_end + + +@pytest.mark.django_db +def test_period_auto_no_event_from_invoice(env): + event, order = env + event.settings.invoice_period = "auto_no_event" + inv = generate_invoice(order) + l1 = inv.lines.first() + assert abs(l1.period_start - now()) < timedelta(seconds=10) + assert abs(l1.period_end - now()) < timedelta(seconds=10) + + +@pytest.mark.django_db +def test_period_always_invoice_date(env): + event, order = env + p1 = order.positions.first() + p1.valid_from = datetime(2025, 1, 1, 0, 0, 0, tzinfo=event.timezone) + p1.valid_until = datetime(2025, 12, 31, 23, 59, 59, tzinfo=event.timezone) + p1.save() + event.settings.invoice_period = "invoice_date" + inv = generate_invoice(order) + l1 = inv.lines.first() + assert abs(l1.period_start - now()) < timedelta(seconds=10) + assert abs(l1.period_end - now()) < timedelta(seconds=10) + + +@pytest.mark.django_db +def test_period_always_event_date(env): + event, order = env + p1 = order.positions.first() + p1.valid_from = datetime(2025, 1, 1, 0, 0, 0, tzinfo=event.timezone) + p1.valid_until = datetime(2025, 12, 31, 23, 59, 59, tzinfo=event.timezone) + p1.save() + event.settings.invoice_period = "event_date" + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == event.date_from + assert l1.period_end == event.date_from + + +@pytest.mark.django_db +def test_period_always_order_date(env): + event, order = env + p1 = order.positions.first() + p1.valid_from = datetime(2025, 1, 1, 0, 0, 0, tzinfo=event.timezone) + p1.valid_until = datetime(2025, 12, 31, 23, 59, 59, tzinfo=event.timezone) + p1.save() + event.settings.invoice_period = "order_date" + inv = generate_invoice(order) + l1 = inv.lines.first() + assert l1.period_start == order.datetime + assert l1.period_end == order.datetime -- 2.49.1 From fc4a9406e14366b876ea38f33fe592f298f5e232 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 22 Sep 2025 10:04:33 +0200 Subject: [PATCH 009/134] Invoicing: Allow plugins to add data (#5452) * Allow plugins to add data to invoices * Add documentation --- doc/development/api/general.rst | 2 +- .../migrations/0290_invoice_plugin_data.py | 18 ++++++++++++++++++ src/pretix/base/models/invoices.py | 1 + src/pretix/base/services/invoices.py | 5 ++++- src/pretix/base/signals.py | 12 ++++++++++++ 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/pretix/base/migrations/0290_invoice_plugin_data.py diff --git a/doc/development/api/general.rst b/doc/development/api/general.rst index 636de683c..ce0bcf0dc 100644 --- a/doc/development/api/general.rst +++ b/doc/development/api/general.rst @@ -23,7 +23,7 @@ There are multiple signals that will be sent out in the ordering cycle: .. automodule:: pretix.base.signals :no-index: - :members: validate_cart, validate_cart_addons, validate_order, order_valid_if_pending, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_expiry_changed, 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_valid_if_pending, order_fee_calculation, order_paid, order_placed, order_canceled, order_reactivated, order_expired, order_expiry_changed, order_modified, order_changed, order_approved, order_denied, order_fee_type_name, allow_ticket_download, order_split, order_gracefully_delete, build_invoice_data, invoice_line_text Check-ins """"""""" diff --git a/src/pretix/base/migrations/0290_invoice_plugin_data.py b/src/pretix/base/migrations/0290_invoice_plugin_data.py new file mode 100644 index 000000000..ca0f9d4e1 --- /dev/null +++ b/src/pretix/base/migrations/0290_invoice_plugin_data.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.17 on 2025-09-09 09:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("pretixbase", "0289_invoiceline_period"), + ] + + operations = [ + migrations.AddField( + model_name="invoice", + name="plugin_data", + field=models.JSONField(default=dict), + ), + ] diff --git a/src/pretix/base/models/invoices.py b/src/pretix/base/models/invoices.py index d9401f857..7457d8d02 100644 --- a/src/pretix/base/models/invoices.py +++ b/src/pretix/base/models/invoices.py @@ -202,6 +202,7 @@ class Invoice(models.Model): transmission_info = models.JSONField(null=True, blank=True) file = models.FileField(null=True, blank=True, upload_to=invoice_filename, max_length=255) + plugin_data = models.JSONField(default=dict) objects = ScopedManager(organizer='event__organizer') diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index a47be9fef..266a8d63b 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -61,7 +61,9 @@ from pretix.base.models.tax import EU_CURRENCIES from pretix.base.services.tasks import ( TransactionAwareProfiledEventTask, TransactionAwareTask, ) -from pretix.base.signals import invoice_line_text, periodic_task +from pretix.base.signals import ( + build_invoice_data, invoice_line_text, periodic_task, +) from pretix.celery_app import app from pretix.helpers.database import OF_SELF, rolledback_transaction from pretix.helpers.models import modelcopy @@ -362,6 +364,7 @@ def build_invoice(invoice: Invoice) -> Invoice: invoice.reverse_charge = reverse_charge invoice.save() + build_invoice_data.send(sender=invoice.event, invoice=invoice) return invoice diff --git a/src/pretix/base/signals.py b/src/pretix/base/signals.py index 8e1842200..d42188d6a 100644 --- a/src/pretix/base/signals.py +++ b/src/pretix/base/signals.py @@ -596,6 +596,18 @@ multiple events. Receivers should return a subclass of pretix.base.exporter.Base The ``sender`` keyword argument will contain an organizer. """ +build_invoice_data = EventPluginSignal() +""" +Arguments: ``invoice`` + +This signal is sent out every time an invoice is built, after the invoice model was created +and filled and before the PDF generation task is started. You can use this to make changes +to the invoice, but we recommend to mostly use it to add content to ``Invoice.plugin_data``. +You are responsible for saving any changes to the database. + +As with all event-plugin signals, the ``sender`` keyword argument will contain the event. +""" + validate_order = EventPluginSignal() """ Arguments: ``payments``, ``positions``, ``email``, ``locale``, ``invoice_address``, -- 2.49.1 From e61f8035d3560ace285e0339e9dc8a530f240cba Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 29 Sep 2025 16:21:33 +0200 Subject: [PATCH 010/134] Fix typo --- src/pretix/base/settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 2b87f00bb..712ff6188 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -1105,7 +1105,7 @@ DEFAULTS = { 'serializer_class': serializers.ChoiceField, 'serializer_kwargs': dict( choices=( - ('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date)')), + ('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date')), ('auto_no_event', _('Automatic, but prefer invoice date over event date')), ('event_date', _('Event date')), ('order_date', _('Order date')), @@ -1116,7 +1116,7 @@ DEFAULTS = { label=_("Date of service"), widget=forms.RadioSelect, choices=( - ('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date)')), + ('auto', _('Automatic based on ticket-specific validity, membership validity, event series date, or event date')), ('auto_no_event', _('Automatic, but prefer invoice date over event date')), ('event_date', _('Event date')), ('order_date', _('Order date')), -- 2.49.1 From 6adabd54dcb2a0fd8997c5068ab0934023b8ae5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Sep 2025 19:12:55 +0000 Subject: [PATCH 011/134] Update beautifulsoup4 requirement from ==4.13.* to ==4.14.* Updates the requirements on [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) to permit the latest version. --- updated-dependencies: - dependency-name: beautifulsoup4 dependency-version: 4.14.2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e6e5bf13d..7192cac21 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ dependencies = [ "arabic-reshaper==3.0.0", # Support for Arabic in reportlab "babel", - "BeautifulSoup4==4.13.*", + "BeautifulSoup4==4.14.*", "bleach==6.2.*", "celery==5.5.*", "chardet==5.2.*", -- 2.49.1 From aa8b699b899b91c70b8a1cff568e87b7ce63b77c Mon Sep 17 00:00:00 2001 From: Jan Van Haver Date: Mon, 29 Sep 2025 20:37:27 +0200 Subject: [PATCH 012/134] Translations: Update Dutch Currently translated at 96.9% (5892 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/ powered by weblate --- src/pretix/locale/nl/LC_MESSAGES/django.po | 24 ++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/pretix/locale/nl/LC_MESSAGES/django.po b/src/pretix/locale/nl/LC_MESSAGES/django.po index 1edf043a9..ebcf7af37 100644 --- a/src/pretix/locale/nl/LC_MESSAGES/django.po +++ b/src/pretix/locale/nl/LC_MESSAGES/django.po @@ -7,16 +7,16 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-08-26 19:00+0000\n" +"PO-Revision-Date: 2025-09-30 01:00+0000\n" "Last-Translator: Jan Van Haver \n" -"Language-Team: Dutch \n" +"Language-Team: Dutch " +"\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.13\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -3808,6 +3808,8 @@ msgstr "Evenementdatum: {date_range}" msgid "" "A Peppol participant ID always starts with a prefix, followed by a colon (:)." msgstr "" +"Een Peppol deelnemer-ID begint altijd met een prefix, gevolgd door een " +"dubbele punt (:)." #: pretix/base/invoicing/peppol.py:132 #, python-format @@ -3815,6 +3817,8 @@ msgid "" "The Peppol participant ID prefix %(number)s is not known to our system. " "Please reach out to us if you are sure this ID is correct." msgstr "" +"De prefix van de Peppol deelnemer-ID %(number)s is niet bekend in ons " +"systeem. Neem contact met ons op als u zeker weet dat deze ID correct is." #: pretix/base/invoicing/peppol.py:136 #, python-format @@ -3822,17 +3826,18 @@ msgid "" "The Peppol participant ID does not match the validation rules for the prefix " "%(number)s. Please reach out to us if you are sure this ID is correct." msgstr "" +"De Peppol deelnemer-ID komt niet overeen met de validatieregels voor het " +"prefix %(number)s. Neem contact met ons op als u zeker weet dat deze ID " +"correct is." #: pretix/base/invoicing/peppol.py:156 msgid "Peppol participant ID" -msgstr "" +msgstr "Peppol deelnemer-ID" #: pretix/base/invoicing/peppol.py:170 -#, fuzzy -#| msgid "Gift card code" msgctxt "peppol_invoice" msgid "Visual copy" -msgstr "Cadeauboncode" +msgstr "Visuele kopie" #: pretix/base/invoicing/peppol.py:175 msgctxt "peppol_invoice" @@ -3841,6 +3846,9 @@ msgid "" "invoice for VAT purposes. The original invoice is issued in XML format and " "transmitted through the Peppol network." msgstr "" +"Dit PDF-document is een visuele kopie van de factuur en vormt geen factuur " +"voor BTW-doeleinden. De originele factuur wordt opgemaakt in XML-formaat en " +"verzonden via het Peppol-netwerk." #: pretix/base/logentrytype_registry.py:43 msgid "" -- 2.49.1 From ba62db7a19ee841852abfdd894e88dc618258075 Mon Sep 17 00:00:00 2001 From: luelista Date: Tue, 30 Sep 2025 16:01:27 +0200 Subject: [PATCH 013/134] Fix version number (2024 -> 2025) --- src/pretix/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/__init__.py b/src/pretix/__init__.py index 4a748f45b..560d87861 100644 --- a/src/pretix/__init__.py +++ b/src/pretix/__init__.py @@ -19,4 +19,4 @@ # You should have received a copy of the GNU Affero General Public License along with this program. If not, see # . # -__version__ = "2024.9.0.dev0" +__version__ = "2025.9.0.dev0" -- 2.49.1 From f79813ea327978e70d949fc324b160a78aade860 Mon Sep 17 00:00:00 2001 From: luelista Date: Tue, 30 Sep 2025 17:25:25 +0200 Subject: [PATCH 014/134] datasync: return a reference to newly create queue item (#5502) --- src/pretix/base/datasync/datasync.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/datasync/datasync.py b/src/pretix/base/datasync/datasync.py index a953be317..e01afac75 100644 --- a/src/pretix/base/datasync/datasync.py +++ b/src/pretix/base/datasync/datasync.py @@ -119,10 +119,12 @@ class OutboundSyncProvider: :param order: the Order that should be synced :param triggered_by: the reason why the order should be synced, e.g. name of the signal (currently only used internally for logging) + :return: Return a tuple (queue_item, created), where created is a boolean + specifying whether a new queue item was created. """ if not hasattr(cls, 'identifier'): raise TypeError('Call this method on a derived class that defines an "identifier" attribute.') - OrderSyncQueue.objects.update_or_create( + return OrderSyncQueue.objects.update_or_create( order=order, sync_provider=cls.identifier, in_flight=False, -- 2.49.1 From 5a2219124aed6c6b7970d7ce7882684d203cd30a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Oct 2025 09:32:02 +0200 Subject: [PATCH 015/134] Bump @babel/core from 7.28.3 to 7.28.4 in /src/pretix/static/npm_dir (#5506) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.28.3 to 7.28.4. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.28.4/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-version: 7.28.4 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/pretix/static/npm_dir/package-lock.json | 193 ++++++++------------ src/pretix/static/npm_dir/package.json | 2 +- 2 files changed, 78 insertions(+), 117 deletions(-) diff --git a/src/pretix/static/npm_dir/package-lock.json b/src/pretix/static/npm_dir/package-lock.json index 5b2e13bae..1cf6b981a 100644 --- a/src/pretix/static/npm_dir/package-lock.json +++ b/src/pretix/static/npm_dir/package-lock.json @@ -8,7 +8,7 @@ "name": "pretix", "version": "0.0.0", "dependencies": { - "@babel/core": "^7.28.3", + "@babel/core": "^7.28.4", "@babel/preset-env": "^7.28.3", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-node-resolve": "^16.0.1", @@ -18,18 +18,6 @@ "vue-template-compiler": "^2.7.16" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -53,20 +41,20 @@ } }, "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dependencies": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -115,15 +103,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.27.3", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", @@ -401,23 +380,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dependencies": { - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -1475,16 +1454,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", + "@babel/types": "^7.28.4", "debug": "^4.3.1" }, "engines": { @@ -1492,9 +1471,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -1504,15 +1483,21 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/resolve-uri": { @@ -1523,14 +1508,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", @@ -3802,15 +3779,6 @@ } }, "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, "@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -3827,20 +3795,20 @@ "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==" }, "@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "requires": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -3870,17 +3838,6 @@ "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - } } }, "@babel/helper-annotate-as-pure": { @@ -4074,20 +4031,20 @@ } }, "@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "requires": { "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" } }, "@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "requires": { - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" } }, "@babel/plugin-bugfix-firefox-class-in-computed-class-key": { @@ -4718,35 +4675,44 @@ } }, "@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "requires": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", + "@babel/types": "^7.28.4", "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -4754,11 +4720,6 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - }, "@jridgewell/sourcemap-codec": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", diff --git a/src/pretix/static/npm_dir/package.json b/src/pretix/static/npm_dir/package.json index 581ae10c5..1738d134e 100644 --- a/src/pretix/static/npm_dir/package.json +++ b/src/pretix/static/npm_dir/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": {}, "dependencies": { - "@babel/core": "^7.28.3", + "@babel/core": "^7.28.4", "@babel/preset-env": "^7.28.3", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-node-resolve": "^16.0.1", -- 2.49.1 From aa0ea27d6c1be59bb6e0c2a90db0744d6bab806c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Oct 2025 09:32:10 +0200 Subject: [PATCH 016/134] Update isort requirement from ==6.0.* to ==6.1.* (#5507) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7192cac21..5e2b2c621 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -113,7 +113,7 @@ dev = [ "fakeredis==2.31.*", "flake8==7.3.*", "freezegun", - "isort==6.0.*", + "isort==6.1.*", "pep8-naming==0.15.*", "potypo", "pytest-asyncio>=0.24", -- 2.49.1 From 425f4da1f1e2a92617dbb4221a4437277bacaf5e Mon Sep 17 00:00:00 2001 From: luelista Date: Thu, 2 Oct 2025 09:34:56 +0200 Subject: [PATCH 017/134] datasync: add immediate parameter to enqueue_order (#5504) --- src/pretix/base/datasync/datasync.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/pretix/base/datasync/datasync.py b/src/pretix/base/datasync/datasync.py index e01afac75..1af534bd3 100644 --- a/src/pretix/base/datasync/datasync.py +++ b/src/pretix/base/datasync/datasync.py @@ -106,7 +106,7 @@ class OutboundSyncProvider: return str(cls.identifier) @classmethod - def enqueue_order(cls, order, triggered_by, not_before=None): + def enqueue_order(cls, order, triggered_by, not_before=None, immediate=False): """ Adds an order to the sync queue. May only be called on derived classes which define an ``identifier`` attribute. @@ -119,12 +119,14 @@ class OutboundSyncProvider: :param order: the Order that should be synced :param triggered_by: the reason why the order should be synced, e.g. name of the signal (currently only used internally for logging) + :param immediate: whether a new sync task should run immediately for this order, instead + of waiting for the next periodic_task interval :return: Return a tuple (queue_item, created), where created is a boolean specifying whether a new queue item was created. """ if not hasattr(cls, 'identifier'): raise TypeError('Call this method on a derived class that defines an "identifier" attribute.') - return OrderSyncQueue.objects.update_or_create( + queue_item, created = OrderSyncQueue.objects.update_or_create( order=order, sync_provider=cls.identifier, in_flight=False, @@ -135,6 +137,10 @@ class OutboundSyncProvider: "need_manual_retry": None, }, ) + if immediate: + from pretix.base.services.datasync import sync_single + sync_single.apply_async(args=(queue_item.pk,)) + return queue_item, created @classmethod def get_external_link_info(cls, event, external_link_href, external_link_display_name): -- 2.49.1 From 9d5563018e3956fc386e35a24f51058648aba6eb Mon Sep 17 00:00:00 2001 From: luelista Date: Thu, 2 Oct 2025 09:36:02 +0200 Subject: [PATCH 018/134] Add "bulk" argument to order_placed signal (#5505) * datasync: add immediate parameter to enqueue_order * interactive argument for order_placed signal The ``interactive`` argument specifies whether the order was placed interactively, by a customer (as opposed to via a bulk import or the REST API). * use bulk=True instead of interactive=False to mark bulk imports --- src/pretix/api/views/order.py | 2 +- src/pretix/base/services/modelimport.py | 2 +- src/pretix/base/services/orders.py | 2 +- src/pretix/base/signals.py | 9 +++---- src/tests/plugins/autocheckin/test_checkin.py | 24 +++++++++---------- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index faded5bec..43f5cd93d 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -743,7 +743,7 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet): user=request.user if request.user.is_authenticated else None, auth=request.auth, ) - order_placed.send(self.request.event, order=order) + order_placed.send(self.request.event, order=order, bulk=False) if order.status == Order.STATUS_PAID: order_paid.send(self.request.event, order=order) order.log_action( diff --git a/src/pretix/base/services/modelimport.py b/src/pretix/base/services/modelimport.py index 4c37a6c99..2d834ec2c 100644 --- a/src/pretix/base/services/modelimport.py +++ b/src/pretix/base/services/modelimport.py @@ -221,7 +221,7 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user, for o in orders: with language(o.locale, event.settings.region): - order_placed.send(event, order=o) + order_placed.send(event, order=o, bulk=True) if o.status == Order.STATUS_PAID: order_paid.send(event, order=o) diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 319084816..229bebbc2 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -1091,7 +1091,7 @@ def _create_order(event: Event, *, email: str, positions: List[CartPosition], no for msg in meta_info.get('confirm_messages', []): order.log_action('pretix.event.order.consent', data={'msg': msg}) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) return order, payments diff --git a/src/pretix/base/signals.py b/src/pretix/base/signals.py index d42188d6a..eb3cddff5 100644 --- a/src/pretix/base/signals.py +++ b/src/pretix/base/signals.py @@ -665,12 +665,13 @@ As with all event-plugin signals, the ``sender`` keyword argument will contain t order_placed = EventPluginSignal() """ -Arguments: ``order`` +Arguments: ``order``, ``bulk`` This signal is sent out every time an order is placed. The order object is given -as the first argument. This signal is *not* sent out if an order is created through -splitting an existing order, so you can not expect to see all orders by listening -to this signal. +as the first argument. The ``bulk`` argument specifies whether the order was placed +as part of a bulk action, e.g. an import from a file. +This signal is *not* sent out if an order is created through splitting an existing order, +so you can not expect to see all orders by listening to this signal. As with all event-plugin signals, the ``sender`` keyword argument will contain the event. """ diff --git a/src/tests/plugins/autocheckin/test_checkin.py b/src/tests/plugins/autocheckin/test_checkin.py index 3c765877a..9d6789593 100644 --- a/src/tests/plugins/autocheckin/test_checkin.py +++ b/src/tests/plugins/autocheckin/test_checkin.py @@ -54,7 +54,7 @@ def test_sales_channel_all(event, item, order, checkin_list): mode=AutoCheckinRule.MODE_PLACED, all_sales_channels=True, ) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() @@ -67,12 +67,12 @@ def test_sales_channel_limit(event, item, order, checkin_list): all_sales_channels=False, ) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert not order.positions.first().checkins.exists() acr.limit_sales_channels.add(order.sales_channel) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() @@ -84,7 +84,7 @@ def test_items_all(event, item, order, checkin_list): mode=AutoCheckinRule.MODE_PLACED, all_products=True, ) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() @@ -97,12 +97,12 @@ def test_items_limit(event, item, order, checkin_list): all_products=False, ) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert not order.positions.first().checkins.exists() acr.limit_products.add(item) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() @@ -124,7 +124,7 @@ def test_variations_limit_mixed_order(event, item, order, checkin_list): ) acr.limit_variations.add(var) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() assert not order.positions.last().checkins.exists() @@ -143,19 +143,19 @@ def test_variations_limit(event, item, order, checkin_list): all_products=False, ) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert not order.positions.first().checkins.exists() acr.limit_variations.add(var) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() order.positions.first().checkins.all().delete() acr.limit_products.add(item) acr.limit_variations.clear() - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() @@ -170,7 +170,7 @@ def test_mode_placed(event, item, order, checkin_list): order_paid.send(event, order=order) assert not order.positions.first().checkins.exists() - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert order.positions.first().checkins.exists() @@ -182,7 +182,7 @@ def test_mode_paid(event, item, order, checkin_list): mode=AutoCheckinRule.MODE_PAID, ) - order_placed.send(event, order=order) + order_placed.send(event, order=order, bulk=False) assert not order.positions.first().checkins.exists() order_paid.send(event, order=order) -- 2.49.1 From 457115f4ca95f0b0c539c537593e7b162e6312a8 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 2 Oct 2025 09:38:32 +0200 Subject: [PATCH 019/134] Add refund comment to gift card transaction text (Z#23208349) (#5499) * Add refund comment to gift card transaction text (Z#23208349) * Update src/pretix/base/models/giftcards.py Co-authored-by: luelista --------- Co-authored-by: luelista --- src/pretix/base/models/giftcards.py | 29 +++++++++++++++-------------- src/pretix/base/payment.py | 1 + 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/pretix/base/models/giftcards.py b/src/pretix/base/models/giftcards.py index 905469737..d076c60f5 100644 --- a/src/pretix/base/models/giftcards.py +++ b/src/pretix/base/models/giftcards.py @@ -195,20 +195,21 @@ class GiftCardTransaction(models.Model): return response if self.order_id: - if not self.text: - if not customer_facing: - return format_html( - '
{}', - reverse( - "control:event.order", - kwargs={ - "event": self.order.event.slug, - "organizer": self.order.event.organizer.slug, - "code": self.order.code, - } - ), - self.order.full_code - ) + if not customer_facing: + return format_html( + '{} {}', + reverse( + "control:event.order", + kwargs={ + "event": self.order.event.slug, + "organizer": self.order.event.organizer.slug, + "code": self.order.code, + } + ), + self.order.full_code, + self.text or "", + ) + elif not self.text: return self.order.full_code else: return self.text diff --git a/src/pretix/base/payment.py b/src/pretix/base/payment.py index b73fecd1a..f7a8a5bce 100644 --- a/src/pretix/base/payment.py +++ b/src/pretix/base/payment.py @@ -1627,6 +1627,7 @@ class GiftCardPayment(BasePaymentProvider): order=refund.order, refund=refund, acceptor=self.event.organizer, + text=refund.comment, ) refund.info_data = { 'gift_card': gc.pk, -- 2.49.1 From 432064c3aeecf1a469026a55f64e67ea3cb54552 Mon Sep 17 00:00:00 2001 From: CVZ-es Date: Tue, 30 Sep 2025 09:46:22 +0200 Subject: [PATCH 020/134] Translations: Update French Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/ powered by weblate --- src/pretix/locale/fr/LC_MESSAGES/django.po | 80 +++++++++------------- 1 file changed, 31 insertions(+), 49 deletions(-) diff --git a/src/pretix/locale/fr/LC_MESSAGES/django.po b/src/pretix/locale/fr/LC_MESSAGES/django.po index 075aee96c..21bc5513f 100644 --- a/src/pretix/locale/fr/LC_MESSAGES/django.po +++ b/src/pretix/locale/fr/LC_MESSAGES/django.po @@ -4,8 +4,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-08-29 17:00+0000\n" -"Last-Translator: patch-works-be \n" +"PO-Revision-Date: 2025-09-30 16:00+0000\n" +"Last-Translator: CVZ-es \n" "Language-Team: French \n" "Language: fr\n" @@ -13,7 +13,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.13\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -810,28 +810,22 @@ msgstr "" "mail dans votre espace client." #: pretix/base/datasync/datasync.py:255 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" -"Le champ « {field_name} » n'est pas valide pour {available_inputs}. Veuillez " -"vérifier vos paramètres {provider_name}." +"Le champ « {field_name} » n'existe pas. Veuillez vérifier vos paramètres " +"pour {provider_name}." #: pretix/base/datasync/datasync.py:262 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -"Le champ « {field_name} » n'est pas valide pour {available_inputs}. Veuillez " -"vérifier vos paramètres {provider_name}." +"Le champ « {field_name} » nécessite {required_input}, mais n'a reçu que " +"{available_inputs}. Veuillez vérifier vos paramètres pour {provider_name}." #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -3564,6 +3558,10 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"Ce document PDF est une copie visuelle de la facture et ne constitue pas une " +"facture aux fins de la TVA. La facture est émise au format XML, transmise " +"conformément aux procédures et conditions énoncées dans le n° 89757/2018 du " +"30 avril 2018, émis par le directeur de l'Agence des recettes." #: pretix/base/invoicing/pdf.py:141 #, python-format @@ -3834,12 +3832,9 @@ msgid "Peppol participant ID" msgstr "Identifiant participant Peppol" #: pretix/base/invoicing/peppol.py:170 -#, fuzzy -#| msgctxt "italian_invoice" -#| msgid "Fiscal code" msgctxt "peppol_invoice" msgid "Visual copy" -msgstr "Code fiscal" +msgstr "Copie visuelle" #: pretix/base/invoicing/peppol.py:175 msgctxt "peppol_invoice" @@ -3848,6 +3843,9 @@ msgid "" "invoice for VAT purposes. The original invoice is issued in XML format and " "transmitted through the Peppol network." msgstr "" +"Ce document PDF est une reproduction visuelle de la facture et ne constitue " +"pas une facture au sens de la TVA. La facture originale est émise au format " +"XML et transmise via le réseau Peppol." #: pretix/base/logentrytype_registry.py:43 msgid "" @@ -14513,10 +14511,8 @@ msgid "Canceled (fully or with paid fee)" msgstr "Annulé (entièrement ou avec des frais payés)" #: pretix/control/forms/filter.py:228 -#, fuzzy -#| msgid "Cancel this position" msgid "Canceled (at least one position)" -msgstr "Annuler cette position" +msgstr "Annulé (au moins pour une position)" #: pretix/control/forms/filter.py:229 msgid "Cancellation requested" @@ -17268,10 +17264,9 @@ msgid "The voucher has been deleted." msgstr "Le bon a été supprimé." #: pretix/control/logdisplay.py:584 -#, fuzzy, python-brace-format -#| msgid "The voucher has been sent to {email} through the waiting list." +#, python-brace-format msgid "The voucher has been assigned to {email} through the waiting list." -msgstr "Le bon a été envoyé à {email} via la liste d'attente." +msgstr "Le bon a été attribué à {email} via de la liste d'attente." #: pretix/control/logdisplay.py:593 #, python-brace-format @@ -27886,11 +27881,11 @@ msgstr "" "les prochaines minutes." #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 -#, fuzzy -#| msgid "The voucher \"{voucher}\" has been used in the meantime." msgid "" "The sync job could not be found. It may have been processed in the meantime." -msgstr "Le bon de réduction \"{voucher}\" a été utilisé entre-temps." +msgstr "" +"La tâche de synchronisation est introuvable. Elle a peut-être été traitée " +"entre-temps." #: pretix/control/views/datasync.py:93 pretix/control/views/datasync.py:107 msgid "The sync job is already in progress." @@ -28894,14 +28889,12 @@ msgstr "" "planifié pour {name}." #: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 -#, fuzzy -#| msgid "You do not have sufficient permission to perform this export." msgid "" "Your user account does not have sufficient permission to run this report, " "therefore you cannot schedule it." msgstr "" -"Vous ne disposez pas des autorisations suffisantes pour effectuer cette " -"exportation." +"Votre compte utilisateur ne dispose pas des autorisations suffisantes pour " +"exécuter ce rapport, vous ne pouvez donc pas le planifier." #: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 msgid "" @@ -29272,17 +29265,14 @@ msgid "A date can not be deleted if orders already have been placed." msgstr "Une date ne peut pas être supprimée si des ordres ont déjà été passés." #: pretix/control/views/subevents.py:203 -#, fuzzy -#| msgid "" -#| "The channel could not be deleted as some constraints (e.g. data created " -#| "by plug-ins) did not allow it." msgctxt "subevent" msgid "" "The date could not be deleted as some constraints (e.g. data created by plug-" "ins) did not allow it. The date was disabled instead." msgstr "" -"Le canal de vente n'a pas pu être supprimé car certaines contraintes (par " -"exemple, les données créées par les plug-ins) ne le permettent pas." +"La date n'a pas pu être supprimée car certaines contraintes (par exemple, " +"les données créées par les plug-ins) ne le permettaient pas. La date a donc " +"été désactivée." #: pretix/control/views/subevents.py:207 msgctxt "subevent" @@ -34147,18 +34137,12 @@ msgstr "" "puisse être confirmée et forme un contrat valide." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:192 -#, fuzzy -#| msgid "" -#| "After you submitted your order using the button below, it will require " -#| "approval by the event organizer before it can be confirmed and forms a " -#| "valid contract." msgid "" "After you submitted your order using the button below, it will require " "approval by the event organizer." msgstr "" -"Après avoir soumis votre commande en utilisant le bouton ci-dessous, elle " -"nécessitera l’approbation de l’organisateur de l’événement avant qu’elle " -"puisse être confirmée et forme un contrat valide." +"Une fois que vous aurez soumis votre commande à l'aide du bouton ci-dessous, " +"celle-ci devra être approuvée par l'organisateur de l'événement." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:195 msgid "" @@ -36776,10 +36760,8 @@ msgid "The selected date does not exist in this event series." msgstr "La date sélectionnée n’existe pas dans cette série d’événements." #: pretix/presale/views/widget.py:412 -#, fuzzy -#| msgid "The selected seat \"{seat}\" is not available." msgid "The selected date is not available." -msgstr "La place {seat} sélectionné n'est pas disponible." +msgstr "La date sélectionnée n'est pas disponible." #: pretix/presale/views/widget.py:476 #, python-format -- 2.49.1 From e2eedac93b16e79adbf333828f3c473e65462729 Mon Sep 17 00:00:00 2001 From: CVZ-es Date: Tue, 30 Sep 2025 09:51:18 +0200 Subject: [PATCH 021/134] Translations: Update Spanish Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/es/ powered by weblate --- src/pretix/locale/es/LC_MESSAGES/django.po | 80 +++++++++------------- 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/src/pretix/locale/es/LC_MESSAGES/django.po b/src/pretix/locale/es/LC_MESSAGES/django.po index b66c747ff..f80cf92cd 100644 --- a/src/pretix/locale/es/LC_MESSAGES/django.po +++ b/src/pretix/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-08-30 02:00+0000\n" +"PO-Revision-Date: 2025-09-30 16:00+0000\n" "Last-Translator: CVZ-es \n" "Language-Team: Spanish \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.13\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -810,28 +810,23 @@ msgstr "" "Primero verifique la dirección de correo electrónico en su cuenta de cliente." #: pretix/base/datasync/datasync.py:255 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" -"El campo «{field_name}» no es válido para {available_inputs}. Comprueba la " -"configuración de {provider_name}." +"El campo «{field_name}» no existe. Comprueba la configuración de " +"{provider_name}." #: pretix/base/datasync/datasync.py:262 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -"El campo «{field_name}» no es válido para {available_inputs}. Comprueba la " -"configuración de {provider_name}." +"El campo «{field_name}» requiere {required_input}, pero solo se ha " +"introducido {available_inputs}. Comprueba la configuración de " +"{provider_name}." #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -3559,6 +3554,11 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"Este documento PDF es una copia visual de la factura y no constituye una " +"factura a efectos del IVA. La factura se emite en formato XML, transmitida " +"de acuerdo con los procedimientos y términos establecidos en el n.º 89757/" +"2018, de 30 de abril de 2018, emitido por el Director de la Agencia " +"Tributaria." #: pretix/base/invoicing/pdf.py:141 #, python-format @@ -3829,12 +3829,9 @@ msgid "Peppol participant ID" msgstr "Identificador de participante Peppol" #: pretix/base/invoicing/peppol.py:170 -#, fuzzy -#| msgctxt "italian_invoice" -#| msgid "Fiscal code" msgctxt "peppol_invoice" msgid "Visual copy" -msgstr "Código fiscal" +msgstr "Copia visual" #: pretix/base/invoicing/peppol.py:175 msgctxt "peppol_invoice" @@ -3843,6 +3840,9 @@ msgid "" "invoice for VAT purposes. The original invoice is issued in XML format and " "transmitted through the Peppol network." msgstr "" +"Este documento PDF es una copia visual de la factura y no constituye una " +"factura a efectos del IVA. La factura original se emite en formato XML y se " +"transmite a través de la red Peppol." #: pretix/base/logentrytype_registry.py:43 msgid "" @@ -14387,10 +14387,8 @@ msgid "Canceled (fully or with paid fee)" msgstr "Cancelado (totalmente o con tarifa pagada)" #: pretix/control/forms/filter.py:228 -#, fuzzy -#| msgid "Cancel this position" msgid "Canceled (at least one position)" -msgstr "Cancelar posición" +msgstr "Cancelado (al menos una posición)" #: pretix/control/forms/filter.py:229 msgid "Cancellation requested" @@ -17130,10 +17128,9 @@ msgid "The voucher has been deleted." msgstr "El vale de compra fue eliminado." #: pretix/control/logdisplay.py:584 -#, fuzzy, python-brace-format -#| msgid "The voucher has been sent to {email} through the waiting list." +#, python-brace-format msgid "The voucher has been assigned to {email} through the waiting list." -msgstr "El vale se ha enviado a {email} a través de la lista de espera." +msgstr "El vale se ha asignado a {email} a través de la lista de espera." #: pretix/control/logdisplay.py:593 #, python-brace-format @@ -27677,11 +27674,11 @@ msgstr "" "próximos minutos." #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 -#, fuzzy -#| msgid "The voucher \"{voucher}\" has been used in the meantime." msgid "" "The sync job could not be found. It may have been processed in the meantime." -msgstr "El vale de compra {voucher} ya ha sido utilizado." +msgstr "" +"No se ha encontrado la tarea de sincronización. Es posible que se haya " +"procesado mientras tanto." #: pretix/control/views/datasync.py:93 pretix/control/views/datasync.py:107 msgid "The sync job is already in progress." @@ -28674,12 +28671,12 @@ msgstr "" "programado para {name}." #: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 -#, fuzzy -#| msgid "You do not have sufficient permission to perform this export." msgid "" "Your user account does not have sufficient permission to run this report, " "therefore you cannot schedule it." -msgstr "No tiene permiso suficiente para realizar esta exportación." +msgstr "" +"Su cuenta de usuario no tiene permisos suficientes para ejecutar este " +"informe, por lo que no puede programarlo." #: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 msgid "" @@ -29044,17 +29041,14 @@ msgid "A date can not be deleted if orders already have been placed." msgstr "No se puede borrar una fecha si ya se han realizado pedidos." #: pretix/control/views/subevents.py:203 -#, fuzzy -#| msgid "" -#| "The channel could not be deleted as some constraints (e.g. data created " -#| "by plug-ins) did not allow it." msgctxt "subevent" msgid "" "The date could not be deleted as some constraints (e.g. data created by plug-" "ins) did not allow it. The date was disabled instead." msgstr "" -"El canal no ha podido borrarse porque algunas restricciones (por ejemplo, " -"datos creados por plug-ins) no lo permitían." +"La fecha no se pudo eliminar debido a que algunas restricciones (por " +"ejemplo, datos creados por complementos) no lo permitían. En su lugar, se " +"desactivó la fecha." #: pretix/control/views/subevents.py:207 msgctxt "subevent" @@ -33878,18 +33872,12 @@ msgstr "" "formar un contrato válido." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:192 -#, fuzzy -#| msgid "" -#| "After you submitted your order using the button below, it will require " -#| "approval by the event organizer before it can be confirmed and forms a " -#| "valid contract." msgid "" "After you submitted your order using the button below, it will require " "approval by the event organizer." msgstr "" -"Después de enviar su pedido usando el botón a continuación, requerirá la " -"aprobación del organizador del evento antes de que pueda confirmarse y " -"formar un contrato válido." +"Después de enviar el pedido mediante el botón que aparece a continuación, " +"será necesario que el organizador del evento lo apruebe." #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:195 msgid "" @@ -36448,10 +36436,8 @@ msgid "The selected date does not exist in this event series." msgstr "La fecha seleccionada no existe en esta serie de eventos." #: pretix/presale/views/widget.py:412 -#, fuzzy -#| msgid "The selected seat \"{seat}\" is not available." msgid "The selected date is not available." -msgstr "El asiento seleccionado {seat} no está disponible." +msgstr "La fecha seleccionada no está disponible." #: pretix/presale/views/widget.py:476 #, python-format -- 2.49.1 From cc1c7e1c23dc12c7417be06d4224deef958b3e82 Mon Sep 17 00:00:00 2001 From: Hijiri Umemoto Date: Tue, 30 Sep 2025 11:08:51 +0200 Subject: [PATCH 022/134] Translations: Update Japanese Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/ powered by weblate --- src/pretix/locale/ja/LC_MESSAGES/django.po | 75 ++++++++-------------- 1 file changed, 26 insertions(+), 49 deletions(-) diff --git a/src/pretix/locale/ja/LC_MESSAGES/django.po b/src/pretix/locale/ja/LC_MESSAGES/django.po index 9213e6c91..c418bc3ca 100644 --- a/src/pretix/locale/ja/LC_MESSAGES/django.po +++ b/src/pretix/locale/ja/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-19 16:35+0000\n" -"PO-Revision-Date: 2025-09-27 16:00+0000\n" -"Last-Translator: Yasunobu YesNo Kawaguchi \n" +"PO-Revision-Date: 2025-09-30 16:00+0000\n" +"Last-Translator: Hijiri Umemoto \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -796,28 +796,21 @@ msgstr "" "メールアドレスを先に検証してください。" #: pretix/base/datasync/datasync.py:255 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." -msgstr "" -"フィールド\"{field_name}\"は{available_inputs}に対して有効ではありません。" -"{provider_name}の設定を確認してください。" +msgstr "フィールド「{field_name}」は存在しません。{provider_name}の設定を確認してくだ" +"さい。" #: pretix/base/datasync/datasync.py:262 -#, fuzzy, python-brace-format -#| msgid "" -#| "Field \"{field_name}\" is not valid for {available_inputs}. Please check " -#| "your {provider_name} settings." +#, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -"フィールド\"{field_name}\"は{available_inputs}に対して有効ではありません。" -"{provider_name}の設定を確認してください。" +"フィールド「{field_name}」には{required_input}が必要ですが、{available_inputs" +"}しか取得できませんでした。{provider_name}の設定を確認してください。" #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -3527,6 +3520,9 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"この PDF ドキュメントは請求書の画像情報の写しであり、VAT " +"のための請求書を構成するものではありません。請求書はXML形式で発行され、" +"2018年4月30日のNo. 89757/2018に定められた手順と条件に従って送信されます。" #: pretix/base/invoicing/pdf.py:141 #, python-format @@ -3794,12 +3790,9 @@ msgid "Peppol participant ID" msgstr "Peppol参加者ID" #: pretix/base/invoicing/peppol.py:170 -#, fuzzy -#| msgctxt "italian_invoice" -#| msgid "Fiscal code" msgctxt "peppol_invoice" msgid "Visual copy" -msgstr "納税者番号" +msgstr "写しの画像" #: pretix/base/invoicing/peppol.py:175 msgctxt "peppol_invoice" @@ -3808,6 +3801,10 @@ msgid "" "invoice for VAT purposes. The original invoice is issued in XML format and " "transmitted through the Peppol network." msgstr "" +"この PDF " +"ドキュメントは請求書の画像情報の写しであり、VATのための請求書を構成するもので" +"はありません。請求書の原本はXML形式で発行され、Peppolネットワークを介して送信" +"されます。" #: pretix/base/logentrytype_registry.py:43 msgid "" @@ -13970,10 +13967,8 @@ msgid "Canceled (fully or with paid fee)" msgstr "キャンセル(全額返金または手数料を支払って)" #: pretix/control/forms/filter.py:228 -#, fuzzy -#| msgid "Cancel this position" msgid "Canceled (at least one position)" -msgstr "このポジションをキャンセルします" +msgstr "キャンセル済み(少なくとも1つのポジション)" #: pretix/control/forms/filter.py:229 msgid "Cancellation requested" @@ -16622,10 +16617,9 @@ msgid "The voucher has been deleted." msgstr "そのバウチャーは削除されました。" #: pretix/control/logdisplay.py:584 -#, fuzzy, python-brace-format -#| msgid "The voucher has been sent to {email} through the waiting list." +#, python-brace-format msgid "The voucher has been assigned to {email} through the waiting list." -msgstr "バウチャーが空席待ちリストを通じて{email}に送信されました。" +msgstr "バウチャーは、空席待ちリストを通じて{email}に割り当てられました。" #: pretix/control/logdisplay.py:593 #, python-brace-format @@ -26896,11 +26890,9 @@ msgid "The sync job has been enqueued and will run in the next minutes." msgstr "同期ジョブがキューに追加されました。数分以内に実行されます。" #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 -#, fuzzy -#| msgid "The voucher \"{voucher}\" has been used in the meantime." msgid "" "The sync job could not be found. It may have been processed in the meantime." -msgstr "そのバウチャー「{voucher}」はすでに使用されています。" +msgstr "同期ジョブが見つかりませんでした。その間に処理されていたかもしれません。" #: pretix/control/views/datasync.py:93 pretix/control/views/datasync.py:107 msgid "The sync job is already in progress." @@ -27862,12 +27854,11 @@ msgstr "" "このメールに、{name}の新しい定期レポートを添付しています。" #: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 -#, fuzzy -#| msgid "You do not have sufficient permission to perform this export." msgid "" "Your user account does not have sufficient permission to run this report, " "therefore you cannot schedule it." -msgstr "このエクスポートを実行するための十分な権限がありません。" +msgstr "ユーザーアカウントにはこのレポートを実行するのに十分な権限がないため、スケジ" +"ュールを設定できません。" #: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 msgid "" @@ -28229,17 +28220,12 @@ msgid "A date can not be deleted if orders already have been placed." msgstr "注文がすでにある場合、日付を削除することはできません。" #: pretix/control/views/subevents.py:203 -#, fuzzy -#| msgid "" -#| "The channel could not be deleted as some constraints (e.g. data created " -#| "by plug-ins) did not allow it." msgctxt "subevent" msgid "" "The date could not be deleted as some constraints (e.g. data created by plug-" "ins) did not allow it. The date was disabled instead." -msgstr "" -"チャンネルは削除できませんでした。プラグインによって作成されたデータなど、い" -"くつかの制約がそれを許可していませんでした。" +msgstr "日付は、いくつかの制約(プラグインによって作成されたデータなど)で許可されて" +"いないため、削除できませんでした。代わりに日付が無効になりました。" #: pretix/control/views/subevents.py:207 msgctxt "subevent" @@ -32934,17 +32920,10 @@ msgstr "" "ます。その後、有効な契約が形成されます。" #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:192 -#, fuzzy -#| msgid "" -#| "After you submitted your order using the button below, it will require " -#| "approval by the event organizer before it can be confirmed and forms a " -#| "valid contract." msgid "" "After you submitted your order using the button below, it will require " "approval by the event organizer." -msgstr "" -"以下のボタンを使用して注文を送信した後、イベント主催者による承認が必要となり" -"ます。その後、有効な契約が形成されます。" +msgstr "下のボタンを使って注文を送信した後、イベント主催者の承認が必要になります。" #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:195 msgid "" @@ -35434,10 +35413,8 @@ msgid "The selected date does not exist in this event series." msgstr "選択された日付は、このイベントシリーズに存在しません。" #: pretix/presale/views/widget.py:412 -#, fuzzy -#| msgid "The selected seat \"{seat}\" is not available." msgid "The selected date is not available." -msgstr "選択した座席 \"{seat}\"はご利用になれません。" +msgstr "選択した日付は利用できません。" #: pretix/presale/views/widget.py:476 #, python-format -- 2.49.1 From 2611ff74a5c2c3bf6483416dfba98d70ca7c3397 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 2 Oct 2025 09:57:59 +0200 Subject: [PATCH 023/134] Badges: Fix incorrect offsets for DURABLE 8334-02 --- src/pretix/plugins/badges/exporters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/plugins/badges/exporters.py b/src/pretix/plugins/badges/exporters.py index 14560ea55..b94afe911 100644 --- a/src/pretix/plugins/badges/exporters.py +++ b/src/pretix/plugins/badges/exporters.py @@ -170,7 +170,7 @@ OPTIONS = OrderedDict([ 'cols': 2, 'rows': 6, 'margins': [28.5 * mm, 30 * mm, 28.5 * mm, 30 * mm], - 'offsets': [93 * mm, 60 * mm], + 'offsets': [75 * mm, 40 * mm], 'pagesize': pagesizes.A4, }), ('herma_50x80', { -- 2.49.1 From 22f351cb89ee72d50d2701720498d2834d543f0d Mon Sep 17 00:00:00 2001 From: Martin Gross Date: Thu, 2 Oct 2025 10:30:33 +0200 Subject: [PATCH 024/134] OCM: Ignore already canceled addons in remaining item calculation (Z#23209824) --- src/pretix/base/services/orders.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 229bebbc2..5d30600e0 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -2825,7 +2825,7 @@ class OrderChangeManager: def _check_complete_cancel(self): current = self.order.positions.count() cancels = sum([ - 1 + o.position.addons.count() for o in self._operations if isinstance(o, self.CancelOperation) + 1 + o.position.addons.filter(canceled=False).count() for o in self._operations if isinstance(o, self.CancelOperation) ]) + len([ o for o in self._operations if isinstance(o, self.SplitOperation) ]) -- 2.49.1 From 25f57f89b08a106990b20e3bfd5f5dc5511865a4 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 2 Oct 2025 19:14:29 +0200 Subject: [PATCH 025/134] Order import: Additional warning for disabling test mode (Z#23208360) (#5494) --- src/pretix/control/forms/modelimport.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/pretix/control/forms/modelimport.py b/src/pretix/control/forms/modelimport.py index c96cf29c4..27417cee2 100644 --- a/src/pretix/control/forms/modelimport.py +++ b/src/pretix/control/forms/modelimport.py @@ -21,6 +21,8 @@ # from django import forms from django.core.exceptions import ValidationError +from django.utils.functional import lazy +from django.utils.html import format_html from django.utils.translation import gettext_lazy as _ from pretix.base.modelimport_orders import get_order_import_columns @@ -71,6 +73,9 @@ class ProcessForm(forms.Form): raise NotImplementedError() # noqa +format_html_lazy = lazy(format_html, str) + + class OrdersProcessForm(ProcessForm): orders = forms.ChoiceField( label=_('Import mode'), @@ -91,7 +96,11 @@ class OrdersProcessForm(ProcessForm): ) testmode = forms.BooleanField( label=_('Create orders as test mode orders'), - required=False + required=False, + help_text=format_html_lazy( + '
{}
', + _('Orders not created in test mode cannot be deleted again after import.') + ) ) def __init__(self, *args, **kwargs): @@ -100,6 +109,8 @@ class OrdersProcessForm(ProcessForm): initital['testmode'] = self.event.testmode kwargs['initial'] = initital super().__init__(*args, **kwargs) + if not self.event.testmode: + self.fields["testmode"].help_text = "" def get_columns(self): return get_order_import_columns(self.event) -- 2.49.1 From 7e8da3cef6191604cfec13f2bb5196e75b4b9a01 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 6 Oct 2025 09:24:20 +0200 Subject: [PATCH 026/134] Do not sent "payment failed" email if payment is no longer expected (Z#23202699) (#5509) --- src/pretix/base/models/orders.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index f48e7dd63..8b65d7898 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -1840,6 +1840,10 @@ class OrderPayment(models.Model): )) return False + if locked_instance.state == OrderPayment.PAYMENT_STATE_CANCELED: + # Never send mails when the payment was already canceled intentionally + send_mail = False + if isinstance(info, str): locked_instance.info = info elif info: @@ -1855,6 +1859,10 @@ class OrderPayment(models.Model): 'data': log_data, }, user=user, auth=auth) + if self.order.status in (Order.STATUS_PAID, Order.STATUS_CANCELED, Order.STATUS_EXPIRED): + # No reason to send mail, as the payment is no longer really expected + send_mail = False + if send_mail: with language(self.order.locale, self.order.event.settings.region): email_subject = self.order.event.settings.mail_subject_order_payment_failed -- 2.49.1 From 867cd8c59eb64233c2f410cd775142d88d0b07ac Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 6 Oct 2025 09:24:39 +0200 Subject: [PATCH 027/134] Model import: Create logentries in bulk (#5511) * Model import: Create logentries in bulk * Update src/pretix/base/services/modelimport.py Co-authored-by: luelista --------- Co-authored-by: luelista --- src/pretix/base/services/modelimport.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/pretix/base/services/modelimport.py b/src/pretix/base/services/modelimport.py index 2d834ec2c..46504d933 100644 --- a/src/pretix/base/services/modelimport.py +++ b/src/pretix/base/services/modelimport.py @@ -33,8 +33,8 @@ from pretix.base.modelimport import DataImportError, ImportColumn, parse_csv from pretix.base.modelimport_orders import get_order_import_columns from pretix.base.modelimport_vouchers import get_voucher_import_columns from pretix.base.models import ( - CachedFile, Event, InvoiceAddress, Order, OrderPayment, OrderPosition, - User, Voucher, + CachedFile, Event, InvoiceAddress, LogEntry, Order, OrderPayment, + OrderPosition, User, Voucher, ) from pretix.base.models.orders import Transaction from pretix.base.services.invoices import generate_invoice, invoice_qualified @@ -175,6 +175,7 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user, raise DataImportError(_('The seat you selected has already been taken. Please select a different seat.')) save_transactions = [] + save_logentries = [] for o in orders: o.total = sum([c.price for c in o._positions]) # currently no support for fees if o.total == Decimal('0.00'): @@ -211,13 +212,15 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user, o._address.save() for c in cols: c.save(o) - o.log_action( + save_logentries.append(o.log_action( 'pretix.event.order.placed', user=user, - data={'source': 'import'} - ) + data={'source': 'import'}, + save=False, + )) save_transactions += o.create_transactions(is_new=True, fees=[], positions=o._positions, save=False) Transaction.objects.bulk_create(save_transactions) + LogEntry.bulk_create_and_postprocess(save_logentries) for o in orders: with language(o.locale, event.settings.region): @@ -286,13 +289,16 @@ def import_vouchers(event: Event, fileid: str, settings: dict, locale: str, user raise DataImportError( _('The seat you selected has already been taken. Please select a different seat.')) + save_logentries = [] for v in vouchers: v.save() - v.log_action( + save_logentries.append(v.log_action( 'pretix.voucher.added', user=user, - data={'source': 'import'} - ) + data={'source': 'import'}, + save=False, + )) for c in cols: c.save(v) + LogEntry.bulk_create_and_postprocess(save_logentries) cf.delete() -- 2.49.1 From 301191e4bd145bda39c1f82e7e9ab5a920c2bda7 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 6 Oct 2025 09:24:51 +0200 Subject: [PATCH 028/134] Notification queues: Optimize order for less queries (#5512) * Notification queues: Optimize order for less queries * Update src/pretix/api/webhooks.py Co-authored-by: luelista --------- Co-authored-by: luelista --- src/pretix/api/webhooks.py | 10 +++++++--- src/pretix/base/services/notifications.py | 6 +++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/pretix/api/webhooks.py b/src/pretix/api/webhooks.py index 2dcf525e9..2505a5a0d 100644 --- a/src/pretix/api/webhooks.py +++ b/src/pretix/api/webhooks.py @@ -439,8 +439,12 @@ def register_default_webhook_events(sender, **kwargs): def notify_webhooks(logentry_ids: list): if not isinstance(logentry_ids, list): logentry_ids = [logentry_ids] - qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer').filter(id__in=logentry_ids) - _org, _at, webhooks = None, None, None + qs = LogEntry.all.select_related( + 'event', 'event__organizer', 'organizer' + ).order_by( + 'action_type', 'organizer_id', 'event_id', + ).filter(id__in=logentry_ids) + _org, _at, _ev, webhooks = None, None, None, None for logentry in qs: if not logentry.organizer: break # We need to know the organizer @@ -450,7 +454,7 @@ def notify_webhooks(logentry_ids: list): if not notification_type: break # Ignore, no webhooks for this event type - if _org != logentry.organizer or _at != logentry.action_type or webhooks is None: + if _org != logentry.organizer or _at != logentry.action_type or _ev != logentry.event_id or webhooks is None: _org = logentry.organizer _at = logentry.action_type diff --git a/src/pretix/base/services/notifications.py b/src/pretix/base/services/notifications.py index 0680482f2..310252012 100644 --- a/src/pretix/base/services/notifications.py +++ b/src/pretix/base/services/notifications.py @@ -41,7 +41,11 @@ def notify(logentry_ids: list): if not isinstance(logentry_ids, list): logentry_ids = [logentry_ids] - qs = LogEntry.all.select_related('event', 'event__organizer').filter(id__in=logentry_ids) + qs = LogEntry.all.select_related( + 'event', 'event__organizer' + ).order_by( + 'action_type', 'event_id', + ).filter(id__in=logentry_ids) _event, _at, notify_specific, notify_global = None, None, None, None for logentry in qs: -- 2.49.1 From 2650bf6f4f4f1151c51da5521f99b31373d6634f Mon Sep 17 00:00:00 2001 From: Mira Date: Thu, 2 Oct 2025 18:46:54 +0200 Subject: [PATCH 029/134] Translations: Update German Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/ powered by weblate --- src/pretix/locale/de/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/de/LC_MESSAGES/django.po b/src/pretix/locale/de/LC_MESSAGES/django.po index 730d99ff1..af490fb1f 100644 --- a/src/pretix/locale/de/LC_MESSAGES/django.po +++ b/src/pretix/locale/de/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-26 13:02+0000\n" -"Last-Translator: Raphael Michel \n" +"PO-Revision-Date: 2025-10-03 01:00+0000\n" +"Last-Translator: Mira \n" "Language-Team: German \n" "Language: de\n" @@ -28214,7 +28214,7 @@ msgstr "" #: pretix/control/views/modelimport.py:174 msgid "The import was successful." -msgstr "Die Import war erfolgreich." +msgstr "Der Import war erfolgreich." #: pretix/control/views/modelimport.py:186 msgid "We've been unable to parse the uploaded file as a CSV file." -- 2.49.1 From 11269c277b0a08974849fd1e9eff9db2ac62167c Mon Sep 17 00:00:00 2001 From: Mira Date: Thu, 2 Oct 2025 18:46:07 +0200 Subject: [PATCH 030/134] Translations: Update German (informal) (de_Informal) Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/ powered by weblate --- src/pretix/locale/de_Informal/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po index c9a307659..22cbcb331 100644 --- a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po +++ b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-26 13:02+0000\n" -"Last-Translator: Raphael Michel \n" +"PO-Revision-Date: 2025-10-03 01:00+0000\n" +"Last-Translator: Mira \n" "Language-Team: German (informal) \n" "Language: de_Informal\n" @@ -28172,7 +28172,7 @@ msgstr "" #: pretix/control/views/modelimport.py:174 msgid "The import was successful." -msgstr "Die Import war erfolgreich." +msgstr "Der Import war erfolgreich." #: pretix/control/views/modelimport.py:186 msgid "We've been unable to parse the uploaded file as a CSV file." -- 2.49.1 From 1ce4c115720c5a19d9170d2b1ae86c5f1119b81d Mon Sep 17 00:00:00 2001 From: Yasunobu YesNo Kawaguchi Date: Fri, 3 Oct 2025 13:10:21 +0200 Subject: [PATCH 031/134] Translations: Update Japanese Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ja/ powered by weblate --- src/pretix/locale/ja/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/ja/LC_MESSAGES/django.po b/src/pretix/locale/ja/LC_MESSAGES/django.po index c418bc3ca..9c0275775 100644 --- a/src/pretix/locale/ja/LC_MESSAGES/django.po +++ b/src/pretix/locale/ja/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-08-19 16:35+0000\n" -"PO-Revision-Date: 2025-09-30 16:00+0000\n" -"Last-Translator: Hijiri Umemoto \n" +"PO-Revision-Date: 2025-10-03 20:00+0000\n" +"Last-Translator: Yasunobu YesNo Kawaguchi \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -30760,7 +30760,7 @@ msgstr "このイベントのメール設定でチケットの添付が無効に #: pretix/plugins/sendmail/forms.py:234 pretix/plugins/sendmail/forms.py:386 #: pretix/plugins/sendmail/views.py:267 msgid "payment pending but already confirmed" -msgstr "支払い保留中ですが、すでに確認済み" +msgstr "支払い保留中だが確認済み" #: pretix/plugins/sendmail/forms.py:235 pretix/plugins/sendmail/forms.py:388 #: pretix/plugins/sendmail/views.py:268 -- 2.49.1 From 11460d878b6e25eb492f0e4e0fee0c1daa0951f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Bo=C5=BCek?= Date: Sat, 4 Oct 2025 11:59:34 +0200 Subject: [PATCH 032/134] Translations: Update Polish Currently translated at 95.5% (5803 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pl/ powered by weblate --- src/pretix/locale/pl/LC_MESSAGES/django.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pretix/locale/pl/LC_MESSAGES/django.po b/src/pretix/locale/pl/LC_MESSAGES/django.po index e047217ac..74eb3ce2c 100644 --- a/src/pretix/locale/pl/LC_MESSAGES/django.po +++ b/src/pretix/locale/pl/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-06-02 23:00+0000\n" -"Last-Translator: Anarion Dunedain \n" +"PO-Revision-Date: 2025-10-04 10:10+0000\n" +"Last-Translator: Sebastian Bożek \n" "Language-Team: Polish \n" "Language: pl\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 5.11.4\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -90,7 +90,7 @@ msgstr "Grecki" #: pretix/_base_settings.py:104 msgid "Hebrew" -msgstr "" +msgstr "Hebrajski" #: pretix/_base_settings.py:105 msgid "Indonesian" @@ -146,7 +146,7 @@ msgstr "Hiszpański" #: pretix/_base_settings.py:118 msgid "Spanish (Latin America)" -msgstr "" +msgstr "Hiszpański (Ameryka Łacińska)" #: pretix/_base_settings.py:119 msgid "Turkish" @@ -2328,7 +2328,7 @@ msgstr "" #: pretix/base/exporters/waitinglist.py:115 pretix/control/forms/event.py:1671 #: pretix/control/forms/organizer.py:116 msgid "Event slug" -msgstr "Kod wydarzenia" +msgstr "Fragment adresu URL, który pojawia się po nazwie domeny." #: pretix/base/exporters/orderlist.py:262 #: pretix/base/exporters/orderlist.py:452 -- 2.49.1 From 2b796aa45eb66ff7e1224429dd3f67cb58783735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Bo=C5=BCek?= Date: Sat, 4 Oct 2025 12:04:35 +0200 Subject: [PATCH 033/134] Translations: Update Finnish Currently translated at 64.4% (3917 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fi/ powered by weblate --- src/pretix/locale/fi/LC_MESSAGES/django.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pretix/locale/fi/LC_MESSAGES/django.po b/src/pretix/locale/fi/LC_MESSAGES/django.po index e84c02d5a..51f59bf45 100644 --- a/src/pretix/locale/fi/LC_MESSAGES/django.po +++ b/src/pretix/locale/fi/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-05-04 16:00+0000\n" -"Last-Translator: Pekka Sarkola \n" +"PO-Revision-Date: 2025-10-04 10:10+0000\n" +"Last-Translator: Sebastian Bożek \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.11.1\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -113,7 +113,7 @@ msgstr "norja (kirjakieli)" #: pretix/_base_settings.py:110 msgid "Polish" -msgstr "puola" +msgstr "Puola" #: pretix/_base_settings.py:111 msgid "Portuguese (Portugal)" -- 2.49.1 From 5b851e270b4bd72482f0581748b557dbac900b95 Mon Sep 17 00:00:00 2001 From: Jan Van Haver Date: Sat, 4 Oct 2025 14:06:16 +0200 Subject: [PATCH 034/134] Translations: Update Dutch Currently translated at 97.2% (5907 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/ powered by weblate --- src/pretix/locale/nl/LC_MESSAGES/django.po | 56 ++++++++-------------- 1 file changed, 19 insertions(+), 37 deletions(-) diff --git a/src/pretix/locale/nl/LC_MESSAGES/django.po b/src/pretix/locale/nl/LC_MESSAGES/django.po index ebcf7af37..b34d4565e 100644 --- a/src/pretix/locale/nl/LC_MESSAGES/django.po +++ b/src/pretix/locale/nl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-30 01:00+0000\n" +"PO-Revision-Date: 2025-10-04 19:00+0000\n" "Last-Translator: Jan Van Haver \n" "Language-Team: Dutch " "\n" @@ -808,6 +808,8 @@ msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" +"Het veld \"{field_name}\" bestaat niet. Controleer uw {provider_name} " +"instellingen." #: pretix/base/datasync/datasync.py:262 #, python-brace-format @@ -815,6 +817,8 @@ msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" +"Het veld \"{field_name}\" vereist {required_input}, maar heeft alleen " +"{available_inputs}. Controleer uw {provider_name} instellingen." #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -822,18 +826,16 @@ msgid "" "Please update value mapping for field \"{field_name}\" - option \"{val}\" " "not assigned" msgstr "" +"Werk de mapping van de waarden bij voor veld \"{field_name}\" - optie " +"\"{val}\" is niet toegewezen" #: pretix/base/datasync/sourcefields.py:128 -#, fuzzy -#| msgid "Order positions" msgid "Order position details" -msgstr "Bestelde producten" +msgstr "Details bestelde producten" #: pretix/base/datasync/sourcefields.py:129 -#, fuzzy -#| msgid "Attendee email" msgid "Attendee details" -msgstr "E-mailadres van aanwezige" +msgstr "Details van aanwezige" #: pretix/base/datasync/sourcefields.py:130 pretix/base/exporters/answers.py:66 #: pretix/base/models/items.py:1767 pretix/control/navigation.py:172 @@ -843,10 +845,8 @@ msgid "Questions" msgstr "Vragen" #: pretix/base/datasync/sourcefields.py:131 -#, fuzzy -#| msgid "Product data" msgid "Product details" -msgstr "Productgegevens" +msgstr "Productdetails" #: pretix/base/datasync/sourcefields.py:132 #: pretix/control/templates/pretixcontrol/event/settings.html:280 @@ -1038,16 +1038,12 @@ msgid "Product ID" msgstr "Product ID" #: pretix/base/datasync/sourcefields.py:419 -#, fuzzy -#| msgid "Non-admission product" msgid "Product is admission product" -msgstr "Geen toegangsbewijs" +msgstr "Product is een toegangsbewijs" #: pretix/base/datasync/sourcefields.py:428 -#, fuzzy -#| msgid "Event short name" msgid "Event short form" -msgstr "Korte naam evenement" +msgstr "Kort formulier evenement" #: pretix/base/datasync/sourcefields.py:437 pretix/base/exporters/events.py:57 #: pretix/base/exporters/orderlist.py:262 @@ -1090,10 +1086,8 @@ msgid "Order code and position number" msgstr "Bestelcode en plaatsnummer" #: pretix/base/datasync/sourcefields.py:482 -#, fuzzy -#| msgid "Ticket page" msgid "Ticket price" -msgstr "Ticketpagina" +msgstr "Ticketprijs" #: pretix/base/datasync/sourcefields.py:491 pretix/base/notifications.py:204 #: pretix/control/forms/filter.py:216 pretix/control/forms/modelimport.py:85 @@ -1101,22 +1095,16 @@ msgid "Order status" msgstr "Bestelstatus" #: pretix/base/datasync/sourcefields.py:500 -#, fuzzy -#| msgid "Device status" msgid "Ticket status" -msgstr "Apparaatstatus" +msgstr "Ticketstatus" #: pretix/base/datasync/sourcefields.py:509 -#, fuzzy -#| msgid "Purchase date and time" msgid "Order date and time" -msgstr "Aankoopdatum en -tijd" +msgstr "Besteldatum en -tijd" #: pretix/base/datasync/sourcefields.py:518 -#, fuzzy -#| msgid "Printing date and time" msgid "Payment date and time" -msgstr "Printdatum en -tijd" +msgstr "Betaaldatum en -tijd" #: pretix/base/datasync/sourcefields.py:527 #: pretix/base/exporters/orderlist.py:271 @@ -1127,23 +1115,17 @@ msgid "Order locale" msgstr "Taal van bestelling" #: pretix/base/datasync/sourcefields.py:536 -#, fuzzy -#| msgid "Order position" msgid "Order position ID" -msgstr "Besteld product" +msgstr "ID besteld product" #: pretix/base/datasync/sourcefields.py:545 #: pretix/base/exporters/orderlist.py:291 -#, fuzzy -#| msgid "Order time" msgid "Order link" -msgstr "Besteltijd" +msgstr "Bestellink" #: pretix/base/datasync/sourcefields.py:560 -#, fuzzy -#| msgid "Ticket block" msgid "Ticket link" -msgstr "Ticketblok" +msgstr "Ticketlink" #: pretix/base/datasync/sourcefields.py:578 #, fuzzy, python-brace-format -- 2.49.1 From 42b1010c36d7f6eb4ca42ec1a67005aeda7bbbbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Bo=C5=BCek?= Date: Sat, 4 Oct 2025 12:14:42 +0200 Subject: [PATCH 035/134] Translations: Update Polish Currently translated at 95.5% (5803 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pl/ powered by weblate --- src/pretix/locale/pl/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pretix/locale/pl/LC_MESSAGES/django.po b/src/pretix/locale/pl/LC_MESSAGES/django.po index 74eb3ce2c..3f8bbb4b3 100644 --- a/src/pretix/locale/pl/LC_MESSAGES/django.po +++ b/src/pretix/locale/pl/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-04 10:10+0000\n" +"PO-Revision-Date: 2025-10-04 19:00+0000\n" "Last-Translator: Sebastian Bożek \n" "Language-Team: Polish \n" @@ -32680,7 +32680,7 @@ msgid "" "banks. Please keep your online banking account and login information " "available." msgstr "" -"Przelewy24 to metoda płatności online dostępna dla klientów polskich banków. " +"Przelewy24 to metoda płatności online dostępna dla klientów Polskich banków. " "Prosimy o zachowanie danych logowania i konta bankowego." #: pretix/plugins/stripe/payment.py:1768 -- 2.49.1 From 85a9a3caa663166a27832068b56eeba63834b5c5 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Mon, 6 Oct 2025 10:38:19 +0200 Subject: [PATCH 036/134] Run exporters in repeatable read by default (Z#23173095) (#5500) * Run exporters in repeatable read by default (Z#23173095) * Update src/pretix/helpers/database.py Co-authored-by: Richard Schreiber * Rename parameter, add test * Do not run during tests --------- Co-authored-by: Richard Schreiber --- src/pretix/base/exporter.py | 12 ++++++ src/pretix/base/exporters/invoices.py | 1 + src/pretix/base/exporters/orderlist.py | 7 +++- src/pretix/base/exporters/reusablemedia.py | 1 + src/pretix/base/exporters/waitinglist.py | 1 + src/pretix/base/services/export.py | 21 ++++++++-- src/pretix/base/services/quotas.py | 12 +++++- src/pretix/helpers/database.py | 40 +++++++++++++++++++- src/pretix/plugins/checkinlists/exporters.py | 3 ++ src/pretix/plugins/reports/exporters.py | 1 + src/tests/base/test_models.py | 24 ++++++++++++ 11 files changed, 115 insertions(+), 8 deletions(-) diff --git a/src/pretix/base/exporter.py b/src/pretix/base/exporter.py index fb85dc3ab..bf0ae2ba2 100644 --- a/src/pretix/base/exporter.py +++ b/src/pretix/base/exporter.py @@ -105,6 +105,18 @@ class BaseExporter: """ return False + @property + def repeatable_read(self) -> bool: + """ + If ``True``, this exporter will be run in a REPEATABLE READ transaction. This ensures consistent results for + all queries performed by the exporter, but creates a performance burden on the database server. We recommend to + disable this for exporters that take very long to run and do not rely on this behavior, such as export of lists + to CSV files. + + Defaults to ``True`` for now, but default may change in future versions. + """ + return True + @property def identifier(self) -> str: """ diff --git a/src/pretix/base/exporters/invoices.py b/src/pretix/base/exporters/invoices.py index 0cc9b6903..0ae23e9b7 100644 --- a/src/pretix/base/exporters/invoices.py +++ b/src/pretix/base/exporters/invoices.py @@ -180,6 +180,7 @@ class InvoiceDataExporter(InvoiceExporterMixin, MultiSheetListExporter): 'includes two sheets, one with a line for every invoice, and one with a line for every position of ' 'every invoice.') featured = True + repeatable_read = False @property def additional_form_fields(self): diff --git a/src/pretix/base/exporters/orderlist.py b/src/pretix/base/exporters/orderlist.py index cd5453c6b..b756c247b 100644 --- a/src/pretix/base/exporters/orderlist.py +++ b/src/pretix/base/exporters/orderlist.py @@ -90,6 +90,7 @@ class OrderListExporter(MultiSheetListExporter): 'with a line for every order, one with a line for every order position, and one with ' 'a line for every additional fee charged in an order.') featured = True + repeatable_read = False @cached_property def providers(self): @@ -842,6 +843,7 @@ class TransactionListExporter(ListExporter): description = gettext_lazy('Download a spreadsheet of all substantial changes to orders, i.e. all changes to ' 'products, prices or tax rates. The information is only accurate for changes made with ' 'pretix versions released after October 2021.') + repeatable_read = False @cached_property def providers(self): @@ -1020,6 +1022,7 @@ class PaymentListExporter(ListExporter): category = pgettext_lazy('export_category', 'Order data') description = gettext_lazy('Download a spreadsheet of all payments or refunds of every order.') featured = True + repeatable_read = False @property def additional_form_fields(self): @@ -1159,7 +1162,7 @@ class QuotaListExporter(ListExporter): yield headers quotas = list(self.event.quotas.select_related('subevent')) - qa = QuotaAvailability(full_results=True) + qa = QuotaAvailability(full_results=True, allow_repeatable_read=False) qa.queue(*quotas) qa.compute() @@ -1200,6 +1203,7 @@ class GiftcardTransactionListExporter(OrganizerLevelExportMixin, ListExporter): organizer_required_permission = 'can_manage_gift_cards' category = pgettext_lazy('export_category', 'Gift cards') description = gettext_lazy('Download a spreadsheet of all gift card transactions.') + repeatable_read = False @property def additional_form_fields(self): @@ -1258,6 +1262,7 @@ class GiftcardRedemptionListExporter(ListExporter): verbose_name = gettext_lazy('Gift card redemptions') category = pgettext_lazy('export_category', 'Order data') description = gettext_lazy('Download a spreadsheet of all payments or refunds that involve gift cards.') + repeatable_read = False def iterate_list(self, form_data): payments = OrderPayment.objects.filter( diff --git a/src/pretix/base/exporters/reusablemedia.py b/src/pretix/base/exporters/reusablemedia.py index f73f1913a..14bde9b70 100644 --- a/src/pretix/base/exporters/reusablemedia.py +++ b/src/pretix/base/exporters/reusablemedia.py @@ -34,6 +34,7 @@ class ReusableMediaExporter(OrganizerLevelExportMixin, ListExporter): verbose_name = _('Reusable media') category = pgettext_lazy('export_category', 'Reusable media') description = _('Download a spread sheet with the data of all reusable medias on your account.') + repeatable_read = False def iterate_list(self, form_data): media = ReusableMedium.objects.filter( diff --git a/src/pretix/base/exporters/waitinglist.py b/src/pretix/base/exporters/waitinglist.py index 1b1cf1faf..acd2f1d5a 100644 --- a/src/pretix/base/exporters/waitinglist.py +++ b/src/pretix/base/exporters/waitinglist.py @@ -41,6 +41,7 @@ class WaitingListExporter(ListExporter): verbose_name = _('Waiting list') category = pgettext_lazy('export_category', 'Waiting list') description = _('Download a spread sheet with all your waiting list data.') + repeatable_read = False # map selected status to label and queryset-filter status_filters = [ diff --git a/src/pretix/base/services/export.py b/src/pretix/base/services/export.py index ee076cd8d..88fc327bb 100644 --- a/src/pretix/base/services/export.py +++ b/src/pretix/base/services/export.py @@ -49,7 +49,7 @@ from pretix.base.signals import ( periodic_task, register_data_exporters, register_multievent_data_exporters, ) from pretix.celery_app import app -from pretix.helpers import OF_SELF +from pretix.helpers import OF_SELF, repeatable_reads_transaction from pretix.helpers.urls import build_absolute_uri logger = logging.getLogger(__name__) @@ -80,7 +80,12 @@ def export(self, event: Event, fileid: str, provider: str, form_data: Dict[str, continue ex = response(event, event.organizer, set_progress) if ex.identifier == provider: - d = ex.render(form_data) + if ex.repeatable_read: + with repeatable_reads_transaction(): + d = ex.render(form_data) + else: + d = ex.render(form_data) + if d is None: raise ExportError( gettext('Your export did not contain any data.') @@ -151,7 +156,11 @@ def multiexport(self, organizer: Organizer, user: User, device: int, token: int, gettext('You do not have sufficient permission to perform this export.') ) - d = ex.render(form_data) + if ex.repeatable_read: + with repeatable_reads_transaction(): + d = ex.render(form_data) + else: + d = ex.render(form_data) if d is None: raise ExportError( gettext('Your export did not contain any data.') @@ -209,7 +218,11 @@ def _run_scheduled_export(schedule, context: Union[Event, Organizer], exporter, try: if not exporter: raise ExportError("Export type not found.") - d = exporter.render(schedule.export_form_data) + if exporter.repeatable_read: + with repeatable_reads_transaction(): + d = exporter.render(schedule.export_form_data) + else: + d = exporter.render(schedule.export_form_data) if d is None: raise ExportEmptyError( gettext('Your export did not contain any data.') diff --git a/src/pretix/base/services/quotas.py b/src/pretix/base/services/quotas.py index 4511309e7..8a2360e48 100644 --- a/src/pretix/base/services/quotas.py +++ b/src/pretix/base/services/quotas.py @@ -26,7 +26,7 @@ from itertools import zip_longest import django_redis from django.conf import settings -from django.db import models +from django.db import connection, models from django.db.models import ( Case, Count, F, Func, Max, OuterRef, Q, Subquery, Sum, Value, When, prefetch_related_objects, @@ -64,7 +64,8 @@ class QuotaAvailability: * count_cart (dict mapping quotas to ints) """ - def __init__(self, count_waitinglist=True, ignore_closed=False, full_results=False, early_out=True): + def __init__(self, count_waitinglist=True, ignore_closed=False, full_results=False, early_out=True, + allow_repeatable_read=False): """ Initialize a new quota availability calculator @@ -86,6 +87,8 @@ class QuotaAvailability: keep the database-level quota cache up to date so backend overviews render quickly. If you do not care about keeping the cache up to date, you can set this to ``False`` for further performance improvements. + + :param allow_repeatable_read: Allow to run this even in REPEATABLE READ mode, generally not advised. """ self._queue = [] self._count_waitinglist = count_waitinglist @@ -95,6 +98,7 @@ class QuotaAvailability: self._var_to_quotas = defaultdict(set) self._early_out = early_out self._quota_objects = {} + self._allow_repeatable_read = allow_repeatable_read self.results = {} self.count_paid_orders = defaultdict(int) self.count_pending_orders = defaultdict(int) @@ -119,6 +123,10 @@ class QuotaAvailability: Compute the queued quotas. If ``allow_cache`` is set, results may also be taken from a cache that might be a few minutes outdated. In this case, you may not rely on the results in the ``count_*`` properties. """ + if not self._allow_repeatable_read and getattr(connection, "tx_in_repeatable_read", False): + raise ValueError("You cannot compute quotas in REPEATABLE READ mode unless you explicitly opted in to " + "do so.") + now_dt = now_dt or now() quota_ids_set = {q.id for q in self._queue} if not quota_ids_set: diff --git a/src/pretix/helpers/database.py b/src/pretix/helpers/database.py index 5e5b4f009..4e537ff1c 100644 --- a/src/pretix/helpers/database.py +++ b/src/pretix/helpers/database.py @@ -21,7 +21,8 @@ # import contextlib -from django.core.exceptions import FieldDoesNotExist +from django.conf import settings +from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured from django.db import connection, transaction from django.db.models import ( Aggregate, Expression, F, Field, Lookup, OrderBy, Value, @@ -62,6 +63,43 @@ def casual_reads(): yield +@contextlib.contextmanager +def repeatable_reads_transaction(): + """ + pretix, and Django, operate in the transaction isolation level READ COMMITTED by default. This is not a strong level + of isolation, but we NEED to use it: Otherwise e.g. our quota logic breaks, because we need to be able to get the + *current* number of tickets sold at any time in a transaction, not the number of tickets sold *before* our transaction + started. + + However, this isolation mode has drawbacks, for example during reporting. When a user retrieves a report from the + system, it should return numbers that are consistent with each other. However, if the report makes multiple SQL + queries in READ COMMITTED mode, the results might be different for each query, causing numbers to be inconsistent + with each other. + + This context manager creates a transaction that is running in REPEATABLE READ mode to avoid this problem. + + **You should only make read-only queries during this transaction and not rely on quota calculations.** + """ + is_under_test = 'tests.testdummy' in settings.INSTALLED_APPS + try: + with transaction.atomic(durable=not is_under_test): + if not is_under_test: + # We're not running this in tests, where we can basically not use this since the test runner does its + # own transaction logic for efficiency + with connection.cursor() as cursor: + if 'postgresql' in settings.DATABASES['default']['ENGINE']: + cursor.execute('SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;') + elif 'sqlite' in settings.DATABASES['default']['ENGINE']: + pass # noop + else: + raise ImproperlyConfigured("Cannot set transaction isolation mode on this database backend") + + connection.tx_in_repeatable_read = True + yield + finally: + connection.tx_in_repeatable_read = False + + class GroupConcat(Aggregate): function = 'group_concat' template = '%(function)s(%(distinct)s%(field)s, "%(separator)s")' diff --git a/src/pretix/plugins/checkinlists/exporters.py b/src/pretix/plugins/checkinlists/exporters.py index 7f95a79cd..6001f1023 100644 --- a/src/pretix/plugins/checkinlists/exporters.py +++ b/src/pretix/plugins/checkinlists/exporters.py @@ -476,6 +476,7 @@ class CSVCheckinList(CheckInListMixin, ListExporter): category = pgettext_lazy('export_category', 'Check-in') description = gettext_lazy("Download a spreadsheet with all attendees that are included in a check-in list.") featured = True + repeatable_read = False @property def additional_form_fields(self): @@ -673,6 +674,7 @@ class CSVCheckinCodeList(CheckInListMixin, ListExporter): category = pgettext_lazy('export_category', 'Check-in') description = gettext_lazy("Download a spreadsheet with all valid check-in barcodes e.g. for import into a " "different system. Does not included blocked codes or personal data.") + repeatable_read = False @property def additional_form_fields(self): @@ -743,6 +745,7 @@ class CheckinLogList(ListExporter): category = pgettext_lazy('export_category', 'Check-in') description = gettext_lazy("Download a spreadsheet with one line for every scan that happened at your check-in " "stations.") + repeatable_read = False @property def additional_form_fields(self): diff --git a/src/pretix/plugins/reports/exporters.py b/src/pretix/plugins/reports/exporters.py index 13aac28a9..a39eb738b 100644 --- a/src/pretix/plugins/reports/exporters.py +++ b/src/pretix/plugins/reports/exporters.py @@ -661,6 +661,7 @@ class OrderTaxListReport(MultiSheetListExporter): verbose_name = gettext_lazy('Tax split list') category = pgettext_lazy('export_category', 'Order data') description = gettext_lazy("Download a spreadsheet with the tax amounts included in each order.") + repeatable_read = False @property def sheets(self): diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index a4091694a..1409a7a89 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -64,6 +64,7 @@ from pretix.base.models.items import ( from pretix.base.reldate import RelativeDate, RelativeDateWrapper from pretix.base.services.orders import OrderError, cancel_order, perform_order from pretix.base.services.quotas import QuotaAvailability +from pretix.helpers import repeatable_reads_transaction from pretix.testutils.scope import classscope @@ -99,6 +100,29 @@ class BaseQuotaTestCase(TestCase): self.var3 = ItemVariation.objects.create(item=self.item3, value='Fancy') +@pytest.mark.django_db(transaction=True) +@scopes_disabled() +def test_verify_repeatable_read_check(): + if 'sqlite' in settings.DATABASES['default']['ENGINE']: + pytest.skip('Not supported on SQLite') + + o = Organizer.objects.create(name='Dummy', slug='dummy') + event = Event.objects.create( + organizer=o, name='Dummy', slug='dummy', + date_from=now(), plugins='tests.testdummy' + ) + quota = Quota.objects.create(name="Test", size=2, event=event) + + with repeatable_reads_transaction(): + with pytest.raises(ValueError): + qa = QuotaAvailability(full_results=True) + qa.queue(quota) + qa.compute() + qa = QuotaAvailability(full_results=True, allow_repeatable_read=True) + qa.queue(quota) + qa.compute() + + @pytest.mark.usefixtures("fakeredis_client") class QuotaTestCase(BaseQuotaTestCase): @classscope(attr='o') -- 2.49.1 From dcf473c543806845acc74fdbad3ea747bc3e1b73 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 7 Oct 2025 10:40:15 +0200 Subject: [PATCH 037/134] Send invoice to organizer in plain text (Z#23210026) (#5518) --- src/pretix/base/services/invoices.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index 266a8d63b..8fe27d9b7 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -671,6 +671,7 @@ def send_invoices_to_organizer(sender, **kwargs): event=i.event, invoices=[i], auto_email=True, + plain_text_only=True, ) i.sent_to_organizer = True else: -- 2.49.1 From f447e7b9c4cec1ffb87ce1c795b5a8f90f5adb9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Oct 2025 10:40:54 +0200 Subject: [PATCH 038/134] Update sentry-sdk requirement from ==2.38.* to ==2.40.* (#5521) Updates the requirements on [sentry-sdk](https://github.com/getsentry/sentry-python) to permit the latest version. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/2.38.0...2.40.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-version: 2.40.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5e2b2c621..9ec89b517 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,7 +91,7 @@ dependencies = [ "redis==6.4.*", "reportlab==4.4.*", "requests==2.32.*", - "sentry-sdk==2.38.*", + "sentry-sdk==2.40.*", "sepaxml==2.6.*", "stripe==7.9.*", "text-unidecode==1.*", -- 2.49.1 From 15cbb3a4160e2666380afd73604d1d0d001254b2 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 7 Oct 2025 11:20:31 +0200 Subject: [PATCH 039/134] Do not crash if generate_invoice fails (#5483) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Do not crash if generate_invoice fails * Add logging * Add cancellation to try block * One last thing… --- src/pretix/api/views/order.py | 8 +- src/pretix/base/models/orders.py | 22 +++-- src/pretix/base/services/modelimport.py | 11 ++- src/pretix/base/services/orders.py | 124 ++++++++++++++++++------ src/pretix/control/logdisplay.py | 1 + src/pretix/presale/views/order.py | 63 ++++++++---- 6 files changed, 167 insertions(+), 62 deletions(-) diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index 43f5cd93d..c90f5e8d0 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -764,7 +764,13 @@ class EventOrderViewSet(OrderViewSetMixin, viewsets.ModelViewSet): ) and not order.invoices.last() invoice = None if gen_invoice: - invoice = generate_invoice(order, trigger_pdf=True) + try: + invoice = generate_invoice(order, trigger_pdf=True) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) # Refresh serializer only after running signals prefetch_related_objects([order], self._positions_prefetch(request)) diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index 8b65d7898..5a64e9b1c 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -1969,14 +1969,20 @@ class OrderPayment(models.Model): self.order.invoice_dirty ) if gen_invoice: - if invoices: - last_i = self.order.invoices.filter(is_cancellation=False).last() - if not last_i.canceled: - generate_cancellation(last_i) - invoice = generate_invoice( - self.order, - trigger_pdf=not send_mail or not self.order.event.settings.invoice_email_attachment - ) + try: + if invoices: + last_i = self.order.invoices.filter(is_cancellation=False).last() + if not last_i.canceled: + generate_cancellation(last_i) + invoice = generate_invoice( + self.order, + trigger_pdf=not send_mail or not self.order.event.settings.invoice_email_attachment + ) + except Exception as e: + logger.exception("Could not generate invoice.") + self.order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) transmit_invoice_task = invoice_transmission_separately(invoice) transmit_invoice_mail = not transmit_invoice_task and self.order.event.settings.invoice_email_attachment and self.order.email diff --git a/src/pretix/base/services/modelimport.py b/src/pretix/base/services/modelimport.py index 46504d933..e8208a6e3 100644 --- a/src/pretix/base/services/modelimport.py +++ b/src/pretix/base/services/modelimport.py @@ -19,6 +19,7 @@ # You should have received a copy of the GNU Affero General Public License along with this program. If not, see # . # +import logging from decimal import Decimal from typing import List @@ -43,6 +44,8 @@ from pretix.base.services.tasks import ProfiledEventTask from pretix.base.signals import order_paid, order_placed from pretix.celery_app import app +logger = logging.getLogger(__name__) + def _validate(cf: CachedFile, charset: str, cols: List[ImportColumn], settings: dict): try: @@ -233,7 +236,13 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user, (event.settings.get('invoice_generate') == 'paid' and o.status == Order.STATUS_PAID) ) and not o.invoices.last() if gen_invoice: - generate_invoice(o, trigger_pdf=True) + try: + generate_invoice(o, trigger_pdf=True) + except Exception as e: + logger.exception("Could not generate invoice.") + o.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) except DataImportError: raise ValidationError(_('We were not able to process your request completely as the server was too busy. ' 'Please try again.')) diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 5d30600e0..b3e23a090 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -264,7 +264,13 @@ def reactivate_order(order: Order, force: bool=False, user: User=None, auth=None num_invoices = order.invoices.filter(is_cancellation=False).count() if num_invoices > 0 and order.invoices.filter(is_cancellation=True).count() >= num_invoices and invoice_qualified(order): - generate_invoice(order) + try: + generate_invoice(order) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) def extend_order(order: Order, new_date: datetime, force: bool=False, valid_if_pending: bool=None, user: User=None, auth=None): @@ -312,7 +318,13 @@ def extend_order(order: Order, new_date: datetime, force: bool=False, valid_if_p if was_expired: num_invoices = order.invoices.filter(is_cancellation=False).count() if num_invoices > 0 and order.invoices.filter(is_cancellation=True).count() >= num_invoices and invoice_qualified(order): - generate_invoice(order) + try: + generate_invoice(order) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) order.create_transactions() with transaction.atomic(): @@ -397,13 +409,19 @@ def approve_order(order, user=None, send_mail: bool=True, auth=None, force=False if order.event.settings.get('invoice_generate') == 'True' and invoice_qualified(order): if not invoice: - invoice = generate_invoice( - order, - # send_mail will trigger PDF generation later - trigger_pdf=not transmit_invoice_mail - ) - if transmit_invoice_task: - transmit_invoice.apply_async(args=(order.event_id, invoice.pk, False)) + try: + invoice = generate_invoice( + order, + # send_mail will trigger PDF generation later + trigger_pdf=not transmit_invoice_mail + ) + if transmit_invoice_task: + transmit_invoice.apply_async(args=(order.event_id, invoice.pk, False)) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) if send_mail: with language(order.locale, order.event.settings.region): @@ -608,7 +626,13 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device order.save(update_fields=['status', 'cancellation_date', 'total']) if cancel_invoice and i: - invoices.append(generate_invoice(order)) + try: + invoices.append(generate_invoice(order)) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) else: order.status = Order.STATUS_CANCELED order.cancellation_date = now() @@ -1306,13 +1330,19 @@ def _perform_order(event: Event, payment_requests: List[dict], position_ids: Lis ) ) if invoice_required: - invoice = generate_invoice( - order, - # send_mail will trigger PDF generation later - trigger_pdf=not transmit_invoice_mail - ) - if transmit_invoice_task: - transmit_invoice.apply_async(args=(event.pk, invoice.pk, False)) + try: + invoice = generate_invoice( + order, + # send_mail will trigger PDF generation later + trigger_pdf=not transmit_invoice_mail + ) + if transmit_invoice_task: + transmit_invoice.apply_async(args=(event.pk, invoice.pk, False)) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) if order.email: if order.require_approval: @@ -2701,7 +2731,13 @@ class OrderChangeManager: ) if split_order.total != Decimal('0.00') and self.order.invoices.filter(is_cancellation=False).last(): - generate_invoice(split_order) + try: + generate_invoice(split_order) + except Exception as e: + logger.exception("Could not generate invoice.") + split_order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) order_split.send(sender=self.order.event, original=self.order, split_order=split_order) return split_order @@ -2812,15 +2848,27 @@ class OrderChangeManager: if order_now_qualified: if invoice_should_be_generated_now: - if i and not i.canceled: - self._invoices.append(generate_cancellation(i)) - self._invoices.append(generate_invoice(self.order)) + try: + if i and not i.canceled: + self._invoices.append(generate_cancellation(i)) + self._invoices.append(generate_invoice(self.order)) + except Exception as e: + logger.exception("Could not generate invoice.") + self.order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) elif invoice_should_be_generated_later: self.order.invoice_dirty = True self.order.save(update_fields=["invoice_dirty"]) else: - if i and not i.canceled: - self._invoices.append(generate_cancellation(i)) + try: + if i and not i.canceled: + self._invoices.append(generate_cancellation(i)) + except Exception as e: + logger.exception("Could not generate invoice.") + self.order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) def _check_complete_cancel(self): current = self.order.positions.count() @@ -3246,8 +3294,14 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay has_active_invoice = i and not i.canceled if has_active_invoice and order.total != oldtotal: - generate_cancellation(i) - generate_invoice(order) + try: + generate_cancellation(i) + generate_invoice(order) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) new_invoice_created = True elif (not has_active_invoice or order.invoice_dirty) and invoice_qualified(order): @@ -3255,13 +3309,19 @@ def change_payment_provider(order: Order, payment_provider, amount=None, new_pay order.event.settings.get('invoice_generate') == 'paid' and new_payment.payment_provider.requires_invoice_immediately ): - if has_active_invoice: - generate_cancellation(i) - i = generate_invoice(order) - new_invoice_created = True - order.log_action('pretix.event.order.invoice.generated', data={ - 'invoice': i.pk - }) + try: + if has_active_invoice: + generate_cancellation(i) + i = generate_invoice(order) + new_invoice_created = True + order.log_action('pretix.event.order.invoice.generated', data={ + 'invoice': i.pk + }) + except Exception as e: + logger.exception("Could not generate invoice.") + order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) order.create_transactions() return old_fee, new_fee, fee, new_payment, new_invoice_created diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 29de5a52c..24e3bf05e 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -522,6 +522,7 @@ def pretixcontrol_orderposition_blocked_display(sender: Event, orderposition, bl 'pretix.event.order.customer.changed': _('The customer account has been changed.'), 'pretix.event.order.locale.changed': _('The order locale has been changed.'), 'pretix.event.order.invoice.generated': _('The invoice has been generated.'), + 'pretix.event.order.invoice.failed': _('The invoice could not be generated.'), 'pretix.event.order.invoice.regenerated': _('The invoice has been regenerated.'), 'pretix.event.order.invoice.reissued': _('The invoice has been reissued.'), 'pretix.event.order.invoice.sent': _('The invoice {full_invoice_no} has been sent.'), diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index b78e98ea0..efcfc3a64 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -36,6 +36,7 @@ import copy import hmac import inspect import json +import logging import mimetypes import os import re @@ -98,6 +99,8 @@ from pretix.presale.views import ( from pretix.presale.views.event import get_grouped_items from pretix.presale.views.robots import NoSearchIndexViewMixin +logger = logging.getLogger(__name__) + class OrderDetailMixin(NoSearchIndexViewMixin): @@ -734,11 +737,18 @@ class OrderInvoiceCreate(EventViewMixin, OrderDetailMixin, View): elif self.order.invoices.exists(): messages.error(self.request, _('An invoice for this order already exists.')) else: - i = generate_invoice(self.order) - self.order.log_action('pretix.event.order.invoice.generated', data={ - 'invoice': i.pk - }) - messages.success(self.request, _('The invoice has been generated.')) + try: + i = generate_invoice(self.order) + self.order.log_action('pretix.event.order.invoice.generated', data={ + 'invoice': i.pk + }) + messages.success(self.request, _('The invoice has been generated.')) + except Exception as e: + logger.exception("Could not generate invoice.") + self.order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) + messages.error(self.request, _('Invoice generation has failed, please reach out to the organizer.')) return redirect(self.get_order_url()) @@ -807,24 +817,37 @@ class OrderModify(EventViewMixin, OrderDetailMixin, OrderQuestionsViewMixin, Tem elif self.order.invoices.exists(): messages.error(self.request, _('An invoice for this order already exists.')) else: - i = generate_invoice(self.order) - self.order.log_action('pretix.event.order.invoice.generated', data={ - 'invoice': i.pk - }) - messages.success(self.request, _('The invoice has been generated.')) + try: + i = generate_invoice(self.order) + self.order.log_action('pretix.event.order.invoice.generated', data={ + 'invoice': i.pk + }) + messages.success(self.request, _('The invoice has been generated.')) + except Exception as e: + logger.exception("Could not generate invoice.") + self.order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) + }) + messages.error(self.request, _('Invoice generation has failed, please reach out to the organizer.')) elif self.request.event.settings.invoice_reissue_after_modify: if self.invoice_form.changed_data: - inv = self.order.invoices.last() - if inv and not inv.canceled and not inv.shredded: - c = generate_cancellation(inv) - if self.order.status != Order.STATUS_CANCELED: - inv = generate_invoice(self.order) - else: - inv = c - self.order.log_action('pretix.event.order.invoice.reissued', data={ - 'invoice': inv.pk + try: + inv = self.order.invoices.last() + if inv and not inv.canceled and not inv.shredded: + c = generate_cancellation(inv) + if self.order.status != Order.STATUS_CANCELED: + inv = generate_invoice(self.order) + else: + inv = c + self.order.log_action('pretix.event.order.invoice.reissued', data={ + 'invoice': inv.pk + }) + messages.success(self.request, _('The invoice has been reissued.')) + except Exception as e: + self.order.log_action("pretix.event.order.invoice.failed", data={ + "exception": str(e) }) - messages.success(self.request, _('The invoice has been reissued.')) + logger.exception("Could not generate invoice.") invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'order': self.order.pk}) CachedTicket.objects.filter(order_position__order=self.order).delete() -- 2.49.1 From 943f594b6be4579de6b9f97f010fd96b2b65822a Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 7 Oct 2025 13:18:03 +0200 Subject: [PATCH 040/134] InvoiceExporter: Set repeatable_read = False --- src/pretix/base/exporters/invoices.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/pretix/base/exporters/invoices.py b/src/pretix/base/exporters/invoices.py index 0ae23e9b7..f159edc6f 100644 --- a/src/pretix/base/exporters/invoices.py +++ b/src/pretix/base/exporters/invoices.py @@ -125,6 +125,7 @@ class InvoiceExporter(InvoiceExporterMixin, BaseExporter): identifier = 'invoices' verbose_name = _('All invoices') description = _('Download all invoices created by the system as a ZIP file of PDF files.') + repeatable_read = False def render(self, form_data: dict, output_file=None): qs = self.invoices_queryset(form_data).filter(shredded=False) -- 2.49.1 From 82eca01e5c4fba9b4e685702e39ec645f335a8c5 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 7 Oct 2025 13:20:06 +0200 Subject: [PATCH 041/134] QuotaListExporter: Flip incorrect allow_repeatable_read --- src/pretix/base/exporters/orderlist.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/base/exporters/orderlist.py b/src/pretix/base/exporters/orderlist.py index b756c247b..64b1b7b34 100644 --- a/src/pretix/base/exporters/orderlist.py +++ b/src/pretix/base/exporters/orderlist.py @@ -1162,7 +1162,7 @@ class QuotaListExporter(ListExporter): yield headers quotas = list(self.event.quotas.select_related('subevent')) - qa = QuotaAvailability(full_results=True, allow_repeatable_read=False) + qa = QuotaAvailability(full_results=True, allow_repeatable_read=True) qa.queue(*quotas) qa.compute() -- 2.49.1 From 59a754f91377eaacf6426a18dc136f73ae20c2fe Mon Sep 17 00:00:00 2001 From: luelista Date: Tue, 7 Oct 2025 19:58:13 +0200 Subject: [PATCH 042/134] Fix log entry details for datasync logs without external link (Z#23210015) (#5524) --- src/pretix/control/logdisplay.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 24e3bf05e..6df2367e4 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -455,7 +455,7 @@ class OrderDataSyncSuccessLogEntryType(OrderDataSyncLogEntryType): links.append(", ".join( prov.get_external_link_html(logentry.event, obj['external_link_href'], obj['external_link_display_name']) for obj in objs - if obj and 'external_link_href' in obj and 'external_link_display_name' in obj + if obj and obj.get('external_link_href') and obj.get('external_link_display_name') )) return mark_safe(escape(super().display(logentry, data)) + "".join("

" + link + "

" for link in links)) -- 2.49.1 From a823f261f3be81381cdb5f6a701c3b96a5b834af Mon Sep 17 00:00:00 2001 From: luelista Date: Tue, 7 Oct 2025 19:58:26 +0200 Subject: [PATCH 043/134] Fix unhandled exception in datasync code in case order should not be synced (PRETIXEU-C9H) (#5525) * Fix unhandled exception in datasync code in case order should not be synced (PRETIXEU-C9H) * Add test case --- src/pretix/base/datasync/datasync.py | 2 +- src/tests/base/test_datasync.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/datasync/datasync.py b/src/pretix/base/datasync/datasync.py index 1af534bd3..be4004c8b 100644 --- a/src/pretix/base/datasync/datasync.py +++ b/src/pretix/base/datasync/datasync.py @@ -391,7 +391,7 @@ class OutboundSyncProvider: def sync_order(self, order): if not self.should_sync_order(order): logger.debug("Skipping order %r", order) - return + return {} logger.debug("Syncing order %r", order) positions = list( diff --git a/src/tests/base/test_datasync.py b/src/tests/base/test_datasync.py index 1d2f35d0b..a45db70e6 100644 --- a/src/tests/base/test_datasync.py +++ b/src/tests/base/test_datasync.py @@ -327,6 +327,26 @@ def test_enqueue_order_twice(event): SimpleOrderSync.enqueue_order(order, 'testcase_2nd') +class DoNothingSync(SimpleOrderSync): + + def should_sync_order(self, order): + return False + + +@pytest.mark.django_db +def test_should_not_sync(event): + _register_with_fake_plugin_name(datasync_providers, DoNothingSync, 'testplugin') + + DoNothingSync.fake_api_client = FakeSyncAPI() + + for order in event.orders.order_by("code").all(): + DoNothingSync.enqueue_order(order, 'testcase') + + sync_all() + + assert DoNothingSync.fake_api_client.fake_database == {} + + StaticMappingWithAssociations = namedtuple('StaticMappingWithAssociations', ( 'id', 'pretix_model', 'external_object_type', 'pretix_id_field', 'external_id_field', 'property_mappings', 'association_mappings' )) -- 2.49.1 From 802268df46b390686e3a1b77b86b07ab980ffa7d Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 8 Oct 2025 09:44:47 +0200 Subject: [PATCH 044/134] Fix ajax error not being shown --- src/pretix/static/pretixbase/js/asynctask.js | 2 ++ src/pretix/static/pretixcontrol/js/ui/main.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pretix/static/pretixbase/js/asynctask.js b/src/pretix/static/pretixbase/js/asynctask.js index a720a3b18..b8924ecd0 100644 --- a/src/pretix/static/pretixbase/js/asynctask.js +++ b/src/pretix/static/pretixbase/js/asynctask.js @@ -330,9 +330,11 @@ var ajaxErrDialog = { $("#ajaxerr .links").html("" + gettext("Close message") + ""); $("body").addClass("ajaxerr has-modal-dialog"); + $("#ajaxerr").prop("hidden", false); }, hide: function () { "use strict"; $("body").removeClass("ajaxerr has-modal-dialog"); + $("#ajaxerr").prop("hidden", true); }, }; diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index 7ac5db7dc..95f321fe8 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -60,7 +60,7 @@ var i18nToString = function (i18nstring) { $(document).ajaxError(function (event, jqXHR, settings, thrownError) { waitingDialog.hide(); var c = $(jqXHR.responseText).filter('.container'); - if (jqXHR.responseText.indexOf("") !== -1) { + if (jqXHR.responseText && jqXHR.responseText.indexOf("") !== -1) { location.href = '/control/login?next=' + encodeURIComponent(location.pathname + location.search + location.hash) } else if (c.length > 0) { ajaxErrDialog.show(c.first().html()); -- 2.49.1 From 50c1c9c7242ea6d6f07eb0669dc78bd1e33e2504 Mon Sep 17 00:00:00 2001 From: luelista Date: Wed, 8 Oct 2025 13:15:09 +0200 Subject: [PATCH 045/134] Run sync job as soon as possible on clicking "Sync now" (#5526) --- src/pretix/control/views/datasync.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pretix/control/views/datasync.py b/src/pretix/control/views/datasync.py index 6bf47afbb..08c50d9d7 100644 --- a/src/pretix/control/views/datasync.py +++ b/src/pretix/control/views/datasync.py @@ -78,8 +78,8 @@ class ControlSyncJob(OrderView): prov, meta = datasync_providers.get(active_in=self.request.event, identifier=provider) if self.request.POST.get("queue_sync") == "true": - prov.enqueue_order(self.order, 'user') - messages.success(self.request, _('The sync job has been enqueued and will run in the next minutes.')) + prov.enqueue_order(self.order, 'user', immediate=True) + messages.success(self.request, _('The sync job has been set to run as soon as possible.')) elif self.request.POST.get("cancel_job"): with transaction.atomic(): try: -- 2.49.1 From bff0f54bf8173f35b8f95de76f97719890f62cbb Mon Sep 17 00:00:00 2001 From: luelista Date: Thu, 9 Oct 2025 17:02:45 +0200 Subject: [PATCH 046/134] Fix formset widths (#5530) * Remove explicitly specified width for formset-forms With that style, all formset rows were a fix pixels less wide than surrounding content * Set select2 width to 100% so they adapt when browser window is resized --- src/pretix/static/pretixcontrol/js/ui/main.js | 1 + src/pretix/static/pretixcontrol/scss/_forms.scss | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index 95f321fe8..a78a9acfe 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -485,6 +485,7 @@ var form_handlers = function (el) { theme: "bootstrap", language: $("body").attr("data-select2-locale"), data: JSON.parse($(this.getAttribute('data-select2-src')).text()), + width: '100%', }).val(selectedValue).trigger('change'); }); diff --git a/src/pretix/static/pretixcontrol/scss/_forms.scss b/src/pretix/static/pretixcontrol/scss/_forms.scss index c3bb65050..d096df830 100644 --- a/src/pretix/static/pretixcontrol/scss/_forms.scss +++ b/src/pretix/static/pretixcontrol/scss/_forms.scss @@ -63,10 +63,6 @@ td > .form-group > .checkbox { @include box-shadow(none); } -div[data-formset-body], div[data-formset-form], div[data-nested-formset-form], div[data-nested-formset-body], details[data-formset-form] { - width: 100%; -} - .form-plugins .panel-title { line-height: 34px; } -- 2.49.1 From 8853f2b189380b58217ef4972d872ab7d1faa75a Mon Sep 17 00:00:00 2001 From: luelista Date: Fri, 10 Oct 2025 09:16:35 +0200 Subject: [PATCH 047/134] Allow specifying different override_layout signal in derived classes (Z#23210691) (#5534) * Fix incorrect exception messages * Allow specifying different override_layout signal in derived classes --- src/pretix/base/signals.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/ticketoutput.py | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/pretix/base/signals.py b/src/pretix/base/signals.py index eb3cddff5..0cfb9484f 100644 --- a/src/pretix/base/signals.py +++ b/src/pretix/base/signals.py @@ -170,7 +170,7 @@ class PluginSignal(Generic[T], django.dispatch.Signal): second receiver and so on. The return value of the last receiver is returned by this method. """ if sender and not isinstance(sender, self.type): - raise ValueError("Sender needs to be an event.") + raise ValueError(f"Sender needs to be of type {self.type}.") response = named.get(chain_kwarg_name) if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS: @@ -192,7 +192,7 @@ class PluginSignal(Generic[T], django.dispatch.Signal): stopping the response chain at the offending receiver. """ if sender and not isinstance(sender, self.type): - raise ValueError("Sender needs to be an event.") + raise ValueError(f"Sender needs to be of type {self.type}.") responses = [] if ( diff --git a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py index 2179cec60..bb5cdd5c3 100644 --- a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py +++ b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py @@ -64,6 +64,7 @@ class PdfTicketOutput(BaseTicketOutput): download_button_text = _('PDF') multi_download_button_text = _('Download tickets (PDF)') long_download_button_text = _('Download ticket (PDF)') + override_layout_signal = override_layout def __init__(self, event, override_layout=None, override_background=None, override_channel=None): self.override_layout = override_layout @@ -116,7 +117,7 @@ class PdfTicketOutput(BaseTicketOutput): merger = PdfWriter() with language(order.locale, self.event.settings.region): for op in self.get_tickets_to_print(order): - layout = override_layout.send_chained( + layout = self.override_layout_signal.send_chained( order.event, 'layout', orderposition=op, layout=self.layout_map.get( (op.item_id, self.override_channel or order.sales_channel.identifier), self.layout_map.get( @@ -137,7 +138,7 @@ class PdfTicketOutput(BaseTicketOutput): def generate(self, op): order = op.order - layout = override_layout.send_chained( + layout = self.override_layout_signal.send_chained( order.event, 'layout', orderposition=op, layout=self.layout_map.get( (op.item_id, self.override_channel or order.sales_channel.identifier), self.layout_map.get( -- 2.49.1 From 4bd1aba677d136e9ac29367ac411ad4de4e1efb5 Mon Sep 17 00:00:00 2001 From: Linnea Thelander Date: Thu, 9 Oct 2025 14:34:07 +0200 Subject: [PATCH 048/134] Translations: Update Swedish Currently translated at 91.8% (5580 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/ powered by weblate --- src/pretix/locale/sv/LC_MESSAGES/django.po | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/pretix/locale/sv/LC_MESSAGES/django.po b/src/pretix/locale/sv/LC_MESSAGES/django.po index cbf99c0c7..7da56df2a 100644 --- a/src/pretix/locale/sv/LC_MESSAGES/django.po +++ b/src/pretix/locale/sv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-01-30 12:39+0000\n" +"PO-Revision-Date: 2025-10-09 16:00+0000\n" "Last-Translator: Linnea Thelander \n" "Language-Team: Swedish \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.9.2\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -8859,10 +8859,10 @@ msgstr "" "exporter." #: pretix/base/services/invoices.py:109 -#, python-brace-format +#, fuzzy, python-brace-format msgctxt "invoice" msgid "Please complete your payment before {expire_date}." -msgstr "Var god slutför din betalning före {expire_date}." +msgstr "." #: pretix/base/services/invoices.py:121 #, python-brace-format @@ -35105,9 +35105,9 @@ msgid "View in backend" msgstr "Visa i backend" #: pretix/presale/templates/pretixpresale/event/order.html:91 -#, python-format +#, fuzzy, python-format msgid "A payment of %(total)s is still pending for this order." -msgstr "En betalning på %(total)s är fortfarande obetald för denna order." +msgstr "En faktura på totalt %(total)s kommer att skickas från Coeo" #: pretix/presale/templates/pretixpresale/event/order.html:96 #, python-format @@ -35115,8 +35115,9 @@ msgid "Please complete your payment before %(date)s" msgstr "Var god slutför din betalning före %(date)s" #: pretix/presale/templates/pretixpresale/event/order.html:108 +#, fuzzy msgid "Re-try payment or choose another payment method" -msgstr "Försök igen med betalningen eller välj ett annat betalningsalternativ" +msgstr "Tack för din bokning!" #: pretix/presale/templates/pretixpresale/event/order.html:126 msgid "" -- 2.49.1 From 3ecff6b8ed8ed5735347696c2cc5140eca13318c Mon Sep 17 00:00:00 2001 From: Linnea Thelander Date: Thu, 9 Oct 2025 16:00:09 +0200 Subject: [PATCH 049/134] Translations: Update Swedish Currently translated at 76.9% (194 of 252 strings) Translation: pretix/pretix (JavaScript parts) Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/sv/ powered by weblate --- src/pretix/locale/sv/LC_MESSAGES/djangojs.po | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/pretix/locale/sv/LC_MESSAGES/djangojs.po b/src/pretix/locale/sv/LC_MESSAGES/djangojs.po index 99abd4224..6c3f0a58d 100644 --- a/src/pretix/locale/sv/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/sv/LC_MESSAGES/djangojs.po @@ -8,16 +8,16 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2024-09-12 03:00+0000\n" -"Last-Translator: Tinna Sandström \n" -"Language-Team: Swedish \n" +"PO-Revision-Date: 2025-10-09 16:00+0000\n" +"Last-Translator: Linnea Thelander \n" +"Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.7\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56 #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62 @@ -1009,13 +1009,14 @@ msgid "Waiting list" msgstr "Väntelista" #: pretix/static/pretixpresale/js/widget/widget.js:55 +#, fuzzy msgctxt "widget" msgid "" "You currently have an active cart for this event. If you select more " "products, they will be added to your existing cart." msgstr "" "Du har för tillfället en pågående bokning för den här eventet. Om du väljer " -"fler produkter, kommer de att läggas till din befintliga bokning." +"fler produkter, kommer de att läggas till i din befintliga bokning." #: pretix/static/pretixpresale/js/widget/widget.js:57 msgctxt "widget" -- 2.49.1 From 76fccb66bfd5724b545fb7be5990ca4335c8ced1 Mon Sep 17 00:00:00 2001 From: Edd28 Date: Thu, 9 Oct 2025 09:56:39 +0200 Subject: [PATCH 050/134] Translations: Update Romanian Currently translated at 73.0% (4437 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ro/ powered by weblate --- src/pretix/locale/ro/LC_MESSAGES/django.po | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/pretix/locale/ro/LC_MESSAGES/django.po b/src/pretix/locale/ro/LC_MESSAGES/django.po index 2bc390bde..d6e70b5e2 100644 --- a/src/pretix/locale/ro/LC_MESSAGES/django.po +++ b/src/pretix/locale/ro/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2022-04-28 02:00+0000\n" +"PO-Revision-Date: 2025-10-09 16:00+0000\n" "Last-Translator: Edd28 \n" "Language-Team: Romanian \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" -"X-Generator: Weblate 4.12\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -528,10 +528,8 @@ msgid "Refund of payment completed" msgstr "Plată finalizată." #: pretix/api/webhooks.py:318 -#, fuzzy -#| msgid "Refund {local_id} has been canceled." msgid "Refund of payment canceled" -msgstr "Rambursarea {local_id} a fost anulată." +msgstr "Rambursarea plății a fost anulată." #: pretix/api/webhooks.py:322 #, fuzzy @@ -36461,18 +36459,14 @@ msgid "Change or cancel your order" msgstr "Modificați sau anulați comanda dvs" #: pretix/presale/templates/pretixpresale/event/order.html:356 -#, fuzzy -#| msgid "Change order" msgctxt "action" msgid "Change your order" msgstr "Modificați comanda" #: pretix/presale/templates/pretixpresale/event/order.html:358 -#, fuzzy -#| msgid "Cancel order" msgctxt "action" msgid "Cancel your order" -msgstr "Anulează comanda" +msgstr "Anulați comanda" #: pretix/presale/templates/pretixpresale/event/order.html:366 msgid "" -- 2.49.1 From d250fdf327d5453e6dac11159930e97c75324d36 Mon Sep 17 00:00:00 2001 From: Linnea Thelander Date: Fri, 10 Oct 2025 08:24:52 +0200 Subject: [PATCH 051/134] Translations: Update Swedish Currently translated at 76.5% (193 of 252 strings) Translation: pretix/pretix (JavaScript parts) Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/sv/ powered by weblate --- src/pretix/locale/sv/LC_MESSAGES/djangojs.po | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/pretix/locale/sv/LC_MESSAGES/djangojs.po b/src/pretix/locale/sv/LC_MESSAGES/djangojs.po index 6c3f0a58d..470cc5fbf 100644 --- a/src/pretix/locale/sv/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/sv/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-09 16:00+0000\n" +"PO-Revision-Date: 2025-10-10 07:16+0000\n" "Last-Translator: Linnea Thelander \n" "Language-Team: Swedish \n" @@ -987,7 +987,7 @@ msgstr "Öppna biljettbutik" #| msgid "Resume checkout" msgctxt "widget" msgid "Checkout" -msgstr "Fortsätt med ditt bokningen" +msgstr "Fortsätt med din bokning" #: pretix/static/pretixpresale/js/widget/widget.js:51 msgctxt "widget" @@ -1019,9 +1019,10 @@ msgstr "" "fler produkter, kommer de att läggas till i din befintliga bokning." #: pretix/static/pretixpresale/js/widget/widget.js:57 +#, fuzzy msgctxt "widget" msgid "Resume checkout" -msgstr "Fortsätt med ditt bokningen" +msgstr "Fortsätt med din bokning" #: pretix/static/pretixpresale/js/widget/widget.js:58 msgctxt "widget" @@ -1049,7 +1050,7 @@ msgstr "Stäng" #| msgid "Resume checkout" msgctxt "widget" msgid "Close checkout" -msgstr "Fortsätt med ditt bokningen" +msgstr "Fortsätt med din bokning" #: pretix/static/pretixpresale/js/widget/widget.js:63 msgctxt "widget" -- 2.49.1 From 2dc772cfcc983a8786587673e0928e2eee047a4a Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 23 Sep 2025 16:49:32 +0200 Subject: [PATCH 052/134] API: Allow to psas comment when issuing refund --- src/pretix/api/views/order.py | 4 ++++ src/tests/api/test_orders.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index c90f5e8d0..c24c81495 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -1669,6 +1669,9 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet): else: mark_refunded = request.data.get('mark_canceled', False) + if not isinstance(request.data.get("comment", ""), str): + return Response({'comment': 'Invalid type.'}, status=status.HTTP_400_BAD_REQUEST) + if payment.state != OrderPayment.PAYMENT_STATE_CONFIRMED: return Response({'detail': 'Invalid state of payment.'}, status=status.HTTP_400_BAD_REQUEST) @@ -1695,6 +1698,7 @@ class PaymentViewSet(CreateModelMixin, viewsets.ReadOnlyModelViewSet): amount=amount, provider=payment.provider, info='{}', + comment=request.data.get("comment"), ) payment.order.log_action('pretix.event.order.refund.created', { 'local_id': r.local_id, diff --git a/src/tests/api/test_orders.py b/src/tests/api/test_orders.py index e4cc678fa..da721db9a 100644 --- a/src/tests/api/test_orders.py +++ b/src/tests/api/test_orders.py @@ -845,6 +845,7 @@ def test_payment_refund_success(token_client, organizer, event, order, monkeypat organizer.slug, event.slug, order.code, p1.local_id ), format='json', data={ 'amount': '23.00', + 'comment': 'Foo', 'mark_canceled': False, }) assert resp.status_code == 200 @@ -853,6 +854,7 @@ def test_payment_refund_success(token_client, organizer, event, order, monkeypat assert r.provider == "stripe" assert r.state == OrderRefund.REFUND_STATE_DONE assert r.source == OrderRefund.REFUND_SOURCE_ADMIN + assert r.comment == "Foo" @pytest.mark.django_db -- 2.49.1 From da718f3d243e07714b8f7e0098d6357c1da1bf9a Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 23 Sep 2025 16:50:50 +0200 Subject: [PATCH 053/134] Add to docs example --- doc/api/resources/orders.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/api/resources/orders.rst b/doc/api/resources/orders.rst index dc9efef72..5073c3a40 100644 --- a/doc/api/resources/orders.rst +++ b/doc/api/resources/orders.rst @@ -2508,6 +2508,7 @@ Order payment endpoints { "amount": "23.00", + "comment": "Overpayment", "mark_canceled": false } -- 2.49.1 From 06dfba1a1ee0ade9b8c2c73939334f349b8b16a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 09:31:55 +0200 Subject: [PATCH 054/134] Update sentry-sdk requirement from ==2.40.* to ==2.41.* (#5536) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9ec89b517..d190328be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,7 +91,7 @@ dependencies = [ "redis==6.4.*", "reportlab==4.4.*", "requests==2.32.*", - "sentry-sdk==2.40.*", + "sentry-sdk==2.41.*", "sepaxml==2.6.*", "stripe==7.9.*", "text-unidecode==1.*", -- 2.49.1 From bc2cb7212d0a1f2ed3bb406d9c8403c9e05e5286 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 09:32:18 +0200 Subject: [PATCH 055/134] Update aiohttp requirement from ==3.12.* to ==3.13.* (#5528) --- updated-dependencies: - dependency-name: aiohttp dependency-version: 3.13.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d190328be..a476754f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -107,7 +107,7 @@ dependencies = [ [project.optional-dependencies] memcached = ["pylibmc"] dev = [ - "aiohttp==3.12.*", + "aiohttp==3.13.*", "coverage", "coveralls", "fakeredis==2.31.*", -- 2.49.1 From 64c040c18644b8f838d7bb07189a5f30397960c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Oct 2025 09:32:23 +0200 Subject: [PATCH 056/134] Update fakeredis requirement from ==2.31.* to ==2.32.* (#5527) Updates the requirements on [fakeredis](https://github.com/cunla/fakeredis-py) to permit the latest version. - [Release notes](https://github.com/cunla/fakeredis-py/releases) - [Commits](https://github.com/cunla/fakeredis-py/compare/v2.31.0...v2.32.0) --- updated-dependencies: - dependency-name: fakeredis dependency-version: 2.32.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a476754f7..a3903adce 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -110,7 +110,7 @@ dev = [ "aiohttp==3.13.*", "coverage", "coveralls", - "fakeredis==2.31.*", + "fakeredis==2.32.*", "flake8==7.3.*", "freezegun", "isort==6.1.*", -- 2.49.1 From cd4759fb44d4b79416bc8129fa194bf3156de142 Mon Sep 17 00:00:00 2001 From: luelista Date: Fri, 10 Oct 2025 15:07:55 +0200 Subject: [PATCH 057/134] Checkinrules: Handle product and variation changes in editor (Z#23187877) (#5537) If products or variations are deleted, show warning message. If they are renamed, update label. --- .../pretixcontrol/js/ui/checkinrules.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/pretix/static/pretixcontrol/js/ui/checkinrules.js b/src/pretix/static/pretixcontrol/js/ui/checkinrules.js index 4d6ec8920..308331a00 100644 --- a/src/pretix/static/pretixcontrol/js/ui/checkinrules.js +++ b/src/pretix/static/pretixcontrol/js/ui/checkinrules.js @@ -275,6 +275,35 @@ $(function () { _update(); }) _update() + + function check_for_invalid_ids(valid_products, valid_variations, rule) { + if (rule["and"]) { + for(const child of rule["and"]) + check_for_invalid_ids(valid_products, valid_variations, child); + } else if (rule["or"]) { + for(const child of rule["or"]) + check_for_invalid_ids(valid_products, valid_variations, child); + } else if (rule["inList"] && rule["inList"][0]["var"] === "product") { + for(const item of rule["inList"][1]["objectList"]) { + if (!valid_products[item["lookup"][1]]) + item["lookup"][2] = "[" + gettext('Error: Product not found!') + "]"; + else + item["lookup"][2] = valid_products[item["lookup"][1]]; + } + } else if (rule["inList"] && rule["inList"][0]["var"] === "variation") { + for(const item of rule["inList"][1]["objectList"]) { + if (!valid_variations[item["lookup"][1]]) + item["lookup"][2] = "[" + gettext('Error: Variation not found!') + "]"; + else + item["lookup"][2] = valid_variations[item["lookup"][1]]; + } + } + } + check_for_invalid_ids( + Object.fromEntries(this.items.map(p => [p.id, p.name])), + Object.fromEntries(this.items.flatMap(p => p.variations?.map(v => [v.id, p.name + ' – ' + v.name]))), + this.rules + ); } }, watch: { -- 2.49.1 From 05e71d8e57e5a5b969663d9e0528c00f220454fc Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 10 Oct 2025 15:18:54 +0200 Subject: [PATCH 058/134] Update rrule.js to v2.7.2-14-g9f2061f (#5538) (Z#23210685) * Update rrule.js to v2.7.2-14-g9f2061f * Prevent negative count --- .../static/pretixcontrol/js/ui/subevent.js | 2 +- src/pretix/static/rrule/rrule.js | 5101 +++++++++-------- 2 files changed, 2557 insertions(+), 2546 deletions(-) diff --git a/src/pretix/static/pretixcontrol/js/ui/subevent.js b/src/pretix/static/pretixcontrol/js/ui/subevent.js index 2e3f6793c..d38773c1b 100644 --- a/src/pretix/static/pretixcontrol/js/ui/subevent.js +++ b/src/pretix/static/pretixcontrol/js/ui/subevent.js @@ -79,7 +79,7 @@ $(document).on("pretix:bind-forms", function () { var end = $form.find("input[name*=end]:checked").val(); if (end === "count") { - rule_args.count = parseInt($form.find("input[name*=count]").val()) || 1; + rule_args.count = Math.max(parseInt($form.find("input[name*=count]").val()) || 1, 1); } else { var date = $form.find("input[name*=until]").data("DateTimePicker").date(); if (date !== null) { diff --git a/src/pretix/static/rrule/rrule.js b/src/pretix/static/rrule/rrule.js index 6419236b6..a7d4696c0 100644 --- a/src/pretix/static/rrule/rrule.js +++ b/src/pretix/static/rrule/rrule.js @@ -1,120 +1,120 @@ +/*! +* rrule.js - Library for working with recurrence rules for calendar dates. +* https://github.com/jakubrotocil/rrule +* Version v2.7.2-14-g9f2061f +* +* Copyright 2010, Jakub Roztocil and Lars Schoning +* Licenced under the BSD licence. +* https://github.com/jakubroztocil/rrule/blob/master/LICENCE +* +*/ (function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["rrule"] = factory(); - else - root["rrule"] = factory(); -})(typeof self !== 'undefined' ? self : this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 1); -/******/ }) + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["rrule"] = factory(); + else + root["rrule"] = factory(); +})(typeof self !== 'undefined' ? self : this, () => { +return /******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ /************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return isPresent; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isNumber; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return isWeekdayStr; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isArray; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return range; }); -/* unused harmony export clone */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return repeat; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return toArray; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return padStart; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return split; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return pymod; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return divmod; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return empty; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return notEmpty; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return includes; }); -/* harmony import */ var _weekday__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "ALL_WEEKDAYS": () => (/* reexport */ ALL_WEEKDAYS), + "Frequency": () => (/* reexport */ Frequency), + "RRule": () => (/* reexport */ RRule), + "RRuleSet": () => (/* reexport */ RRuleSet), + "Weekday": () => (/* reexport */ Weekday), + "datetime": () => (/* reexport */ datetime), + "rrulestr": () => (/* reexport */ rrulestr) +}); + +;// CONCATENATED MODULE: ./src/weekday.ts +// ============================================================================= +// Weekday +// ============================================================================= +var ALL_WEEKDAYS = [ + 'MO', + 'TU', + 'WE', + 'TH', + 'FR', + 'SA', + 'SU', +]; +var Weekday = /** @class */ (function () { + function Weekday(weekday, n) { + if (n === 0) + throw new Error("Can't create weekday with n == 0"); + this.weekday = weekday; + this.n = n; + } + Weekday.fromStr = function (str) { + return new Weekday(ALL_WEEKDAYS.indexOf(str)); + }; + // __call__ - Cannot call the object directly, do it through + // e.g. RRule.TH.nth(-1) instead, + Weekday.prototype.nth = function (n) { + return this.n === n ? this : new Weekday(this.weekday, n); + }; + // __eq__ + Weekday.prototype.equals = function (other) { + return this.weekday === other.weekday && this.n === other.n; + }; + // __repr__ + Weekday.prototype.toString = function () { + var s = ALL_WEEKDAYS[this.weekday]; + if (this.n) + s = (this.n > 0 ? '+' : '') + String(this.n) + s; + return s; + }; + Weekday.prototype.getJsWeekday = function () { + return this.weekday === 6 ? 0 : this.weekday + 1; + }; + return Weekday; +}()); + + +;// CONCATENATED MODULE: ./src/helpers.ts // ============================================================================= // Helper functions // ============================================================================= @@ -126,7 +126,7 @@ var isNumber = function (value) { return typeof value === 'number'; }; var isWeekdayStr = function (value) { - return _weekday__WEBPACK_IMPORTED_MODULE_0__[/* ALL_WEEKDAYS */ "a"].indexOf(value) >= 0; + return typeof value === 'string' && ALL_WEEKDAYS.includes(value); }; var isArray = Array.isArray; /** @@ -200,7 +200,7 @@ var split = function (str, sep, num) { * @param {number} a The dividend. * @param {number} b The divisor. * @return {number} a % b where the result is between 0 and b (either 0 <= x < b - * or b < x <= 0, depending on the sign of b). + * or b < x <= 0, depending on the sign of b). */ var pymod = function (a, b) { var r = a % b; @@ -218,6 +218,7 @@ var empty = function (obj) { }; /** * Python-like boolean + * * @return {Boolean} value of an object/primitive, taking into account * the fact that in Python an empty list's/tuple's * boolean value is False, whereas in JS it's true @@ -232,165 +233,169 @@ var includes = function (arr, val) { return notEmpty(arr) && arr.indexOf(val) !== -1; }; +;// CONCATENATED MODULE: ./src/dateutil.ts -/***/ }), -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// EXTERNAL MODULE: ./src/helpers.ts -var helpers = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/dateutil.ts - +var datetime = function (y, m, d, h, i, s) { + if (h === void 0) { h = 0; } + if (i === void 0) { i = 0; } + if (s === void 0) { s = 0; } + return new Date(Date.UTC(y, m - 1, d, h, i, s)); +}; /** * General date-related utilities. * Also handles several incompatibilities between JavaScript and Python * */ -var dateutil_dateutil; -(function (dateutil) { - dateutil.MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; - /** - * Number of milliseconds of one day - */ - dateutil.ONE_DAY = 1000 * 60 * 60 * 24; - /** - * @see: - */ - dateutil.MAXYEAR = 9999; - /** - * Python uses 1-Jan-1 as the base for calculating ordinals but we don't - * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER, - * therefore we use 1-Jan-1970 instead - */ - dateutil.ORDINAL_BASE = new Date(Date.UTC(1970, 0, 1)); - /** - * Python: MO-SU: 0 - 6 - * JS: SU-SAT 0 - 6 - */ - dateutil.PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5]; - /** - * py_date.timetuple()[7] - */ - dateutil.getYearDay = function (date) { - var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()); - return (Math.ceil((dateNoTime.valueOf() - - new Date(date.getUTCFullYear(), 0, 1).valueOf()) / - dateutil.ONE_DAY) + 1); - }; - dateutil.isLeapYear = function (year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - }; - dateutil.isDate = function (value) { - return value instanceof Date; - }; - dateutil.isValidDate = function (value) { - return dateutil.isDate(value) && !isNaN(value.getTime()); - }; - /** - * @return {Number} the date's timezone offset in ms - */ - dateutil.tzOffset = function (date) { - return date.getTimezoneOffset() * 60 * 1000; - }; - /** - * @see: - */ - dateutil.daysBetween = function (date1, date2) { - // The number of milliseconds in one day - // Convert both dates to milliseconds - var date1ms = date1.getTime() - dateutil.tzOffset(date1); - var date2ms = date2.getTime() - dateutil.tzOffset(date2); - // Calculate the difference in milliseconds - var differencems = date1ms - date2ms; - // Convert back to days and return - return Math.round(differencems / dateutil.ONE_DAY); - }; - /** - * @see: - */ - dateutil.toOrdinal = function (date) { - return dateutil.daysBetween(date, dateutil.ORDINAL_BASE); - }; - /** - * @see - - */ - dateutil.fromOrdinal = function (ordinal) { - return new Date(dateutil.ORDINAL_BASE.getTime() + ordinal * dateutil.ONE_DAY); - }; - dateutil.getMonthDays = function (date) { - var month = date.getUTCMonth(); - return month === 1 && dateutil.isLeapYear(date.getUTCFullYear()) - ? 29 - : dateutil.MONTH_DAYS[month]; - }; - /** - * @return {Number} python-like weekday - */ - dateutil.getWeekday = function (date) { - return dateutil.PY_WEEKDAYS[date.getUTCDay()]; - }; - /** - * @see: - */ - dateutil.monthRange = function (year, month) { - var date = new Date(Date.UTC(year, month, 1)); - return [dateutil.getWeekday(date), dateutil.getMonthDays(date)]; - }; - /** - * @see: - */ - dateutil.combine = function (date, time) { - time = time || date; - return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds())); - }; - dateutil.clone = function (date) { - var dolly = new Date(date.getTime()); - return dolly; - }; - dateutil.cloneDates = function (dates) { - var clones = []; - for (var i = 0; i < dates.length; i++) { - clones.push(dateutil.clone(dates[i])); - } - return clones; - }; - /** - * Sorts an array of Date or dateutil.Time objects - */ - dateutil.sort = function (dates) { - dates.sort(function (a, b) { - return a.getTime() - b.getTime(); - }); - }; - dateutil.timeToUntilString = function (time, utc) { - if (utc === void 0) { utc = true; } - var date = new Date(time); - return [ - Object(helpers["i" /* padStart */])(date.getUTCFullYear().toString(), 4, '0'), - Object(helpers["i" /* padStart */])(date.getUTCMonth() + 1, 2, '0'), - Object(helpers["i" /* padStart */])(date.getUTCDate(), 2, '0'), - 'T', - Object(helpers["i" /* padStart */])(date.getUTCHours(), 2, '0'), - Object(helpers["i" /* padStart */])(date.getUTCMinutes(), 2, '0'), - Object(helpers["i" /* padStart */])(date.getUTCSeconds(), 2, '0'), - utc ? 'Z' : '' - ].join(''); - }; - dateutil.untilStringToDate = function (until) { - var re = /^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/; - var bits = re.exec(until); - if (!bits) - throw new Error("Invalid UNTIL value: " + until); - return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0)); - }; -})(dateutil_dateutil || (dateutil_dateutil = {})); -/* harmony default export */ var src_dateutil = (dateutil_dateutil); +var MONTH_DAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +/** + * Number of milliseconds of one day + */ +var ONE_DAY = 1000 * 60 * 60 * 24; +/** + * @see: + */ +var MAXYEAR = 9999; +/** + * Python uses 1-Jan-1 as the base for calculating ordinals but we don't + * want to confuse the JS engine with milliseconds > Number.MAX_NUMBER, + * therefore we use 1-Jan-1970 instead + */ +var ORDINAL_BASE = datetime(1970, 1, 1); +/** + * Python: MO-SU: 0 - 6 + * JS: SU-SAT 0 - 6 + */ +var PY_WEEKDAYS = [6, 0, 1, 2, 3, 4, 5]; +/** + * py_date.timetuple()[7] + */ +var getYearDay = function (date) { + var dateNoTime = new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()); + return (Math.ceil((dateNoTime.valueOf() - new Date(date.getUTCFullYear(), 0, 1).valueOf()) / + ONE_DAY) + 1); +}; +var isLeapYear = function (year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; +}; +var isDate = function (value) { + return value instanceof Date; +}; +var isValidDate = function (value) { + return isDate(value) && !isNaN(value.getTime()); +}; +/** + * @return {Number} the date's timezone offset in ms + */ +var tzOffset = function (date) { + return date.getTimezoneOffset() * 60 * 1000; +}; +/** + * @see: + */ +var daysBetween = function (date1, date2) { + // The number of milliseconds in one day + // Convert both dates to milliseconds + var date1ms = date1.getTime(); + var date2ms = date2.getTime(); + // Calculate the difference in milliseconds + var differencems = date1ms - date2ms; + // Convert back to days and return + return Math.round(differencems / ONE_DAY); +}; +/** + * @see: + */ +var toOrdinal = function (date) { + return daysBetween(date, ORDINAL_BASE); +}; +/** + * @see - + */ +var fromOrdinal = function (ordinal) { + return new Date(ORDINAL_BASE.getTime() + ordinal * ONE_DAY); +}; +var getMonthDays = function (date) { + var month = date.getUTCMonth(); + return month === 1 && isLeapYear(date.getUTCFullYear()) + ? 29 + : MONTH_DAYS[month]; +}; +/** + * @return {Number} python-like weekday + */ +var getWeekday = function (date) { + return PY_WEEKDAYS[date.getUTCDay()]; +}; +/** + * @see: + */ +var monthRange = function (year, month) { + var date = datetime(year, month + 1, 1); + return [getWeekday(date), getMonthDays(date)]; +}; +/** + * @see: + */ +var combine = function (date, time) { + time = time || date; + return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds())); +}; +var dateutil_clone = function (date) { + var dolly = new Date(date.getTime()); + return dolly; +}; +var cloneDates = function (dates) { + var clones = []; + for (var i = 0; i < dates.length; i++) { + clones.push(dateutil_clone(dates[i])); + } + return clones; +}; +/** + * Sorts an array of Date or Time objects + */ +var sort = function (dates) { + dates.sort(function (a, b) { + return a.getTime() - b.getTime(); + }); +}; +var timeToUntilString = function (time, utc) { + if (utc === void 0) { utc = true; } + var date = new Date(time); + return [ + padStart(date.getUTCFullYear().toString(), 4, '0'), + padStart(date.getUTCMonth() + 1, 2, '0'), + padStart(date.getUTCDate(), 2, '0'), + 'T', + padStart(date.getUTCHours(), 2, '0'), + padStart(date.getUTCMinutes(), 2, '0'), + padStart(date.getUTCSeconds(), 2, '0'), + utc ? 'Z' : '', + ].join(''); +}; +var untilStringToDate = function (until) { + var re = /^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/; + var bits = re.exec(until); + if (!bits) + throw new Error("Invalid UNTIL value: ".concat(until)); + return new Date(Date.UTC(parseInt(bits[1], 10), parseInt(bits[2], 10) - 1, parseInt(bits[3], 10), parseInt(bits[5], 10) || 0, parseInt(bits[6], 10) || 0, parseInt(bits[7], 10) || 0)); +}; +var dateTZtoISO8601 = function (date, timeZone) { + // date format for sv-SE is almost ISO8601 + var dateStr = date.toLocaleString('sv-SE', { timeZone: timeZone }); + // '2023-02-07 10:41:36' + return dateStr.replace(' ', 'T') + 'Z'; +}; +var dateInTimeZone = function (date, timeZone) { + var localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; + // Date constructor can only reliably parse dates in ISO8601 format + var dateInLocalTZ = new Date(dateTZtoISO8601(date, localTimeZone)); + var dateInTargetTZ = new Date(dateTZtoISO8601(date, timeZone !== null && timeZone !== void 0 ? timeZone : 'UTC')); + var tzOffset = dateInTargetTZ.getTime() - dateInLocalTZ.getTime(); + return new Date(date.getTime() - tzOffset); +}; -// CONCATENATED MODULE: ./src/iterresult.ts +;// CONCATENATED MODULE: ./src/iterresult.ts /** * This class helps us to emulate python's generators, sorta. */ @@ -419,9 +424,9 @@ var IterResult = /** @class */ (function () { * Possibly adds a date into the result. * * @param {Date} date - the date isn't necessarly added to the result - * list (if it is too late/too early) + * list (if it is too late/too early) * @return {Boolean} true if it makes sense to continue the iteration - * false if we're done. + * false if we're done. */ IterResult.prototype.accept = function (date) { ++this.total; @@ -457,6 +462,7 @@ var IterResult = /** @class */ (function () { /** * 'before' and 'after' return only one date, whereas 'all' * and 'between' an array. + * * @return {Date,Array?} */ IterResult.prototype.getValue = function () { @@ -476,33 +482,35 @@ var IterResult = /** @class */ (function () { }; return IterResult; }()); -/* harmony default export */ var iterresult = (IterResult); +/* harmony default export */ const iterresult = (IterResult); -// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js -/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 +;// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js +/****************************************************************************** +Copyright (c) Microsoft Corporation. -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise */ var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; function __extends(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); @@ -547,10 +555,11 @@ function __metadata(metadataKey, metadataValue) { } function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } @@ -583,19 +592,32 @@ function __generator(thisArg, body) { } } -function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; +var __createBinding = Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +}); + +function __exportStar(m, o) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p); } function __values(o) { - var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0; + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; if (m) return m.call(o); - return { + if (o && typeof o.length === "number") return { next: function () { if (o && i >= o.length) o = void 0; return { value: o && o[i++], done: !o }; } }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o, n) { @@ -615,19 +637,31 @@ function __read(o, n) { return ar; } +/** @deprecated */ function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } +/** @deprecated */ function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; -}; +} + +function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +} function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); @@ -664,11 +698,17 @@ function __makeTemplateObject(cooked, raw) { return cooked; }; +var __setModuleDefault = Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}; + function __importStar(mod) { if (mod && mod.__esModule) return mod; var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); return result; } @@ -676,14 +716,32 @@ function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } -// CONCATENATED MODULE: ./src/callbackiterresult.ts +function __classPrivateFieldGet(receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +} + +function __classPrivateFieldSet(receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +} + +function __classPrivateFieldIn(state, receiver) { + if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object"); + return typeof state === "function" ? receiver === state : state.has(receiver); +} + +;// CONCATENATED MODULE: ./src/callbackiterresult.ts /** * IterResult subclass that calls a callback function on each add, * and stops iterating when the callback returns false. */ -var callbackiterresult_CallbackIterResult = /** @class */ (function (_super) { +var CallbackIterResult = /** @class */ (function (_super) { __extends(CallbackIterResult, _super); function CallbackIterResult(method, args, iterator) { var _this = _super.call(this, method, args) || this; @@ -699,2134 +757,41 @@ var callbackiterresult_CallbackIterResult = /** @class */ (function (_super) { }; return CallbackIterResult; }(iterresult)); -/* harmony default export */ var callbackiterresult = (callbackiterresult_CallbackIterResult); +/* harmony default export */ const callbackiterresult = (CallbackIterResult); -// CONCATENATED MODULE: ./src/types.ts -var Frequency; -(function (Frequency) { - Frequency[Frequency["YEARLY"] = 0] = "YEARLY"; - Frequency[Frequency["MONTHLY"] = 1] = "MONTHLY"; - Frequency[Frequency["WEEKLY"] = 2] = "WEEKLY"; - Frequency[Frequency["DAILY"] = 3] = "DAILY"; - Frequency[Frequency["HOURLY"] = 4] = "HOURLY"; - Frequency[Frequency["MINUTELY"] = 5] = "MINUTELY"; - Frequency[Frequency["SECONDLY"] = 6] = "SECONDLY"; -})(Frequency || (Frequency = {})); -function freqIsDailyOrGreater(freq) { - return freq < Frequency.HOURLY; -} - -// EXTERNAL MODULE: ./src/weekday.ts -var weekday = __webpack_require__(2); - -// CONCATENATED MODULE: ./src/datetime.ts - - - - -var Time = /** @class */ (function () { - function Time(hour, minute, second, millisecond) { - this.hour = hour; - this.minute = minute; - this.second = second; - this.millisecond = millisecond || 0; - } - Time.prototype.getHours = function () { - return this.hour; - }; - Time.prototype.getMinutes = function () { - return this.minute; - }; - Time.prototype.getSeconds = function () { - return this.second; - }; - Time.prototype.getMilliseconds = function () { - return this.millisecond; - }; - Time.prototype.getTime = function () { - return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 + - this.millisecond); - }; - return Time; -}()); - -var datetime_DateTime = /** @class */ (function (_super) { - __extends(DateTime, _super); - function DateTime(year, month, day, hour, minute, second, millisecond) { - var _this = _super.call(this, hour, minute, second, millisecond) || this; - _this.year = year; - _this.month = month; - _this.day = day; - return _this; - } - DateTime.fromDate = function (date) { - return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000); - }; - DateTime.prototype.getWeekday = function () { - return dateutil_dateutil.getWeekday(new Date(this.getTime())); - }; - DateTime.prototype.getTime = function () { - return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime(); - }; - DateTime.prototype.getDay = function () { - return this.day; - }; - DateTime.prototype.getMonth = function () { - return this.month; - }; - DateTime.prototype.getYear = function () { - return this.year; - }; - DateTime.prototype.addYears = function (years) { - this.year += years; - }; - DateTime.prototype.addMonths = function (months) { - this.month += months; - if (this.month > 12) { - var yearDiv = Math.floor(this.month / 12); - var monthMod = Object(helpers["j" /* pymod */])(this.month, 12); - this.month = monthMod; - this.year += yearDiv; - if (this.month === 0) { - this.month = 12; - --this.year; - } - } - }; - DateTime.prototype.addWeekly = function (days, wkst) { - if (wkst > this.getWeekday()) { - this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7; - } - else { - this.day += -(this.getWeekday() - wkst) + days * 7; - } - this.fixDay(); - }; - DateTime.prototype.addDaily = function (days) { - this.day += days; - this.fixDay(); - }; - DateTime.prototype.addHours = function (hours, filtered, byhour) { - if (filtered) { - // Jump to one iteration before next day - this.hour += Math.floor((23 - this.hour) / hours) * hours; - } - while (true) { - this.hour += hours; - var _a = Object(helpers["a" /* divmod */])(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod; - if (dayDiv) { - this.hour = hourMod; - this.addDaily(dayDiv); - } - if (Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) - break; - } - }; - DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) { - if (filtered) { - // Jump to one iteration before next day - this.minute += - Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes; - } - while (true) { - this.minute += minutes; - var _a = Object(helpers["a" /* divmod */])(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod; - if (hourDiv) { - this.minute = minuteMod; - this.addHours(hourDiv, false, byhour); - } - if ((Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) && - (Object(helpers["b" /* empty */])(byminute) || Object(helpers["c" /* includes */])(byminute, this.minute))) { - break; - } - } - }; - DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) { - if (filtered) { - // Jump to one iteration before next day - this.second += - Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) / seconds) * seconds; - } - while (true) { - this.second += seconds; - var _a = Object(helpers["a" /* divmod */])(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod; - if (minuteDiv) { - this.second = secondMod; - this.addMinutes(minuteDiv, false, byhour, byminute); - } - if ((Object(helpers["b" /* empty */])(byhour) || Object(helpers["c" /* includes */])(byhour, this.hour)) && - (Object(helpers["b" /* empty */])(byminute) || Object(helpers["c" /* includes */])(byminute, this.minute)) && - (Object(helpers["b" /* empty */])(bysecond) || Object(helpers["c" /* includes */])(bysecond, this.second))) { - break; - } - } - }; - DateTime.prototype.fixDay = function () { - if (this.day <= 28) { - return; - } - var daysinmonth = dateutil_dateutil.monthRange(this.year, this.month - 1)[1]; - if (this.day <= daysinmonth) { - return; - } - while (this.day > daysinmonth) { - this.day -= daysinmonth; - ++this.month; - if (this.month === 13) { - this.month = 1; - ++this.year; - if (this.year > dateutil_dateutil.MAXYEAR) { - return; - } - } - daysinmonth = dateutil_dateutil.monthRange(this.year, this.month - 1)[1]; - } - }; - DateTime.prototype.add = function (options, filtered) { - var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; - switch (freq) { - case Frequency.YEARLY: return this.addYears(interval); - case Frequency.MONTHLY: return this.addMonths(interval); - case Frequency.WEEKLY: return this.addWeekly(interval, wkst); - case Frequency.DAILY: return this.addDaily(interval); - case Frequency.HOURLY: return this.addHours(interval, filtered, byhour); - case Frequency.MINUTELY: return this.addMinutes(interval, filtered, byhour, byminute); - case Frequency.SECONDLY: return this.addSeconds(interval, filtered, byhour, byminute, bysecond); - } - }; - return DateTime; -}(Time)); - - -// CONCATENATED MODULE: ./src/parseoptions.ts - - - - - - - -function initializeOptions(options) { - var invalid = []; - var keys = Object.keys(options); - // Shallow copy for options and origOptions and check for invalid - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - if (!Object(helpers["c" /* includes */])(rrule_defaultKeys, key)) - invalid.push(key); - if (src_dateutil.isDate(options[key]) && !src_dateutil.isValidDate(options[key])) - invalid.push(key); - } - if (invalid.length) { - throw new Error('Invalid options: ' + invalid.join(', ')); - } - return __assign({}, options); -} -function parseOptions(options) { - var opts = __assign(__assign({}, DEFAULT_OPTIONS), initializeOptions(options)); - if (Object(helpers["f" /* isPresent */])(opts.byeaster)) - opts.freq = src_rrule.YEARLY; - if (!(Object(helpers["f" /* isPresent */])(opts.freq) && src_rrule.FREQUENCIES[opts.freq])) { - throw new Error("Invalid frequency: " + opts.freq + " " + options.freq); - } - if (!opts.dtstart) - opts.dtstart = new Date(new Date().setMilliseconds(0)); - if (!Object(helpers["f" /* isPresent */])(opts.wkst)) { - opts.wkst = src_rrule.MO.weekday; - } - else if (Object(helpers["e" /* isNumber */])(opts.wkst)) { - // cool, just keep it like that - } - else { - opts.wkst = opts.wkst.weekday; - } - if (Object(helpers["f" /* isPresent */])(opts.bysetpos)) { - if (Object(helpers["e" /* isNumber */])(opts.bysetpos)) - opts.bysetpos = [opts.bysetpos]; - for (var i = 0; i < opts.bysetpos.length; i++) { - var v = opts.bysetpos[i]; - if (v === 0 || !(v >= -366 && v <= 366)) { - throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1'); - } - } - } - if (!(Boolean(opts.byweekno) || - Object(helpers["h" /* notEmpty */])(opts.byweekno) || - Object(helpers["h" /* notEmpty */])(opts.byyearday) || - Boolean(opts.bymonthday) || - Object(helpers["h" /* notEmpty */])(opts.bymonthday) || - Object(helpers["f" /* isPresent */])(opts.byweekday) || - Object(helpers["f" /* isPresent */])(opts.byeaster))) { - switch (opts.freq) { - case src_rrule.YEARLY: - if (!opts.bymonth) - opts.bymonth = opts.dtstart.getUTCMonth() + 1; - opts.bymonthday = opts.dtstart.getUTCDate(); - break; - case src_rrule.MONTHLY: - opts.bymonthday = opts.dtstart.getUTCDate(); - break; - case src_rrule.WEEKLY: - opts.byweekday = [src_dateutil.getWeekday(opts.dtstart)]; - break; - } - } - // bymonth - if (Object(helpers["f" /* isPresent */])(opts.bymonth) && !Object(helpers["d" /* isArray */])(opts.bymonth)) { - opts.bymonth = [opts.bymonth]; - } - // byyearday - if (Object(helpers["f" /* isPresent */])(opts.byyearday) && - !Object(helpers["d" /* isArray */])(opts.byyearday) && - Object(helpers["e" /* isNumber */])(opts.byyearday)) { - opts.byyearday = [opts.byyearday]; - } - // bymonthday - if (!Object(helpers["f" /* isPresent */])(opts.bymonthday)) { - opts.bymonthday = []; - opts.bynmonthday = []; - } - else if (Object(helpers["d" /* isArray */])(opts.bymonthday)) { - var bymonthday = []; - var bynmonthday = []; - for (var i = 0; i < opts.bymonthday.length; i++) { - var v = opts.bymonthday[i]; - if (v > 0) { - bymonthday.push(v); - } - else if (v < 0) { - bynmonthday.push(v); - } - } - opts.bymonthday = bymonthday; - opts.bynmonthday = bynmonthday; - } - else if (opts.bymonthday < 0) { - opts.bynmonthday = [opts.bymonthday]; - opts.bymonthday = []; - } - else { - opts.bynmonthday = []; - opts.bymonthday = [opts.bymonthday]; - } - // byweekno - if (Object(helpers["f" /* isPresent */])(opts.byweekno) && !Object(helpers["d" /* isArray */])(opts.byweekno)) { - opts.byweekno = [opts.byweekno]; - } - // byweekday / bynweekday - if (!Object(helpers["f" /* isPresent */])(opts.byweekday)) { - opts.bynweekday = null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byweekday)) { - opts.byweekday = [opts.byweekday]; - opts.bynweekday = null; - } - else if (Object(helpers["g" /* isWeekdayStr */])(opts.byweekday)) { - opts.byweekday = [weekday["b" /* Weekday */].fromStr(opts.byweekday).weekday]; - opts.bynweekday = null; - } - else if (opts.byweekday instanceof weekday["b" /* Weekday */]) { - if (!opts.byweekday.n || opts.freq > src_rrule.MONTHLY) { - opts.byweekday = [opts.byweekday.weekday]; - opts.bynweekday = null; - } - else { - opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]]; - opts.byweekday = null; - } - } - else { - var byweekday = []; - var bynweekday = []; - for (var i = 0; i < opts.byweekday.length; i++) { - var wday = opts.byweekday[i]; - if (Object(helpers["e" /* isNumber */])(wday)) { - byweekday.push(wday); - continue; - } - else if (Object(helpers["g" /* isWeekdayStr */])(wday)) { - byweekday.push(weekday["b" /* Weekday */].fromStr(wday).weekday); - continue; - } - if (!wday.n || opts.freq > src_rrule.MONTHLY) { - byweekday.push(wday.weekday); - } - else { - bynweekday.push([wday.weekday, wday.n]); - } - } - opts.byweekday = Object(helpers["h" /* notEmpty */])(byweekday) ? byweekday : null; - opts.bynweekday = Object(helpers["h" /* notEmpty */])(bynweekday) ? bynweekday : null; - } - // byhour - if (!Object(helpers["f" /* isPresent */])(opts.byhour)) { - opts.byhour = - opts.freq < src_rrule.HOURLY ? [opts.dtstart.getUTCHours()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byhour)) { - opts.byhour = [opts.byhour]; - } - // byminute - if (!Object(helpers["f" /* isPresent */])(opts.byminute)) { - opts.byminute = - opts.freq < src_rrule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.byminute)) { - opts.byminute = [opts.byminute]; - } - // bysecond - if (!Object(helpers["f" /* isPresent */])(opts.bysecond)) { - opts.bysecond = - opts.freq < src_rrule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null; - } - else if (Object(helpers["e" /* isNumber */])(opts.bysecond)) { - opts.bysecond = [opts.bysecond]; - } - return { parsedOptions: opts }; -} -function buildTimeset(opts) { - var millisecondModulo = opts.dtstart.getTime() % 1000; - if (!freqIsDailyOrGreater(opts.freq)) { - return []; - } - var timeset = []; - opts.byhour.forEach(function (hour) { - opts.byminute.forEach(function (minute) { - opts.bysecond.forEach(function (second) { - timeset.push(new Time(hour, minute, second, millisecondModulo)); - }); - }); - }); - return timeset; -} - -// CONCATENATED MODULE: ./src/parsestring.ts - - - - - -function parseString(rfcString) { - var options = rfcString.split('\n').map(parseLine).filter(function (x) { return x !== null; }); - return __assign(__assign({}, options[0]), options[1]); -} -function parseDtstart(line) { - var options = {}; - var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(line); - if (!dtstartWithZone) { - return options; - } - var _ = dtstartWithZone[0], tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2]; - if (tzid) { - options.tzid = tzid; - } - options.dtstart = src_dateutil.untilStringToDate(dtstart); - return options; -} -function parseLine(rfcString) { - rfcString = rfcString.replace(/^\s+|\s+$/, ''); - if (!rfcString.length) - return null; - var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase()); - if (!header) { - return parseRrule(rfcString); - } - var _ = header[0], key = header[1]; - switch (key.toUpperCase()) { - case 'RRULE': - case 'EXRULE': - return parseRrule(rfcString); - case 'DTSTART': - return parseDtstart(rfcString); - default: - throw new Error("Unsupported RFC prop " + key + " in " + rfcString); - } -} -function parseRrule(line) { - var strippedLine = line.replace(/^RRULE:/i, ''); - var options = parseDtstart(strippedLine); - var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';'); - attrs.forEach(function (attr) { - var _a = attr.split('='), key = _a[0], value = _a[1]; - switch (key.toUpperCase()) { - case 'FREQ': - options.freq = Frequency[value.toUpperCase()]; - break; - case 'WKST': - options.wkst = Days[value.toUpperCase()]; - break; - case 'COUNT': - case 'INTERVAL': - case 'BYSETPOS': - case 'BYMONTH': - case 'BYMONTHDAY': - case 'BYYEARDAY': - case 'BYWEEKNO': - case 'BYHOUR': - case 'BYMINUTE': - case 'BYSECOND': - var num = parseNumber(value); - var optionKey = key.toLowerCase(); - // @ts-ignore - options[optionKey] = num; - break; - case 'BYWEEKDAY': - case 'BYDAY': - options.byweekday = parseWeekday(value); - break; - case 'DTSTART': - case 'TZID': - // for backwards compatibility - var dtstart = parseDtstart(line); - options.tzid = dtstart.tzid; - options.dtstart = dtstart.dtstart; - break; - case 'UNTIL': - options.until = src_dateutil.untilStringToDate(value); - break; - case 'BYEASTER': - options.byeaster = Number(value); - break; - default: - throw new Error("Unknown RRULE property '" + key + "'"); - } - }); - return options; -} -function parseNumber(value) { - if (value.indexOf(',') !== -1) { - var values = value.split(','); - return values.map(parseIndividualNumber); - } - return parseIndividualNumber(value); -} -function parseIndividualNumber(value) { - if (/^[+-]?\d+$/.test(value)) { - return Number(value); - } - return value; -} -function parseWeekday(value) { - var days = value.split(','); - return days.map(function (day) { - if (day.length === 2) { - // MO, TU, ... - return Days[day]; // wday instanceof Weekday - } - // -1MO, +3FR, 1SO, 13TU ... - var parts = day.match(/^([+-]?\d{1,2})([A-Z]{2})$/); - var n = Number(parts[1]); - var wdaypart = parts[2]; - var wday = Days[wdaypart].weekday; - return new weekday["b" /* Weekday */](wday, n); - }); -} - -// CONCATENATED MODULE: ./src/fake-luxon.ts -var fake_luxon_DateTime = { - fromJSDate: function () { - throw new TypeError(); - } -}; - -// CONCATENATED MODULE: ./src/datewithzone.ts - - -var datewithzone_DateWithZone = /** @class */ (function () { - function DateWithZone(date, tzid) { - this.date = date; - this.tzid = tzid; - } - Object.defineProperty(DateWithZone.prototype, "isUTC", { - get: function () { - return !this.tzid || this.tzid.toUpperCase() === 'UTC'; - }, - enumerable: true, - configurable: true - }); - DateWithZone.prototype.toString = function () { - var datestr = src_dateutil.timeToUntilString(this.date.getTime(), this.isUTC); - if (!this.isUTC) { - return ";TZID=" + this.tzid + ":" + datestr; - } - return ":" + datestr; - }; - DateWithZone.prototype.getTime = function () { - return this.date.getTime(); - }; - DateWithZone.prototype.rezonedDate = function () { - if (this.isUTC) { - return this.date; - } - try { - var datetime = fake_luxon_DateTime - .fromJSDate(this.date); - var rezoned = datetime.setZone(this.tzid, { keepLocalTime: true }); - return rezoned.toJSDate(); - } - catch (e) { - if (e instanceof TypeError) { - console.error('Using TZID without Luxon available is unsupported. Returned times are in UTC, not the requested time zone'); - } - return this.date; - } - }; - return DateWithZone; -}()); - - -// CONCATENATED MODULE: ./src/optionstostring.ts - - - - - -function optionsToString(options) { - var rrule = []; - var dtstart = ''; - var keys = Object.keys(options); - var defaultKeys = Object.keys(DEFAULT_OPTIONS); - for (var i = 0; i < keys.length; i++) { - if (keys[i] === 'tzid') - continue; - if (!Object(helpers["c" /* includes */])(defaultKeys, keys[i])) - continue; - var key = keys[i].toUpperCase(); - var value = options[keys[i]]; - var outValue = ''; - if (!Object(helpers["f" /* isPresent */])(value) || (Object(helpers["d" /* isArray */])(value) && !value.length)) - continue; - switch (key) { - case 'FREQ': - outValue = src_rrule.FREQUENCIES[options.freq]; - break; - case 'WKST': - if (Object(helpers["e" /* isNumber */])(value)) { - outValue = new weekday["b" /* Weekday */](value).toString(); - } - else { - outValue = value.toString(); - } - break; - case 'BYWEEKDAY': - /* - NOTE: BYWEEKDAY is a special case. - RRule() deconstructs the rule.options.byweekday array - into an array of Weekday arguments. - On the other hand, rule.origOptions is an array of Weekdays. - We need to handle both cases here. - It might be worth change RRule to keep the Weekdays. - - Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC) - - */ - key = 'BYDAY'; - outValue = Object(helpers["n" /* toArray */])(value).map(function (wday) { - if (wday instanceof weekday["b" /* Weekday */]) { - return wday; - } - if (Object(helpers["d" /* isArray */])(wday)) { - return new weekday["b" /* Weekday */](wday[0], wday[1]); - } - return new weekday["b" /* Weekday */](wday); - }).toString(); - break; - case 'DTSTART': - dtstart = buildDtstart(value, options.tzid); - break; - case 'UNTIL': - outValue = src_dateutil.timeToUntilString(value, !options.tzid); - break; - default: - if (Object(helpers["d" /* isArray */])(value)) { - var strValues = []; - for (var j = 0; j < value.length; j++) { - strValues[j] = String(value[j]); - } - outValue = strValues.toString(); - } - else { - outValue = String(value); - } - } - if (outValue) { - rrule.push([key, outValue]); - } - } - var rules = rrule.map(function (_a) { - var key = _a[0], value = _a[1]; - return key + "=" + value.toString(); - }).join(';'); - var ruleString = ''; - if (rules !== '') { - ruleString = "RRULE:" + rules; - } - return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\n'); -} -function buildDtstart(dtstart, tzid) { - if (!dtstart) { - return ''; - } - return 'DTSTART' + new datewithzone_DateWithZone(new Date(dtstart), tzid).toString(); -} - -// CONCATENATED MODULE: ./src/cache.ts - - - -var cache_Cache = /** @class */ (function () { - function Cache() { - this.all = false; - this.before = []; - this.after = []; - this.between = []; - } - /** - * @param {String} what - all/before/after/between - * @param {Array,Date} value - an array of dates, one date, or null - * @param {Object?} args - _iter arguments - */ - Cache.prototype._cacheAdd = function (what, value, args) { - if (value) { - value = - value instanceof Date - ? src_dateutil.clone(value) - : src_dateutil.cloneDates(value); - } - if (what === 'all') { - this.all = value; - } - else { - args._value = value; - this[what].push(args); - } - }; - /** - * @return false - not in the cache - * null - cached, but zero occurrences (before/after) - * Date - cached (before/after) - * [] - cached, but zero occurrences (all/between) - * [Date1, DateN] - cached (all/between) - */ - Cache.prototype._cacheGet = function (what, args) { - var cached = false; - var argsKeys = args ? Object.keys(args) : []; - var findCacheDiff = function (item) { - for (var i = 0; i < argsKeys.length; i++) { - var key = argsKeys[i]; - if (String(args[key]) !== String(item[key])) { - return true; - } - } - return false; - }; - var cachedObject = this[what]; - if (what === 'all') { - cached = this.all; - } - else if (Object(helpers["d" /* isArray */])(cachedObject)) { - // Let's see whether we've already called the - // 'what' method with the same 'args' - for (var i = 0; i < cachedObject.length; i++) { - var item = cachedObject[i]; - if (argsKeys.length && findCacheDiff(item)) - continue; - cached = item._value; - break; - } - } - if (!cached && this.all) { - // Not in the cache, but we already know all the occurrences, - // so we can find the correct dates from the cached ones. - var iterResult = new iterresult(what, args); - for (var i = 0; i < this.all.length; i++) { - if (!iterResult.accept(this.all[i])) - break; - } - cached = iterResult.getValue(); - this._cacheAdd(what, cached, args); - } - return Object(helpers["d" /* isArray */])(cached) - ? src_dateutil.cloneDates(cached) - : cached instanceof Date - ? src_dateutil.clone(cached) - : cached; - }; - return Cache; -}()); - - -// CONCATENATED MODULE: ./src/masks.ts - - -// ============================================================================= -// Date masks -// ============================================================================= -// Every mask is 7 days longer to handle cross-year weekly periods. -var M365MASK = __spreadArrays(Object(helpers["l" /* repeat */])(1, 31), Object(helpers["l" /* repeat */])(2, 28), Object(helpers["l" /* repeat */])(3, 31), Object(helpers["l" /* repeat */])(4, 30), Object(helpers["l" /* repeat */])(5, 31), Object(helpers["l" /* repeat */])(6, 30), Object(helpers["l" /* repeat */])(7, 31), Object(helpers["l" /* repeat */])(8, 31), Object(helpers["l" /* repeat */])(9, 30), Object(helpers["l" /* repeat */])(10, 31), Object(helpers["l" /* repeat */])(11, 30), Object(helpers["l" /* repeat */])(12, 31), Object(helpers["l" /* repeat */])(1, 7)); -var M366MASK = __spreadArrays(Object(helpers["l" /* repeat */])(1, 31), Object(helpers["l" /* repeat */])(2, 29), Object(helpers["l" /* repeat */])(3, 31), Object(helpers["l" /* repeat */])(4, 30), Object(helpers["l" /* repeat */])(5, 31), Object(helpers["l" /* repeat */])(6, 30), Object(helpers["l" /* repeat */])(7, 31), Object(helpers["l" /* repeat */])(8, 31), Object(helpers["l" /* repeat */])(9, 30), Object(helpers["l" /* repeat */])(10, 31), Object(helpers["l" /* repeat */])(11, 30), Object(helpers["l" /* repeat */])(12, 31), Object(helpers["l" /* repeat */])(1, 7)); -var M28 = Object(helpers["k" /* range */])(1, 29); -var M29 = Object(helpers["k" /* range */])(1, 30); -var M30 = Object(helpers["k" /* range */])(1, 31); -var M31 = Object(helpers["k" /* range */])(1, 32); -var MDAY366MASK = __spreadArrays(M31, M29, M31, M30, M31, M30, M31, M31, M30, M31, M30, M31, M31.slice(0, 7)); -var MDAY365MASK = __spreadArrays(M31, M28, M31, M30, M31, M30, M31, M31, M30, M31, M30, M31, M31.slice(0, 7)); -var NM28 = Object(helpers["k" /* range */])(-28, 0); -var NM29 = Object(helpers["k" /* range */])(-29, 0); -var NM30 = Object(helpers["k" /* range */])(-30, 0); -var NM31 = Object(helpers["k" /* range */])(-31, 0); -var NMDAY366MASK = __spreadArrays(NM31, NM29, NM31, NM30, NM31, NM30, NM31, NM31, NM30, NM31, NM30, NM31, NM31.slice(0, 7)); -var NMDAY365MASK = __spreadArrays(NM31, NM28, NM31, NM30, NM31, NM30, NM31, NM31, NM30, NM31, NM30, NM31, NM31.slice(0, 7)); -var M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]; -var M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; -var WDAYMASK = (function () { - var wdaymask = []; - for (var i = 0; i < 55; i++) - wdaymask = wdaymask.concat(Object(helpers["k" /* range */])(7)); - return wdaymask; -})(); - - -// CONCATENATED MODULE: ./src/iterinfo/yearinfo.ts - - - - -function rebuildYear(year, options) { - var firstyday = new Date(Date.UTC(year, 0, 1)); - var yearlen = src_dateutil.isLeapYear(year) ? 366 : 365; - var nextyearlen = src_dateutil.isLeapYear(year + 1) ? 366 : 365; - var yearordinal = src_dateutil.toOrdinal(firstyday); - var yearweekday = src_dateutil.getWeekday(firstyday); - var result = __assign(__assign({ yearlen: yearlen, - nextyearlen: nextyearlen, - yearordinal: yearordinal, - yearweekday: yearweekday }, baseYearMasks(year)), { wnomask: null }); - if (Object(helpers["b" /* empty */])(options.byweekno)) { - return result; - } - result.wnomask = Object(helpers["l" /* repeat */])(0, yearlen + 7); - var firstwkst; - var wyearlen; - var no1wkst = firstwkst = Object(helpers["j" /* pymod */])(7 - yearweekday + options.wkst, 7); - if (no1wkst >= 4) { - no1wkst = 0; - // Number of days in the year, plus the days we got - // from last year. - wyearlen = - result.yearlen + Object(helpers["j" /* pymod */])(yearweekday - options.wkst, 7); - } - else { - // Number of days in the year, minus the days we - // left in last year. - wyearlen = yearlen - no1wkst; - } - var div = Math.floor(wyearlen / 7); - var mod = Object(helpers["j" /* pymod */])(wyearlen, 7); - var numweeks = Math.floor(div + mod / 4); - for (var j = 0; j < options.byweekno.length; j++) { - var n = options.byweekno[j]; - if (n < 0) { - n += numweeks + 1; - } - if (!(n > 0 && n <= numweeks)) { - continue; - } - var i = void 0; - if (n > 1) { - i = no1wkst + (n - 1) * 7; - if (no1wkst !== firstwkst) { - i -= 7 - firstwkst; - } - } - else { - i = no1wkst; - } - for (var k = 0; k < 7; k++) { - result.wnomask[i] = 1; - i++; - if (result.wdaymask[i] === options.wkst) - break; - } - } - if (Object(helpers["c" /* includes */])(options.byweekno, 1)) { - // Check week number 1 of next year as well - // orig-TODO : Check -numweeks for next year. - var i = no1wkst + numweeks * 7; - if (no1wkst !== firstwkst) - i -= 7 - firstwkst; - if (i < yearlen) { - // If week starts in next year, we - // don't care about it. - for (var j = 0; j < 7; j++) { - result.wnomask[i] = 1; - i += 1; - if (result.wdaymask[i] === options.wkst) - break; - } - } - } - if (no1wkst) { - // Check last week number of last year as - // well. If no1wkst is 0, either the year - // started on week start, or week number 1 - // got days from last year, so there are no - // days from last year's last week number in - // this year. - var lnumweeks = void 0; - if (!Object(helpers["c" /* includes */])(options.byweekno, -1)) { - var lyearweekday = src_dateutil.getWeekday(new Date(Date.UTC(year - 1, 0, 1))); - var lno1wkst = Object(helpers["j" /* pymod */])(7 - lyearweekday.valueOf() + options.wkst, 7); - var lyearlen = src_dateutil.isLeapYear(year - 1) ? 366 : 365; - var weekst = void 0; - if (lno1wkst >= 4) { - lno1wkst = 0; - weekst = lyearlen + Object(helpers["j" /* pymod */])(lyearweekday - options.wkst, 7); - } - else { - weekst = yearlen - no1wkst; - } - lnumweeks = Math.floor(52 + Object(helpers["j" /* pymod */])(weekst, 7) / 4); - } - else { - lnumweeks = -1; - } - if (Object(helpers["c" /* includes */])(options.byweekno, lnumweeks)) { - for (var i = 0; i < no1wkst; i++) - result.wnomask[i] = 1; - } - } - return result; -} -function baseYearMasks(year) { - var yearlen = src_dateutil.isLeapYear(year) ? 366 : 365; - var firstyday = new Date(Date.UTC(year, 0, 1)); - var wday = src_dateutil.getWeekday(firstyday); - if (yearlen === 365) { - return { - mmask: M365MASK, - mdaymask: MDAY365MASK, - nmdaymask: NMDAY365MASK, - wdaymask: WDAYMASK.slice(wday), - mrange: M365RANGE - }; - } - return { - mmask: M366MASK, - mdaymask: MDAY366MASK, - nmdaymask: NMDAY366MASK, - wdaymask: WDAYMASK.slice(wday), - mrange: M366RANGE - }; -} - -// CONCATENATED MODULE: ./src/iterinfo/monthinfo.ts - - -function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) { - var result = { - lastyear: year, - lastmonth: month, - nwdaymask: [] - }; - var ranges = []; - if (options.freq === src_rrule.YEARLY) { - if (Object(helpers["b" /* empty */])(options.bymonth)) { - ranges = [[0, yearlen]]; - } - else { - for (var j = 0; j < options.bymonth.length; j++) { - month = options.bymonth[j]; - ranges.push(mrange.slice(month - 1, month + 1)); - } - } - } - else if (options.freq === src_rrule.MONTHLY) { - ranges = [mrange.slice(month - 1, month + 1)]; - } - if (Object(helpers["b" /* empty */])(ranges)) { - return result; - } - // Weekly frequency won't get here, so we may not - // care about cross-year weekly periods. - result.nwdaymask = Object(helpers["l" /* repeat */])(0, yearlen); - for (var j = 0; j < ranges.length; j++) { - var rang = ranges[j]; - var first = rang[0]; - var last = rang[1] - 1; - for (var k = 0; k < options.bynweekday.length; k++) { - var i = void 0; - var _a = options.bynweekday[k], wday = _a[0], n = _a[1]; - if (n < 0) { - i = last + (n + 1) * 7; - i -= Object(helpers["j" /* pymod */])(wdaymask[i] - wday, 7); - } - else { - i = first + (n - 1) * 7; - i += Object(helpers["j" /* pymod */])(7 - wdaymask[i] + wday, 7); - } - if (first <= i && i <= last) - result.nwdaymask[i] = 1; - } - } - return result; -} - -// CONCATENATED MODULE: ./src/iterinfo/easter.ts -function easter(y, offset) { - if (offset === void 0) { offset = 0; } - var a = y % 19; - var b = Math.floor(y / 100); - var c = y % 100; - var d = Math.floor(b / 4); - var e = b % 4; - var f = Math.floor((b + 8) / 25); - var g = Math.floor((b - f + 1) / 3); - var h = Math.floor(19 * a + b - d - g + 15) % 30; - var i = Math.floor(c / 4); - var k = c % 4; - var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7; - var m = Math.floor((a + 11 * h + 22 * l) / 451); - var month = Math.floor((h + l - 7 * m + 114) / 31); - var day = ((h + l - 7 * m + 114) % 31) + 1; - var date = Date.UTC(y, month - 1, day + offset); - var yearStart = Date.UTC(y, 0, 1); - return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))]; -} - -// CONCATENATED MODULE: ./src/iterinfo/index.ts - - - - - - - -// ============================================================================= -// Iterinfo -// ============================================================================= -var iterinfo_Iterinfo = /** @class */ (function () { - function Iterinfo(options) { - this.options = options; - } - Iterinfo.prototype.rebuild = function (year, month) { - var options = this.options; - if (year !== this.lastyear) { - this.yearinfo = rebuildYear(year, options); - } - if (Object(helpers["h" /* notEmpty */])(options.bynweekday) && - (month !== this.lastmonth || year !== this.lastyear)) { - var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask; - this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options); - } - if (Object(helpers["f" /* isPresent */])(options.byeaster)) { - this.eastermask = easter(year, options.byeaster); - } - }; - Object.defineProperty(Iterinfo.prototype, "lastyear", { - get: function () { - return this.monthinfo ? this.monthinfo.lastyear : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "lastmonth", { - get: function () { - return this.monthinfo ? this.monthinfo.lastmonth : null; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "yearlen", { - get: function () { - return this.yearinfo.yearlen; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "yearordinal", { - get: function () { - return this.yearinfo.yearordinal; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mrange", { - get: function () { - return this.yearinfo.mrange; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "wdaymask", { - get: function () { - return this.yearinfo.wdaymask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mmask", { - get: function () { - return this.yearinfo.mmask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "wnomask", { - get: function () { - return this.yearinfo.wnomask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nwdaymask", { - get: function () { - return this.monthinfo ? this.monthinfo.nwdaymask : []; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nextyearlen", { - get: function () { - return this.yearinfo.nextyearlen; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "mdaymask", { - get: function () { - return this.yearinfo.mdaymask; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Iterinfo.prototype, "nmdaymask", { - get: function () { - return this.yearinfo.nmdaymask; - }, - enumerable: true, - configurable: true - }); - Iterinfo.prototype.ydayset = function () { - return [Object(helpers["k" /* range */])(this.yearlen), 0, this.yearlen]; - }; - Iterinfo.prototype.mdayset = function (_, month, __) { - var start = this.mrange[month - 1]; - var end = this.mrange[month]; - var set = Object(helpers["l" /* repeat */])(null, this.yearlen); - for (var i = start; i < end; i++) - set[i] = i; - return [set, start, end]; - }; - Iterinfo.prototype.wdayset = function (year, month, day) { - // We need to handle cross-year weeks here. - var set = Object(helpers["l" /* repeat */])(null, this.yearlen + 7); - var i = src_dateutil.toOrdinal(new Date(Date.UTC(year, month - 1, day))) - - this.yearordinal; - var start = i; - for (var j = 0; j < 7; j++) { - set[i] = i; - ++i; - if (this.wdaymask[i] === this.options.wkst) - break; - } - return [set, start, i]; - }; - Iterinfo.prototype.ddayset = function (year, month, day) { - var set = Object(helpers["l" /* repeat */])(null, this.yearlen); - var i = src_dateutil.toOrdinal(new Date(Date.UTC(year, month - 1, day))) - - this.yearordinal; - set[i] = i; - return [set, i, i + 1]; - }; - Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) { - var _this = this; - var set = []; - this.options.byminute.forEach(function (minute) { - set = set.concat(_this.mtimeset(hour, minute, second, millisecond)); - }); - src_dateutil.sort(set); - return set; - }; - Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) { - var set = this.options.bysecond.map(function (second) { - return new Time(hour, minute, second, millisecond); - }); - src_dateutil.sort(set); - return set; - }; - Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) { - return [new Time(hour, minute, second, millisecond)]; - }; - Iterinfo.prototype.getdayset = function (freq) { - switch (freq) { - case Frequency.YEARLY: return this.ydayset.bind(this); - case Frequency.MONTHLY: return this.mdayset.bind(this); - case Frequency.WEEKLY: return this.wdayset.bind(this); - case Frequency.DAILY: return this.ddayset.bind(this); - default: return this.ddayset.bind(this); - } - }; - Iterinfo.prototype.gettimeset = function (freq) { - switch (freq) { - case Frequency.HOURLY: return this.htimeset.bind(this); - case Frequency.MINUTELY: return this.mtimeset.bind(this); - case Frequency.SECONDLY: return this.stimeset.bind(this); - } - }; - return Iterinfo; -}()); -/* harmony default export */ var iterinfo = (iterinfo_Iterinfo); - -// CONCATENATED MODULE: ./src/iter/poslist.ts - - -function buildPoslist(bysetpos, timeset, start, end, ii, dayset) { - var poslist = []; - for (var j = 0; j < bysetpos.length; j++) { - var daypos = void 0; - var timepos = void 0; - var pos = bysetpos[j]; - if (pos < 0) { - daypos = Math.floor(pos / timeset.length); - timepos = Object(helpers["j" /* pymod */])(pos, timeset.length); - } - else { - daypos = Math.floor((pos - 1) / timeset.length); - timepos = Object(helpers["j" /* pymod */])(pos - 1, timeset.length); - } - var tmp = []; - for (var k = start; k < end; k++) { - var val = dayset[k]; - if (!Object(helpers["f" /* isPresent */])(val)) - continue; - tmp.push(val); - } - var i = void 0; - if (daypos < 0) { - i = tmp.slice(daypos)[0]; - } - else { - i = tmp[daypos]; - } - var time = timeset[timepos]; - var date = src_dateutil.fromOrdinal(ii.yearordinal + i); - var res = src_dateutil.combine(date, time); - // XXX: can this ever be in the array? - // - compare the actual date instead? - if (!Object(helpers["c" /* includes */])(poslist, res)) - poslist.push(res); - } - src_dateutil.sort(poslist); - return poslist; -} - -// CONCATENATED MODULE: ./src/iter/index.ts - - - - - - - - - -function iter(iterResult, options) { - var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos; - var count = options.count; - if (count <= 0 || interval <= 0) { - return emitResult(iterResult); - } - var counterDate = datetime_DateTime.fromDate(dtstart); - var ii = new iterinfo(options); - ii.rebuild(counterDate.year, counterDate.month); - var timeset = makeTimeset(ii, counterDate, options); - while (true) { - var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2]; - var filtered = removeFilteredDays(dayset, start, end, ii, options); - if (Object(helpers["h" /* notEmpty */])(bysetpos)) { - var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset); - for (var j = 0; j < poslist.length; j++) { - var res = poslist[j]; - if (until && res > until) { - return emitResult(iterResult); - } - if (res >= dtstart) { - var rezonedDate = rezoneIfNeeded(res, options); - if (!iterResult.accept(rezonedDate)) { - return emitResult(iterResult); - } - if (count) { - --count; - if (!count) { - return emitResult(iterResult); - } - } - } - } - } - else { - for (var j = start; j < end; j++) { - var currentDay = dayset[j]; - if (!Object(helpers["f" /* isPresent */])(currentDay)) { - continue; - } - var date = src_dateutil.fromOrdinal(ii.yearordinal + currentDay); - for (var k = 0; k < timeset.length; k++) { - var time = timeset[k]; - var res = src_dateutil.combine(date, time); - if (until && res > until) { - return emitResult(iterResult); - } - if (res >= dtstart) { - var rezonedDate = rezoneIfNeeded(res, options); - if (!iterResult.accept(rezonedDate)) { - return emitResult(iterResult); - } - if (count) { - --count; - if (!count) { - return emitResult(iterResult); - } - } - } - } - } - } - if (options.interval === 0) { - return emitResult(iterResult); - } - // Handle frequency and interval - counterDate.add(options, filtered); - if (counterDate.year > src_dateutil.MAXYEAR) { - return emitResult(iterResult); - } - if (!freqIsDailyOrGreater(freq)) { - timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0); - } - ii.rebuild(counterDate.year, counterDate.month); - } -} -function isFiltered(ii, currentDay, options) { - var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday; - return ((Object(helpers["h" /* notEmpty */])(bymonth) && !Object(helpers["c" /* includes */])(bymonth, ii.mmask[currentDay])) || - (Object(helpers["h" /* notEmpty */])(byweekno) && !ii.wnomask[currentDay]) || - (Object(helpers["h" /* notEmpty */])(byweekday) && !Object(helpers["c" /* includes */])(byweekday, ii.wdaymask[currentDay])) || - (Object(helpers["h" /* notEmpty */])(ii.nwdaymask) && !ii.nwdaymask[currentDay]) || - (byeaster !== null && !Object(helpers["c" /* includes */])(ii.eastermask, currentDay)) || - ((Object(helpers["h" /* notEmpty */])(bymonthday) || Object(helpers["h" /* notEmpty */])(bynmonthday)) && - !Object(helpers["c" /* includes */])(bymonthday, ii.mdaymask[currentDay]) && - !Object(helpers["c" /* includes */])(bynmonthday, ii.nmdaymask[currentDay])) || - (Object(helpers["h" /* notEmpty */])(byyearday) && - ((currentDay < ii.yearlen && - !Object(helpers["c" /* includes */])(byyearday, currentDay + 1) && - !Object(helpers["c" /* includes */])(byyearday, -ii.yearlen + currentDay)) || - (currentDay >= ii.yearlen && - !Object(helpers["c" /* includes */])(byyearday, currentDay + 1 - ii.yearlen) && - !Object(helpers["c" /* includes */])(byyearday, -ii.nextyearlen + currentDay - ii.yearlen))))); -} -function rezoneIfNeeded(date, options) { - return new datewithzone_DateWithZone(date, options.tzid).rezonedDate(); -} -function emitResult(iterResult) { - return iterResult.getValue(); -} -function removeFilteredDays(dayset, start, end, ii, options) { - var filtered = false; - for (var dayCounter = start; dayCounter < end; dayCounter++) { - var currentDay = dayset[dayCounter]; - filtered = isFiltered(ii, currentDay, options); - if (filtered) - dayset[currentDay] = null; - } - return filtered; -} -function makeTimeset(ii, counterDate, options) { - var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; - if (freqIsDailyOrGreater(freq)) { - return buildTimeset(options); - } - if ((freq >= src_rrule.HOURLY && - Object(helpers["h" /* notEmpty */])(byhour) && - !Object(helpers["c" /* includes */])(byhour, counterDate.hour)) || - (freq >= src_rrule.MINUTELY && - Object(helpers["h" /* notEmpty */])(byminute) && - !Object(helpers["c" /* includes */])(byminute, counterDate.minute)) || - (freq >= src_rrule.SECONDLY && - Object(helpers["h" /* notEmpty */])(bysecond) && - !Object(helpers["c" /* includes */])(bysecond, counterDate.second))) { - return []; - } - return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond); -} - -// CONCATENATED MODULE: ./src/rrule.ts - - - - - - - - - - -var getnlp = function () { - // Lazy, runtime import to avoid circular refs. - if (!getnlp._nlp) { - getnlp._nlp = __webpack_require__(3); - } - return getnlp._nlp; -}; -// ============================================================================= -// RRule -// ============================================================================= -var Days = { - MO: new weekday["b" /* Weekday */](0), - TU: new weekday["b" /* Weekday */](1), - WE: new weekday["b" /* Weekday */](2), - TH: new weekday["b" /* Weekday */](3), - FR: new weekday["b" /* Weekday */](4), - SA: new weekday["b" /* Weekday */](5), - SU: new weekday["b" /* Weekday */](6) -}; -var DEFAULT_OPTIONS = { - freq: Frequency.YEARLY, - dtstart: null, - interval: 1, - wkst: Days.MO, - count: null, - until: null, - tzid: null, - bysetpos: null, - bymonth: null, - bymonthday: null, - bynmonthday: null, - byyearday: null, - byweekno: null, - byweekday: null, - bynweekday: null, - byhour: null, - byminute: null, - bysecond: null, - byeaster: null -}; -var rrule_defaultKeys = Object.keys(DEFAULT_OPTIONS); -/** - * - * @param {Options?} options - see - * The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ... - * @constructor - */ -var rrule_RRule = /** @class */ (function () { - function RRule(options, noCache) { - if (options === void 0) { options = {}; } - if (noCache === void 0) { noCache = false; } - // RFC string - this._cache = noCache ? null : new cache_Cache(); - // used by toString() - this.origOptions = initializeOptions(options); - var parsedOptions = parseOptions(options).parsedOptions; - this.options = parsedOptions; - } - RRule.parseText = function (text, language) { - return getnlp().parseText(text, language); - }; - RRule.fromText = function (text, language) { - return getnlp().fromText(text, language); - }; - RRule.fromString = function (str) { - return new RRule(RRule.parseString(str) || undefined); - }; - RRule.prototype._iter = function (iterResult) { - return iter(iterResult, this.options); - }; - RRule.prototype._cacheGet = function (what, args) { - if (!this._cache) - return false; - return this._cache._cacheGet(what, args); - }; - RRule.prototype._cacheAdd = function (what, value, args) { - if (!this._cache) - return; - return this._cache._cacheAdd(what, value, args); - }; - /** - * @param {Function} iterator - optional function that will be called - * on each date that is added. It can return false - * to stop the iteration. - * @return Array containing all recurrences. - */ - RRule.prototype.all = function (iterator) { - if (iterator) { - return this._iter(new callbackiterresult('all', {}, iterator)); - } - var result = this._cacheGet('all'); - if (result === false) { - result = this._iter(new iterresult('all', {})); - this._cacheAdd('all', result); - } - return result; - }; - /** - * Returns all the occurrences of the rrule between after and before. - * The inc keyword defines what happens if after and/or before are - * themselves occurrences. With inc == True, they will be included in the - * list, if they are found in the recurrence set. - * @return Array - */ - RRule.prototype.between = function (after, before, inc, iterator) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(after) || !src_dateutil.isValidDate(before)) - throw new Error('Invalid date passed in to RRule.between'); - var args = { - before: before, - after: after, - inc: inc - }; - if (iterator) { - return this._iter(new callbackiterresult('between', args, iterator)); - } - var result = this._cacheGet('between', args); - if (result === false) { - result = this._iter(new iterresult('between', args)); - this._cacheAdd('between', result, args); - } - return result; - }; - /** - * Returns the last recurrence before the given datetime instance. - * The inc keyword defines what happens if dt is an occurrence. - * With inc == True, if dt itself is an occurrence, it will be returned. - * @return Date or null - */ - RRule.prototype.before = function (dt, inc) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(dt)) - throw new Error('Invalid date passed in to RRule.before'); - var args = { dt: dt, inc: inc }; - var result = this._cacheGet('before', args); - if (result === false) { - result = this._iter(new iterresult('before', args)); - this._cacheAdd('before', result, args); - } - return result; - }; - /** - * Returns the first recurrence after the given datetime instance. - * The inc keyword defines what happens if dt is an occurrence. - * With inc == True, if dt itself is an occurrence, it will be returned. - * @return Date or null - */ - RRule.prototype.after = function (dt, inc) { - if (inc === void 0) { inc = false; } - if (!src_dateutil.isValidDate(dt)) - throw new Error('Invalid date passed in to RRule.after'); - var args = { dt: dt, inc: inc }; - var result = this._cacheGet('after', args); - if (result === false) { - result = this._iter(new iterresult('after', args)); - this._cacheAdd('after', result, args); - } - return result; - }; - /** - * Returns the number of recurrences in this set. It will have go trough - * the whole recurrence, if this hasn't been done before. - */ - RRule.prototype.count = function () { - return this.all().length; - }; - /** - * Converts the rrule into its string representation - * @see - * @return String - */ - RRule.prototype.toString = function () { - return optionsToString(this.origOptions); - }; - /** - * Will convert all rules described in nlp:ToText - * to text. - */ - RRule.prototype.toText = function (gettext, language, dateFormatter) { - return getnlp().toText(this, gettext, language, dateFormatter); - }; - RRule.prototype.isFullyConvertibleToText = function () { - return getnlp().isFullyConvertible(this); - }; - /** - * @return a RRule instance with the same freq and options - * as this one (cache is not cloned) - */ - RRule.prototype.clone = function () { - return new RRule(this.origOptions); - }; - // RRule class 'constants' - RRule.FREQUENCIES = [ - 'YEARLY', - 'MONTHLY', - 'WEEKLY', - 'DAILY', - 'HOURLY', - 'MINUTELY', - 'SECONDLY' - ]; - RRule.YEARLY = Frequency.YEARLY; - RRule.MONTHLY = Frequency.MONTHLY; - RRule.WEEKLY = Frequency.WEEKLY; - RRule.DAILY = Frequency.DAILY; - RRule.HOURLY = Frequency.HOURLY; - RRule.MINUTELY = Frequency.MINUTELY; - RRule.SECONDLY = Frequency.SECONDLY; - RRule.MO = Days.MO; - RRule.TU = Days.TU; - RRule.WE = Days.WE; - RRule.TH = Days.TH; - RRule.FR = Days.FR; - RRule.SA = Days.SA; - RRule.SU = Days.SU; - RRule.parseString = parseString; - RRule.optionsToString = optionsToString; - return RRule; -}()); -/* harmony default export */ var src_rrule = (rrule_RRule); - -// CONCATENATED MODULE: ./src/iterset.ts - - - -function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) { - var _exdateHash = {}; - var _accept = iterResult.accept; - function evalExdate(after, before) { - _exrule.forEach(function (rrule) { - rrule.between(after, before, true).forEach(function (date) { - _exdateHash[Number(date)] = true; - }); - }); - } - _exdate.forEach(function (date) { - var zonedDate = new datewithzone_DateWithZone(date, tzid).rezonedDate(); - _exdateHash[Number(zonedDate)] = true; - }); - iterResult.accept = function (date) { - var dt = Number(date); - if (isNaN(dt)) - return _accept.call(this, date); - if (!_exdateHash[dt]) { - evalExdate(new Date(dt - 1), new Date(dt + 1)); - if (!_exdateHash[dt]) { - _exdateHash[dt] = true; - return _accept.call(this, date); - } - } - return true; - }; - if (iterResult.method === 'between') { - evalExdate(iterResult.args.after, iterResult.args.before); - iterResult.accept = function (date) { - var dt = Number(date); - if (!_exdateHash[dt]) { - _exdateHash[dt] = true; - return _accept.call(this, date); - } - return true; - }; - } - for (var i = 0; i < _rdate.length; i++) { - var zonedDate = new datewithzone_DateWithZone(_rdate[i], tzid).rezonedDate(); - if (!iterResult.accept(new Date(zonedDate.getTime()))) - break; - } - _rrule.forEach(function (rrule) { - iter(iterResult, rrule.options); - }); - var res = iterResult._result; - src_dateutil.sort(res); - switch (iterResult.method) { - case 'all': - case 'between': - return res; - case 'before': - return ((res.length && res[res.length - 1]) || null); - case 'after': - default: - return ((res.length && res[0]) || null); - } -} - -// CONCATENATED MODULE: ./src/rrulestr.ts - - - - - - -/** - * RRuleStr - * To parse a set of rrule strings - */ -var rrulestr_DEFAULT_OPTIONS = { - dtstart: null, - cache: false, - unfold: false, - forceset: false, - compatible: false, - tzid: null -}; -function parseInput(s, options) { - var rrulevals = []; - var rdatevals = []; - var exrulevals = []; - var exdatevals = []; - var _a = parseDtstart(s), dtstart = _a.dtstart, tzid = _a.tzid; - var lines = splitIntoLines(s, options.unfold); - lines.forEach(function (line) { - if (!line) - return; - var _a = breakDownLine(line), name = _a.name, parms = _a.parms, value = _a.value; - switch (name.toUpperCase()) { - case 'RRULE': - if (parms.length) { - throw new Error("unsupported RRULE parm: " + parms.join(',')); - } - rrulevals.push(parseString(line)); - break; - case 'RDATE': - var _b = /RDATE(?:;TZID=([^:=]+))?/i.exec(line), _ = _b[0], rdateTzid = _b[1]; - if (rdateTzid && !tzid) { - tzid = rdateTzid; - } - rdatevals = rdatevals.concat(parseRDate(value, parms)); - break; - case 'EXRULE': - if (parms.length) { - throw new Error("unsupported EXRULE parm: " + parms.join(',')); - } - exrulevals.push(parseString(value)); - break; - case 'EXDATE': - exdatevals = exdatevals.concat(parseRDate(value, parms)); - break; - case 'DTSTART': - break; - default: - throw new Error('unsupported property: ' + name); - } - }); - return { - dtstart: dtstart, - tzid: tzid, - rrulevals: rrulevals, - rdatevals: rdatevals, - exrulevals: exrulevals, - exdatevals: exdatevals - }; -} -function buildRule(s, options) { - var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid; - var noCache = options.cache === false; - if (options.compatible) { - options.forceset = true; - options.unfold = true; - } - if (options.forceset || - rrulevals.length > 1 || - rdatevals.length || - exrulevals.length || - exdatevals.length) { - var rset_1 = new rruleset(noCache); - rset_1.dtstart(dtstart); - rset_1.tzid(tzid || undefined); - rrulevals.forEach(function (val) { - rset_1.rrule(new src_rrule(groomRruleOptions(val, dtstart, tzid), noCache)); - }); - rdatevals.forEach(function (date) { - rset_1.rdate(date); - }); - exrulevals.forEach(function (val) { - rset_1.exrule(new src_rrule(groomRruleOptions(val, dtstart, tzid), noCache)); - }); - exdatevals.forEach(function (date) { - rset_1.exdate(date); - }); - if (options.compatible && options.dtstart) - rset_1.rdate(dtstart); - return rset_1; - } - var val = rrulevals[0] || {}; - return new src_rrule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache); -} -function rrulestr(s, options) { - if (options === void 0) { options = {}; } - return buildRule(s, rrulestr_initializeOptions(options)); -} -function groomRruleOptions(val, dtstart, tzid) { - return __assign(__assign({}, val), { dtstart: dtstart, - tzid: tzid }); -} -function rrulestr_initializeOptions(options) { - var invalid = []; - var keys = Object.keys(options); - var defaultKeys = Object.keys(rrulestr_DEFAULT_OPTIONS); - keys.forEach(function (key) { - if (!Object(helpers["c" /* includes */])(defaultKeys, key)) - invalid.push(key); - }); - if (invalid.length) { - throw new Error('Invalid options: ' + invalid.join(', ')); - } - return __assign(__assign({}, rrulestr_DEFAULT_OPTIONS), options); -} -function extractName(line) { - if (line.indexOf(':') === -1) { - return { - name: 'RRULE', - value: line - }; - } - var _a = Object(helpers["m" /* split */])(line, ':', 1), name = _a[0], value = _a[1]; - return { - name: name, - value: value - }; -} -function breakDownLine(line) { - var _a = extractName(line), name = _a.name, value = _a.value; - var parms = name.split(';'); - if (!parms) - throw new Error('empty property name'); - return { - name: parms[0].toUpperCase(), - parms: parms.slice(1), - value: value - }; -} -function splitIntoLines(s, unfold) { - if (unfold === void 0) { unfold = false; } - s = s && s.trim(); - if (!s) - throw new Error('Invalid empty string'); - // More info about 'unfold' option - // Go head to http://www.ietf.org/rfc/rfc2445.txt - if (!unfold) { - return s.split(/\s/); - } - var lines = s.split('\n'); - var i = 0; - while (i < lines.length) { - // TODO - var line = (lines[i] = lines[i].replace(/\s+$/g, '')); - if (!line) { - lines.splice(i, 1); - } - else if (i > 0 && line[0] === ' ') { - lines[i - 1] += line.slice(1); - lines.splice(i, 1); - } - else { - i += 1; - } - } - return lines; -} -function validateDateParm(parms) { - parms.forEach(function (parm) { - if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) { - throw new Error('unsupported RDATE/EXDATE parm: ' + parm); - } - }); -} -function parseRDate(rdateval, parms) { - validateDateParm(parms); - return rdateval - .split(',') - .map(function (datestr) { return src_dateutil.untilStringToDate(datestr); }); -} - -// CONCATENATED MODULE: ./src/rruleset.ts - - - - - - - -function createGetterSetter(fieldName) { - var _this = this; - return function (field) { - if (field !== undefined) { - _this["_" + fieldName] = field; - } - if (_this["_" + fieldName] !== undefined) { - return _this["_" + fieldName]; - } - for (var i = 0; i < _this._rrule.length; i++) { - var field_1 = _this._rrule[i].origOptions[fieldName]; - if (field_1) { - return field_1; - } - } - }; -} -var rruleset_RRuleSet = /** @class */ (function (_super) { - __extends(RRuleSet, _super); - /** - * - * @param {Boolean?} noCache - * The same stratagy as RRule on cache, default to false - * @constructor - */ - function RRuleSet(noCache) { - if (noCache === void 0) { noCache = false; } - var _this = _super.call(this, {}, noCache) || this; - _this.dtstart = createGetterSetter.apply(_this, ['dtstart']); - _this.tzid = createGetterSetter.apply(_this, ['tzid']); - _this._rrule = []; - _this._rdate = []; - _this._exrule = []; - _this._exdate = []; - return _this; - } - RRuleSet.prototype._iter = function (iterResult) { - return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid()); - }; - /** - * Adds an RRule to the set - * - * @param {RRule} - */ - RRuleSet.prototype.rrule = function (rrule) { - _addRule(rrule, this._rrule); - }; - /** - * Adds an EXRULE to the set - * - * @param {RRule} - */ - RRuleSet.prototype.exrule = function (rrule) { - _addRule(rrule, this._exrule); - }; - /** - * Adds an RDate to the set - * - * @param {Date} - */ - RRuleSet.prototype.rdate = function (date) { - _addDate(date, this._rdate); - }; - /** - * Adds an EXDATE to the set - * - * @param {Date} - */ - RRuleSet.prototype.exdate = function (date) { - _addDate(date, this._exdate); - }; - /** - * Get list of included rrules in this recurrence set. - * - * @return List of rrules - */ - RRuleSet.prototype.rrules = function () { - return this._rrule.map(function (e) { return rrulestr(e.toString()); }); - }; - /** - * Get list of excluded rrules in this recurrence set. - * - * @return List of exrules - */ - RRuleSet.prototype.exrules = function () { - return this._exrule.map(function (e) { return rrulestr(e.toString()); }); - }; - /** - * Get list of included datetimes in this recurrence set. - * - * @return List of rdates - */ - RRuleSet.prototype.rdates = function () { - return this._rdate.map(function (e) { return new Date(e.getTime()); }); - }; - /** - * Get list of included datetimes in this recurrence set. - * - * @return List of exdates - */ - RRuleSet.prototype.exdates = function () { - return this._exdate.map(function (e) { return new Date(e.getTime()); }); - }; - RRuleSet.prototype.valueOf = function () { - var result = []; - if (!this._rrule.length && this._dtstart) { - result = result.concat(optionsToString({ dtstart: this._dtstart })); - } - this._rrule.forEach(function (rrule) { - result = result.concat(rrule.toString().split('\n')); - }); - this._exrule.forEach(function (exrule) { - result = result.concat(exrule.toString().split('\n') - .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); }) - .filter(function (line) { return !/^DTSTART/.test(line); })); - }); - if (this._rdate.length) { - result.push(rdatesToString('RDATE', this._rdate, this.tzid())); - } - if (this._exdate.length) { - result.push(rdatesToString('EXDATE', this._exdate, this.tzid())); - } - return result; - }; - /** - * to generate recurrence field such as: - * DTSTART:19970902T010000Z - * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU - * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH - */ - RRuleSet.prototype.toString = function () { - return this.valueOf().join('\n'); - }; - /** - * Create a new RRuleSet Object completely base on current instance - */ - RRuleSet.prototype.clone = function () { - var rrs = new RRuleSet(!!this._cache); - this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); }); - this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); }); - this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); }); - this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); }); - return rrs; - }; - return RRuleSet; -}(src_rrule)); -/* harmony default export */ var rruleset = (rruleset_RRuleSet); -function _addRule(rrule, collection) { - if (!(rrule instanceof src_rrule)) { - throw new TypeError(String(rrule) + ' is not RRule instance'); - } - if (!Object(helpers["c" /* includes */])(collection.map(String), String(rrule))) { - collection.push(rrule); - } -} -function _addDate(date, collection) { - if (!(date instanceof Date)) { - throw new TypeError(String(date) + ' is not Date instance'); - } - if (!Object(helpers["c" /* includes */])(collection.map(Number), Number(date))) { - collection.push(date); - src_dateutil.sort(collection); - } -} -function rdatesToString(param, rdates, tzid) { - var isUTC = !tzid || tzid.toUpperCase() === 'UTC'; - var header = isUTC ? param + ":" : param + ";TZID=" + tzid + ":"; - var dateString = rdates - .map(function (rdate) { return src_dateutil.timeToUntilString(rdate.valueOf(), isUTC); }) - .join(','); - return "" + header + dateString; -} - -// CONCATENATED MODULE: ./src/index.ts -/* concated harmony reexport rrulestr */__webpack_require__.d(__webpack_exports__, "rrulestr", function() { return rrulestr; }); -/* concated harmony reexport Frequency */__webpack_require__.d(__webpack_exports__, "Frequency", function() { return Frequency; }); -/* concated harmony reexport Weekday */__webpack_require__.d(__webpack_exports__, "Weekday", function() { return weekday["b" /* Weekday */]; }); -/* concated harmony reexport RRule */__webpack_require__.d(__webpack_exports__, "RRule", function() { return src_rrule; }); -/* concated harmony reexport RRuleSet */__webpack_require__.d(__webpack_exports__, "RRuleSet", function() { return rruleset; }); -/*! - * rrule.js - Library for working with recurrence rules for calendar dates. - * https://github.com/jakubroztocil/rrule - * - * Copyright 2010, Jakub Roztocil and Lars Schoning - * Licenced under the BSD licence. - * https://github.com/jakubroztocil/rrule/blob/master/LICENCE - * - * Based on: - * python-dateutil - Extensions to the standard Python datetime module. - * Copyright (c) 2003-2011 - Gustavo Niemeyer - * Copyright (c) 2012 - Tomi Pieviläinen - * https://github.com/jakubroztocil/rrule/blob/master/LICENCE - * - */ - - - - - - -/* harmony default export */ var src = __webpack_exports__["default"] = (src_rrule); - - -/***/ }), -/* 2 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ALL_WEEKDAYS; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Weekday; }); -// ============================================================================= -// Weekday -// ============================================================================= -var ALL_WEEKDAYS = ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU']; -var Weekday = /** @class */ (function () { - function Weekday(weekday, n) { - if (n === 0) - throw new Error("Can't create weekday with n == 0"); - this.weekday = weekday; - this.n = n; - } - Weekday.fromStr = function (str) { - return new Weekday(ALL_WEEKDAYS.indexOf(str)); - }; - // __call__ - Cannot call the object directly, do it through - // e.g. RRule.TH.nth(-1) instead, - Weekday.prototype.nth = function (n) { - return this.n === n ? this : new Weekday(this.weekday, n); - }; - // __eq__ - Weekday.prototype.equals = function (other) { - return this.weekday === other.weekday && this.n === other.n; - }; - // __repr__ - Weekday.prototype.toString = function () { - var s = ALL_WEEKDAYS[this.weekday]; - if (this.n) - s = (this.n > 0 ? '+' : '') + String(this.n) + s; - return s; - }; - Weekday.prototype.getJsWeekday = function () { - return this.weekday === 6 ? 0 : this.weekday + 1; - }; - return Weekday; -}()); - - - -/***/ }), -/* 3 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./src/nlp/i18n.ts +;// CONCATENATED MODULE: ./src/nlp/i18n.ts // ============================================================================= // i18n // ============================================================================= var ENGLISH = { dayNames: [ - 'Sunday', 'Monday', 'Tuesday', 'Wednesday', - 'Thursday', 'Friday', 'Saturday' + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday', ], monthNames: [ - 'January', 'February', 'March', 'April', 'May', - 'June', 'July', 'August', 'September', 'October', - 'November', 'December' + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', ], tokens: { - 'SKIP': /^[ \r\n\t]+|^\.$/, - 'number': /^[1-9][0-9]*/, - 'numberAsText': /^(one|two|three)/i, - 'every': /^every/i, + SKIP: /^[ \r\n\t]+|^\.$/, + number: /^[1-9][0-9]*/, + numberAsText: /^(one|two|three)/i, + every: /^every/i, 'day(s)': /^days?/i, 'weekday(s)': /^weekdays?/i, 'week(s)': /^weeks?/i, @@ -2834,48 +799,42 @@ var ENGLISH = { 'minute(s)': /^minutes?/i, 'month(s)': /^months?/i, 'year(s)': /^years?/i, - 'on': /^(on|in)/i, - 'at': /^(at)/i, - 'the': /^the/i, - 'first': /^first/i, - 'second': /^second/i, - 'third': /^third/i, - 'nth': /^([1-9][0-9]*)(\.|th|nd|rd|st)/i, - 'last': /^last/i, - 'for': /^for/i, + on: /^(on|in)/i, + at: /^(at)/i, + the: /^the/i, + first: /^first/i, + second: /^second/i, + third: /^third/i, + nth: /^([1-9][0-9]*)(\.|th|nd|rd|st)/i, + last: /^last/i, + for: /^for/i, 'time(s)': /^times?/i, - 'until': /^(un)?til/i, - 'monday': /^mo(n(day)?)?/i, - 'tuesday': /^tu(e(s(day)?)?)?/i, - 'wednesday': /^we(d(n(esday)?)?)?/i, - 'thursday': /^th(u(r(sday)?)?)?/i, - 'friday': /^fr(i(day)?)?/i, - 'saturday': /^sa(t(urday)?)?/i, - 'sunday': /^su(n(day)?)?/i, - 'january': /^jan(uary)?/i, - 'february': /^feb(ruary)?/i, - 'march': /^mar(ch)?/i, - 'april': /^apr(il)?/i, - 'may': /^may/i, - 'june': /^june?/i, - 'july': /^july?/i, - 'august': /^aug(ust)?/i, - 'september': /^sep(t(ember)?)?/i, - 'october': /^oct(ober)?/i, - 'november': /^nov(ember)?/i, - 'december': /^dec(ember)?/i, - 'comma': /^(,\s*|(and|or)\s*)+/i - } + until: /^(un)?til/i, + monday: /^mo(n(day)?)?/i, + tuesday: /^tu(e(s(day)?)?)?/i, + wednesday: /^we(d(n(esday)?)?)?/i, + thursday: /^th(u(r(sday)?)?)?/i, + friday: /^fr(i(day)?)?/i, + saturday: /^sa(t(urday)?)?/i, + sunday: /^su(n(day)?)?/i, + january: /^jan(uary)?/i, + february: /^feb(ruary)?/i, + march: /^mar(ch)?/i, + april: /^apr(il)?/i, + may: /^may/i, + june: /^june?/i, + july: /^july?/i, + august: /^aug(ust)?/i, + september: /^sep(t(ember)?)?/i, + october: /^oct(ober)?/i, + november: /^nov(ember)?/i, + december: /^dec(ember)?/i, + comma: /^(,\s*|(and|or)\s*)+/i, + }, }; -/* harmony default export */ var i18n = (ENGLISH); +/* harmony default export */ const i18n = (ENGLISH); -// EXTERNAL MODULE: ./src/index.ts + 23 modules -var src = __webpack_require__(1); - -// EXTERNAL MODULE: ./src/helpers.ts -var helpers = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/nlp/totext.ts +;// CONCATENATED MODULE: ./src/nlp/totext.ts @@ -2889,7 +848,7 @@ var contains = function (arr, val) { return arr.indexOf(val) !== -1; }; var defaultGetText = function (id) { return id.toString(); }; -var defaultDateFormatter = function (year, month, day) { return month + " " + day + ", " + year; }; +var defaultDateFormatter = function (year, month, day) { return "".concat(month, " ").concat(day, ", ").concat(year); }; /** * * @param {RRule} rrule @@ -2898,7 +857,7 @@ var defaultDateFormatter = function (year, month, day) { return month + " " + da * @param {Object} language definition * @constructor */ -var totext_ToText = /** @class */ (function () { +var ToText = /** @class */ (function () { function ToText(rrule, gettext, language, dateFormatter) { if (gettext === void 0) { gettext = defaultGetText; } if (language === void 0) { language = i18n; } @@ -2920,8 +879,8 @@ var totext_ToText = /** @class */ (function () { if (!this.bymonthday.length) this.bymonthday = null; } - if (Object(helpers["f" /* isPresent */])(this.origOptions.byweekday)) { - var byweekday = !Object(helpers["d" /* isArray */])(this.origOptions.byweekday) + if (isPresent(this.origOptions.byweekday)) { + var byweekday = !isArray(this.origOptions.byweekday) ? [this.origOptions.byweekday] : this.origOptions.byweekday; var days = String(byweekday); @@ -2945,7 +904,7 @@ var totext_ToText = /** @class */ (function () { days.indexOf('TH') !== -1 && days.indexOf('FR') !== -1 && days.indexOf('SA') !== -1 && - days.indexOf('SU') !== -1 + days.indexOf('SU') !== -1, }; var sortWeekDays = function (a, b) { return a.weekday - b.weekday; @@ -2963,6 +922,7 @@ var totext_ToText = /** @class */ (function () { } /** * Test whether the rrule can be fully converted to text. + * * @param {RRule} rrule * @return {Boolean} */ @@ -2973,7 +933,7 @@ var totext_ToText = /** @class */ (function () { if (rrule.origOptions.until && rrule.origOptions.count) return false; for (var key in rrule.origOptions) { - if (contains(['dtstart', 'wkst', 'freq'], key)) + if (contains(['dtstart', 'tzid', 'wkst', 'freq'], key)) return true; if (!contains(ToText.IMPLEMENTED[rrule.options.freq], key)) return false; @@ -2987,6 +947,7 @@ var totext_ToText = /** @class */ (function () { * Perform the conversion. Only some of the frequencies are supported. * If some of the rrule's options aren't supported, they'll * be omitted from the output an "(~ approximate)" will be appended. + * * @return {*} */ ToText.prototype.toString = function () { @@ -2995,8 +956,9 @@ var totext_ToText = /** @class */ (function () { return gettext('RRule error: Unable to fully convert this rrule to text'); } this.text = [gettext('every')]; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - this[src["default"].FREQUENCIES[this.options.freq]](); + this[RRule.FREQUENCIES[this.options.freq]](); if (this.options.until) { this.add(gettext('until')); var until = this.options.until; @@ -3082,6 +1044,9 @@ var totext_ToText = /** @class */ (function () { else if (this.byweekday) { this._byweekday(); } + if (this.origOptions.byhour) { + this._byhour(); + } } }; ToText.prototype.MONTHLY = function () { @@ -3098,8 +1063,9 @@ var totext_ToText = /** @class */ (function () { this._bymonth(); } else { - if (this.options.interval !== 1) + if (this.options.interval !== 1) { this.add(this.options.interval.toString()); + } this.add(this.plural(this.options.interval) ? gettext('months') : gettext('month')); @@ -3127,8 +1093,9 @@ var totext_ToText = /** @class */ (function () { this._bymonth(); } else { - if (this.options.interval !== 1) + if (this.options.interval !== 1) { this.add(this.options.interval.toString()); + } this.add(this.plural(this.options.interval) ? gettext('years') : gettext('year')); } if (this.bymonthday) { @@ -3184,11 +1151,10 @@ var totext_ToText = /** @class */ (function () { ToText.prototype.nth = function (n) { n = parseInt(n.toString(), 10); var nth; - var npos; var gettext = this.gettext; if (n === -1) return gettext('last'); - npos = Math.abs(n); + var npos = Math.abs(n); switch (npos) { case 1: case 21: @@ -3212,8 +1178,9 @@ var totext_ToText = /** @class */ (function () { return this.language.monthNames[m - 1]; }; ToText.prototype.weekdaytext = function (wday) { - var weekday = Object(helpers["e" /* isNumber */])(wday) ? (wday + 1) % 7 : wday.getJsWeekday(); - return ((wday.n ? this.nth(wday.n) + ' ' : '') + this.language.dayNames[weekday]); + var weekday = isNumber(wday) ? (wday + 1) % 7 : wday.getJsWeekday(); + return ((wday.n ? this.nth(wday.n) + ' ' : '') + + this.language.dayNames[weekday]); }; ToText.prototype.plural = function (n) { return n % 100 !== 1; @@ -3224,8 +1191,9 @@ var totext_ToText = /** @class */ (function () { return this; }; ToText.prototype.list = function (arr, callback, finalDelim, delim) { + var _this = this; if (delim === void 0) { delim = ','; } - if (!Object(helpers["d" /* isArray */])(arr)) { + if (!isArray(arr)) { arr = [arr]; } var delimJoin = function (array, delimiter, finalDelimiter) { @@ -3248,9 +1216,8 @@ var totext_ToText = /** @class */ (function () { function (o) { return o.toString(); }; - var self = this; var realCallback = function (arg) { - return callback && callback.call(self, arg); + return callback && callback.call(_this, arg); }; if (finalDelim) { return delimJoin(arr.map(realCallback), delim, finalDelim); @@ -3261,9 +1228,9 @@ var totext_ToText = /** @class */ (function () { }; return ToText; }()); -/* harmony default export */ var totext = (totext_ToText); +/* harmony default export */ const totext = (ToText); -// CONCATENATED MODULE: ./src/nlp/parsetext.ts +;// CONCATENATED MODULE: ./src/nlp/parsetext.ts // ============================================================================= @@ -3285,7 +1252,6 @@ var Parser = /** @class */ (function () { Parser.prototype.nextSymbol = function () { var best; var bestSymbol; - var p = this; this.symbol = null; this.value = null; do { @@ -3295,7 +1261,7 @@ var Parser = /** @class */ (function () { best = null; for (var name_1 in this.rules) { rule = this.rules[name_1]; - var match = rule.exec(p.text); + var match = rule.exec(this.text); if (match) { if (best === null || match[0].length > best[0].length) { best = match; @@ -3314,9 +1280,7 @@ var Parser = /** @class */ (function () { this.value = null; return; } - // @ts-ignore } while (bestSymbol === 'SKIP'); - // @ts-ignore this.symbol = bestSymbol; this.value = best; return true; @@ -3361,7 +1325,7 @@ function parseText(text, language) { throw new Error('Unexpected end'); switch (ttr.symbol) { case 'day(s)': - options.freq = src["default"].DAILY; + options.freq = RRule.DAILY; if (ttr.nextSymbol()) { AT(); F(); @@ -3370,47 +1334,43 @@ function parseText(text, language) { // FIXME Note: every 2 weekdays != every two weeks on weekdays. // DAILY on weekdays is not a valid rule case 'weekday(s)': - options.freq = src["default"].WEEKLY; - options.byweekday = [ - src["default"].MO, - src["default"].TU, - src["default"].WE, - src["default"].TH, - src["default"].FR - ]; + options.freq = RRule.WEEKLY; + options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR]; ttr.nextSymbol(); + AT(); F(); break; case 'week(s)': - options.freq = src["default"].WEEKLY; + options.freq = RRule.WEEKLY; if (ttr.nextSymbol()) { ON(); + AT(); F(); } break; case 'hour(s)': - options.freq = src["default"].HOURLY; + options.freq = RRule.HOURLY; if (ttr.nextSymbol()) { ON(); F(); } break; case 'minute(s)': - options.freq = src["default"].MINUTELY; + options.freq = RRule.MINUTELY; if (ttr.nextSymbol()) { ON(); F(); } break; case 'month(s)': - options.freq = src["default"].MONTHLY; + options.freq = RRule.MONTHLY; if (ttr.nextSymbol()) { ON(); F(); } break; case 'year(s)': - options.freq = src["default"].YEARLY; + options.freq = RRule.YEARLY; if (ttr.nextSymbol()) { ON(); F(); @@ -3423,9 +1383,11 @@ function parseText(text, language) { case 'friday': case 'saturday': case 'sunday': - options.freq = src["default"].WEEKLY; - var key = ttr.symbol.substr(0, 2).toUpperCase(); - options.byweekday = [src["default"][key]]; + options.freq = RRule.WEEKLY; + var key = ttr.symbol + .substr(0, 2) + .toUpperCase(); + options.byweekday = [RRule[key]]; if (!ttr.nextSymbol()) return; // TODO check for duplicates @@ -3436,10 +1398,10 @@ function parseText(text, language) { if (!wkd) { throw new Error('Unexpected symbol ' + ttr.symbol + ', expected weekday'); } - // @ts-ignore - options.byweekday.push(src["default"][wkd]); + options.byweekday.push(RRule[wkd]); ttr.nextSymbol(); } + AT(); MDAYs(); F(); break; @@ -3455,7 +1417,7 @@ function parseText(text, language) { case 'october': case 'november': case 'december': - options.freq = src["default"].YEARLY; + options.freq = RRule.YEARLY; options.bymonth = [decodeM()]; if (!ttr.nextSymbol()) return; @@ -3493,13 +1455,11 @@ function parseText(text, language) { ttr.nextSymbol(); if (!options.byweekday) options.byweekday = []; - // @ts-ignore - options.byweekday.push(src["default"][wkd].nth(nth)); + options.byweekday.push(RRule[wkd].nth(nth)); } else { if (!options.bymonthday) options.bymonthday = []; - // @ts-ignore options.bymonthday.push(nth); ttr.accept('day(s)'); } @@ -3509,19 +1469,12 @@ function parseText(text, language) { ttr.nextSymbol(); if (!options.byweekday) options.byweekday = []; - // @ts-ignore - options.byweekday.push(src["default"][wkd]); + options.byweekday.push(RRule[wkd]); } else if (ttr.symbol === 'weekday(s)') { ttr.nextSymbol(); if (!options.byweekday) { - options.byweekday = [ - src["default"].MO, - src["default"].TU, - src["default"].WE, - src["default"].TH, - src["default"].FR - ]; + options.byweekday = [RRule.MO, RRule.TU, RRule.WE, RRule.TH, RRule.FR]; } } else if (ttr.symbol === 'week(s)') { @@ -3543,7 +1496,6 @@ function parseText(text, language) { ttr.nextSymbol(); if (!options.bymonth) options.bymonth = []; - // @ts-ignore options.bymonth.push(m); } else { @@ -3670,24 +1622,36 @@ function parseText(text, language) { } } -// CONCATENATED MODULE: ./src/nlp/index.ts -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromText", function() { return fromText; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFullyConvertible", function() { return isFullyConvertible; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toText", function() { return toText; }); -/* concated harmony reexport parseText */__webpack_require__.d(__webpack_exports__, "parseText", function() { return parseText; }); +;// CONCATENATED MODULE: ./src/types.ts +var Frequency; +(function (Frequency) { + Frequency[Frequency["YEARLY"] = 0] = "YEARLY"; + Frequency[Frequency["MONTHLY"] = 1] = "MONTHLY"; + Frequency[Frequency["WEEKLY"] = 2] = "WEEKLY"; + Frequency[Frequency["DAILY"] = 3] = "DAILY"; + Frequency[Frequency["HOURLY"] = 4] = "HOURLY"; + Frequency[Frequency["MINUTELY"] = 5] = "MINUTELY"; + Frequency[Frequency["SECONDLY"] = 6] = "SECONDLY"; +})(Frequency || (Frequency = {})); +function freqIsDailyOrGreater(freq) { + return freq < Frequency.HOURLY; +} + +;// CONCATENATED MODULE: ./src/nlp/index.ts -/*! -* rrule.js - Library for working with recurrence rules for calendar dates. -* https://github.com/jakubroztocil/rrule -* -* Copyright 2010, Jakub Roztocil and Lars Schoning -* Licenced under the BSD licence. -* https://github.com/jakubroztocil/rrule/blob/master/LICENCE -* -*/ + +/* ! + * rrule.js - Library for working with recurrence rules for calendar dates. + * https://github.com/jakubroztocil/rrule + * + * Copyright 2010, Jakub Roztocil and Lars Schoning + * Licenced under the BSD licence. + * https://github.com/jakubroztocil/rrule/blob/master/LICENCE + * + */ /** * * Implementation of RRule.fromText() and RRule::toText(). @@ -3708,13 +1672,13 @@ function parseText(text, language) { * RULES * * Every ([n]) - * day(s) - * | [weekday], ..., (and) [weekday] - * | weekday(s) - * | week(s) - * | month(s) - * | [month], ..., (and) [month] - * | year(s) + * day(s) + * | [weekday], ..., (and) [weekday] + * | weekday(s) + * | week(s) + * | month(s) + * | [month], ..., (and) [month] + * | year(s) * * * Plus 0, 1, or multiple of these: @@ -3740,10 +1704,10 @@ function parseText(text, language) { * Definitely no supported for parsing: * * (for year): - * in week(s) [n], ..., (and) [n] + * in week(s) [n], ..., (and) [n] * - * on the [yearday], ..., (and) [n] day of the year - * on day [yearday], ..., (and) [n] + * on the [yearday], ..., (and) [n] day of the year + * on day [yearday], ..., (and) [n] * * * NON-TERMINALS @@ -3754,10 +1718,10 @@ function parseText(text, language) { * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ... * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, .. * [date]: - * [month] (0-31(,) ([year])), - * (the) 0-31.(1-12.([year])), - * (the) 0-31/(1-12/([year])), - * [weekday] + * - [month] (0-31(,) ([year])), + * - (the) 0-31.(1-12.([year])), + * - (the) 0-31/(1-12/([year])), + * - [weekday] * * [year]: 0000, 0001, ... 01, 02, .. * @@ -3770,7 +1734,7 @@ function parseText(text, language) { */ var fromText = function (text, language) { if (language === void 0) { language = i18n; } - return new src["default"](parseText(text, language) || undefined); + return new RRule(parseText(text, language) || undefined); }; var common = [ 'count', @@ -3778,15 +1742,15 @@ var common = [ 'interval', 'byweekday', 'bymonthday', - 'bymonth' + 'bymonth', ]; totext.IMPLEMENTED = []; -totext.IMPLEMENTED[src["default"].HOURLY] = common; -totext.IMPLEMENTED[src["default"].MINUTELY] = common; -totext.IMPLEMENTED[src["default"].DAILY] = ['byhour'].concat(common); -totext.IMPLEMENTED[src["default"].WEEKLY] = common; -totext.IMPLEMENTED[src["default"].MONTHLY] = common; -totext.IMPLEMENTED[src["default"].YEARLY] = ['byweekno', 'byyearday'].concat(common); +totext.IMPLEMENTED[Frequency.HOURLY] = common; +totext.IMPLEMENTED[Frequency.MINUTELY] = common; +totext.IMPLEMENTED[Frequency.DAILY] = ['byhour'].concat(common); +totext.IMPLEMENTED[Frequency.WEEKLY] = common; +totext.IMPLEMENTED[Frequency.MONTHLY] = common; +totext.IMPLEMENTED[Frequency.YEARLY] = ['byweekno', 'byyearday'].concat(common); // ============================================================================= // Export // ============================================================================= @@ -3796,7 +1760,2054 @@ var toText = function (rrule, gettext, language, dateFormatter) { var isFullyConvertible = totext.isFullyConvertible; +;// CONCATENATED MODULE: ./src/datetime.ts -/***/ }) -/******/ ]); -}); + + + +var Time = /** @class */ (function () { + function Time(hour, minute, second, millisecond) { + this.hour = hour; + this.minute = minute; + this.second = second; + this.millisecond = millisecond || 0; + } + Time.prototype.getHours = function () { + return this.hour; + }; + Time.prototype.getMinutes = function () { + return this.minute; + }; + Time.prototype.getSeconds = function () { + return this.second; + }; + Time.prototype.getMilliseconds = function () { + return this.millisecond; + }; + Time.prototype.getTime = function () { + return ((this.hour * 60 * 60 + this.minute * 60 + this.second) * 1000 + + this.millisecond); + }; + return Time; +}()); + +var DateTime = /** @class */ (function (_super) { + __extends(DateTime, _super); + function DateTime(year, month, day, hour, minute, second, millisecond) { + var _this = _super.call(this, hour, minute, second, millisecond) || this; + _this.year = year; + _this.month = month; + _this.day = day; + return _this; + } + DateTime.fromDate = function (date) { + return new this(date.getUTCFullYear(), date.getUTCMonth() + 1, date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.valueOf() % 1000); + }; + DateTime.prototype.getWeekday = function () { + return getWeekday(new Date(this.getTime())); + }; + DateTime.prototype.getTime = function () { + return new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond)).getTime(); + }; + DateTime.prototype.getDay = function () { + return this.day; + }; + DateTime.prototype.getMonth = function () { + return this.month; + }; + DateTime.prototype.getYear = function () { + return this.year; + }; + DateTime.prototype.addYears = function (years) { + this.year += years; + }; + DateTime.prototype.addMonths = function (months) { + this.month += months; + if (this.month > 12) { + var yearDiv = Math.floor(this.month / 12); + var monthMod = pymod(this.month, 12); + this.month = monthMod; + this.year += yearDiv; + if (this.month === 0) { + this.month = 12; + --this.year; + } + } + }; + DateTime.prototype.addWeekly = function (days, wkst) { + if (wkst > this.getWeekday()) { + this.day += -(this.getWeekday() + 1 + (6 - wkst)) + days * 7; + } + else { + this.day += -(this.getWeekday() - wkst) + days * 7; + } + this.fixDay(); + }; + DateTime.prototype.addDaily = function (days) { + this.day += days; + this.fixDay(); + }; + DateTime.prototype.addHours = function (hours, filtered, byhour) { + if (filtered) { + // Jump to one iteration before next day + this.hour += Math.floor((23 - this.hour) / hours) * hours; + } + for (;;) { + this.hour += hours; + var _a = divmod(this.hour, 24), dayDiv = _a.div, hourMod = _a.mod; + if (dayDiv) { + this.hour = hourMod; + this.addDaily(dayDiv); + } + if (empty(byhour) || includes(byhour, this.hour)) + break; + } + }; + DateTime.prototype.addMinutes = function (minutes, filtered, byhour, byminute) { + if (filtered) { + // Jump to one iteration before next day + this.minute += + Math.floor((1439 - (this.hour * 60 + this.minute)) / minutes) * minutes; + } + for (;;) { + this.minute += minutes; + var _a = divmod(this.minute, 60), hourDiv = _a.div, minuteMod = _a.mod; + if (hourDiv) { + this.minute = minuteMod; + this.addHours(hourDiv, false, byhour); + } + if ((empty(byhour) || includes(byhour, this.hour)) && + (empty(byminute) || includes(byminute, this.minute))) { + break; + } + } + }; + DateTime.prototype.addSeconds = function (seconds, filtered, byhour, byminute, bysecond) { + if (filtered) { + // Jump to one iteration before next day + this.second += + Math.floor((86399 - (this.hour * 3600 + this.minute * 60 + this.second)) / + seconds) * seconds; + } + for (;;) { + this.second += seconds; + var _a = divmod(this.second, 60), minuteDiv = _a.div, secondMod = _a.mod; + if (minuteDiv) { + this.second = secondMod; + this.addMinutes(minuteDiv, false, byhour, byminute); + } + if ((empty(byhour) || includes(byhour, this.hour)) && + (empty(byminute) || includes(byminute, this.minute)) && + (empty(bysecond) || includes(bysecond, this.second))) { + break; + } + } + }; + DateTime.prototype.fixDay = function () { + if (this.day <= 28) { + return; + } + var daysinmonth = monthRange(this.year, this.month - 1)[1]; + if (this.day <= daysinmonth) { + return; + } + while (this.day > daysinmonth) { + this.day -= daysinmonth; + ++this.month; + if (this.month === 13) { + this.month = 1; + ++this.year; + if (this.year > MAXYEAR) { + return; + } + } + daysinmonth = monthRange(this.year, this.month - 1)[1]; + } + }; + DateTime.prototype.add = function (options, filtered) { + var freq = options.freq, interval = options.interval, wkst = options.wkst, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; + switch (freq) { + case Frequency.YEARLY: + return this.addYears(interval); + case Frequency.MONTHLY: + return this.addMonths(interval); + case Frequency.WEEKLY: + return this.addWeekly(interval, wkst); + case Frequency.DAILY: + return this.addDaily(interval); + case Frequency.HOURLY: + return this.addHours(interval, filtered, byhour); + case Frequency.MINUTELY: + return this.addMinutes(interval, filtered, byhour, byminute); + case Frequency.SECONDLY: + return this.addSeconds(interval, filtered, byhour, byminute, bysecond); + } + }; + return DateTime; +}(Time)); + + +;// CONCATENATED MODULE: ./src/parseoptions.ts + + + + + + + +function initializeOptions(options) { + var invalid = []; + var keys = Object.keys(options); + // Shallow copy for options and origOptions and check for invalid + for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { + var key = keys_1[_i]; + if (!includes(defaultKeys, key)) + invalid.push(key); + if (isDate(options[key]) && !isValidDate(options[key])) { + invalid.push(key); + } + } + if (invalid.length) { + throw new Error('Invalid options: ' + invalid.join(', ')); + } + return __assign({}, options); +} +function parseOptions(options) { + var opts = __assign(__assign({}, DEFAULT_OPTIONS), initializeOptions(options)); + if (isPresent(opts.byeaster)) + opts.freq = RRule.YEARLY; + if (!(isPresent(opts.freq) && RRule.FREQUENCIES[opts.freq])) { + throw new Error("Invalid frequency: ".concat(opts.freq, " ").concat(options.freq)); + } + if (!opts.dtstart) + opts.dtstart = new Date(new Date().setMilliseconds(0)); + if (!isPresent(opts.wkst)) { + opts.wkst = RRule.MO.weekday; + } + else if (isNumber(opts.wkst)) { + // cool, just keep it like that + } + else { + opts.wkst = opts.wkst.weekday; + } + if (isPresent(opts.bysetpos)) { + if (isNumber(opts.bysetpos)) + opts.bysetpos = [opts.bysetpos]; + for (var i = 0; i < opts.bysetpos.length; i++) { + var v = opts.bysetpos[i]; + if (v === 0 || !(v >= -366 && v <= 366)) { + throw new Error('bysetpos must be between 1 and 366,' + ' or between -366 and -1'); + } + } + } + if (!(Boolean(opts.byweekno) || + notEmpty(opts.byweekno) || + notEmpty(opts.byyearday) || + Boolean(opts.bymonthday) || + notEmpty(opts.bymonthday) || + isPresent(opts.byweekday) || + isPresent(opts.byeaster))) { + switch (opts.freq) { + case RRule.YEARLY: + if (!opts.bymonth) + opts.bymonth = opts.dtstart.getUTCMonth() + 1; + opts.bymonthday = opts.dtstart.getUTCDate(); + break; + case RRule.MONTHLY: + opts.bymonthday = opts.dtstart.getUTCDate(); + break; + case RRule.WEEKLY: + opts.byweekday = [getWeekday(opts.dtstart)]; + break; + } + } + // bymonth + if (isPresent(opts.bymonth) && !isArray(opts.bymonth)) { + opts.bymonth = [opts.bymonth]; + } + // byyearday + if (isPresent(opts.byyearday) && + !isArray(opts.byyearday) && + isNumber(opts.byyearday)) { + opts.byyearday = [opts.byyearday]; + } + // bymonthday + if (!isPresent(opts.bymonthday)) { + opts.bymonthday = []; + opts.bynmonthday = []; + } + else if (isArray(opts.bymonthday)) { + var bymonthday = []; + var bynmonthday = []; + for (var i = 0; i < opts.bymonthday.length; i++) { + var v = opts.bymonthday[i]; + if (v > 0) { + bymonthday.push(v); + } + else if (v < 0) { + bynmonthday.push(v); + } + } + opts.bymonthday = bymonthday; + opts.bynmonthday = bynmonthday; + } + else if (opts.bymonthday < 0) { + opts.bynmonthday = [opts.bymonthday]; + opts.bymonthday = []; + } + else { + opts.bynmonthday = []; + opts.bymonthday = [opts.bymonthday]; + } + // byweekno + if (isPresent(opts.byweekno) && !isArray(opts.byweekno)) { + opts.byweekno = [opts.byweekno]; + } + // byweekday / bynweekday + if (!isPresent(opts.byweekday)) { + opts.bynweekday = null; + } + else if (isNumber(opts.byweekday)) { + opts.byweekday = [opts.byweekday]; + opts.bynweekday = null; + } + else if (isWeekdayStr(opts.byweekday)) { + opts.byweekday = [Weekday.fromStr(opts.byweekday).weekday]; + opts.bynweekday = null; + } + else if (opts.byweekday instanceof Weekday) { + if (!opts.byweekday.n || opts.freq > RRule.MONTHLY) { + opts.byweekday = [opts.byweekday.weekday]; + opts.bynweekday = null; + } + else { + opts.bynweekday = [[opts.byweekday.weekday, opts.byweekday.n]]; + opts.byweekday = null; + } + } + else { + var byweekday = []; + var bynweekday = []; + for (var i = 0; i < opts.byweekday.length; i++) { + var wday = opts.byweekday[i]; + if (isNumber(wday)) { + byweekday.push(wday); + continue; + } + else if (isWeekdayStr(wday)) { + byweekday.push(Weekday.fromStr(wday).weekday); + continue; + } + if (!wday.n || opts.freq > RRule.MONTHLY) { + byweekday.push(wday.weekday); + } + else { + bynweekday.push([wday.weekday, wday.n]); + } + } + opts.byweekday = notEmpty(byweekday) ? byweekday : null; + opts.bynweekday = notEmpty(bynweekday) ? bynweekday : null; + } + // byhour + if (!isPresent(opts.byhour)) { + opts.byhour = opts.freq < RRule.HOURLY ? [opts.dtstart.getUTCHours()] : null; + } + else if (isNumber(opts.byhour)) { + opts.byhour = [opts.byhour]; + } + // byminute + if (!isPresent(opts.byminute)) { + opts.byminute = + opts.freq < RRule.MINUTELY ? [opts.dtstart.getUTCMinutes()] : null; + } + else if (isNumber(opts.byminute)) { + opts.byminute = [opts.byminute]; + } + // bysecond + if (!isPresent(opts.bysecond)) { + opts.bysecond = + opts.freq < RRule.SECONDLY ? [opts.dtstart.getUTCSeconds()] : null; + } + else if (isNumber(opts.bysecond)) { + opts.bysecond = [opts.bysecond]; + } + return { parsedOptions: opts }; +} +function buildTimeset(opts) { + var millisecondModulo = opts.dtstart.getTime() % 1000; + if (!freqIsDailyOrGreater(opts.freq)) { + return []; + } + var timeset = []; + opts.byhour.forEach(function (hour) { + opts.byminute.forEach(function (minute) { + opts.bysecond.forEach(function (second) { + timeset.push(new Time(hour, minute, second, millisecondModulo)); + }); + }); + }); + return timeset; +} + +;// CONCATENATED MODULE: ./src/parsestring.ts + + + + + +function parseString(rfcString) { + var options = rfcString + .split('\n') + .map(parseLine) + .filter(function (x) { return x !== null; }); + return __assign(__assign({}, options[0]), options[1]); +} +function parseDtstart(line) { + var options = {}; + var dtstartWithZone = /DTSTART(?:;TZID=([^:=]+?))?(?::|=)([^;\s]+)/i.exec(line); + if (!dtstartWithZone) { + return options; + } + var tzid = dtstartWithZone[1], dtstart = dtstartWithZone[2]; + if (tzid) { + options.tzid = tzid; + } + options.dtstart = untilStringToDate(dtstart); + return options; +} +function parseLine(rfcString) { + rfcString = rfcString.replace(/^\s+|\s+$/, ''); + if (!rfcString.length) + return null; + var header = /^([A-Z]+?)[:;]/.exec(rfcString.toUpperCase()); + if (!header) { + return parseRrule(rfcString); + } + var key = header[1]; + switch (key.toUpperCase()) { + case 'RRULE': + case 'EXRULE': + return parseRrule(rfcString); + case 'DTSTART': + return parseDtstart(rfcString); + default: + throw new Error("Unsupported RFC prop ".concat(key, " in ").concat(rfcString)); + } +} +function parseRrule(line) { + var strippedLine = line.replace(/^RRULE:/i, ''); + var options = parseDtstart(strippedLine); + var attrs = line.replace(/^(?:RRULE|EXRULE):/i, '').split(';'); + attrs.forEach(function (attr) { + var _a = attr.split('='), key = _a[0], value = _a[1]; + switch (key.toUpperCase()) { + case 'FREQ': + options.freq = Frequency[value.toUpperCase()]; + break; + case 'WKST': + options.wkst = Days[value.toUpperCase()]; + break; + case 'COUNT': + case 'INTERVAL': + case 'BYSETPOS': + case 'BYMONTH': + case 'BYMONTHDAY': + case 'BYYEARDAY': + case 'BYWEEKNO': + case 'BYHOUR': + case 'BYMINUTE': + case 'BYSECOND': + var num = parseNumber(value); + var optionKey = key.toLowerCase(); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + options[optionKey] = num; + break; + case 'BYWEEKDAY': + case 'BYDAY': + options.byweekday = parseWeekday(value); + break; + case 'DTSTART': + case 'TZID': + // for backwards compatibility + var dtstart = parseDtstart(line); + options.tzid = dtstart.tzid; + options.dtstart = dtstart.dtstart; + break; + case 'UNTIL': + options.until = untilStringToDate(value); + break; + case 'BYEASTER': + options.byeaster = Number(value); + break; + default: + throw new Error("Unknown RRULE property '" + key + "'"); + } + }); + return options; +} +function parseNumber(value) { + if (value.indexOf(',') !== -1) { + var values = value.split(','); + return values.map(parseIndividualNumber); + } + return parseIndividualNumber(value); +} +function parseIndividualNumber(value) { + if (/^[+-]?\d+$/.test(value)) { + return Number(value); + } + return value; +} +function parseWeekday(value) { + var days = value.split(','); + return days.map(function (day) { + if (day.length === 2) { + // MO, TU, ... + return Days[day]; // wday instanceof Weekday + } + // -1MO, +3FR, 1SO, 13TU ... + var parts = day.match(/^([+-]?\d{1,2})([A-Z]{2})$/); + if (!parts || parts.length < 3) { + throw new SyntaxError("Invalid weekday string: ".concat(day)); + } + var n = Number(parts[1]); + var wdaypart = parts[2]; + var wday = Days[wdaypart].weekday; + return new Weekday(wday, n); + }); +} + +;// CONCATENATED MODULE: ./src/datewithzone.ts + +var DateWithZone = /** @class */ (function () { + function DateWithZone(date, tzid) { + if (isNaN(date.getTime())) { + throw new RangeError('Invalid date passed to DateWithZone'); + } + this.date = date; + this.tzid = tzid; + } + Object.defineProperty(DateWithZone.prototype, "isUTC", { + get: function () { + return !this.tzid || this.tzid.toUpperCase() === 'UTC'; + }, + enumerable: false, + configurable: true + }); + DateWithZone.prototype.toString = function () { + var datestr = timeToUntilString(this.date.getTime(), this.isUTC); + if (!this.isUTC) { + return ";TZID=".concat(this.tzid, ":").concat(datestr); + } + return ":".concat(datestr); + }; + DateWithZone.prototype.getTime = function () { + return this.date.getTime(); + }; + DateWithZone.prototype.rezonedDate = function () { + if (this.isUTC) { + return this.date; + } + return dateInTimeZone(this.date, this.tzid); + }; + return DateWithZone; +}()); + + +;// CONCATENATED MODULE: ./src/optionstostring.ts + + + + + +function optionsToString(options) { + var rrule = []; + var dtstart = ''; + var keys = Object.keys(options); + var defaultKeys = Object.keys(DEFAULT_OPTIONS); + for (var i = 0; i < keys.length; i++) { + if (keys[i] === 'tzid') + continue; + if (!includes(defaultKeys, keys[i])) + continue; + var key = keys[i].toUpperCase(); + var value = options[keys[i]]; + var outValue = ''; + if (!isPresent(value) || (isArray(value) && !value.length)) + continue; + switch (key) { + case 'FREQ': + outValue = RRule.FREQUENCIES[options.freq]; + break; + case 'WKST': + if (isNumber(value)) { + outValue = new Weekday(value).toString(); + } + else { + outValue = value.toString(); + } + break; + case 'BYWEEKDAY': + /* + NOTE: BYWEEKDAY is a special case. + RRule() deconstructs the rule.options.byweekday array + into an array of Weekday arguments. + On the other hand, rule.origOptions is an array of Weekdays. + We need to handle both cases here. + It might be worth change RRule to keep the Weekdays. + + Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC) + + */ + key = 'BYDAY'; + outValue = toArray(value) + .map(function (wday) { + if (wday instanceof Weekday) { + return wday; + } + if (isArray(wday)) { + return new Weekday(wday[0], wday[1]); + } + return new Weekday(wday); + }) + .toString(); + break; + case 'DTSTART': + dtstart = buildDtstart(value, options.tzid); + break; + case 'UNTIL': + outValue = timeToUntilString(value, !options.tzid); + break; + default: + if (isArray(value)) { + var strValues = []; + for (var j = 0; j < value.length; j++) { + strValues[j] = String(value[j]); + } + outValue = strValues.toString(); + } + else { + outValue = String(value); + } + } + if (outValue) { + rrule.push([key, outValue]); + } + } + var rules = rrule + .map(function (_a) { + var key = _a[0], value = _a[1]; + return "".concat(key, "=").concat(value.toString()); + }) + .join(';'); + var ruleString = ''; + if (rules !== '') { + ruleString = "RRULE:".concat(rules); + } + return [dtstart, ruleString].filter(function (x) { return !!x; }).join('\n'); +} +function buildDtstart(dtstart, tzid) { + if (!dtstart) { + return ''; + } + return 'DTSTART' + new DateWithZone(new Date(dtstart), tzid).toString(); +} + +;// CONCATENATED MODULE: ./src/cache.ts + + + +function argsMatch(left, right) { + if (Array.isArray(left)) { + if (!Array.isArray(right)) + return false; + if (left.length !== right.length) + return false; + return left.every(function (date, i) { return date.getTime() === right[i].getTime(); }); + } + if (left instanceof Date) { + return right instanceof Date && left.getTime() === right.getTime(); + } + return left === right; +} +var Cache = /** @class */ (function () { + function Cache() { + this.all = false; + this.before = []; + this.after = []; + this.between = []; + } + /** + * @param {String} what - all/before/after/between + * @param {Array,Date} value - an array of dates, one date, or null + * @param {Object?} args - _iter arguments + */ + Cache.prototype._cacheAdd = function (what, value, args) { + if (value) { + value = value instanceof Date ? dateutil_clone(value) : cloneDates(value); + } + if (what === 'all') { + this.all = value; + } + else { + args._value = value; + this[what].push(args); + } + }; + /** + * @return false - not in the cache + * @return null - cached, but zero occurrences (before/after) + * @return Date - cached (before/after) + * @return [] - cached, but zero occurrences (all/between) + * @return [Date1, DateN] - cached (all/between) + */ + Cache.prototype._cacheGet = function (what, args) { + var cached = false; + var argsKeys = args ? Object.keys(args) : []; + var findCacheDiff = function (item) { + for (var i = 0; i < argsKeys.length; i++) { + var key = argsKeys[i]; + if (!argsMatch(args[key], item[key])) { + return true; + } + } + return false; + }; + var cachedObject = this[what]; + if (what === 'all') { + cached = this.all; + } + else if (isArray(cachedObject)) { + // Let's see whether we've already called the + // 'what' method with the same 'args' + for (var i = 0; i < cachedObject.length; i++) { + var item = cachedObject[i]; + if (argsKeys.length && findCacheDiff(item)) + continue; + cached = item._value; + break; + } + } + if (!cached && this.all) { + // Not in the cache, but we already know all the occurrences, + // so we can find the correct dates from the cached ones. + var iterResult = new iterresult(what, args); + for (var i = 0; i < this.all.length; i++) { + if (!iterResult.accept(this.all[i])) + break; + } + cached = iterResult.getValue(); + this._cacheAdd(what, cached, args); + } + return isArray(cached) + ? cloneDates(cached) + : cached instanceof Date + ? dateutil_clone(cached) + : cached; + }; + return Cache; +}()); + + +;// CONCATENATED MODULE: ./src/masks.ts + + +// ============================================================================= +// Date masks +// ============================================================================= +// Every mask is 7 days longer to handle cross-year weekly periods. +var M365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 28), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true); +var M366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], repeat(1, 31), true), repeat(2, 29), true), repeat(3, 31), true), repeat(4, 30), true), repeat(5, 31), true), repeat(6, 30), true), repeat(7, 31), true), repeat(8, 31), true), repeat(9, 30), true), repeat(10, 31), true), repeat(11, 30), true), repeat(12, 31), true), repeat(1, 7), true); +var M28 = range(1, 29); +var M29 = range(1, 30); +var M30 = range(1, 31); +var M31 = range(1, 32); +var MDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M29, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true); +var MDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], M31, true), M28, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31, true), M30, true), M31, true), M30, true), M31, true), M31.slice(0, 7), true); +var NM28 = range(-28, 0); +var NM29 = range(-29, 0); +var NM30 = range(-30, 0); +var NM31 = range(-31, 0); +var NMDAY366MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM29, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true); +var NMDAY365MASK = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], NM31, true), NM28, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31, true), NM30, true), NM31, true), NM30, true), NM31, true), NM31.slice(0, 7), true); +var M366RANGE = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]; +var M365RANGE = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; +var WDAYMASK = (function () { + var wdaymask = []; + for (var i = 0; i < 55; i++) + wdaymask = wdaymask.concat(range(7)); + return wdaymask; +})(); + + +;// CONCATENATED MODULE: ./src/iterinfo/yearinfo.ts + + + + +function rebuildYear(year, options) { + var firstyday = datetime(year, 1, 1); + var yearlen = isLeapYear(year) ? 366 : 365; + var nextyearlen = isLeapYear(year + 1) ? 366 : 365; + var yearordinal = toOrdinal(firstyday); + var yearweekday = getWeekday(firstyday); + var result = __assign(__assign({ yearlen: yearlen, nextyearlen: nextyearlen, yearordinal: yearordinal, yearweekday: yearweekday }, baseYearMasks(year)), { wnomask: null }); + if (empty(options.byweekno)) { + return result; + } + result.wnomask = repeat(0, yearlen + 7); + var firstwkst; + var wyearlen; + var no1wkst = (firstwkst = pymod(7 - yearweekday + options.wkst, 7)); + if (no1wkst >= 4) { + no1wkst = 0; + // Number of days in the year, plus the days we got + // from last year. + wyearlen = result.yearlen + pymod(yearweekday - options.wkst, 7); + } + else { + // Number of days in the year, minus the days we + // left in last year. + wyearlen = yearlen - no1wkst; + } + var div = Math.floor(wyearlen / 7); + var mod = pymod(wyearlen, 7); + var numweeks = Math.floor(div + mod / 4); + for (var j = 0; j < options.byweekno.length; j++) { + var n = options.byweekno[j]; + if (n < 0) { + n += numweeks + 1; + } + if (!(n > 0 && n <= numweeks)) { + continue; + } + var i = void 0; + if (n > 1) { + i = no1wkst + (n - 1) * 7; + if (no1wkst !== firstwkst) { + i -= 7 - firstwkst; + } + } + else { + i = no1wkst; + } + for (var k = 0; k < 7; k++) { + result.wnomask[i] = 1; + i++; + if (result.wdaymask[i] === options.wkst) + break; + } + } + if (includes(options.byweekno, 1)) { + // Check week number 1 of next year as well + // orig-TODO : Check -numweeks for next year. + var i = no1wkst + numweeks * 7; + if (no1wkst !== firstwkst) + i -= 7 - firstwkst; + if (i < yearlen) { + // If week starts in next year, we + // don't care about it. + for (var j = 0; j < 7; j++) { + result.wnomask[i] = 1; + i += 1; + if (result.wdaymask[i] === options.wkst) + break; + } + } + } + if (no1wkst) { + // Check last week number of last year as + // well. If no1wkst is 0, either the year + // started on week start, or week number 1 + // got days from last year, so there are no + // days from last year's last week number in + // this year. + var lnumweeks = void 0; + if (!includes(options.byweekno, -1)) { + var lyearweekday = getWeekday(datetime(year - 1, 1, 1)); + var lno1wkst = pymod(7 - lyearweekday.valueOf() + options.wkst, 7); + var lyearlen = isLeapYear(year - 1) ? 366 : 365; + var weekst = void 0; + if (lno1wkst >= 4) { + lno1wkst = 0; + weekst = lyearlen + pymod(lyearweekday - options.wkst, 7); + } + else { + weekst = yearlen - no1wkst; + } + lnumweeks = Math.floor(52 + pymod(weekst, 7) / 4); + } + else { + lnumweeks = -1; + } + if (includes(options.byweekno, lnumweeks)) { + for (var i = 0; i < no1wkst; i++) + result.wnomask[i] = 1; + } + } + return result; +} +function baseYearMasks(year) { + var yearlen = isLeapYear(year) ? 366 : 365; + var firstyday = datetime(year, 1, 1); + var wday = getWeekday(firstyday); + if (yearlen === 365) { + return { + mmask: M365MASK, + mdaymask: MDAY365MASK, + nmdaymask: NMDAY365MASK, + wdaymask: WDAYMASK.slice(wday), + mrange: M365RANGE, + }; + } + return { + mmask: M366MASK, + mdaymask: MDAY366MASK, + nmdaymask: NMDAY366MASK, + wdaymask: WDAYMASK.slice(wday), + mrange: M366RANGE, + }; +} + +;// CONCATENATED MODULE: ./src/iterinfo/monthinfo.ts + + +function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) { + var result = { + lastyear: year, + lastmonth: month, + nwdaymask: [], + }; + var ranges = []; + if (options.freq === RRule.YEARLY) { + if (empty(options.bymonth)) { + ranges = [[0, yearlen]]; + } + else { + for (var j = 0; j < options.bymonth.length; j++) { + month = options.bymonth[j]; + ranges.push(mrange.slice(month - 1, month + 1)); + } + } + } + else if (options.freq === RRule.MONTHLY) { + ranges = [mrange.slice(month - 1, month + 1)]; + } + if (empty(ranges)) { + return result; + } + // Weekly frequency won't get here, so we may not + // care about cross-year weekly periods. + result.nwdaymask = repeat(0, yearlen); + for (var j = 0; j < ranges.length; j++) { + var rang = ranges[j]; + var first = rang[0]; + var last = rang[1] - 1; + for (var k = 0; k < options.bynweekday.length; k++) { + var i = void 0; + var _a = options.bynweekday[k], wday = _a[0], n = _a[1]; + if (n < 0) { + i = last + (n + 1) * 7; + i -= pymod(wdaymask[i] - wday, 7); + } + else { + i = first + (n - 1) * 7; + i += pymod(7 - wdaymask[i] + wday, 7); + } + if (first <= i && i <= last) + result.nwdaymask[i] = 1; + } + } + return result; +} + +;// CONCATENATED MODULE: ./src/iterinfo/easter.ts +function easter(y, offset) { + if (offset === void 0) { offset = 0; } + var a = y % 19; + var b = Math.floor(y / 100); + var c = y % 100; + var d = Math.floor(b / 4); + var e = b % 4; + var f = Math.floor((b + 8) / 25); + var g = Math.floor((b - f + 1) / 3); + var h = Math.floor(19 * a + b - d - g + 15) % 30; + var i = Math.floor(c / 4); + var k = c % 4; + var l = Math.floor(32 + 2 * e + 2 * i - h - k) % 7; + var m = Math.floor((a + 11 * h + 22 * l) / 451); + var month = Math.floor((h + l - 7 * m + 114) / 31); + var day = ((h + l - 7 * m + 114) % 31) + 1; + var date = Date.UTC(y, month - 1, day + offset); + var yearStart = Date.UTC(y, 0, 1); + return [Math.ceil((date - yearStart) / (1000 * 60 * 60 * 24))]; +} + +;// CONCATENATED MODULE: ./src/iterinfo/index.ts + + + + + + + +// ============================================================================= +// Iterinfo +// ============================================================================= +var Iterinfo = /** @class */ (function () { + // eslint-disable-next-line no-empty-function + function Iterinfo(options) { + this.options = options; + } + Iterinfo.prototype.rebuild = function (year, month) { + var options = this.options; + if (year !== this.lastyear) { + this.yearinfo = rebuildYear(year, options); + } + if (notEmpty(options.bynweekday) && + (month !== this.lastmonth || year !== this.lastyear)) { + var _a = this.yearinfo, yearlen = _a.yearlen, mrange = _a.mrange, wdaymask = _a.wdaymask; + this.monthinfo = rebuildMonth(year, month, yearlen, mrange, wdaymask, options); + } + if (isPresent(options.byeaster)) { + this.eastermask = easter(year, options.byeaster); + } + }; + Object.defineProperty(Iterinfo.prototype, "lastyear", { + get: function () { + return this.monthinfo ? this.monthinfo.lastyear : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "lastmonth", { + get: function () { + return this.monthinfo ? this.monthinfo.lastmonth : null; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "yearlen", { + get: function () { + return this.yearinfo.yearlen; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "yearordinal", { + get: function () { + return this.yearinfo.yearordinal; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "mrange", { + get: function () { + return this.yearinfo.mrange; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "wdaymask", { + get: function () { + return this.yearinfo.wdaymask; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "mmask", { + get: function () { + return this.yearinfo.mmask; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "wnomask", { + get: function () { + return this.yearinfo.wnomask; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "nwdaymask", { + get: function () { + return this.monthinfo ? this.monthinfo.nwdaymask : []; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "nextyearlen", { + get: function () { + return this.yearinfo.nextyearlen; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "mdaymask", { + get: function () { + return this.yearinfo.mdaymask; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Iterinfo.prototype, "nmdaymask", { + get: function () { + return this.yearinfo.nmdaymask; + }, + enumerable: false, + configurable: true + }); + Iterinfo.prototype.ydayset = function () { + return [range(this.yearlen), 0, this.yearlen]; + }; + Iterinfo.prototype.mdayset = function (_, month) { + var start = this.mrange[month - 1]; + var end = this.mrange[month]; + var set = repeat(null, this.yearlen); + for (var i = start; i < end; i++) + set[i] = i; + return [set, start, end]; + }; + Iterinfo.prototype.wdayset = function (year, month, day) { + // We need to handle cross-year weeks here. + var set = repeat(null, this.yearlen + 7); + var i = toOrdinal(datetime(year, month, day)) - this.yearordinal; + var start = i; + for (var j = 0; j < 7; j++) { + set[i] = i; + ++i; + if (this.wdaymask[i] === this.options.wkst) + break; + } + return [set, start, i]; + }; + Iterinfo.prototype.ddayset = function (year, month, day) { + var set = repeat(null, this.yearlen); + var i = toOrdinal(datetime(year, month, day)) - this.yearordinal; + set[i] = i; + return [set, i, i + 1]; + }; + Iterinfo.prototype.htimeset = function (hour, _, second, millisecond) { + var _this = this; + var set = []; + this.options.byminute.forEach(function (minute) { + set = set.concat(_this.mtimeset(hour, minute, second, millisecond)); + }); + sort(set); + return set; + }; + Iterinfo.prototype.mtimeset = function (hour, minute, _, millisecond) { + var set = this.options.bysecond.map(function (second) { return new Time(hour, minute, second, millisecond); }); + sort(set); + return set; + }; + Iterinfo.prototype.stimeset = function (hour, minute, second, millisecond) { + return [new Time(hour, minute, second, millisecond)]; + }; + Iterinfo.prototype.getdayset = function (freq) { + switch (freq) { + case Frequency.YEARLY: + return this.ydayset.bind(this); + case Frequency.MONTHLY: + return this.mdayset.bind(this); + case Frequency.WEEKLY: + return this.wdayset.bind(this); + case Frequency.DAILY: + return this.ddayset.bind(this); + default: + return this.ddayset.bind(this); + } + }; + Iterinfo.prototype.gettimeset = function (freq) { + switch (freq) { + case Frequency.HOURLY: + return this.htimeset.bind(this); + case Frequency.MINUTELY: + return this.mtimeset.bind(this); + case Frequency.SECONDLY: + return this.stimeset.bind(this); + } + }; + return Iterinfo; +}()); +/* harmony default export */ const iterinfo = (Iterinfo); + +;// CONCATENATED MODULE: ./src/iter/poslist.ts + + +function buildPoslist(bysetpos, timeset, start, end, ii, dayset) { + var poslist = []; + for (var j = 0; j < bysetpos.length; j++) { + var daypos = void 0; + var timepos = void 0; + var pos = bysetpos[j]; + if (pos < 0) { + daypos = Math.floor(pos / timeset.length); + timepos = pymod(pos, timeset.length); + } + else { + daypos = Math.floor((pos - 1) / timeset.length); + timepos = pymod(pos - 1, timeset.length); + } + var tmp = []; + for (var k = start; k < end; k++) { + var val = dayset[k]; + if (!isPresent(val)) + continue; + tmp.push(val); + } + var i = void 0; + if (daypos < 0) { + i = tmp.slice(daypos)[0]; + } + else { + i = tmp[daypos]; + } + var time = timeset[timepos]; + var date = fromOrdinal(ii.yearordinal + i); + var res = combine(date, time); + // XXX: can this ever be in the array? + // - compare the actual date instead? + if (!includes(poslist, res)) + poslist.push(res); + } + sort(poslist); + return poslist; +} + +;// CONCATENATED MODULE: ./src/iter/index.ts + + + + + + + + + +function iter(iterResult, options) { + var dtstart = options.dtstart, freq = options.freq, interval = options.interval, until = options.until, bysetpos = options.bysetpos; + var count = options.count; + if (count === 0 || interval === 0) { + return emitResult(iterResult); + } + var counterDate = DateTime.fromDate(dtstart); + var ii = new iterinfo(options); + ii.rebuild(counterDate.year, counterDate.month); + var timeset = makeTimeset(ii, counterDate, options); + for (;;) { + var _a = ii.getdayset(freq)(counterDate.year, counterDate.month, counterDate.day), dayset = _a[0], start = _a[1], end = _a[2]; + var filtered = removeFilteredDays(dayset, start, end, ii, options); + if (notEmpty(bysetpos)) { + var poslist = buildPoslist(bysetpos, timeset, start, end, ii, dayset); + for (var j = 0; j < poslist.length; j++) { + var res = poslist[j]; + if (until && res > until) { + return emitResult(iterResult); + } + if (res >= dtstart) { + var rezonedDate = rezoneIfNeeded(res, options); + if (!iterResult.accept(rezonedDate)) { + return emitResult(iterResult); + } + if (count) { + --count; + if (!count) { + return emitResult(iterResult); + } + } + } + } + } + else { + for (var j = start; j < end; j++) { + var currentDay = dayset[j]; + if (!isPresent(currentDay)) { + continue; + } + var date = fromOrdinal(ii.yearordinal + currentDay); + for (var k = 0; k < timeset.length; k++) { + var time = timeset[k]; + var res = combine(date, time); + if (until && res > until) { + return emitResult(iterResult); + } + if (res >= dtstart) { + var rezonedDate = rezoneIfNeeded(res, options); + if (!iterResult.accept(rezonedDate)) { + return emitResult(iterResult); + } + if (count) { + --count; + if (!count) { + return emitResult(iterResult); + } + } + } + } + } + } + if (options.interval === 0) { + return emitResult(iterResult); + } + // Handle frequency and interval + counterDate.add(options, filtered); + if (counterDate.year > MAXYEAR) { + return emitResult(iterResult); + } + if (!freqIsDailyOrGreater(freq)) { + timeset = ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, 0); + } + ii.rebuild(counterDate.year, counterDate.month); + } +} +function isFiltered(ii, currentDay, options) { + var bymonth = options.bymonth, byweekno = options.byweekno, byweekday = options.byweekday, byeaster = options.byeaster, bymonthday = options.bymonthday, bynmonthday = options.bynmonthday, byyearday = options.byyearday; + return ((notEmpty(bymonth) && !includes(bymonth, ii.mmask[currentDay])) || + (notEmpty(byweekno) && !ii.wnomask[currentDay]) || + (notEmpty(byweekday) && !includes(byweekday, ii.wdaymask[currentDay])) || + (notEmpty(ii.nwdaymask) && !ii.nwdaymask[currentDay]) || + (byeaster !== null && !includes(ii.eastermask, currentDay)) || + ((notEmpty(bymonthday) || notEmpty(bynmonthday)) && + !includes(bymonthday, ii.mdaymask[currentDay]) && + !includes(bynmonthday, ii.nmdaymask[currentDay])) || + (notEmpty(byyearday) && + ((currentDay < ii.yearlen && + !includes(byyearday, currentDay + 1) && + !includes(byyearday, -ii.yearlen + currentDay)) || + (currentDay >= ii.yearlen && + !includes(byyearday, currentDay + 1 - ii.yearlen) && + !includes(byyearday, -ii.nextyearlen + currentDay - ii.yearlen))))); +} +function rezoneIfNeeded(date, options) { + return new DateWithZone(date, options.tzid).rezonedDate(); +} +function emitResult(iterResult) { + return iterResult.getValue(); +} +function removeFilteredDays(dayset, start, end, ii, options) { + var filtered = false; + for (var dayCounter = start; dayCounter < end; dayCounter++) { + var currentDay = dayset[dayCounter]; + filtered = isFiltered(ii, currentDay, options); + if (filtered) + dayset[currentDay] = null; + } + return filtered; +} +function makeTimeset(ii, counterDate, options) { + var freq = options.freq, byhour = options.byhour, byminute = options.byminute, bysecond = options.bysecond; + if (freqIsDailyOrGreater(freq)) { + return buildTimeset(options); + } + if ((freq >= RRule.HOURLY && + notEmpty(byhour) && + !includes(byhour, counterDate.hour)) || + (freq >= RRule.MINUTELY && + notEmpty(byminute) && + !includes(byminute, counterDate.minute)) || + (freq >= RRule.SECONDLY && + notEmpty(bysecond) && + !includes(bysecond, counterDate.second))) { + return []; + } + return ii.gettimeset(freq)(counterDate.hour, counterDate.minute, counterDate.second, counterDate.millisecond); +} + +;// CONCATENATED MODULE: ./src/rrule.ts + + + + + + + + + + + +// ============================================================================= +// RRule +// ============================================================================= +var Days = { + MO: new Weekday(0), + TU: new Weekday(1), + WE: new Weekday(2), + TH: new Weekday(3), + FR: new Weekday(4), + SA: new Weekday(5), + SU: new Weekday(6), +}; +var DEFAULT_OPTIONS = { + freq: Frequency.YEARLY, + dtstart: null, + interval: 1, + wkst: Days.MO, + count: null, + until: null, + tzid: null, + bysetpos: null, + bymonth: null, + bymonthday: null, + bynmonthday: null, + byyearday: null, + byweekno: null, + byweekday: null, + bynweekday: null, + byhour: null, + byminute: null, + bysecond: null, + byeaster: null, +}; +var defaultKeys = Object.keys(DEFAULT_OPTIONS); +/** + * + * @param {Options?} options - see + * - The only required option is `freq`, one of RRule.YEARLY, RRule.MONTHLY, ... + * @constructor + */ +var RRule = /** @class */ (function () { + function RRule(options, noCache) { + if (options === void 0) { options = {}; } + if (noCache === void 0) { noCache = false; } + // RFC string + this._cache = noCache ? null : new Cache(); + // used by toString() + this.origOptions = initializeOptions(options); + var parsedOptions = parseOptions(options).parsedOptions; + this.options = parsedOptions; + } + RRule.parseText = function (text, language) { + return parseText(text, language); + }; + RRule.fromText = function (text, language) { + return fromText(text, language); + }; + RRule.fromString = function (str) { + return new RRule(RRule.parseString(str) || undefined); + }; + RRule.prototype._iter = function (iterResult) { + return iter(iterResult, this.options); + }; + RRule.prototype._cacheGet = function (what, args) { + if (!this._cache) + return false; + return this._cache._cacheGet(what, args); + }; + RRule.prototype._cacheAdd = function (what, value, args) { + if (!this._cache) + return; + return this._cache._cacheAdd(what, value, args); + }; + /** + * @param {Function} iterator - optional function that will be called + * on each date that is added. It can return false + * to stop the iteration. + * @return Array containing all recurrences. + */ + RRule.prototype.all = function (iterator) { + if (iterator) { + return this._iter(new callbackiterresult('all', {}, iterator)); + } + var result = this._cacheGet('all'); + if (result === false) { + result = this._iter(new iterresult('all', {})); + this._cacheAdd('all', result); + } + return result; + }; + /** + * Returns all the occurrences of the rrule between after and before. + * The inc keyword defines what happens if after and/or before are + * themselves occurrences. With inc == True, they will be included in the + * list, if they are found in the recurrence set. + * + * @return Array + */ + RRule.prototype.between = function (after, before, inc, iterator) { + if (inc === void 0) { inc = false; } + if (!isValidDate(after) || !isValidDate(before)) { + throw new Error('Invalid date passed in to RRule.between'); + } + var args = { + before: before, + after: after, + inc: inc, + }; + if (iterator) { + return this._iter(new callbackiterresult('between', args, iterator)); + } + var result = this._cacheGet('between', args); + if (result === false) { + result = this._iter(new iterresult('between', args)); + this._cacheAdd('between', result, args); + } + return result; + }; + /** + * Returns the last recurrence before the given datetime instance. + * The inc keyword defines what happens if dt is an occurrence. + * With inc == True, if dt itself is an occurrence, it will be returned. + * + * @return Date or null + */ + RRule.prototype.before = function (dt, inc) { + if (inc === void 0) { inc = false; } + if (!isValidDate(dt)) { + throw new Error('Invalid date passed in to RRule.before'); + } + var args = { dt: dt, inc: inc }; + var result = this._cacheGet('before', args); + if (result === false) { + result = this._iter(new iterresult('before', args)); + this._cacheAdd('before', result, args); + } + return result; + }; + /** + * Returns the first recurrence after the given datetime instance. + * The inc keyword defines what happens if dt is an occurrence. + * With inc == True, if dt itself is an occurrence, it will be returned. + * + * @return Date or null + */ + RRule.prototype.after = function (dt, inc) { + if (inc === void 0) { inc = false; } + if (!isValidDate(dt)) { + throw new Error('Invalid date passed in to RRule.after'); + } + var args = { dt: dt, inc: inc }; + var result = this._cacheGet('after', args); + if (result === false) { + result = this._iter(new iterresult('after', args)); + this._cacheAdd('after', result, args); + } + return result; + }; + /** + * Returns the number of recurrences in this set. It will have go trough + * the whole recurrence, if this hasn't been done before. + */ + RRule.prototype.count = function () { + return this.all().length; + }; + /** + * Converts the rrule into its string representation + * + * @see + * @return String + */ + RRule.prototype.toString = function () { + return optionsToString(this.origOptions); + }; + /** + * Will convert all rules described in nlp:ToText + * to text. + */ + RRule.prototype.toText = function (gettext, language, dateFormatter) { + return toText(this, gettext, language, dateFormatter); + }; + RRule.prototype.isFullyConvertibleToText = function () { + return isFullyConvertible(this); + }; + /** + * @return a RRule instance with the same freq and options + * as this one (cache is not cloned) + */ + RRule.prototype.clone = function () { + return new RRule(this.origOptions); + }; + // RRule class 'constants' + RRule.FREQUENCIES = [ + 'YEARLY', + 'MONTHLY', + 'WEEKLY', + 'DAILY', + 'HOURLY', + 'MINUTELY', + 'SECONDLY', + ]; + RRule.YEARLY = Frequency.YEARLY; + RRule.MONTHLY = Frequency.MONTHLY; + RRule.WEEKLY = Frequency.WEEKLY; + RRule.DAILY = Frequency.DAILY; + RRule.HOURLY = Frequency.HOURLY; + RRule.MINUTELY = Frequency.MINUTELY; + RRule.SECONDLY = Frequency.SECONDLY; + RRule.MO = Days.MO; + RRule.TU = Days.TU; + RRule.WE = Days.WE; + RRule.TH = Days.TH; + RRule.FR = Days.FR; + RRule.SA = Days.SA; + RRule.SU = Days.SU; + RRule.parseString = parseString; + RRule.optionsToString = optionsToString; + return RRule; +}()); + + +;// CONCATENATED MODULE: ./src/iterset.ts + + + +function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) { + var _exdateHash = {}; + var _accept = iterResult.accept; + function evalExdate(after, before) { + _exrule.forEach(function (rrule) { + rrule.between(after, before, true).forEach(function (date) { + _exdateHash[Number(date)] = true; + }); + }); + } + _exdate.forEach(function (date) { + var zonedDate = new DateWithZone(date, tzid).rezonedDate(); + _exdateHash[Number(zonedDate)] = true; + }); + iterResult.accept = function (date) { + var dt = Number(date); + if (isNaN(dt)) + return _accept.call(this, date); + if (!_exdateHash[dt]) { + evalExdate(new Date(dt - 1), new Date(dt + 1)); + if (!_exdateHash[dt]) { + _exdateHash[dt] = true; + return _accept.call(this, date); + } + } + return true; + }; + if (iterResult.method === 'between') { + evalExdate(iterResult.args.after, iterResult.args.before); + iterResult.accept = function (date) { + var dt = Number(date); + if (!_exdateHash[dt]) { + _exdateHash[dt] = true; + return _accept.call(this, date); + } + return true; + }; + } + for (var i = 0; i < _rdate.length; i++) { + var zonedDate = new DateWithZone(_rdate[i], tzid).rezonedDate(); + if (!iterResult.accept(new Date(zonedDate.getTime()))) + break; + } + _rrule.forEach(function (rrule) { + iter(iterResult, rrule.options); + }); + var res = iterResult._result; + sort(res); + switch (iterResult.method) { + case 'all': + case 'between': + return res; + case 'before': + return ((res.length && res[res.length - 1]) || null); + case 'after': + default: + return ((res.length && res[0]) || null); + } +} + +;// CONCATENATED MODULE: ./src/rrulestr.ts + + + + + + +/** + * RRuleStr + * To parse a set of rrule strings + */ +var rrulestr_DEFAULT_OPTIONS = { + dtstart: null, + cache: false, + unfold: false, + forceset: false, + compatible: false, + tzid: null, +}; +function parseInput(s, options) { + var rrulevals = []; + var rdatevals = []; + var exrulevals = []; + var exdatevals = []; + var parsedDtstart = parseDtstart(s); + var dtstart = parsedDtstart.dtstart; + var tzid = parsedDtstart.tzid; + var lines = splitIntoLines(s, options.unfold); + lines.forEach(function (line) { + var _a; + if (!line) + return; + var _b = breakDownLine(line), name = _b.name, parms = _b.parms, value = _b.value; + switch (name.toUpperCase()) { + case 'RRULE': + if (parms.length) { + throw new Error("unsupported RRULE parm: ".concat(parms.join(','))); + } + rrulevals.push(parseString(line)); + break; + case 'RDATE': + var _c = (_a = /RDATE(?:;TZID=([^:=]+))?/i.exec(line)) !== null && _a !== void 0 ? _a : [], rdateTzid = _c[1]; + if (rdateTzid && !tzid) { + tzid = rdateTzid; + } + rdatevals = rdatevals.concat(parseRDate(value, parms)); + break; + case 'EXRULE': + if (parms.length) { + throw new Error("unsupported EXRULE parm: ".concat(parms.join(','))); + } + exrulevals.push(parseString(value)); + break; + case 'EXDATE': + exdatevals = exdatevals.concat(parseRDate(value, parms)); + break; + case 'DTSTART': + break; + default: + throw new Error('unsupported property: ' + name); + } + }); + return { + dtstart: dtstart, + tzid: tzid, + rrulevals: rrulevals, + rdatevals: rdatevals, + exrulevals: exrulevals, + exdatevals: exdatevals, + }; +} +function buildRule(s, options) { + var _a = parseInput(s, options), rrulevals = _a.rrulevals, rdatevals = _a.rdatevals, exrulevals = _a.exrulevals, exdatevals = _a.exdatevals, dtstart = _a.dtstart, tzid = _a.tzid; + var noCache = options.cache === false; + if (options.compatible) { + options.forceset = true; + options.unfold = true; + } + if (options.forceset || + rrulevals.length > 1 || + rdatevals.length || + exrulevals.length || + exdatevals.length) { + var rset_1 = new RRuleSet(noCache); + rset_1.dtstart(dtstart); + rset_1.tzid(tzid || undefined); + rrulevals.forEach(function (val) { + rset_1.rrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache)); + }); + rdatevals.forEach(function (date) { + rset_1.rdate(date); + }); + exrulevals.forEach(function (val) { + rset_1.exrule(new RRule(groomRruleOptions(val, dtstart, tzid), noCache)); + }); + exdatevals.forEach(function (date) { + rset_1.exdate(date); + }); + if (options.compatible && options.dtstart) + rset_1.rdate(dtstart); + return rset_1; + } + var val = rrulevals[0] || {}; + return new RRule(groomRruleOptions(val, val.dtstart || options.dtstart || dtstart, val.tzid || options.tzid || tzid), noCache); +} +function rrulestr(s, options) { + if (options === void 0) { options = {}; } + return buildRule(s, rrulestr_initializeOptions(options)); +} +function groomRruleOptions(val, dtstart, tzid) { + return __assign(__assign({}, val), { dtstart: dtstart, tzid: tzid }); +} +function rrulestr_initializeOptions(options) { + var invalid = []; + var keys = Object.keys(options); + var defaultKeys = Object.keys(rrulestr_DEFAULT_OPTIONS); + keys.forEach(function (key) { + if (!includes(defaultKeys, key)) + invalid.push(key); + }); + if (invalid.length) { + throw new Error('Invalid options: ' + invalid.join(', ')); + } + return __assign(__assign({}, rrulestr_DEFAULT_OPTIONS), options); +} +function extractName(line) { + if (line.indexOf(':') === -1) { + return { + name: 'RRULE', + value: line, + }; + } + var _a = split(line, ':', 1), name = _a[0], value = _a[1]; + return { + name: name, + value: value, + }; +} +function breakDownLine(line) { + var _a = extractName(line), name = _a.name, value = _a.value; + var parms = name.split(';'); + if (!parms) + throw new Error('empty property name'); + return { + name: parms[0].toUpperCase(), + parms: parms.slice(1), + value: value, + }; +} +function splitIntoLines(s, unfold) { + if (unfold === void 0) { unfold = false; } + s = s && s.trim(); + if (!s) + throw new Error('Invalid empty string'); + // More info about 'unfold' option + // Go head to http://www.ietf.org/rfc/rfc2445.txt + if (!unfold) { + return s.split(/\s/); + } + var lines = s.split('\n'); + var i = 0; + while (i < lines.length) { + // TODO + var line = (lines[i] = lines[i].replace(/\s+$/g, '')); + if (!line) { + lines.splice(i, 1); + } + else if (i > 0 && line[0] === ' ') { + lines[i - 1] += line.slice(1); + lines.splice(i, 1); + } + else { + i += 1; + } + } + return lines; +} +function validateDateParm(parms) { + parms.forEach(function (parm) { + if (!/(VALUE=DATE(-TIME)?)|(TZID=)/.test(parm)) { + throw new Error('unsupported RDATE/EXDATE parm: ' + parm); + } + }); +} +function parseRDate(rdateval, parms) { + validateDateParm(parms); + return rdateval.split(',').map(function (datestr) { return untilStringToDate(datestr); }); +} + +;// CONCATENATED MODULE: ./src/rruleset.ts + + + + + + + +function createGetterSetter(fieldName) { + var _this = this; + return function (field) { + if (field !== undefined) { + _this["_".concat(fieldName)] = field; + } + if (_this["_".concat(fieldName)] !== undefined) { + return _this["_".concat(fieldName)]; + } + for (var i = 0; i < _this._rrule.length; i++) { + var field_1 = _this._rrule[i].origOptions[fieldName]; + if (field_1) { + return field_1; + } + } + }; +} +var RRuleSet = /** @class */ (function (_super) { + __extends(RRuleSet, _super); + /** + * + * @param {Boolean?} noCache + * The same stratagy as RRule on cache, default to false + * @constructor + */ + function RRuleSet(noCache) { + if (noCache === void 0) { noCache = false; } + var _this = _super.call(this, {}, noCache) || this; + _this.dtstart = createGetterSetter.apply(_this, ['dtstart']); + _this.tzid = createGetterSetter.apply(_this, ['tzid']); + _this._rrule = []; + _this._rdate = []; + _this._exrule = []; + _this._exdate = []; + return _this; + } + RRuleSet.prototype._iter = function (iterResult) { + return iterSet(iterResult, this._rrule, this._exrule, this._rdate, this._exdate, this.tzid()); + }; + /** + * Adds an RRule to the set + * + * @param {RRule} + */ + RRuleSet.prototype.rrule = function (rrule) { + _addRule(rrule, this._rrule); + }; + /** + * Adds an EXRULE to the set + * + * @param {RRule} + */ + RRuleSet.prototype.exrule = function (rrule) { + _addRule(rrule, this._exrule); + }; + /** + * Adds an RDate to the set + * + * @param {Date} + */ + RRuleSet.prototype.rdate = function (date) { + _addDate(date, this._rdate); + }; + /** + * Adds an EXDATE to the set + * + * @param {Date} + */ + RRuleSet.prototype.exdate = function (date) { + _addDate(date, this._exdate); + }; + /** + * Get list of included rrules in this recurrence set. + * + * @return List of rrules + */ + RRuleSet.prototype.rrules = function () { + return this._rrule.map(function (e) { return rrulestr(e.toString()); }); + }; + /** + * Get list of excluded rrules in this recurrence set. + * + * @return List of exrules + */ + RRuleSet.prototype.exrules = function () { + return this._exrule.map(function (e) { return rrulestr(e.toString()); }); + }; + /** + * Get list of included datetimes in this recurrence set. + * + * @return List of rdates + */ + RRuleSet.prototype.rdates = function () { + return this._rdate.map(function (e) { return new Date(e.getTime()); }); + }; + /** + * Get list of included datetimes in this recurrence set. + * + * @return List of exdates + */ + RRuleSet.prototype.exdates = function () { + return this._exdate.map(function (e) { return new Date(e.getTime()); }); + }; + RRuleSet.prototype.valueOf = function () { + var result = []; + if (!this._rrule.length && this._dtstart) { + result = result.concat(optionsToString({ dtstart: this._dtstart })); + } + this._rrule.forEach(function (rrule) { + result = result.concat(rrule.toString().split('\n')); + }); + this._exrule.forEach(function (exrule) { + result = result.concat(exrule + .toString() + .split('\n') + .map(function (line) { return line.replace(/^RRULE:/, 'EXRULE:'); }) + .filter(function (line) { return !/^DTSTART/.test(line); })); + }); + if (this._rdate.length) { + result.push(rdatesToString('RDATE', this._rdate, this.tzid())); + } + if (this._exdate.length) { + result.push(rdatesToString('EXDATE', this._exdate, this.tzid())); + } + return result; + }; + /** + * to generate recurrence field such as: + * DTSTART:19970902T010000Z + * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU + * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH + */ + RRuleSet.prototype.toString = function () { + return this.valueOf().join('\n'); + }; + /** + * Create a new RRuleSet Object completely base on current instance + */ + RRuleSet.prototype.clone = function () { + var rrs = new RRuleSet(!!this._cache); + this._rrule.forEach(function (rule) { return rrs.rrule(rule.clone()); }); + this._exrule.forEach(function (rule) { return rrs.exrule(rule.clone()); }); + this._rdate.forEach(function (date) { return rrs.rdate(new Date(date.getTime())); }); + this._exdate.forEach(function (date) { return rrs.exdate(new Date(date.getTime())); }); + return rrs; + }; + return RRuleSet; +}(RRule)); + +function _addRule(rrule, collection) { + if (!(rrule instanceof RRule)) { + throw new TypeError(String(rrule) + ' is not RRule instance'); + } + if (!includes(collection.map(String), String(rrule))) { + collection.push(rrule); + } +} +function _addDate(date, collection) { + if (!(date instanceof Date)) { + throw new TypeError(String(date) + ' is not Date instance'); + } + if (!includes(collection.map(Number), Number(date))) { + collection.push(date); + sort(collection); + } +} +function rdatesToString(param, rdates, tzid) { + var isUTC = !tzid || tzid.toUpperCase() === 'UTC'; + var header = isUTC ? "".concat(param, ":") : "".concat(param, ";TZID=").concat(tzid, ":"); + var dateString = rdates + .map(function (rdate) { return timeToUntilString(rdate.valueOf(), isUTC); }) + .join(','); + return "".concat(header).concat(dateString); +} + +;// CONCATENATED MODULE: ./src/index.ts +/* ! + * rrule.js - Library for working with recurrence rules for calendar dates. + * https://github.com/jakubroztocil/rrule + * + * Copyright 2010, Jakub Roztocil and Lars Schoning + * Licenced under the BSD licence. + * https://github.com/jakubroztocil/rrule/blob/master/LICENCE + * + * Based on: + * python-dateutil - Extensions to the standard Python datetime module. + * Copyright (c) 2003-2011 - Gustavo Niemeyer + * Copyright (c) 2012 - Tomi Pieviläinen + * https://github.com/jakubroztocil/rrule/blob/master/LICENCE + * + */ + + + + + + + +/******/ return __webpack_exports__; +/******/ })() +; +}); \ No newline at end of file -- 2.49.1 From 177a7d07fcca8c5962c6cec7f3374eb3f755985b Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Fri, 10 Oct 2025 15:32:46 +0200 Subject: [PATCH 059/134] Update license header (#5540) --- .licenseheader | 4 ++-- src/manage.py | 4 ++-- src/pretix/__init__.py | 4 ++-- src/pretix/__main__.py | 4 ++-- src/pretix/_base_settings.py | 4 ++-- src/pretix/_build.py | 4 ++-- src/pretix/_build_settings.py | 4 ++-- src/pretix/api/__init__.py | 4 ++-- src/pretix/api/apps.py | 4 ++-- src/pretix/api/auth/__init__.py | 4 ++-- src/pretix/api/auth/device.py | 4 ++-- src/pretix/api/auth/devicesecurity.py | 4 ++-- src/pretix/api/auth/permission.py | 4 ++-- src/pretix/api/auth/session.py | 4 ++-- src/pretix/api/auth/token.py | 4 ++-- src/pretix/api/exception.py | 4 ++-- src/pretix/api/filters.py | 4 ++-- src/pretix/api/middleware.py | 4 ++-- src/pretix/api/models.py | 4 ++-- src/pretix/api/oauth.py | 4 ++-- src/pretix/api/pagination.py | 4 ++-- src/pretix/api/serializers/__init__.py | 4 ++-- src/pretix/api/serializers/cart.py | 4 ++-- src/pretix/api/serializers/checkin.py | 4 ++-- src/pretix/api/serializers/discount.py | 4 ++-- src/pretix/api/serializers/event.py | 4 ++-- src/pretix/api/serializers/exporters.py | 4 ++-- src/pretix/api/serializers/fields.py | 4 ++-- src/pretix/api/serializers/forms.py | 4 ++-- src/pretix/api/serializers/i18n.py | 4 ++-- src/pretix/api/serializers/item.py | 4 ++-- src/pretix/api/serializers/media.py | 4 ++-- src/pretix/api/serializers/order.py | 4 ++-- src/pretix/api/serializers/orderchange.py | 4 ++-- src/pretix/api/serializers/organizer.py | 4 ++-- src/pretix/api/serializers/settings.py | 4 ++-- src/pretix/api/serializers/shredders.py | 4 ++-- src/pretix/api/serializers/voucher.py | 4 ++-- src/pretix/api/serializers/waitinglist.py | 4 ++-- src/pretix/api/serializers/webhooks.py | 4 ++-- src/pretix/api/signals.py | 4 ++-- src/pretix/api/urls.py | 4 ++-- src/pretix/api/views/__init__.py | 4 ++-- src/pretix/api/views/cart.py | 4 ++-- src/pretix/api/views/checkin.py | 4 ++-- src/pretix/api/views/device.py | 4 ++-- src/pretix/api/views/discount.py | 4 ++-- src/pretix/api/views/event.py | 4 ++-- src/pretix/api/views/exporters.py | 4 ++-- src/pretix/api/views/idempotency.py | 4 ++-- src/pretix/api/views/item.py | 4 ++-- src/pretix/api/views/media.py | 4 ++-- src/pretix/api/views/oauth.py | 4 ++-- src/pretix/api/views/order.py | 4 ++-- src/pretix/api/views/organizer.py | 4 ++-- src/pretix/api/views/shredders.py | 4 ++-- src/pretix/api/views/upload.py | 4 ++-- src/pretix/api/views/user.py | 4 ++-- src/pretix/api/views/version.py | 4 ++-- src/pretix/api/views/voucher.py | 4 ++-- src/pretix/api/views/waitinglist.py | 4 ++-- src/pretix/api/views/webhooks.py | 4 ++-- src/pretix/api/webhooks.py | 4 ++-- src/pretix/base/__init__.py | 4 ++-- src/pretix/base/addressvalidation.py | 4 ++-- src/pretix/base/apps.py | 4 ++-- src/pretix/base/auth.py | 4 ++-- src/pretix/base/banlist.py | 4 ++-- src/pretix/base/cache.py | 4 ++-- src/pretix/base/channels.py | 4 ++-- src/pretix/base/context.py | 4 ++-- src/pretix/base/customersso/__init__.py | 4 ++-- src/pretix/base/customersso/oidc.py | 4 ++-- src/pretix/base/datasync/__init__.py | 4 ++-- src/pretix/base/datasync/datasync.py | 4 ++-- src/pretix/base/datasync/sourcefields.py | 4 ++-- src/pretix/base/datasync/utils.py | 4 ++-- src/pretix/base/decimal.py | 4 ++-- src/pretix/base/email.py | 4 ++-- src/pretix/base/exporter.py | 4 ++-- src/pretix/base/exporters/__init__.py | 4 ++-- src/pretix/base/exporters/answers.py | 4 ++-- src/pretix/base/exporters/customers.py | 4 ++-- src/pretix/base/exporters/dekodi.py | 4 ++-- src/pretix/base/exporters/events.py | 4 ++-- src/pretix/base/exporters/invoices.py | 4 ++-- src/pretix/base/exporters/items.py | 4 ++-- src/pretix/base/exporters/json.py | 4 ++-- src/pretix/base/exporters/mail.py | 4 ++-- src/pretix/base/exporters/orderlist.py | 4 ++-- src/pretix/base/exporters/reusablemedia.py | 4 ++-- src/pretix/base/exporters/waitinglist.py | 4 ++-- src/pretix/base/forms/__init__.py | 4 ++-- src/pretix/base/forms/auth.py | 4 ++-- src/pretix/base/forms/questions.py | 4 ++-- src/pretix/base/forms/user.py | 4 ++-- src/pretix/base/forms/validators.py | 4 ++-- src/pretix/base/forms/widgets.py | 4 ++-- src/pretix/base/i18n.py | 4 ++-- src/pretix/base/invoice.py | 4 ++-- src/pretix/base/invoicing/__init__.py | 4 ++-- src/pretix/base/invoicing/email.py | 4 ++-- src/pretix/base/invoicing/national.py | 4 ++-- src/pretix/base/invoicing/pdf.py | 4 ++-- src/pretix/base/invoicing/peppol.py | 4 ++-- src/pretix/base/invoicing/transmission.py | 4 ++-- src/pretix/base/logentrytype_registry.py | 4 ++-- src/pretix/base/logentrytypes.py | 4 ++-- src/pretix/base/management/__init__.py | 4 ++-- src/pretix/base/management/commands/__init__.py | 4 ++-- src/pretix/base/management/commands/_migrations.py | 4 ++-- .../base/management/commands/check_order_transactions.py | 4 ++-- .../base/management/commands/create_order_transactions.py | 4 ++-- src/pretix/base/management/commands/export.py | 4 ++-- src/pretix/base/management/commands/makemessages.py | 4 ++-- src/pretix/base/management/commands/makemigrations.py | 4 ++-- src/pretix/base/management/commands/migrate.py | 4 ++-- src/pretix/base/management/commands/rebuild.py | 4 ++-- src/pretix/base/management/commands/runperiodic.py | 4 ++-- src/pretix/base/management/commands/shell_scoped.py | 4 ++-- src/pretix/base/media.py | 4 ++-- src/pretix/base/metrics.py | 4 ++-- src/pretix/base/middleware.py | 4 ++-- src/pretix/base/modelimport.py | 4 ++-- src/pretix/base/modelimport_orders.py | 4 ++-- src/pretix/base/modelimport_vouchers.py | 4 ++-- src/pretix/base/models/__init__.py | 4 ++-- src/pretix/base/models/_transactions.py | 4 ++-- src/pretix/base/models/auth.py | 4 ++-- src/pretix/base/models/base.py | 4 ++-- src/pretix/base/models/checkin.py | 4 ++-- src/pretix/base/models/currencies.py | 4 ++-- src/pretix/base/models/customers.py | 4 ++-- src/pretix/base/models/datasync.py | 4 ++-- src/pretix/base/models/devices.py | 4 ++-- src/pretix/base/models/discount.py | 4 ++-- src/pretix/base/models/event.py | 4 ++-- src/pretix/base/models/exports.py | 4 ++-- src/pretix/base/models/fields.py | 4 ++-- src/pretix/base/models/giftcards.py | 4 ++-- src/pretix/base/models/invoices.py | 4 ++-- src/pretix/base/models/items.py | 4 ++-- src/pretix/base/models/log.py | 4 ++-- src/pretix/base/models/media.py | 4 ++-- src/pretix/base/models/memberships.py | 4 ++-- src/pretix/base/models/notifications.py | 4 ++-- src/pretix/base/models/orders.py | 4 ++-- src/pretix/base/models/organizer.py | 4 ++-- src/pretix/base/models/seating.py | 4 ++-- src/pretix/base/models/tax.py | 4 ++-- src/pretix/base/models/vouchers.py | 4 ++-- src/pretix/base/models/waitinglist.py | 4 ++-- src/pretix/base/notifications.py | 4 ++-- src/pretix/base/payment.py | 4 ++-- src/pretix/base/pdf.py | 4 ++-- src/pretix/base/plugins.py | 4 ++-- src/pretix/base/reldate.py | 4 ++-- src/pretix/base/secretgenerators/__init__.py | 4 ++-- src/pretix/base/secretgenerators/pretix_sig1_pb2.py | 4 ++-- src/pretix/base/secrets.py | 4 ++-- src/pretix/base/services/__init__.py | 4 ++-- src/pretix/base/services/auth.py | 4 ++-- src/pretix/base/services/cancelevent.py | 4 ++-- src/pretix/base/services/cart.py | 4 ++-- src/pretix/base/services/checkin.py | 4 ++-- src/pretix/base/services/cleanup.py | 4 ++-- src/pretix/base/services/cross_selling.py | 4 ++-- src/pretix/base/services/currencies.py | 4 ++-- src/pretix/base/services/datasync.py | 4 ++-- src/pretix/base/services/export.py | 4 ++-- src/pretix/base/services/invoices.py | 4 ++-- src/pretix/base/services/locking.py | 4 ++-- src/pretix/base/services/mail.py | 4 ++-- src/pretix/base/services/media.py | 4 ++-- src/pretix/base/services/memberships.py | 4 ++-- src/pretix/base/services/modelimport.py | 4 ++-- src/pretix/base/services/notifications.py | 4 ++-- src/pretix/base/services/orders.py | 4 ++-- src/pretix/base/services/placeholders.py | 4 ++-- src/pretix/base/services/pricing.py | 4 ++-- src/pretix/base/services/quotas.py | 4 ++-- src/pretix/base/services/seating.py | 4 ++-- src/pretix/base/services/shredder.py | 4 ++-- src/pretix/base/services/stats.py | 4 ++-- src/pretix/base/services/tasks.py | 4 ++-- src/pretix/base/services/tax.py | 4 ++-- src/pretix/base/services/tickets.py | 4 ++-- src/pretix/base/services/update_check.py | 4 ++-- src/pretix/base/services/vouchers.py | 4 ++-- src/pretix/base/services/waitinglist.py | 4 ++-- src/pretix/base/settings.py | 4 ++-- src/pretix/base/shredder.py | 4 ++-- src/pretix/base/signals.py | 4 ++-- src/pretix/base/templatetags/__init__.py | 4 ++-- src/pretix/base/templatetags/cache_large.py | 4 ++-- src/pretix/base/templatetags/calendarhead.py | 4 ++-- src/pretix/base/templatetags/classname.py | 4 ++-- src/pretix/base/templatetags/daterange.py | 4 ++-- src/pretix/base/templatetags/dialog.py | 4 ++-- src/pretix/base/templatetags/escapejson.py | 4 ++-- src/pretix/base/templatetags/eventsignal.py | 4 ++-- src/pretix/base/templatetags/icon.py | 4 ++-- src/pretix/base/templatetags/lists.py | 4 ++-- src/pretix/base/templatetags/money.py | 4 ++-- src/pretix/base/templatetags/oneline.py | 4 ++-- src/pretix/base/templatetags/phone_format.py | 4 ++-- src/pretix/base/templatetags/rich_text.py | 4 ++-- src/pretix/base/templatetags/safelink.py | 4 ++-- src/pretix/base/templatetags/textbubble.py | 4 ++-- src/pretix/base/templatetags/unidecode.py | 4 ++-- src/pretix/base/templatetags/urlreplace.py | 4 ++-- src/pretix/base/ticketoutput.py | 4 ++-- src/pretix/base/timeframes.py | 4 ++-- src/pretix/base/timeline.py | 4 ++-- src/pretix/base/timemachine.py | 4 ++-- src/pretix/base/validators.py | 4 ++-- src/pretix/base/views/__init__.py | 4 ++-- src/pretix/base/views/applepay.py | 4 ++-- src/pretix/base/views/cachedfiles.py | 4 ++-- src/pretix/base/views/csp.py | 4 ++-- src/pretix/base/views/errors.py | 4 ++-- src/pretix/base/views/health.py | 4 ++-- src/pretix/base/views/js_catalog.py | 4 ++-- src/pretix/base/views/js_helpers.py | 4 ++-- src/pretix/base/views/metrics.py | 4 ++-- src/pretix/base/views/mixins.py | 4 ++-- src/pretix/base/views/redirect.py | 4 ++-- src/pretix/base/views/source.py | 4 ++-- src/pretix/base/views/tasks.py | 4 ++-- src/pretix/base/views/webmanifest.py | 4 ++-- src/pretix/celery_app.py | 4 ++-- src/pretix/control/__init__.py | 4 ++-- src/pretix/control/apps.py | 4 ++-- src/pretix/control/context.py | 4 ++-- src/pretix/control/forms/__init__.py | 4 ++-- src/pretix/control/forms/checkin.py | 4 ++-- src/pretix/control/forms/discounts.py | 4 ++-- src/pretix/control/forms/event.py | 4 ++-- src/pretix/control/forms/exports.py | 4 ++-- src/pretix/control/forms/filter.py | 4 ++-- src/pretix/control/forms/global_settings.py | 4 ++-- src/pretix/control/forms/item.py | 4 ++-- src/pretix/control/forms/mailsetup.py | 4 ++-- src/pretix/control/forms/mapping.py | 4 ++-- src/pretix/control/forms/modelimport.py | 4 ++-- src/pretix/control/forms/orders.py | 4 ++-- src/pretix/control/forms/organizer.py | 4 ++-- src/pretix/control/forms/renderers.py | 4 ++-- src/pretix/control/forms/rrule.py | 4 ++-- src/pretix/control/forms/subevents.py | 4 ++-- src/pretix/control/forms/users.py | 4 ++-- src/pretix/control/forms/vouchers.py | 4 ++-- src/pretix/control/forms/waitinglist.py | 4 ++-- src/pretix/control/forms/widgets.py | 4 ++-- src/pretix/control/logdisplay.py | 4 ++-- src/pretix/control/middleware.py | 4 ++-- src/pretix/control/navigation.py | 4 ++-- src/pretix/control/permissions.py | 4 ++-- src/pretix/control/signals.py | 4 ++-- src/pretix/control/sysreport.py | 4 ++-- src/pretix/control/templatetags/__init__.py | 4 ++-- src/pretix/control/templatetags/getitem.py | 4 ++-- src/pretix/control/templatetags/hierarkey_form.py | 4 ++-- src/pretix/control/templatetags/mail_settings_preview.py | 4 ++-- src/pretix/control/templatetags/order_overview.py | 4 ++-- src/pretix/control/urls.py | 4 ++-- src/pretix/control/views/__init__.py | 4 ++-- src/pretix/control/views/auth.py | 4 ++-- src/pretix/control/views/checkin.py | 4 ++-- src/pretix/control/views/dashboards.py | 4 ++-- src/pretix/control/views/datasync.py | 4 ++-- src/pretix/control/views/discounts.py | 4 ++-- src/pretix/control/views/event.py | 4 ++-- src/pretix/control/views/geo.py | 4 ++-- src/pretix/control/views/global_settings.py | 4 ++-- src/pretix/control/views/item.py | 4 ++-- src/pretix/control/views/mailsetup.py | 4 ++-- src/pretix/control/views/main.py | 4 ++-- src/pretix/control/views/modelimport.py | 4 ++-- src/pretix/control/views/oauth.py | 4 ++-- src/pretix/control/views/orders.py | 4 ++-- src/pretix/control/views/organizer.py | 4 ++-- src/pretix/control/views/pdf.py | 4 ++-- src/pretix/control/views/search.py | 4 ++-- src/pretix/control/views/shredder.py | 4 ++-- src/pretix/control/views/subevents.py | 4 ++-- src/pretix/control/views/typeahead.py | 4 ++-- src/pretix/control/views/user.py | 4 ++-- src/pretix/control/views/users.py | 4 ++-- src/pretix/control/views/vouchers.py | 4 ++-- src/pretix/control/views/waitinglist.py | 4 ++-- src/pretix/helpers/__init__.py | 4 ++-- src/pretix/helpers/apps.py | 4 ++-- src/pretix/helpers/cache.py | 4 ++-- src/pretix/helpers/compat.py | 4 ++-- src/pretix/helpers/compressor.py | 4 ++-- src/pretix/helpers/config.py | 4 ++-- src/pretix/helpers/cookies.py | 4 ++-- src/pretix/helpers/countries.py | 4 ++-- src/pretix/helpers/database.py | 4 ++-- src/pretix/helpers/daterange.py | 4 ++-- src/pretix/helpers/dicts.py | 4 ++-- src/pretix/helpers/escapejson.py | 4 ++-- src/pretix/helpers/filenames.py | 4 ++-- src/pretix/helpers/format.py | 4 ++-- src/pretix/helpers/formats/__init__.py | 4 ++-- src/pretix/helpers/formats/ar/__init__.py | 4 ++-- src/pretix/helpers/formats/ar/formats.py | 4 ++-- src/pretix/helpers/formats/de/__init__.py | 4 ++-- src/pretix/helpers/formats/de/formats.py | 4 ++-- src/pretix/helpers/formats/el/__init__.py | 4 ++-- src/pretix/helpers/formats/el/formats.py | 4 ++-- src/pretix/helpers/formats/en/__init__.py | 4 ++-- src/pretix/helpers/formats/en/formats.py | 4 ++-- src/pretix/helpers/formats/en_CA/__init__.py | 4 ++-- src/pretix/helpers/formats/en_CA/formats.py | 4 ++-- src/pretix/helpers/formats/en_NZ/__init__.py | 4 ++-- src/pretix/helpers/formats/en_NZ/formats.py | 4 ++-- src/pretix/helpers/formats/en_US/__init__.py | 4 ++-- src/pretix/helpers/formats/en_US/formats.py | 4 ++-- src/pretix/helpers/formats/fr/__init__.py | 4 ++-- src/pretix/helpers/formats/fr/formats.py | 4 ++-- src/pretix/helpers/hierarkey.py | 4 ++-- src/pretix/helpers/http.py | 4 ++-- src/pretix/helpers/i18n.py | 4 ++-- src/pretix/helpers/images.py | 4 ++-- src/pretix/helpers/iter.py | 4 ++-- src/pretix/helpers/json.py | 4 ++-- src/pretix/helpers/jsonlogic.py | 4 ++-- src/pretix/helpers/jsonlogic_boolalg.py | 4 ++-- src/pretix/helpers/jsonlogic_query.py | 4 ++-- src/pretix/helpers/logs.py | 4 ++-- src/pretix/helpers/metrics/__init__.py | 4 ++-- src/pretix/helpers/metrics/middleware.py | 4 ++-- src/pretix/helpers/models.py | 4 ++-- src/pretix/helpers/money.py | 4 ++-- src/pretix/helpers/monkeypatching.py | 4 ++-- src/pretix/helpers/names.py | 4 ++-- src/pretix/helpers/periodic.py | 4 ++-- src/pretix/helpers/profile/__init__.py | 4 ++-- src/pretix/helpers/profile/middleware.py | 4 ++-- src/pretix/helpers/reportlab.py | 4 ++-- src/pretix/helpers/safe_openpyxl.py | 4 ++-- src/pretix/helpers/safedownload.py | 4 ++-- src/pretix/helpers/security.py | 4 ++-- src/pretix/helpers/template_loaders.py | 4 ++-- src/pretix/helpers/templatetags/__init__.py | 4 ++-- src/pretix/helpers/templatetags/captureas.py | 4 ++-- src/pretix/helpers/templatetags/date_fast.py | 4 ++-- src/pretix/helpers/templatetags/expiresformat.py | 4 ++-- src/pretix/helpers/templatetags/jsonfield.py | 4 ++-- src/pretix/helpers/templatetags/simple_block_tag.py | 4 ++-- src/pretix/helpers/templatetags/thumb.py | 4 ++-- src/pretix/helpers/thumb.py | 4 ++-- src/pretix/helpers/u2f.py | 4 ++-- src/pretix/helpers/urls.py | 4 ++-- src/pretix/multidomain/__init__.py | 4 ++-- src/pretix/multidomain/apps.py | 4 ++-- src/pretix/multidomain/event_domain_urlconf.py | 4 ++-- src/pretix/multidomain/maindomain_urlconf.py | 4 ++-- src/pretix/multidomain/middlewares.py | 4 ++-- src/pretix/multidomain/models.py | 4 ++-- .../multidomain/organizer_alternative_domain_urlconf.py | 4 ++-- src/pretix/multidomain/organizer_domain_urlconf.py | 4 ++-- src/pretix/multidomain/plugin_handler.py | 4 ++-- src/pretix/multidomain/templatetags/__init__.py | 4 ++-- src/pretix/multidomain/templatetags/eventurl.py | 4 ++-- src/pretix/multidomain/urlreverse.py | 4 ++-- src/pretix/multidomain/utils.py | 4 ++-- src/pretix/plugins/__init__.py | 4 ++-- src/pretix/plugins/autocheckin/__init__.py | 4 ++-- src/pretix/plugins/autocheckin/api.py | 4 ++-- src/pretix/plugins/autocheckin/apps.py | 4 ++-- src/pretix/plugins/autocheckin/forms.py | 4 ++-- src/pretix/plugins/autocheckin/models.py | 4 ++-- src/pretix/plugins/autocheckin/signals.py | 4 ++-- src/pretix/plugins/autocheckin/urls.py | 4 ++-- src/pretix/plugins/autocheckin/views.py | 4 ++-- src/pretix/plugins/badges/__init__.py | 4 ++-- src/pretix/plugins/badges/api.py | 4 ++-- src/pretix/plugins/badges/apps.py | 4 ++-- src/pretix/plugins/badges/exporters.py | 4 ++-- src/pretix/plugins/badges/forms.py | 4 ++-- src/pretix/plugins/badges/models.py | 4 ++-- src/pretix/plugins/badges/signals.py | 4 ++-- src/pretix/plugins/badges/tasks.py | 4 ++-- src/pretix/plugins/badges/templates.py | 4 ++-- src/pretix/plugins/badges/urls.py | 4 ++-- src/pretix/plugins/badges/views.py | 4 ++-- src/pretix/plugins/banktransfer/__init__.py | 4 ++-- src/pretix/plugins/banktransfer/api.py | 4 ++-- src/pretix/plugins/banktransfer/apps.py | 4 ++-- src/pretix/plugins/banktransfer/csvimport.py | 4 ++-- src/pretix/plugins/banktransfer/models.py | 4 ++-- src/pretix/plugins/banktransfer/mt940import.py | 4 ++-- src/pretix/plugins/banktransfer/payment.py | 4 ++-- src/pretix/plugins/banktransfer/refund_export.py | 4 ++-- src/pretix/plugins/banktransfer/signals.py | 4 ++-- src/pretix/plugins/banktransfer/tasks.py | 4 ++-- src/pretix/plugins/banktransfer/templatetags/__init__.py | 4 ++-- src/pretix/plugins/banktransfer/templatetags/commadecimal.py | 4 ++-- src/pretix/plugins/banktransfer/templatetags/dotdecimal.py | 4 ++-- src/pretix/plugins/banktransfer/templatetags/ibanformat.py | 4 ++-- src/pretix/plugins/banktransfer/urls.py | 4 ++-- src/pretix/plugins/banktransfer/views.py | 4 ++-- src/pretix/plugins/checkinlists/__init__.py | 4 ++-- src/pretix/plugins/checkinlists/apps.py | 4 ++-- src/pretix/plugins/checkinlists/exporters.py | 4 ++-- src/pretix/plugins/checkinlists/signals.py | 4 ++-- src/pretix/plugins/manualpayment/__init__.py | 4 ++-- src/pretix/plugins/manualpayment/apps.py | 4 ++-- src/pretix/plugins/paypal/__init__.py | 4 ++-- src/pretix/plugins/paypal/api.py | 4 ++-- src/pretix/plugins/paypal/apps.py | 4 ++-- src/pretix/plugins/paypal/models.py | 4 ++-- src/pretix/plugins/paypal/payment.py | 4 ++-- src/pretix/plugins/paypal/signals.py | 4 ++-- src/pretix/plugins/paypal/urls.py | 4 ++-- src/pretix/plugins/paypal/views.py | 4 ++-- src/pretix/plugins/paypal2/__init__.py | 4 ++-- src/pretix/plugins/paypal2/apps.py | 4 ++-- src/pretix/plugins/paypal2/client/__init__.py | 4 ++-- src/pretix/plugins/paypal2/client/core/__init__.py | 4 ++-- src/pretix/plugins/paypal2/client/core/environment.py | 4 ++-- src/pretix/plugins/paypal2/client/core/paypal_http_client.py | 4 ++-- src/pretix/plugins/paypal2/client/customer/__init__.py | 4 ++-- .../client/customer/partner_referral_create_request.py | 4 ++-- .../customer/partners_merchantintegrations_get_request.py | 4 ++-- src/pretix/plugins/paypal2/payment.py | 4 ++-- src/pretix/plugins/paypal2/signals.py | 4 ++-- src/pretix/plugins/paypal2/urls.py | 4 ++-- src/pretix/plugins/paypal2/views.py | 4 ++-- src/pretix/plugins/pretixdroid/__init__.py | 4 ++-- src/pretix/plugins/pretixdroid/apps.py | 4 ++-- src/pretix/plugins/reports/__init__.py | 4 ++-- src/pretix/plugins/reports/accountingreport.py | 4 ++-- src/pretix/plugins/reports/apps.py | 4 ++-- src/pretix/plugins/reports/exporters.py | 4 ++-- src/pretix/plugins/reports/signals.py | 4 ++-- src/pretix/plugins/returnurl/__init__.py | 4 ++-- src/pretix/plugins/returnurl/apps.py | 4 ++-- src/pretix/plugins/returnurl/signals.py | 4 ++-- src/pretix/plugins/returnurl/urls.py | 4 ++-- src/pretix/plugins/returnurl/views.py | 4 ++-- src/pretix/plugins/sendmail/__init__.py | 4 ++-- src/pretix/plugins/sendmail/api.py | 4 ++-- src/pretix/plugins/sendmail/apps.py | 4 ++-- src/pretix/plugins/sendmail/forms.py | 4 ++-- src/pretix/plugins/sendmail/models.py | 4 ++-- src/pretix/plugins/sendmail/signals.py | 4 ++-- src/pretix/plugins/sendmail/tasks.py | 4 ++-- src/pretix/plugins/sendmail/urls.py | 4 ++-- src/pretix/plugins/sendmail/views.py | 4 ++-- src/pretix/plugins/statistics/__init__.py | 4 ++-- src/pretix/plugins/statistics/apps.py | 4 ++-- src/pretix/plugins/statistics/signals.py | 4 ++-- src/pretix/plugins/statistics/urls.py | 4 ++-- src/pretix/plugins/statistics/views.py | 4 ++-- src/pretix/plugins/stripe/__init__.py | 4 ++-- src/pretix/plugins/stripe/apps.py | 4 ++-- src/pretix/plugins/stripe/forms.py | 4 ++-- src/pretix/plugins/stripe/management/__init__.py | 4 ++-- src/pretix/plugins/stripe/management/commands/__init__.py | 4 ++-- .../management/commands/stripe_connect_fill_countries.py | 4 ++-- src/pretix/plugins/stripe/models.py | 4 ++-- src/pretix/plugins/stripe/payment.py | 4 ++-- src/pretix/plugins/stripe/signals.py | 4 ++-- src/pretix/plugins/stripe/tasks.py | 4 ++-- src/pretix/plugins/stripe/urls.py | 4 ++-- src/pretix/plugins/stripe/utils.py | 4 ++-- src/pretix/plugins/stripe/views.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/__init__.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/api.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/apps.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/exporters.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/forms.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/models.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/signals.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/tasks.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/ticketoutput.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/urls.py | 4 ++-- src/pretix/plugins/ticketoutputpdf/views.py | 4 ++-- src/pretix/plugins/webcheckin/__init__.py | 4 ++-- src/pretix/plugins/webcheckin/apps.py | 4 ++-- src/pretix/plugins/webcheckin/signals.py | 4 ++-- src/pretix/plugins/webcheckin/urls.py | 4 ++-- src/pretix/plugins/webcheckin/views.py | 4 ++-- src/pretix/presale/__init__.py | 4 ++-- src/pretix/presale/apps.py | 4 ++-- src/pretix/presale/checkoutflow.py | 4 ++-- src/pretix/presale/context.py | 4 ++-- src/pretix/presale/cookies.py | 4 ++-- src/pretix/presale/forms/__init__.py | 4 ++-- src/pretix/presale/forms/checkout.py | 4 ++-- src/pretix/presale/forms/customer.py | 4 ++-- src/pretix/presale/forms/order.py | 4 ++-- src/pretix/presale/forms/organizer.py | 4 ++-- src/pretix/presale/forms/renderers.py | 4 ++-- src/pretix/presale/forms/user.py | 4 ++-- src/pretix/presale/forms/waitinglist.py | 4 ++-- src/pretix/presale/ical.py | 4 ++-- src/pretix/presale/management/__init__.py | 4 ++-- src/pretix/presale/management/commands/__init__.py | 4 ++-- src/pretix/presale/management/commands/updateassets.py | 4 ++-- src/pretix/presale/management/commands/updatestyles.py | 4 ++-- src/pretix/presale/middleware.py | 4 ++-- src/pretix/presale/signals.py | 4 ++-- src/pretix/presale/style.py | 4 ++-- src/pretix/presale/urls.py | 4 ++-- src/pretix/presale/utils.py | 4 ++-- src/pretix/presale/views/__init__.py | 4 ++-- src/pretix/presale/views/cart.py | 4 ++-- src/pretix/presale/views/checkout.py | 4 ++-- src/pretix/presale/views/customer.py | 4 ++-- src/pretix/presale/views/event.py | 4 ++-- src/pretix/presale/views/locale.py | 4 ++-- src/pretix/presale/views/oidc_op.py | 4 ++-- src/pretix/presale/views/order.py | 4 ++-- src/pretix/presale/views/organizer.py | 4 ++-- src/pretix/presale/views/questions.py | 4 ++-- src/pretix/presale/views/robots.py | 4 ++-- src/pretix/presale/views/theme.py | 4 ++-- src/pretix/presale/views/user.py | 4 ++-- src/pretix/presale/views/waiting.py | 4 ++-- src/pretix/presale/views/widget.py | 4 ++-- src/pretix/sentry.py | 4 ++-- src/pretix/settings.py | 4 ++-- src/pretix/testutils/__init__.py | 4 ++-- src/pretix/testutils/api.py | 4 ++-- src/pretix/testutils/mail.py | 4 ++-- src/pretix/testutils/middleware.py | 4 ++-- src/pretix/testutils/mock.py | 4 ++-- src/pretix/testutils/queries.py | 4 ++-- src/pretix/testutils/scope.py | 4 ++-- src/pretix/testutils/sessions.py | 4 ++-- src/pretix/testutils/settings.py | 4 ++-- src/pretix/urls.py | 4 ++-- src/pretix/wsgi.py | 4 ++-- src/tests/__init__.py | 4 ++-- src/tests/api/__init__.py | 4 ++-- src/tests/api/conftest.py | 4 ++-- src/tests/api/test_append_slash.py | 4 ++-- src/tests/api/test_auth.py | 4 ++-- src/tests/api/test_cart.py | 4 ++-- src/tests/api/test_checkin.py | 4 ++-- src/tests/api/test_checkinrpc.py | 4 ++-- src/tests/api/test_customers.py | 4 ++-- src/tests/api/test_device_event_selection.py | 4 ++-- src/tests/api/test_deviceauth.py | 4 ++-- src/tests/api/test_devices.py | 4 ++-- src/tests/api/test_discounts.py | 4 ++-- src/tests/api/test_events.py | 4 ++-- src/tests/api/test_exporters.py | 4 ++-- src/tests/api/test_giftcards.py | 4 ++-- src/tests/api/test_idempotency.py | 4 ++-- src/tests/api/test_invoices.py | 4 ++-- src/tests/api/test_item_meta_properties.py | 4 ++-- src/tests/api/test_items.py | 4 ++-- src/tests/api/test_membership.py | 4 ++-- src/tests/api/test_membershiptypes.py | 4 ++-- src/tests/api/test_oauth.py | 4 ++-- src/tests/api/test_order_change.py | 4 ++-- src/tests/api/test_order_create.py | 4 ++-- src/tests/api/test_orders.py | 4 ++-- src/tests/api/test_organizers.py | 4 ++-- src/tests/api/test_permissions.py | 4 ++-- src/tests/api/test_reusable_media.py | 4 ++-- src/tests/api/test_saleschannels.py | 4 ++-- src/tests/api/test_seatingplans.py | 4 ++-- src/tests/api/test_sendmail.py | 4 ++-- src/tests/api/test_shredders.py | 4 ++-- src/tests/api/test_subevents.py | 4 ++-- src/tests/api/test_taxrules.py | 4 ++-- src/tests/api/test_teams.py | 4 ++-- src/tests/api/test_transactions.py | 4 ++-- src/tests/api/test_upload.py | 4 ++-- src/tests/api/test_vouchers.py | 4 ++-- src/tests/api/test_waitinglist.py | 4 ++-- src/tests/api/test_webhooks.py | 4 ++-- src/tests/base/__init__.py | 4 ++-- src/tests/base/test_addressvalidation.py | 4 ++-- src/tests/base/test_cache.py | 4 ++-- src/tests/base/test_cancelevent.py | 4 ++-- src/tests/base/test_checkin.py | 4 ++-- src/tests/base/test_cross_selling.py | 4 ++-- src/tests/base/test_customer_oidc_rp.py | 4 ++-- src/tests/base/test_datasync.py | 4 ++-- src/tests/base/test_event_clone.py | 4 ++-- src/tests/base/test_export.py | 4 ++-- src/tests/base/test_i18n.py | 4 ++-- src/tests/base/test_invoices.py | 4 ++-- src/tests/base/test_item_validity.py | 4 ++-- src/tests/base/test_js_helpers.py | 4 ++-- src/tests/base/test_mail.py | 4 ++-- src/tests/base/test_memberships.py | 4 ++-- src/tests/base/test_metrics.py | 4 ++-- src/tests/base/test_middleware.py | 4 ++-- src/tests/base/test_modelimport_orders.py | 4 ++-- src/tests/base/test_modelimport_vouchers.py | 4 ++-- src/tests/base/test_models.py | 4 ++-- src/tests/base/test_notifications.py | 4 ++-- src/tests/base/test_orders.py | 4 ++-- src/tests/base/test_ordersecrets.py | 4 ++-- src/tests/base/test_payment.py | 4 ++-- src/tests/base/test_permissions.py | 4 ++-- src/tests/base/test_plugins.py | 4 ++-- src/tests/base/test_pricing.py | 4 ++-- src/tests/base/test_pricing_discount.py | 4 ++-- src/tests/base/test_questions.py | 4 ++-- src/tests/base/test_registry.py | 4 ++-- src/tests/base/test_reldate.py | 4 ++-- src/tests/base/test_rich_text.py | 4 ++-- src/tests/base/test_runperiodic.py | 4 ++-- src/tests/base/test_secrets.py | 4 ++-- src/tests/base/test_settings.py | 4 ++-- src/tests/base/test_shredders.py | 4 ++-- src/tests/base/test_taxrules.py | 4 ++-- src/tests/base/test_templatetag.py | 4 ++-- src/tests/base/test_timeframes.py | 4 ++-- src/tests/base/test_timeline.py | 4 ++-- src/tests/base/test_updatecheck.py | 4 ++-- src/tests/base/test_urls.py | 4 ++-- src/tests/base/test_vat_id_validation.py | 4 ++-- src/tests/base/test_waitinglist.py | 4 ++-- src/tests/base/test_webhooks.py | 4 ++-- src/tests/concurrency_tests/__init__.py | 4 ++-- src/tests/concurrency_tests/conftest.py | 4 ++-- src/tests/concurrency_tests/test_api_order_creation_code.py | 4 ++-- src/tests/concurrency_tests/test_cart_creation_locking.py | 4 ++-- src/tests/concurrency_tests/test_order_creation_locking.py | 4 ++-- src/tests/concurrency_tests/test_order_paid_locking.py | 4 ++-- src/tests/concurrency_tests/utils.py | 4 ++-- src/tests/conftest.py | 4 ++-- src/tests/const.py | 4 ++-- src/tests/control/__init__.py | 4 ++-- src/tests/control/test_auth.py | 4 ++-- src/tests/control/test_checkins.py | 4 ++-- src/tests/control/test_customer.py | 4 ++-- src/tests/control/test_devices.py | 4 ++-- src/tests/control/test_events.py | 4 ++-- src/tests/control/test_export.py | 4 ++-- src/tests/control/test_giftcards.py | 4 ++-- src/tests/control/test_items.py | 4 ++-- src/tests/control/test_mail_settings_preview.py | 4 ++-- src/tests/control/test_modelimport.py | 4 ++-- src/tests/control/test_orders.py | 4 ++-- src/tests/control/test_orders_bulk.py | 4 ++-- src/tests/control/test_organizer.py | 4 ++-- src/tests/control/test_permissions.py | 4 ++-- src/tests/control/test_reusable_media.py | 4 ++-- src/tests/control/test_search.py | 4 ++-- src/tests/control/test_shredders.py | 4 ++-- src/tests/control/test_subevents.py | 4 ++-- src/tests/control/test_taxrates.py | 4 ++-- src/tests/control/test_teams.py | 4 ++-- src/tests/control/test_updatecheck.py | 4 ++-- src/tests/control/test_user.py | 4 ++-- src/tests/control/test_views.py | 4 ++-- src/tests/control/test_vouchers.py | 4 ++-- src/tests/control/test_waitinglist.py | 4 ++-- src/tests/control/test_webhooks.py | 4 ++-- src/tests/doc/__init__.py | 4 ++-- src/tests/doc/test_signals.py | 4 ++-- src/tests/helpers/__init__.py | 4 ++-- src/tests/helpers/test_daterange.py | 4 ++-- src/tests/helpers/test_format.py | 4 ++-- src/tests/helpers/test_i18n.py | 4 ++-- src/tests/helpers/test_jsonlogic.py | 4 ++-- src/tests/helpers/test_jsonlogic_boolalg.py | 4 ++-- src/tests/helpers/test_safe_openpyxl.py | 4 ++-- src/tests/helpers/test_thumb.py | 4 ++-- src/tests/helpers/test_urls.py | 4 ++-- src/tests/multidomain/__init__.py | 4 ++-- src/tests/multidomain/test_middlewares.py | 4 ++-- src/tests/multidomain/test_plugin_handler.py | 4 ++-- src/tests/multidomain/test_templatetag.py | 4 ++-- src/tests/multidomain/test_urlreverse.py | 4 ++-- src/tests/plugins/__init__.py | 4 ++-- src/tests/plugins/autocheckin/__init__.py | 4 ++-- src/tests/plugins/autocheckin/conftest.py | 4 ++-- src/tests/plugins/autocheckin/test_api.py | 4 ++-- src/tests/plugins/autocheckin/test_checkin.py | 4 ++-- src/tests/plugins/autocheckin/test_control.py | 4 ++-- src/tests/plugins/badges/__init__.py | 4 ++-- src/tests/plugins/badges/test_api.py | 4 ++-- src/tests/plugins/badges/test_control.py | 4 ++-- src/tests/plugins/badges/test_pdf.py | 4 ++-- src/tests/plugins/banktransfer/__init__.py | 4 ++-- src/tests/plugins/banktransfer/test_actions.py | 4 ++-- src/tests/plugins/banktransfer/test_api.py | 4 ++-- src/tests/plugins/banktransfer/test_csvparser.py | 4 ++-- src/tests/plugins/banktransfer/test_import.py | 4 ++-- src/tests/plugins/banktransfer/test_mt940.py | 4 ++-- src/tests/plugins/banktransfer/test_parsing.py | 4 ++-- src/tests/plugins/banktransfer/test_refund.py | 4 ++-- src/tests/plugins/banktransfer/test_refund_export.py | 4 ++-- src/tests/plugins/paypal/__init__.py | 4 ++-- src/tests/plugins/paypal/test_checkout.py | 4 ++-- src/tests/plugins/paypal/test_settings.py | 4 ++-- src/tests/plugins/paypal/test_webhook.py | 4 ++-- src/tests/plugins/paypal2/__init__.py | 4 ++-- src/tests/plugins/paypal2/test_checkout.py | 4 ++-- src/tests/plugins/paypal2/test_settings.py | 4 ++-- src/tests/plugins/paypal2/test_webhook.py | 4 ++-- src/tests/plugins/sendmail/__init__.py | 4 ++-- src/tests/plugins/sendmail/conftest.py | 4 ++-- src/tests/plugins/sendmail/test_rules.py | 4 ++-- src/tests/plugins/sendmail/test_sendmail.py | 4 ++-- src/tests/plugins/stripe/__init__.py | 4 ++-- src/tests/plugins/stripe/test_checkout.py | 4 ++-- src/tests/plugins/stripe/test_provider.py | 4 ++-- src/tests/plugins/stripe/test_settings.py | 4 ++-- src/tests/plugins/stripe/test_webhook.py | 4 ++-- src/tests/plugins/test_checkinlist.py | 4 ++-- src/tests/plugins/test_returnurl.py | 4 ++-- src/tests/plugins/ticketoutputpdf/__init__.py | 4 ++-- src/tests/plugins/ticketoutputpdf/test_api.py | 4 ++-- src/tests/plugins/ticketoutputpdf/test_control.py | 4 ++-- src/tests/plugins/ticketoutputpdf/test_defaults_and_copy.py | 4 ++-- src/tests/plugins/ticketoutputpdf/test_ticketoutputpdf.py | 4 ++-- src/tests/presale/__init__.py | 4 ++-- src/tests/presale/test_bundle_prices.py | 4 ++-- src/tests/presale/test_cart.py | 4 ++-- src/tests/presale/test_checkout.py | 4 ++-- src/tests/presale/test_checkoutflow.py | 4 ++-- src/tests/presale/test_customer.py | 4 ++-- src/tests/presale/test_event.py | 4 ++-- src/tests/presale/test_locale.py | 4 ++-- src/tests/presale/test_oidc_op.py | 4 ++-- src/tests/presale/test_order_change.py | 4 ++-- src/tests/presale/test_orders.py | 4 ++-- src/tests/presale/test_organizer_page.py | 4 ++-- src/tests/presale/test_style.py | 4 ++-- src/tests/presale/test_timemachine.py | 4 ++-- src/tests/presale/test_widget.py | 4 ++-- src/tests/settings.py | 4 ++-- src/tests/test_crashing.py | 4 ++-- src/tests/testdummy/__init__.py | 4 ++-- src/tests/testdummy/apps.py | 4 ++-- src/tests/testdummy/auth.py | 4 ++-- src/tests/testdummy/models.py | 4 ++-- src/tests/testdummy/payment.py | 4 ++-- src/tests/testdummy/signals.py | 4 ++-- src/tests/testdummy/ticketoutput.py | 4 ++-- src/tests/testdummyhidden/__init__.py | 4 ++-- src/tests/testdummyhidden/apps.py | 4 ++-- src/tests/testdummyhybrid/__init__.py | 4 ++-- src/tests/testdummyhybrid/apps.py | 4 ++-- src/tests/testdummyorga/__init__.py | 4 ++-- src/tests/testdummyorga/apps.py | 4 ++-- src/tests/testdummyorgarestricted/__init__.py | 4 ++-- src/tests/testdummyorgarestricted/apps.py | 4 ++-- src/tests/testdummyrestricted/__init__.py | 4 ++-- src/tests/testdummyrestricted/apps.py | 4 ++-- 754 files changed, 1508 insertions(+), 1508 deletions(-) diff --git a/.licenseheader b/.licenseheader index 39009128b..5cbdfddde 100644 --- a/.licenseheader +++ b/.licenseheader @@ -1,7 +1,7 @@ This file is part of pretix (Community Edition). -Copyright (C) 2014-2020 Raphael Michel and contributors -Copyright (C) 2020-2021 rami.io GmbH and contributors +Copyright (C) 2014-2020 Raphael Michel and contributors +Copyright (C) 2020-today pretix GmbH and contributors This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/manage.py b/src/manage.py index 58e32fac2..8b393c449 100755 --- a/src/manage.py +++ b/src/manage.py @@ -2,8 +2,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/__init__.py b/src/pretix/__init__.py index 560d87861..ab6b82dbd 100644 --- a/src/pretix/__init__.py +++ b/src/pretix/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/__main__.py b/src/pretix/__main__.py index 53231751d..f064608c0 100644 --- a/src/pretix/__main__.py +++ b/src/pretix/__main__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/_base_settings.py b/src/pretix/_base_settings.py index 97d79b036..2931c7e41 100644 --- a/src/pretix/_base_settings.py +++ b/src/pretix/_base_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/_build.py b/src/pretix/_build.py index 884384a37..de9e2900c 100644 --- a/src/pretix/_build.py +++ b/src/pretix/_build.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/_build_settings.py b/src/pretix/_build_settings.py index c03f56a1a..5c04e511d 100644 --- a/src/pretix/_build_settings.py +++ b/src/pretix/_build_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/__init__.py b/src/pretix/api/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/api/__init__.py +++ b/src/pretix/api/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/apps.py b/src/pretix/api/apps.py index 2af7c6175..9f06f9128 100644 --- a/src/pretix/api/apps.py +++ b/src/pretix/api/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/auth/__init__.py b/src/pretix/api/auth/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/api/auth/__init__.py +++ b/src/pretix/api/auth/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/auth/device.py b/src/pretix/api/auth/device.py index dd9b4c287..00fc03ba0 100644 --- a/src/pretix/api/auth/device.py +++ b/src/pretix/api/auth/device.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/auth/devicesecurity.py b/src/pretix/api/auth/devicesecurity.py index d6be03e72..18a99336b 100644 --- a/src/pretix/api/auth/devicesecurity.py +++ b/src/pretix/api/auth/devicesecurity.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/auth/permission.py b/src/pretix/api/auth/permission.py index e023a1495..802781d00 100644 --- a/src/pretix/api/auth/permission.py +++ b/src/pretix/api/auth/permission.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/auth/session.py b/src/pretix/api/auth/session.py index 431741963..7b2eff806 100644 --- a/src/pretix/api/auth/session.py +++ b/src/pretix/api/auth/session.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/auth/token.py b/src/pretix/api/auth/token.py index cb00462b5..ed0d1829e 100644 --- a/src/pretix/api/auth/token.py +++ b/src/pretix/api/auth/token.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/exception.py b/src/pretix/api/exception.py index ec6b317df..0358fba9a 100644 --- a/src/pretix/api/exception.py +++ b/src/pretix/api/exception.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/filters.py b/src/pretix/api/filters.py index e9217139f..c3dc68ea1 100644 --- a/src/pretix/api/filters.py +++ b/src/pretix/api/filters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/middleware.py b/src/pretix/api/middleware.py index ff4d37c8f..53bae03b4 100644 --- a/src/pretix/api/middleware.py +++ b/src/pretix/api/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/models.py b/src/pretix/api/models.py index 39787fc30..a6c202e57 100644 --- a/src/pretix/api/models.py +++ b/src/pretix/api/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/oauth.py b/src/pretix/api/oauth.py index fa93e1647..f1482c4d7 100644 --- a/src/pretix/api/oauth.py +++ b/src/pretix/api/oauth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/pagination.py b/src/pretix/api/pagination.py index 4f8a55579..8cc331775 100644 --- a/src/pretix/api/pagination.py +++ b/src/pretix/api/pagination.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/__init__.py b/src/pretix/api/serializers/__init__.py index 76933c4e6..ea435914a 100644 --- a/src/pretix/api/serializers/__init__.py +++ b/src/pretix/api/serializers/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/cart.py b/src/pretix/api/serializers/cart.py index 38d064684..74dc5242b 100644 --- a/src/pretix/api/serializers/cart.py +++ b/src/pretix/api/serializers/cart.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/checkin.py b/src/pretix/api/serializers/checkin.py index c28dfada9..63759c016 100644 --- a/src/pretix/api/serializers/checkin.py +++ b/src/pretix/api/serializers/checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/discount.py b/src/pretix/api/serializers/discount.py index 9cf4ae748..e6f5d5f0a 100644 --- a/src/pretix/api/serializers/discount.py +++ b/src/pretix/api/serializers/discount.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/event.py b/src/pretix/api/serializers/event.py index 98e011db7..680d1bd5d 100644 --- a/src/pretix/api/serializers/event.py +++ b/src/pretix/api/serializers/event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/exporters.py b/src/pretix/api/serializers/exporters.py index 785e607a0..b5f99ad46 100644 --- a/src/pretix/api/serializers/exporters.py +++ b/src/pretix/api/serializers/exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/fields.py b/src/pretix/api/serializers/fields.py index db8858a22..d3cc5f1b8 100644 --- a/src/pretix/api/serializers/fields.py +++ b/src/pretix/api/serializers/fields.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/forms.py b/src/pretix/api/serializers/forms.py index a7817471c..d577851cc 100644 --- a/src/pretix/api/serializers/forms.py +++ b/src/pretix/api/serializers/forms.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/i18n.py b/src/pretix/api/serializers/i18n.py index 3fc91e041..56700d279 100644 --- a/src/pretix/api/serializers/i18n.py +++ b/src/pretix/api/serializers/i18n.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/item.py b/src/pretix/api/serializers/item.py index 1c40eb13c..d29b960ab 100644 --- a/src/pretix/api/serializers/item.py +++ b/src/pretix/api/serializers/item.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/media.py b/src/pretix/api/serializers/media.py index e4b3d09c1..8285fade4 100644 --- a/src/pretix/api/serializers/media.py +++ b/src/pretix/api/serializers/media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py index 470c99490..e2499c35f 100644 --- a/src/pretix/api/serializers/order.py +++ b/src/pretix/api/serializers/order.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/orderchange.py b/src/pretix/api/serializers/orderchange.py index e8fb7820d..10e84daf3 100644 --- a/src/pretix/api/serializers/orderchange.py +++ b/src/pretix/api/serializers/orderchange.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/organizer.py b/src/pretix/api/serializers/organizer.py index 58deb71dc..aee83af95 100644 --- a/src/pretix/api/serializers/organizer.py +++ b/src/pretix/api/serializers/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/settings.py b/src/pretix/api/serializers/settings.py index cb9a31080..435b964db 100644 --- a/src/pretix/api/serializers/settings.py +++ b/src/pretix/api/serializers/settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/shredders.py b/src/pretix/api/serializers/shredders.py index 6a574af15..385029e0a 100644 --- a/src/pretix/api/serializers/shredders.py +++ b/src/pretix/api/serializers/shredders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/voucher.py b/src/pretix/api/serializers/voucher.py index 425df1eb8..038c32e8a 100644 --- a/src/pretix/api/serializers/voucher.py +++ b/src/pretix/api/serializers/voucher.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/waitinglist.py b/src/pretix/api/serializers/waitinglist.py index 6dbf6891b..9cc47b012 100644 --- a/src/pretix/api/serializers/waitinglist.py +++ b/src/pretix/api/serializers/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/serializers/webhooks.py b/src/pretix/api/serializers/webhooks.py index 756f15611..7849d91ae 100644 --- a/src/pretix/api/serializers/webhooks.py +++ b/src/pretix/api/serializers/webhooks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/signals.py b/src/pretix/api/signals.py index 1f69fad60..763b7ffc7 100644 --- a/src/pretix/api/signals.py +++ b/src/pretix/api/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/urls.py b/src/pretix/api/urls.py index b1cb10edd..15c654567 100644 --- a/src/pretix/api/urls.py +++ b/src/pretix/api/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/__init__.py b/src/pretix/api/views/__init__.py index 04728f638..7bcaf8f26 100644 --- a/src/pretix/api/views/__init__.py +++ b/src/pretix/api/views/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/cart.py b/src/pretix/api/views/cart.py index 8339822da..9a02a86db 100644 --- a/src/pretix/api/views/cart.py +++ b/src/pretix/api/views/cart.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/checkin.py b/src/pretix/api/views/checkin.py index ec31e3b50..02304446d 100644 --- a/src/pretix/api/views/checkin.py +++ b/src/pretix/api/views/checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/device.py b/src/pretix/api/views/device.py index 6db8e5a56..7482d1be7 100644 --- a/src/pretix/api/views/device.py +++ b/src/pretix/api/views/device.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/discount.py b/src/pretix/api/views/discount.py index d3545d4be..4504d0381 100644 --- a/src/pretix/api/views/discount.py +++ b/src/pretix/api/views/discount.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/event.py b/src/pretix/api/views/event.py index 19b2fb7d2..b61771bdb 100644 --- a/src/pretix/api/views/event.py +++ b/src/pretix/api/views/event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/exporters.py b/src/pretix/api/views/exporters.py index af21077c2..63344b21e 100644 --- a/src/pretix/api/views/exporters.py +++ b/src/pretix/api/views/exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/idempotency.py b/src/pretix/api/views/idempotency.py index 4cbe83dd5..54ac143a4 100644 --- a/src/pretix/api/views/idempotency.py +++ b/src/pretix/api/views/idempotency.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/item.py b/src/pretix/api/views/item.py index 83e0dc19b..19661c60e 100644 --- a/src/pretix/api/views/item.py +++ b/src/pretix/api/views/item.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/media.py b/src/pretix/api/views/media.py index 4954a9fe0..1569ee289 100644 --- a/src/pretix/api/views/media.py +++ b/src/pretix/api/views/media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/oauth.py b/src/pretix/api/views/oauth.py index 88c45fb53..acd8b94c0 100644 --- a/src/pretix/api/views/oauth.py +++ b/src/pretix/api/views/oauth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/order.py b/src/pretix/api/views/order.py index c24c81495..f818192ae 100644 --- a/src/pretix/api/views/order.py +++ b/src/pretix/api/views/order.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/organizer.py b/src/pretix/api/views/organizer.py index bf73d51cd..f600086e1 100644 --- a/src/pretix/api/views/organizer.py +++ b/src/pretix/api/views/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/shredders.py b/src/pretix/api/views/shredders.py index 353ca0cf1..acb34fa83 100644 --- a/src/pretix/api/views/shredders.py +++ b/src/pretix/api/views/shredders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/upload.py b/src/pretix/api/views/upload.py index bd75a7d98..e6426de64 100644 --- a/src/pretix/api/views/upload.py +++ b/src/pretix/api/views/upload.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/user.py b/src/pretix/api/views/user.py index 361ca46a2..142563ecd 100644 --- a/src/pretix/api/views/user.py +++ b/src/pretix/api/views/user.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/version.py b/src/pretix/api/views/version.py index 9aea65a98..2ac2edb02 100644 --- a/src/pretix/api/views/version.py +++ b/src/pretix/api/views/version.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/voucher.py b/src/pretix/api/views/voucher.py index 3fcb235e2..c0c0c1016 100644 --- a/src/pretix/api/views/voucher.py +++ b/src/pretix/api/views/voucher.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/waitinglist.py b/src/pretix/api/views/waitinglist.py index 2683e496a..f645a5e56 100644 --- a/src/pretix/api/views/waitinglist.py +++ b/src/pretix/api/views/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/views/webhooks.py b/src/pretix/api/views/webhooks.py index b2d18971e..f0c781523 100644 --- a/src/pretix/api/views/webhooks.py +++ b/src/pretix/api/views/webhooks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/api/webhooks.py b/src/pretix/api/webhooks.py index 2505a5a0d..b14bd7139 100644 --- a/src/pretix/api/webhooks.py +++ b/src/pretix/api/webhooks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/__init__.py b/src/pretix/base/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/__init__.py +++ b/src/pretix/base/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/addressvalidation.py b/src/pretix/base/addressvalidation.py index aa5550e19..9a2959f76 100644 --- a/src/pretix/base/addressvalidation.py +++ b/src/pretix/base/addressvalidation.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/apps.py b/src/pretix/base/apps.py index 66baca9ab..1852c0c35 100644 --- a/src/pretix/base/apps.py +++ b/src/pretix/base/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/auth.py b/src/pretix/base/auth.py index 6750ea825..f504729ee 100644 --- a/src/pretix/base/auth.py +++ b/src/pretix/base/auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/banlist.py b/src/pretix/base/banlist.py index 6b26ee1ec..e22f34e21 100644 --- a/src/pretix/base/banlist.py +++ b/src/pretix/base/banlist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/cache.py b/src/pretix/base/cache.py index e2702628c..d1829b411 100644 --- a/src/pretix/base/cache.py +++ b/src/pretix/base/cache.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/channels.py b/src/pretix/base/channels.py index c9ad7cf38..6f6bcab2d 100644 --- a/src/pretix/base/channels.py +++ b/src/pretix/base/channels.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/context.py b/src/pretix/base/context.py index ce1addb1f..475dfd4f1 100644 --- a/src/pretix/base/context.py +++ b/src/pretix/base/context.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/customersso/__init__.py b/src/pretix/base/customersso/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/customersso/__init__.py +++ b/src/pretix/base/customersso/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/customersso/oidc.py b/src/pretix/base/customersso/oidc.py index 3e20d0ffd..b093c0125 100644 --- a/src/pretix/base/customersso/oidc.py +++ b/src/pretix/base/customersso/oidc.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/datasync/__init__.py b/src/pretix/base/datasync/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/datasync/__init__.py +++ b/src/pretix/base/datasync/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/datasync/datasync.py b/src/pretix/base/datasync/datasync.py index be4004c8b..cb5bf01b3 100644 --- a/src/pretix/base/datasync/datasync.py +++ b/src/pretix/base/datasync/datasync.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/datasync/sourcefields.py b/src/pretix/base/datasync/sourcefields.py index 816f9d5cb..156145cb8 100644 --- a/src/pretix/base/datasync/sourcefields.py +++ b/src/pretix/base/datasync/sourcefields.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/datasync/utils.py b/src/pretix/base/datasync/utils.py index 05aab054a..ecfd948c5 100644 --- a/src/pretix/base/datasync/utils.py +++ b/src/pretix/base/datasync/utils.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/decimal.py b/src/pretix/base/decimal.py index 1d8a747f0..a34215a8a 100644 --- a/src/pretix/base/decimal.py +++ b/src/pretix/base/decimal.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/email.py b/src/pretix/base/email.py index b17f5b266..e1efce0b0 100644 --- a/src/pretix/base/email.py +++ b/src/pretix/base/email.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporter.py b/src/pretix/base/exporter.py index bf0ae2ba2..2a40dabc9 100644 --- a/src/pretix/base/exporter.py +++ b/src/pretix/base/exporter.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/__init__.py b/src/pretix/base/exporters/__init__.py index 420741db6..10671ee8f 100644 --- a/src/pretix/base/exporters/__init__.py +++ b/src/pretix/base/exporters/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/answers.py b/src/pretix/base/exporters/answers.py index 521376fee..9eb3b9d13 100644 --- a/src/pretix/base/exporters/answers.py +++ b/src/pretix/base/exporters/answers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/customers.py b/src/pretix/base/exporters/customers.py index 642f8f18f..7aa748093 100644 --- a/src/pretix/base/exporters/customers.py +++ b/src/pretix/base/exporters/customers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/dekodi.py b/src/pretix/base/exporters/dekodi.py index 4f6e6a32a..d77efed11 100644 --- a/src/pretix/base/exporters/dekodi.py +++ b/src/pretix/base/exporters/dekodi.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/events.py b/src/pretix/base/exporters/events.py index bd27c36ea..a53e153d8 100644 --- a/src/pretix/base/exporters/events.py +++ b/src/pretix/base/exporters/events.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/invoices.py b/src/pretix/base/exporters/invoices.py index f159edc6f..8aa3dba22 100644 --- a/src/pretix/base/exporters/invoices.py +++ b/src/pretix/base/exporters/invoices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/items.py b/src/pretix/base/exporters/items.py index fdff516e4..fba449768 100644 --- a/src/pretix/base/exporters/items.py +++ b/src/pretix/base/exporters/items.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/json.py b/src/pretix/base/exporters/json.py index 4c80e0a63..5791a2fa4 100644 --- a/src/pretix/base/exporters/json.py +++ b/src/pretix/base/exporters/json.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/mail.py b/src/pretix/base/exporters/mail.py index b7f7716f9..36c32c53d 100644 --- a/src/pretix/base/exporters/mail.py +++ b/src/pretix/base/exporters/mail.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/orderlist.py b/src/pretix/base/exporters/orderlist.py index 64b1b7b34..e7b51cd7b 100644 --- a/src/pretix/base/exporters/orderlist.py +++ b/src/pretix/base/exporters/orderlist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/reusablemedia.py b/src/pretix/base/exporters/reusablemedia.py index 14bde9b70..83182c2df 100644 --- a/src/pretix/base/exporters/reusablemedia.py +++ b/src/pretix/base/exporters/reusablemedia.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/exporters/waitinglist.py b/src/pretix/base/exporters/waitinglist.py index acd2f1d5a..978c80e8c 100644 --- a/src/pretix/base/exporters/waitinglist.py +++ b/src/pretix/base/exporters/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/forms/__init__.py b/src/pretix/base/forms/__init__.py index 1f733dd0b..09f65259a 100644 --- a/src/pretix/base/forms/__init__.py +++ b/src/pretix/base/forms/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/forms/auth.py b/src/pretix/base/forms/auth.py index 4fc801c4f..dd44bb9a6 100644 --- a/src/pretix/base/forms/auth.py +++ b/src/pretix/base/forms/auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index be8811d34..2736e5384 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/forms/user.py b/src/pretix/base/forms/user.py index e52bc51a4..10a904322 100644 --- a/src/pretix/base/forms/user.py +++ b/src/pretix/base/forms/user.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/forms/validators.py b/src/pretix/base/forms/validators.py index 35f7323ba..5a420b93e 100644 --- a/src/pretix/base/forms/validators.py +++ b/src/pretix/base/forms/validators.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/forms/widgets.py b/src/pretix/base/forms/widgets.py index 69620b201..2acf7dd53 100644 --- a/src/pretix/base/forms/widgets.py +++ b/src/pretix/base/forms/widgets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/i18n.py b/src/pretix/base/i18n.py index ba7186ba0..7c510aa5d 100644 --- a/src/pretix/base/i18n.py +++ b/src/pretix/base/i18n.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoice.py b/src/pretix/base/invoice.py index 5efbee054..090b167c5 100644 --- a/src/pretix/base/invoice.py +++ b/src/pretix/base/invoice.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoicing/__init__.py b/src/pretix/base/invoicing/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/invoicing/__init__.py +++ b/src/pretix/base/invoicing/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoicing/email.py b/src/pretix/base/invoicing/email.py index 97d47d96f..78f7d7f82 100644 --- a/src/pretix/base/invoicing/email.py +++ b/src/pretix/base/invoicing/email.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoicing/national.py b/src/pretix/base/invoicing/national.py index b8c71fa55..47601145f 100644 --- a/src/pretix/base/invoicing/national.py +++ b/src/pretix/base/invoicing/national.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoicing/pdf.py b/src/pretix/base/invoicing/pdf.py index 1c0443a44..2f2f36ed5 100644 --- a/src/pretix/base/invoicing/pdf.py +++ b/src/pretix/base/invoicing/pdf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoicing/peppol.py b/src/pretix/base/invoicing/peppol.py index b31b3e645..c8a28752a 100644 --- a/src/pretix/base/invoicing/peppol.py +++ b/src/pretix/base/invoicing/peppol.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/invoicing/transmission.py b/src/pretix/base/invoicing/transmission.py index 584a056e5..0fbb37611 100644 --- a/src/pretix/base/invoicing/transmission.py +++ b/src/pretix/base/invoicing/transmission.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/logentrytype_registry.py b/src/pretix/base/logentrytype_registry.py index 696ff24b6..71576d3f3 100644 --- a/src/pretix/base/logentrytype_registry.py +++ b/src/pretix/base/logentrytype_registry.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/logentrytypes.py b/src/pretix/base/logentrytypes.py index 32c464d5a..449b1ac06 100644 --- a/src/pretix/base/logentrytypes.py +++ b/src/pretix/base/logentrytypes.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/__init__.py b/src/pretix/base/management/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/management/__init__.py +++ b/src/pretix/base/management/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/__init__.py b/src/pretix/base/management/commands/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/management/commands/__init__.py +++ b/src/pretix/base/management/commands/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/_migrations.py b/src/pretix/base/management/commands/_migrations.py index 521525be1..b631db5df 100644 --- a/src/pretix/base/management/commands/_migrations.py +++ b/src/pretix/base/management/commands/_migrations.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/check_order_transactions.py b/src/pretix/base/management/commands/check_order_transactions.py index d059d001e..d3d6eeb8c 100644 --- a/src/pretix/base/management/commands/check_order_transactions.py +++ b/src/pretix/base/management/commands/check_order_transactions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/create_order_transactions.py b/src/pretix/base/management/commands/create_order_transactions.py index ed65cca9f..55ffac2ff 100644 --- a/src/pretix/base/management/commands/create_order_transactions.py +++ b/src/pretix/base/management/commands/create_order_transactions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/export.py b/src/pretix/base/management/commands/export.py index a398413ce..74c578ece 100644 --- a/src/pretix/base/management/commands/export.py +++ b/src/pretix/base/management/commands/export.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/makemessages.py b/src/pretix/base/management/commands/makemessages.py index bcbc67389..ed040813a 100644 --- a/src/pretix/base/management/commands/makemessages.py +++ b/src/pretix/base/management/commands/makemessages.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/makemigrations.py b/src/pretix/base/management/commands/makemigrations.py index 5a3bb65f0..7b88011fb 100644 --- a/src/pretix/base/management/commands/makemigrations.py +++ b/src/pretix/base/management/commands/makemigrations.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/migrate.py b/src/pretix/base/management/commands/migrate.py index 799696647..f027d1573 100644 --- a/src/pretix/base/management/commands/migrate.py +++ b/src/pretix/base/management/commands/migrate.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/rebuild.py b/src/pretix/base/management/commands/rebuild.py index 3161dc69b..839103f09 100644 --- a/src/pretix/base/management/commands/rebuild.py +++ b/src/pretix/base/management/commands/rebuild.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/runperiodic.py b/src/pretix/base/management/commands/runperiodic.py index 639b9b69b..b3e99ab9b 100644 --- a/src/pretix/base/management/commands/runperiodic.py +++ b/src/pretix/base/management/commands/runperiodic.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/management/commands/shell_scoped.py b/src/pretix/base/management/commands/shell_scoped.py index d5b67f90e..3438b3bb5 100644 --- a/src/pretix/base/management/commands/shell_scoped.py +++ b/src/pretix/base/management/commands/shell_scoped.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/media.py b/src/pretix/base/media.py index 0808e6869..47a1be987 100644 --- a/src/pretix/base/media.py +++ b/src/pretix/base/media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/metrics.py b/src/pretix/base/metrics.py index c7db66f31..f0d024f8d 100755 --- a/src/pretix/base/metrics.py +++ b/src/pretix/base/metrics.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/middleware.py b/src/pretix/base/middleware.py index 82132665c..7e326d90f 100644 --- a/src/pretix/base/middleware.py +++ b/src/pretix/base/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/modelimport.py b/src/pretix/base/modelimport.py index f700c349f..43b956e1a 100644 --- a/src/pretix/base/modelimport.py +++ b/src/pretix/base/modelimport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/modelimport_orders.py b/src/pretix/base/modelimport_orders.py index f87a24f2d..604a532cd 100644 --- a/src/pretix/base/modelimport_orders.py +++ b/src/pretix/base/modelimport_orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/modelimport_vouchers.py b/src/pretix/base/modelimport_vouchers.py index c48c06fcd..a9e2199ff 100644 --- a/src/pretix/base/modelimport_vouchers.py +++ b/src/pretix/base/modelimport_vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/__init__.py b/src/pretix/base/models/__init__.py index d3e68f6bd..944737501 100644 --- a/src/pretix/base/models/__init__.py +++ b/src/pretix/base/models/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/_transactions.py b/src/pretix/base/models/_transactions.py index 5fecab2b2..1aaf2919b 100644 --- a/src/pretix/base/models/_transactions.py +++ b/src/pretix/base/models/_transactions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/auth.py b/src/pretix/base/models/auth.py index 27e0ee696..31871dadb 100644 --- a/src/pretix/base/models/auth.py +++ b/src/pretix/base/models/auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/base.py b/src/pretix/base/models/base.py index c1c1fb553..d8154aa8f 100644 --- a/src/pretix/base/models/base.py +++ b/src/pretix/base/models/base.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/checkin.py b/src/pretix/base/models/checkin.py index e9e160d4b..0926cedee 100644 --- a/src/pretix/base/models/checkin.py +++ b/src/pretix/base/models/checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/currencies.py b/src/pretix/base/models/currencies.py index b8f1c79c9..dd6c6775b 100644 --- a/src/pretix/base/models/currencies.py +++ b/src/pretix/base/models/currencies.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/customers.py b/src/pretix/base/models/customers.py index 019f6fa87..5d94657a4 100644 --- a/src/pretix/base/models/customers.py +++ b/src/pretix/base/models/customers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/datasync.py b/src/pretix/base/models/datasync.py index 065832403..e6b2bbd22 100644 --- a/src/pretix/base/models/datasync.py +++ b/src/pretix/base/models/datasync.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/devices.py b/src/pretix/base/models/devices.py index 71c614159..c94cf6827 100644 --- a/src/pretix/base/models/devices.py +++ b/src/pretix/base/models/devices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/discount.py b/src/pretix/base/models/discount.py index dc99e4bda..9c09edc65 100644 --- a/src/pretix/base/models/discount.py +++ b/src/pretix/base/models/discount.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index 5a1cdd4b2..4c25100e5 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/exports.py b/src/pretix/base/models/exports.py index 6104ff2b1..a539f371b 100644 --- a/src/pretix/base/models/exports.py +++ b/src/pretix/base/models/exports.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/fields.py b/src/pretix/base/models/fields.py index 218a7c668..73ad7badf 100644 --- a/src/pretix/base/models/fields.py +++ b/src/pretix/base/models/fields.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/giftcards.py b/src/pretix/base/models/giftcards.py index d076c60f5..d93eba36b 100644 --- a/src/pretix/base/models/giftcards.py +++ b/src/pretix/base/models/giftcards.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/invoices.py b/src/pretix/base/models/invoices.py index 7457d8d02..602e062d8 100644 --- a/src/pretix/base/models/invoices.py +++ b/src/pretix/base/models/invoices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index c13d4f859..7e42f2cb7 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/log.py b/src/pretix/base/models/log.py index 368bd99f1..93530f090 100644 --- a/src/pretix/base/models/log.py +++ b/src/pretix/base/models/log.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/media.py b/src/pretix/base/models/media.py index eedf71390..be8a0af9d 100644 --- a/src/pretix/base/models/media.py +++ b/src/pretix/base/models/media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/memberships.py b/src/pretix/base/models/memberships.py index 14640b2cf..f2d5fd5cb 100644 --- a/src/pretix/base/models/memberships.py +++ b/src/pretix/base/models/memberships.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/notifications.py b/src/pretix/base/models/notifications.py index 6b23c9260..5af7c4148 100644 --- a/src/pretix/base/models/notifications.py +++ b/src/pretix/base/models/notifications.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index 5a64e9b1c..adcb69bcc 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/organizer.py b/src/pretix/base/models/organizer.py index 757bf3457..71cc083f4 100644 --- a/src/pretix/base/models/organizer.py +++ b/src/pretix/base/models/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/seating.py b/src/pretix/base/models/seating.py index 372131d66..70ac0b892 100644 --- a/src/pretix/base/models/seating.py +++ b/src/pretix/base/models/seating.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/tax.py b/src/pretix/base/models/tax.py index 1058934cd..cab647049 100644 --- a/src/pretix/base/models/tax.py +++ b/src/pretix/base/models/tax.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/vouchers.py b/src/pretix/base/models/vouchers.py index 9dc8afe3d..a1531e987 100644 --- a/src/pretix/base/models/vouchers.py +++ b/src/pretix/base/models/vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/models/waitinglist.py b/src/pretix/base/models/waitinglist.py index f7cf0ff8e..1eedd4ab3 100644 --- a/src/pretix/base/models/waitinglist.py +++ b/src/pretix/base/models/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/notifications.py b/src/pretix/base/notifications.py index f4f661786..b95d48406 100644 --- a/src/pretix/base/notifications.py +++ b/src/pretix/base/notifications.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/payment.py b/src/pretix/base/payment.py index f7a8a5bce..548739182 100644 --- a/src/pretix/base/payment.py +++ b/src/pretix/base/payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/pdf.py b/src/pretix/base/pdf.py index 21414055b..ed00d9231 100644 --- a/src/pretix/base/pdf.py +++ b/src/pretix/base/pdf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/plugins.py b/src/pretix/base/plugins.py index f26eb7747..2beb5ec10 100644 --- a/src/pretix/base/plugins.py +++ b/src/pretix/base/plugins.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/reldate.py b/src/pretix/base/reldate.py index 79d49b82f..3b67610d5 100644 --- a/src/pretix/base/reldate.py +++ b/src/pretix/base/reldate.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/secretgenerators/__init__.py b/src/pretix/base/secretgenerators/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/secretgenerators/__init__.py +++ b/src/pretix/base/secretgenerators/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/secretgenerators/pretix_sig1_pb2.py b/src/pretix/base/secretgenerators/pretix_sig1_pb2.py index 4748a7e20..06b6a9059 100644 --- a/src/pretix/base/secretgenerators/pretix_sig1_pb2.py +++ b/src/pretix/base/secretgenerators/pretix_sig1_pb2.py @@ -2,8 +2,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/secrets.py b/src/pretix/base/secrets.py index 32f64c21e..da253e531 100644 --- a/src/pretix/base/secrets.py +++ b/src/pretix/base/secrets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/__init__.py b/src/pretix/base/services/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/services/__init__.py +++ b/src/pretix/base/services/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/auth.py b/src/pretix/base/services/auth.py index b66447a80..0aae4abd9 100644 --- a/src/pretix/base/services/auth.py +++ b/src/pretix/base/services/auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/cancelevent.py b/src/pretix/base/services/cancelevent.py index 3f14c91dc..c686678ac 100644 --- a/src/pretix/base/services/cancelevent.py +++ b/src/pretix/base/services/cancelevent.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/cart.py b/src/pretix/base/services/cart.py index 3b256bd62..efffda374 100644 --- a/src/pretix/base/services/cart.py +++ b/src/pretix/base/services/cart.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/checkin.py b/src/pretix/base/services/checkin.py index 7c2e6237f..ecf4cf7a9 100644 --- a/src/pretix/base/services/checkin.py +++ b/src/pretix/base/services/checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/cleanup.py b/src/pretix/base/services/cleanup.py index 9190b0ab2..6667b2c3f 100644 --- a/src/pretix/base/services/cleanup.py +++ b/src/pretix/base/services/cleanup.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/cross_selling.py b/src/pretix/base/services/cross_selling.py index fe48d1e01..0a234dd8b 100644 --- a/src/pretix/base/services/cross_selling.py +++ b/src/pretix/base/services/cross_selling.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/currencies.py b/src/pretix/base/services/currencies.py index ad0464c49..620f88b12 100644 --- a/src/pretix/base/services/currencies.py +++ b/src/pretix/base/services/currencies.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/datasync.py b/src/pretix/base/services/datasync.py index c4d48da7e..a4d7145da 100644 --- a/src/pretix/base/services/datasync.py +++ b/src/pretix/base/services/datasync.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/export.py b/src/pretix/base/services/export.py index 88fc327bb..c1fbe0664 100644 --- a/src/pretix/base/services/export.py +++ b/src/pretix/base/services/export.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index 8fe27d9b7..5bfad27a6 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/locking.py b/src/pretix/base/services/locking.py index 08237c42c..ee666c335 100644 --- a/src/pretix/base/services/locking.py +++ b/src/pretix/base/services/locking.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/mail.py b/src/pretix/base/services/mail.py index 3c614941f..61c4bf685 100644 --- a/src/pretix/base/services/mail.py +++ b/src/pretix/base/services/mail.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/media.py b/src/pretix/base/services/media.py index 787b009fc..c431e79ae 100644 --- a/src/pretix/base/services/media.py +++ b/src/pretix/base/services/media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/memberships.py b/src/pretix/base/services/memberships.py index fc52d76cc..fb2efbe71 100644 --- a/src/pretix/base/services/memberships.py +++ b/src/pretix/base/services/memberships.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/modelimport.py b/src/pretix/base/services/modelimport.py index e8208a6e3..3ef774b70 100644 --- a/src/pretix/base/services/modelimport.py +++ b/src/pretix/base/services/modelimport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/notifications.py b/src/pretix/base/services/notifications.py index 310252012..357ad8fc6 100644 --- a/src/pretix/base/services/notifications.py +++ b/src/pretix/base/services/notifications.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index b3e23a090..01be0e254 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/placeholders.py b/src/pretix/base/services/placeholders.py index 53fc2918f..c4cdc03c3 100644 --- a/src/pretix/base/services/placeholders.py +++ b/src/pretix/base/services/placeholders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/pricing.py b/src/pretix/base/services/pricing.py index ac6b1a13e..5ac9dbea4 100644 --- a/src/pretix/base/services/pricing.py +++ b/src/pretix/base/services/pricing.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/quotas.py b/src/pretix/base/services/quotas.py index 8a2360e48..124e90e39 100644 --- a/src/pretix/base/services/quotas.py +++ b/src/pretix/base/services/quotas.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/seating.py b/src/pretix/base/services/seating.py index 8408f3ee2..5a76f9fca 100644 --- a/src/pretix/base/services/seating.py +++ b/src/pretix/base/services/seating.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/shredder.py b/src/pretix/base/services/shredder.py index 0411e6fa8..84ef4eee0 100644 --- a/src/pretix/base/services/shredder.py +++ b/src/pretix/base/services/shredder.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/stats.py b/src/pretix/base/services/stats.py index 79e86afe0..eef5ac465 100644 --- a/src/pretix/base/services/stats.py +++ b/src/pretix/base/services/stats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/tasks.py b/src/pretix/base/services/tasks.py index 56673c4fa..fa315b463 100644 --- a/src/pretix/base/services/tasks.py +++ b/src/pretix/base/services/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/tax.py b/src/pretix/base/services/tax.py index e4eb37a10..781374c56 100644 --- a/src/pretix/base/services/tax.py +++ b/src/pretix/base/services/tax.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/tickets.py b/src/pretix/base/services/tickets.py index b0244253e..fc50e7968 100644 --- a/src/pretix/base/services/tickets.py +++ b/src/pretix/base/services/tickets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/update_check.py b/src/pretix/base/services/update_check.py index 1f7b93b4d..5a23b3388 100644 --- a/src/pretix/base/services/update_check.py +++ b/src/pretix/base/services/update_check.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/vouchers.py b/src/pretix/base/services/vouchers.py index d0cbb9d68..452dfbaa8 100644 --- a/src/pretix/base/services/vouchers.py +++ b/src/pretix/base/services/vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/services/waitinglist.py b/src/pretix/base/services/waitinglist.py index 59e912a9f..238212ea0 100644 --- a/src/pretix/base/services/waitinglist.py +++ b/src/pretix/base/services/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/settings.py b/src/pretix/base/settings.py index 712ff6188..3bf4ead9e 100644 --- a/src/pretix/base/settings.py +++ b/src/pretix/base/settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/shredder.py b/src/pretix/base/shredder.py index b1d22a014..a8110e987 100644 --- a/src/pretix/base/shredder.py +++ b/src/pretix/base/shredder.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/signals.py b/src/pretix/base/signals.py index 0cfb9484f..3ab54bf0e 100644 --- a/src/pretix/base/signals.py +++ b/src/pretix/base/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/__init__.py b/src/pretix/base/templatetags/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/templatetags/__init__.py +++ b/src/pretix/base/templatetags/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/cache_large.py b/src/pretix/base/templatetags/cache_large.py index b3e9b7dd4..4bdce26df 100644 --- a/src/pretix/base/templatetags/cache_large.py +++ b/src/pretix/base/templatetags/cache_large.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/calendarhead.py b/src/pretix/base/templatetags/calendarhead.py index 912e2a600..f30b274f1 100644 --- a/src/pretix/base/templatetags/calendarhead.py +++ b/src/pretix/base/templatetags/calendarhead.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/classname.py b/src/pretix/base/templatetags/classname.py index 1bc239e9b..66cd1dfb9 100644 --- a/src/pretix/base/templatetags/classname.py +++ b/src/pretix/base/templatetags/classname.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/daterange.py b/src/pretix/base/templatetags/daterange.py index e51bd517d..a7e6a19bf 100644 --- a/src/pretix/base/templatetags/daterange.py +++ b/src/pretix/base/templatetags/daterange.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/dialog.py b/src/pretix/base/templatetags/dialog.py index 0cc422455..b67725f82 100644 --- a/src/pretix/base/templatetags/dialog.py +++ b/src/pretix/base/templatetags/dialog.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/escapejson.py b/src/pretix/base/templatetags/escapejson.py index 89b25bf11..abada8654 100644 --- a/src/pretix/base/templatetags/escapejson.py +++ b/src/pretix/base/templatetags/escapejson.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/eventsignal.py b/src/pretix/base/templatetags/eventsignal.py index 4a4fb1e62..54f2da5df 100644 --- a/src/pretix/base/templatetags/eventsignal.py +++ b/src/pretix/base/templatetags/eventsignal.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/icon.py b/src/pretix/base/templatetags/icon.py index d71319b01..dc10406cd 100644 --- a/src/pretix/base/templatetags/icon.py +++ b/src/pretix/base/templatetags/icon.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/lists.py b/src/pretix/base/templatetags/lists.py index 69113e66a..abfb8aa2e 100644 --- a/src/pretix/base/templatetags/lists.py +++ b/src/pretix/base/templatetags/lists.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/money.py b/src/pretix/base/templatetags/money.py index ad4eff1cc..edda9904e 100644 --- a/src/pretix/base/templatetags/money.py +++ b/src/pretix/base/templatetags/money.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/oneline.py b/src/pretix/base/templatetags/oneline.py index bbfc848a9..f58e4aa93 100644 --- a/src/pretix/base/templatetags/oneline.py +++ b/src/pretix/base/templatetags/oneline.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/phone_format.py b/src/pretix/base/templatetags/phone_format.py index c38ff7561..bc30b610c 100644 --- a/src/pretix/base/templatetags/phone_format.py +++ b/src/pretix/base/templatetags/phone_format.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/rich_text.py b/src/pretix/base/templatetags/rich_text.py index d77d9ce9c..bee135a93 100644 --- a/src/pretix/base/templatetags/rich_text.py +++ b/src/pretix/base/templatetags/rich_text.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/safelink.py b/src/pretix/base/templatetags/safelink.py index 3d2d322bd..f60324627 100644 --- a/src/pretix/base/templatetags/safelink.py +++ b/src/pretix/base/templatetags/safelink.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/textbubble.py b/src/pretix/base/templatetags/textbubble.py index a0c3a3d30..1d138a76d 100644 --- a/src/pretix/base/templatetags/textbubble.py +++ b/src/pretix/base/templatetags/textbubble.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/unidecode.py b/src/pretix/base/templatetags/unidecode.py index 54dbc8325..181fade39 100644 --- a/src/pretix/base/templatetags/unidecode.py +++ b/src/pretix/base/templatetags/unidecode.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/templatetags/urlreplace.py b/src/pretix/base/templatetags/urlreplace.py index b4aa92791..a6b4ec307 100644 --- a/src/pretix/base/templatetags/urlreplace.py +++ b/src/pretix/base/templatetags/urlreplace.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/ticketoutput.py b/src/pretix/base/ticketoutput.py index cd86ab948..63087a93a 100644 --- a/src/pretix/base/ticketoutput.py +++ b/src/pretix/base/ticketoutput.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/timeframes.py b/src/pretix/base/timeframes.py index 10dca6965..f3f2b3a4d 100644 --- a/src/pretix/base/timeframes.py +++ b/src/pretix/base/timeframes.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/timeline.py b/src/pretix/base/timeline.py index b44076627..be9d1d6b9 100644 --- a/src/pretix/base/timeline.py +++ b/src/pretix/base/timeline.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/timemachine.py b/src/pretix/base/timemachine.py index 9bb647321..c8ba4c2c2 100644 --- a/src/pretix/base/timemachine.py +++ b/src/pretix/base/timemachine.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/validators.py b/src/pretix/base/validators.py index 3b2a63531..15cf67b0f 100644 --- a/src/pretix/base/validators.py +++ b/src/pretix/base/validators.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/__init__.py b/src/pretix/base/views/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/base/views/__init__.py +++ b/src/pretix/base/views/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/applepay.py b/src/pretix/base/views/applepay.py index 768a53d44..a008804b0 100644 --- a/src/pretix/base/views/applepay.py +++ b/src/pretix/base/views/applepay.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/cachedfiles.py b/src/pretix/base/views/cachedfiles.py index e425e4805..744ea8c1d 100644 --- a/src/pretix/base/views/cachedfiles.py +++ b/src/pretix/base/views/cachedfiles.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/csp.py b/src/pretix/base/views/csp.py index b51a8d3ed..55bce1fed 100644 --- a/src/pretix/base/views/csp.py +++ b/src/pretix/base/views/csp.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/errors.py b/src/pretix/base/views/errors.py index c558676c6..7b76973b9 100644 --- a/src/pretix/base/views/errors.py +++ b/src/pretix/base/views/errors.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/health.py b/src/pretix/base/views/health.py index c0ea3f38c..874b98770 100644 --- a/src/pretix/base/views/health.py +++ b/src/pretix/base/views/health.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/js_catalog.py b/src/pretix/base/views/js_catalog.py index f74f3b69c..0e874fd75 100644 --- a/src/pretix/base/views/js_catalog.py +++ b/src/pretix/base/views/js_catalog.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/js_helpers.py b/src/pretix/base/views/js_helpers.py index 693dc0b71..7da2c8395 100644 --- a/src/pretix/base/views/js_helpers.py +++ b/src/pretix/base/views/js_helpers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/metrics.py b/src/pretix/base/views/metrics.py index 8df859146..60fe93e2b 100644 --- a/src/pretix/base/views/metrics.py +++ b/src/pretix/base/views/metrics.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/mixins.py b/src/pretix/base/views/mixins.py index 41c986a44..f85228d8a 100644 --- a/src/pretix/base/views/mixins.py +++ b/src/pretix/base/views/mixins.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/redirect.py b/src/pretix/base/views/redirect.py index c5b65cd1e..687338f4a 100644 --- a/src/pretix/base/views/redirect.py +++ b/src/pretix/base/views/redirect.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/source.py b/src/pretix/base/views/source.py index 6316db731..6b09ce9ff 100644 --- a/src/pretix/base/views/source.py +++ b/src/pretix/base/views/source.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/tasks.py b/src/pretix/base/views/tasks.py index 949cef639..e763d7fba 100644 --- a/src/pretix/base/views/tasks.py +++ b/src/pretix/base/views/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/base/views/webmanifest.py b/src/pretix/base/views/webmanifest.py index 22a31699a..c85bebc69 100644 --- a/src/pretix/base/views/webmanifest.py +++ b/src/pretix/base/views/webmanifest.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/celery_app.py b/src/pretix/celery_app.py index 060c10e5c..f140aefc7 100644 --- a/src/pretix/celery_app.py +++ b/src/pretix/celery_app.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/__init__.py b/src/pretix/control/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/control/__init__.py +++ b/src/pretix/control/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/apps.py b/src/pretix/control/apps.py index 05c626b6a..2e8e4d87e 100644 --- a/src/pretix/control/apps.py +++ b/src/pretix/control/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/context.py b/src/pretix/control/context.py index cde58295a..4480a1148 100644 --- a/src/pretix/control/context.py +++ b/src/pretix/control/context.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/__init__.py b/src/pretix/control/forms/__init__.py index 42a0fdf6d..d72a0ca34 100644 --- a/src/pretix/control/forms/__init__.py +++ b/src/pretix/control/forms/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/checkin.py b/src/pretix/control/forms/checkin.py index 32d4021e3..c1dee0443 100644 --- a/src/pretix/control/forms/checkin.py +++ b/src/pretix/control/forms/checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/discounts.py b/src/pretix/control/forms/discounts.py index 44ad2386c..e73babde3 100644 --- a/src/pretix/control/forms/discounts.py +++ b/src/pretix/control/forms/discounts.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/event.py b/src/pretix/control/forms/event.py index 171c94d17..2c67d74b6 100644 --- a/src/pretix/control/forms/event.py +++ b/src/pretix/control/forms/event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/exports.py b/src/pretix/control/forms/exports.py index a1864280e..7e751df46 100644 --- a/src/pretix/control/forms/exports.py +++ b/src/pretix/control/forms/exports.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/filter.py b/src/pretix/control/forms/filter.py index d41d4afc8..6e330bb8f 100644 --- a/src/pretix/control/forms/filter.py +++ b/src/pretix/control/forms/filter.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/global_settings.py b/src/pretix/control/forms/global_settings.py index 41f4b5745..518579968 100644 --- a/src/pretix/control/forms/global_settings.py +++ b/src/pretix/control/forms/global_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/item.py b/src/pretix/control/forms/item.py index 06aa2496b..5d0e5140a 100644 --- a/src/pretix/control/forms/item.py +++ b/src/pretix/control/forms/item.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/mailsetup.py b/src/pretix/control/forms/mailsetup.py index bece8832f..95c9dddb5 100644 --- a/src/pretix/control/forms/mailsetup.py +++ b/src/pretix/control/forms/mailsetup.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/mapping.py b/src/pretix/control/forms/mapping.py index 1da418688..cb9aa7284 100644 --- a/src/pretix/control/forms/mapping.py +++ b/src/pretix/control/forms/mapping.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/modelimport.py b/src/pretix/control/forms/modelimport.py index 27417cee2..9e6c4869f 100644 --- a/src/pretix/control/forms/modelimport.py +++ b/src/pretix/control/forms/modelimport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/orders.py b/src/pretix/control/forms/orders.py index 881920fca..bdcbafd14 100644 --- a/src/pretix/control/forms/orders.py +++ b/src/pretix/control/forms/orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/organizer.py b/src/pretix/control/forms/organizer.py index e3226c776..8e614a12e 100644 --- a/src/pretix/control/forms/organizer.py +++ b/src/pretix/control/forms/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/renderers.py b/src/pretix/control/forms/renderers.py index 786a060d4..8cc21abc0 100644 --- a/src/pretix/control/forms/renderers.py +++ b/src/pretix/control/forms/renderers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/rrule.py b/src/pretix/control/forms/rrule.py index bfa7810e0..e144ed131 100644 --- a/src/pretix/control/forms/rrule.py +++ b/src/pretix/control/forms/rrule.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/subevents.py b/src/pretix/control/forms/subevents.py index c0fcc6f29..4e442c6d3 100644 --- a/src/pretix/control/forms/subevents.py +++ b/src/pretix/control/forms/subevents.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/users.py b/src/pretix/control/forms/users.py index 08cf6dcef..7f813a13d 100644 --- a/src/pretix/control/forms/users.py +++ b/src/pretix/control/forms/users.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/vouchers.py b/src/pretix/control/forms/vouchers.py index 53bf3dccf..5138b7b7c 100644 --- a/src/pretix/control/forms/vouchers.py +++ b/src/pretix/control/forms/vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/waitinglist.py b/src/pretix/control/forms/waitinglist.py index 3a1b7f3bf..7dc33c4a9 100644 --- a/src/pretix/control/forms/waitinglist.py +++ b/src/pretix/control/forms/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/forms/widgets.py b/src/pretix/control/forms/widgets.py index b65cc22bc..d054be63a 100644 --- a/src/pretix/control/forms/widgets.py +++ b/src/pretix/control/forms/widgets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 6df2367e4..552d07518 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/middleware.py b/src/pretix/control/middleware.py index 9a176945d..9694e88de 100644 --- a/src/pretix/control/middleware.py +++ b/src/pretix/control/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/navigation.py b/src/pretix/control/navigation.py index 67bccaccd..99bdd8654 100644 --- a/src/pretix/control/navigation.py +++ b/src/pretix/control/navigation.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/permissions.py b/src/pretix/control/permissions.py index afc677ff2..059e2c9d3 100644 --- a/src/pretix/control/permissions.py +++ b/src/pretix/control/permissions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/signals.py b/src/pretix/control/signals.py index afae6a2a9..504aa2a82 100644 --- a/src/pretix/control/signals.py +++ b/src/pretix/control/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/sysreport.py b/src/pretix/control/sysreport.py index 0c86deb26..6beb0e4fc 100644 --- a/src/pretix/control/sysreport.py +++ b/src/pretix/control/sysreport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/templatetags/__init__.py b/src/pretix/control/templatetags/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/control/templatetags/__init__.py +++ b/src/pretix/control/templatetags/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/templatetags/getitem.py b/src/pretix/control/templatetags/getitem.py index 41889c5b1..1ca3c1f9f 100644 --- a/src/pretix/control/templatetags/getitem.py +++ b/src/pretix/control/templatetags/getitem.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/templatetags/hierarkey_form.py b/src/pretix/control/templatetags/hierarkey_form.py index abf7371a6..b340db560 100644 --- a/src/pretix/control/templatetags/hierarkey_form.py +++ b/src/pretix/control/templatetags/hierarkey_form.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/templatetags/mail_settings_preview.py b/src/pretix/control/templatetags/mail_settings_preview.py index f463966e6..85b373329 100644 --- a/src/pretix/control/templatetags/mail_settings_preview.py +++ b/src/pretix/control/templatetags/mail_settings_preview.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/templatetags/order_overview.py b/src/pretix/control/templatetags/order_overview.py index c06f72647..78a01c1cb 100644 --- a/src/pretix/control/templatetags/order_overview.py +++ b/src/pretix/control/templatetags/order_overview.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/urls.py b/src/pretix/control/urls.py index 4243ad2d5..130d4e78c 100644 --- a/src/pretix/control/urls.py +++ b/src/pretix/control/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/__init__.py b/src/pretix/control/views/__init__.py index 486cbe8eb..cfff1c451 100644 --- a/src/pretix/control/views/__init__.py +++ b/src/pretix/control/views/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/auth.py b/src/pretix/control/views/auth.py index fef96a637..b1b52985e 100644 --- a/src/pretix/control/views/auth.py +++ b/src/pretix/control/views/auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/checkin.py b/src/pretix/control/views/checkin.py index 26ff3e488..cd5ce59e1 100644 --- a/src/pretix/control/views/checkin.py +++ b/src/pretix/control/views/checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/dashboards.py b/src/pretix/control/views/dashboards.py index 35932ceaf..e703bc9ab 100644 --- a/src/pretix/control/views/dashboards.py +++ b/src/pretix/control/views/dashboards.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/datasync.py b/src/pretix/control/views/datasync.py index 08c50d9d7..ebffd8da1 100644 --- a/src/pretix/control/views/datasync.py +++ b/src/pretix/control/views/datasync.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/discounts.py b/src/pretix/control/views/discounts.py index cc95ad720..28b5addbe 100644 --- a/src/pretix/control/views/discounts.py +++ b/src/pretix/control/views/discounts.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index 038fd7403..c72e81bb7 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/geo.py b/src/pretix/control/views/geo.py index 8f4aa8973..a3bb91568 100644 --- a/src/pretix/control/views/geo.py +++ b/src/pretix/control/views/geo.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/global_settings.py b/src/pretix/control/views/global_settings.py index 2ecef4ebf..322031cbe 100644 --- a/src/pretix/control/views/global_settings.py +++ b/src/pretix/control/views/global_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py index 7cf68c9d4..f120a03d5 100644 --- a/src/pretix/control/views/item.py +++ b/src/pretix/control/views/item.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/mailsetup.py b/src/pretix/control/views/mailsetup.py index 60793586e..6ef1f70fb 100644 --- a/src/pretix/control/views/mailsetup.py +++ b/src/pretix/control/views/mailsetup.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/main.py b/src/pretix/control/views/main.py index 6501aea34..8f0455818 100644 --- a/src/pretix/control/views/main.py +++ b/src/pretix/control/views/main.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/modelimport.py b/src/pretix/control/views/modelimport.py index 0f82798f2..d70171f63 100644 --- a/src/pretix/control/views/modelimport.py +++ b/src/pretix/control/views/modelimport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/oauth.py b/src/pretix/control/views/oauth.py index 4767d0e00..d28b4b66d 100644 --- a/src/pretix/control/views/oauth.py +++ b/src/pretix/control/views/oauth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/orders.py b/src/pretix/control/views/orders.py index fda0db950..ba2cada69 100644 --- a/src/pretix/control/views/orders.py +++ b/src/pretix/control/views/orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/organizer.py b/src/pretix/control/views/organizer.py index 6e014bb91..4b51e4095 100644 --- a/src/pretix/control/views/organizer.py +++ b/src/pretix/control/views/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/pdf.py b/src/pretix/control/views/pdf.py index a83a29efb..8b863f372 100644 --- a/src/pretix/control/views/pdf.py +++ b/src/pretix/control/views/pdf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/search.py b/src/pretix/control/views/search.py index 5feb2aa2c..0501d9c4c 100644 --- a/src/pretix/control/views/search.py +++ b/src/pretix/control/views/search.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/shredder.py b/src/pretix/control/views/shredder.py index e77fa9b9f..aed2c07ab 100644 --- a/src/pretix/control/views/shredder.py +++ b/src/pretix/control/views/shredder.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/subevents.py b/src/pretix/control/views/subevents.py index 150d8a7e5..9712efc80 100644 --- a/src/pretix/control/views/subevents.py +++ b/src/pretix/control/views/subevents.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/typeahead.py b/src/pretix/control/views/typeahead.py index 4220823d8..5c8116ed0 100644 --- a/src/pretix/control/views/typeahead.py +++ b/src/pretix/control/views/typeahead.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/user.py b/src/pretix/control/views/user.py index 8d0816064..2f325f134 100644 --- a/src/pretix/control/views/user.py +++ b/src/pretix/control/views/user.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/users.py b/src/pretix/control/views/users.py index c72a00790..d6ed6b96e 100644 --- a/src/pretix/control/views/users.py +++ b/src/pretix/control/views/users.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/vouchers.py b/src/pretix/control/views/vouchers.py index bee6db27e..e7308b9d4 100644 --- a/src/pretix/control/views/vouchers.py +++ b/src/pretix/control/views/vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/control/views/waitinglist.py b/src/pretix/control/views/waitinglist.py index 644b85942..1cacbb3c6 100644 --- a/src/pretix/control/views/waitinglist.py +++ b/src/pretix/control/views/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/__init__.py b/src/pretix/helpers/__init__.py index 588116763..2bf736833 100644 --- a/src/pretix/helpers/__init__.py +++ b/src/pretix/helpers/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/apps.py b/src/pretix/helpers/apps.py index d78d36f88..c51aa3ed3 100644 --- a/src/pretix/helpers/apps.py +++ b/src/pretix/helpers/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/cache.py b/src/pretix/helpers/cache.py index 7969276ee..ff85e3dc6 100644 --- a/src/pretix/helpers/cache.py +++ b/src/pretix/helpers/cache.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/compat.py b/src/pretix/helpers/compat.py index 5b75a4a02..fc3096dad 100644 --- a/src/pretix/helpers/compat.py +++ b/src/pretix/helpers/compat.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/compressor.py b/src/pretix/helpers/compressor.py index 250760c31..97131548b 100644 --- a/src/pretix/helpers/compressor.py +++ b/src/pretix/helpers/compressor.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/config.py b/src/pretix/helpers/config.py index d341479e4..4f0e67a39 100644 --- a/src/pretix/helpers/config.py +++ b/src/pretix/helpers/config.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/cookies.py b/src/pretix/helpers/cookies.py index ee7346594..aea7e0e37 100644 --- a/src/pretix/helpers/cookies.py +++ b/src/pretix/helpers/cookies.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/countries.py b/src/pretix/helpers/countries.py index cb02e4599..12570aaa0 100644 --- a/src/pretix/helpers/countries.py +++ b/src/pretix/helpers/countries.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/database.py b/src/pretix/helpers/database.py index 4e537ff1c..6caf7499f 100644 --- a/src/pretix/helpers/database.py +++ b/src/pretix/helpers/database.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/daterange.py b/src/pretix/helpers/daterange.py index 6ad12ebe3..b104f4825 100644 --- a/src/pretix/helpers/daterange.py +++ b/src/pretix/helpers/daterange.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/dicts.py b/src/pretix/helpers/dicts.py index 3ae0f5dcf..f39956e91 100644 --- a/src/pretix/helpers/dicts.py +++ b/src/pretix/helpers/dicts.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/escapejson.py b/src/pretix/helpers/escapejson.py index 03ebe754e..1df8cd168 100644 --- a/src/pretix/helpers/escapejson.py +++ b/src/pretix/helpers/escapejson.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/filenames.py b/src/pretix/helpers/filenames.py index 637a43962..45b5d5771 100644 --- a/src/pretix/helpers/filenames.py +++ b/src/pretix/helpers/filenames.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/format.py b/src/pretix/helpers/format.py index 3ed2eac36..33549ed8b 100644 --- a/src/pretix/helpers/format.py +++ b/src/pretix/helpers/format.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/__init__.py b/src/pretix/helpers/formats/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/__init__.py +++ b/src/pretix/helpers/formats/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/ar/__init__.py b/src/pretix/helpers/formats/ar/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/ar/__init__.py +++ b/src/pretix/helpers/formats/ar/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/ar/formats.py b/src/pretix/helpers/formats/ar/formats.py index 01b2c05af..57885a72b 100644 --- a/src/pretix/helpers/formats/ar/formats.py +++ b/src/pretix/helpers/formats/ar/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/de/__init__.py b/src/pretix/helpers/formats/de/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/de/__init__.py +++ b/src/pretix/helpers/formats/de/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/de/formats.py b/src/pretix/helpers/formats/de/formats.py index f142c715e..522230910 100644 --- a/src/pretix/helpers/formats/de/formats.py +++ b/src/pretix/helpers/formats/de/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/el/__init__.py b/src/pretix/helpers/formats/el/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/el/__init__.py +++ b/src/pretix/helpers/formats/el/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/el/formats.py b/src/pretix/helpers/formats/el/formats.py index 4efc7d907..4f9926e97 100644 --- a/src/pretix/helpers/formats/el/formats.py +++ b/src/pretix/helpers/formats/el/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en/__init__.py b/src/pretix/helpers/formats/en/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/en/__init__.py +++ b/src/pretix/helpers/formats/en/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en/formats.py b/src/pretix/helpers/formats/en/formats.py index 93ee82085..978efc341 100644 --- a/src/pretix/helpers/formats/en/formats.py +++ b/src/pretix/helpers/formats/en/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en_CA/__init__.py b/src/pretix/helpers/formats/en_CA/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/en_CA/__init__.py +++ b/src/pretix/helpers/formats/en_CA/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en_CA/formats.py b/src/pretix/helpers/formats/en_CA/formats.py index d7875e437..62816b7f7 100644 --- a/src/pretix/helpers/formats/en_CA/formats.py +++ b/src/pretix/helpers/formats/en_CA/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en_NZ/__init__.py b/src/pretix/helpers/formats/en_NZ/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/en_NZ/__init__.py +++ b/src/pretix/helpers/formats/en_NZ/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en_NZ/formats.py b/src/pretix/helpers/formats/en_NZ/formats.py index ed26c5d76..28a8b2bce 100644 --- a/src/pretix/helpers/formats/en_NZ/formats.py +++ b/src/pretix/helpers/formats/en_NZ/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en_US/__init__.py b/src/pretix/helpers/formats/en_US/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/en_US/__init__.py +++ b/src/pretix/helpers/formats/en_US/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/en_US/formats.py b/src/pretix/helpers/formats/en_US/formats.py index 0bb769f80..de4818673 100644 --- a/src/pretix/helpers/formats/en_US/formats.py +++ b/src/pretix/helpers/formats/en_US/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/fr/__init__.py b/src/pretix/helpers/formats/fr/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/formats/fr/__init__.py +++ b/src/pretix/helpers/formats/fr/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/formats/fr/formats.py b/src/pretix/helpers/formats/fr/formats.py index 5792f151c..4acc5cd3d 100644 --- a/src/pretix/helpers/formats/fr/formats.py +++ b/src/pretix/helpers/formats/fr/formats.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/hierarkey.py b/src/pretix/helpers/hierarkey.py index 691ce2260..8d3360f0b 100644 --- a/src/pretix/helpers/hierarkey.py +++ b/src/pretix/helpers/hierarkey.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/http.py b/src/pretix/helpers/http.py index 47f5752b9..288db62d1 100644 --- a/src/pretix/helpers/http.py +++ b/src/pretix/helpers/http.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/i18n.py b/src/pretix/helpers/i18n.py index ef30c0c57..04edcf2ba 100644 --- a/src/pretix/helpers/i18n.py +++ b/src/pretix/helpers/i18n.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/images.py b/src/pretix/helpers/images.py index 31773849f..df439679b 100644 --- a/src/pretix/helpers/images.py +++ b/src/pretix/helpers/images.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/iter.py b/src/pretix/helpers/iter.py index 007bf9650..8bf978b7d 100644 --- a/src/pretix/helpers/iter.py +++ b/src/pretix/helpers/iter.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/json.py b/src/pretix/helpers/json.py index b73031573..c3ec849a8 100644 --- a/src/pretix/helpers/json.py +++ b/src/pretix/helpers/json.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/jsonlogic.py b/src/pretix/helpers/jsonlogic.py index 8a3159686..8ce62ddd4 100644 --- a/src/pretix/helpers/jsonlogic.py +++ b/src/pretix/helpers/jsonlogic.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/jsonlogic_boolalg.py b/src/pretix/helpers/jsonlogic_boolalg.py index b879fe591..5bdaf379b 100644 --- a/src/pretix/helpers/jsonlogic_boolalg.py +++ b/src/pretix/helpers/jsonlogic_boolalg.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/jsonlogic_query.py b/src/pretix/helpers/jsonlogic_query.py index 8206d7d13..c915a43bf 100644 --- a/src/pretix/helpers/jsonlogic_query.py +++ b/src/pretix/helpers/jsonlogic_query.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/logs.py b/src/pretix/helpers/logs.py index 175b34250..5a26b8a0e 100644 --- a/src/pretix/helpers/logs.py +++ b/src/pretix/helpers/logs.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/metrics/__init__.py b/src/pretix/helpers/metrics/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/metrics/__init__.py +++ b/src/pretix/helpers/metrics/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/metrics/middleware.py b/src/pretix/helpers/metrics/middleware.py index cb296b723..7c15c02ba 100644 --- a/src/pretix/helpers/metrics/middleware.py +++ b/src/pretix/helpers/metrics/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/models.py b/src/pretix/helpers/models.py index 0896cd9f4..8e3814196 100644 --- a/src/pretix/helpers/models.py +++ b/src/pretix/helpers/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/money.py b/src/pretix/helpers/money.py index ced14b900..efa8051b7 100644 --- a/src/pretix/helpers/money.py +++ b/src/pretix/helpers/money.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/monkeypatching.py b/src/pretix/helpers/monkeypatching.py index b56e9c7c6..8d824612c 100644 --- a/src/pretix/helpers/monkeypatching.py +++ b/src/pretix/helpers/monkeypatching.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/names.py b/src/pretix/helpers/names.py index 7ff30db35..14288fb1e 100644 --- a/src/pretix/helpers/names.py +++ b/src/pretix/helpers/names.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/periodic.py b/src/pretix/helpers/periodic.py index 53b0a2b27..a47cc20c1 100644 --- a/src/pretix/helpers/periodic.py +++ b/src/pretix/helpers/periodic.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/profile/__init__.py b/src/pretix/helpers/profile/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/profile/__init__.py +++ b/src/pretix/helpers/profile/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/profile/middleware.py b/src/pretix/helpers/profile/middleware.py index bb2dd25dc..5d39457fa 100644 --- a/src/pretix/helpers/profile/middleware.py +++ b/src/pretix/helpers/profile/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/reportlab.py b/src/pretix/helpers/reportlab.py index 574bf9696..448ac5c84 100644 --- a/src/pretix/helpers/reportlab.py +++ b/src/pretix/helpers/reportlab.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/safe_openpyxl.py b/src/pretix/helpers/safe_openpyxl.py index bef376669..ce305be8c 100644 --- a/src/pretix/helpers/safe_openpyxl.py +++ b/src/pretix/helpers/safe_openpyxl.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/safedownload.py b/src/pretix/helpers/safedownload.py index 4363011c5..87d1f56a3 100644 --- a/src/pretix/helpers/safedownload.py +++ b/src/pretix/helpers/safedownload.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/security.py b/src/pretix/helpers/security.py index 8c8a115cb..baa8f3a15 100644 --- a/src/pretix/helpers/security.py +++ b/src/pretix/helpers/security.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/template_loaders.py b/src/pretix/helpers/template_loaders.py index 419bd2263..7d6df44d3 100644 --- a/src/pretix/helpers/template_loaders.py +++ b/src/pretix/helpers/template_loaders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/__init__.py b/src/pretix/helpers/templatetags/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/helpers/templatetags/__init__.py +++ b/src/pretix/helpers/templatetags/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/captureas.py b/src/pretix/helpers/templatetags/captureas.py index c3c925cbc..d975afcb5 100644 --- a/src/pretix/helpers/templatetags/captureas.py +++ b/src/pretix/helpers/templatetags/captureas.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/date_fast.py b/src/pretix/helpers/templatetags/date_fast.py index 668ed65b8..34604c55a 100644 --- a/src/pretix/helpers/templatetags/date_fast.py +++ b/src/pretix/helpers/templatetags/date_fast.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/expiresformat.py b/src/pretix/helpers/templatetags/expiresformat.py index 8bc0f8ea9..4a5fcb8eb 100644 --- a/src/pretix/helpers/templatetags/expiresformat.py +++ b/src/pretix/helpers/templatetags/expiresformat.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/jsonfield.py b/src/pretix/helpers/templatetags/jsonfield.py index 2c4362aa4..00256d9aa 100644 --- a/src/pretix/helpers/templatetags/jsonfield.py +++ b/src/pretix/helpers/templatetags/jsonfield.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/simple_block_tag.py b/src/pretix/helpers/templatetags/simple_block_tag.py index a71bab7b0..3b83a112d 100644 --- a/src/pretix/helpers/templatetags/simple_block_tag.py +++ b/src/pretix/helpers/templatetags/simple_block_tag.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/templatetags/thumb.py b/src/pretix/helpers/templatetags/thumb.py index d3895a557..a51edbf7b 100644 --- a/src/pretix/helpers/templatetags/thumb.py +++ b/src/pretix/helpers/templatetags/thumb.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/thumb.py b/src/pretix/helpers/thumb.py index 5ebf9d70b..bf37f78e7 100644 --- a/src/pretix/helpers/thumb.py +++ b/src/pretix/helpers/thumb.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/u2f.py b/src/pretix/helpers/u2f.py index f2626639f..5d8f2ea48 100644 --- a/src/pretix/helpers/u2f.py +++ b/src/pretix/helpers/u2f.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/helpers/urls.py b/src/pretix/helpers/urls.py index f3731119e..7a91d498a 100644 --- a/src/pretix/helpers/urls.py +++ b/src/pretix/helpers/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/__init__.py b/src/pretix/multidomain/__init__.py index 10fcd6d73..3beb3aca0 100644 --- a/src/pretix/multidomain/__init__.py +++ b/src/pretix/multidomain/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/apps.py b/src/pretix/multidomain/apps.py index 778d619be..ae7ef6cbc 100644 --- a/src/pretix/multidomain/apps.py +++ b/src/pretix/multidomain/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/event_domain_urlconf.py b/src/pretix/multidomain/event_domain_urlconf.py index 5273d53d4..64c73d2b8 100644 --- a/src/pretix/multidomain/event_domain_urlconf.py +++ b/src/pretix/multidomain/event_domain_urlconf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/maindomain_urlconf.py b/src/pretix/multidomain/maindomain_urlconf.py index 8d932888f..fc8fd94f4 100644 --- a/src/pretix/multidomain/maindomain_urlconf.py +++ b/src/pretix/multidomain/maindomain_urlconf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/middlewares.py b/src/pretix/multidomain/middlewares.py index d3f3725fd..ad5813e72 100644 --- a/src/pretix/multidomain/middlewares.py +++ b/src/pretix/multidomain/middlewares.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/models.py b/src/pretix/multidomain/models.py index 2aadde7db..ae5877ea9 100644 --- a/src/pretix/multidomain/models.py +++ b/src/pretix/multidomain/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/organizer_alternative_domain_urlconf.py b/src/pretix/multidomain/organizer_alternative_domain_urlconf.py index 89ad01b81..2afbeed58 100644 --- a/src/pretix/multidomain/organizer_alternative_domain_urlconf.py +++ b/src/pretix/multidomain/organizer_alternative_domain_urlconf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/organizer_domain_urlconf.py b/src/pretix/multidomain/organizer_domain_urlconf.py index 7bdd08e87..d0b8d92a5 100644 --- a/src/pretix/multidomain/organizer_domain_urlconf.py +++ b/src/pretix/multidomain/organizer_domain_urlconf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/plugin_handler.py b/src/pretix/multidomain/plugin_handler.py index 51de8ec88..01ae770f9 100644 --- a/src/pretix/multidomain/plugin_handler.py +++ b/src/pretix/multidomain/plugin_handler.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/templatetags/__init__.py b/src/pretix/multidomain/templatetags/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/multidomain/templatetags/__init__.py +++ b/src/pretix/multidomain/templatetags/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/templatetags/eventurl.py b/src/pretix/multidomain/templatetags/eventurl.py index 580328883..002aa357d 100644 --- a/src/pretix/multidomain/templatetags/eventurl.py +++ b/src/pretix/multidomain/templatetags/eventurl.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/urlreverse.py b/src/pretix/multidomain/urlreverse.py index 123f17b6a..f1577b096 100644 --- a/src/pretix/multidomain/urlreverse.py +++ b/src/pretix/multidomain/urlreverse.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/multidomain/utils.py b/src/pretix/multidomain/utils.py index dfea69d5e..c1ee10405 100644 --- a/src/pretix/multidomain/utils.py +++ b/src/pretix/multidomain/utils.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/__init__.py b/src/pretix/plugins/__init__.py index 3bcebcc4e..1bb05dfd2 100644 --- a/src/pretix/plugins/__init__.py +++ b/src/pretix/plugins/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/__init__.py b/src/pretix/plugins/autocheckin/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/autocheckin/__init__.py +++ b/src/pretix/plugins/autocheckin/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/api.py b/src/pretix/plugins/autocheckin/api.py index 326dd2a75..7f855892c 100644 --- a/src/pretix/plugins/autocheckin/api.py +++ b/src/pretix/plugins/autocheckin/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/apps.py b/src/pretix/plugins/autocheckin/apps.py index 75297eaf9..6cd59903f 100644 --- a/src/pretix/plugins/autocheckin/apps.py +++ b/src/pretix/plugins/autocheckin/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/forms.py b/src/pretix/plugins/autocheckin/forms.py index 336624386..5c53aa663 100644 --- a/src/pretix/plugins/autocheckin/forms.py +++ b/src/pretix/plugins/autocheckin/forms.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/models.py b/src/pretix/plugins/autocheckin/models.py index 6149a5938..dd8dff1b7 100644 --- a/src/pretix/plugins/autocheckin/models.py +++ b/src/pretix/plugins/autocheckin/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/signals.py b/src/pretix/plugins/autocheckin/signals.py index 2074d4ce2..bf634d659 100644 --- a/src/pretix/plugins/autocheckin/signals.py +++ b/src/pretix/plugins/autocheckin/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/urls.py b/src/pretix/plugins/autocheckin/urls.py index 5cfca6f0b..590be9e96 100644 --- a/src/pretix/plugins/autocheckin/urls.py +++ b/src/pretix/plugins/autocheckin/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/autocheckin/views.py b/src/pretix/plugins/autocheckin/views.py index 626225d49..9539450a4 100644 --- a/src/pretix/plugins/autocheckin/views.py +++ b/src/pretix/plugins/autocheckin/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/__init__.py b/src/pretix/plugins/badges/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/badges/__init__.py +++ b/src/pretix/plugins/badges/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/api.py b/src/pretix/plugins/badges/api.py index e385b7a11..0482733cd 100644 --- a/src/pretix/plugins/badges/api.py +++ b/src/pretix/plugins/badges/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/apps.py b/src/pretix/plugins/badges/apps.py index 4bb75c05f..7b5b86894 100644 --- a/src/pretix/plugins/badges/apps.py +++ b/src/pretix/plugins/badges/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/exporters.py b/src/pretix/plugins/badges/exporters.py index b94afe911..9bb4f85a4 100644 --- a/src/pretix/plugins/badges/exporters.py +++ b/src/pretix/plugins/badges/exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/forms.py b/src/pretix/plugins/badges/forms.py index c7d50dac7..701b13767 100644 --- a/src/pretix/plugins/badges/forms.py +++ b/src/pretix/plugins/badges/forms.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/models.py b/src/pretix/plugins/badges/models.py index 4316bba36..2ad079e4f 100644 --- a/src/pretix/plugins/badges/models.py +++ b/src/pretix/plugins/badges/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/signals.py b/src/pretix/plugins/badges/signals.py index 2ed30f6d3..f740938cd 100644 --- a/src/pretix/plugins/badges/signals.py +++ b/src/pretix/plugins/badges/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/tasks.py b/src/pretix/plugins/badges/tasks.py index 061b3036b..1ef1fc497 100644 --- a/src/pretix/plugins/badges/tasks.py +++ b/src/pretix/plugins/badges/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/templates.py b/src/pretix/plugins/badges/templates.py index b45a1644b..ab458293d 100644 --- a/src/pretix/plugins/badges/templates.py +++ b/src/pretix/plugins/badges/templates.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/urls.py b/src/pretix/plugins/badges/urls.py index d79f0adca..6f6a63f53 100644 --- a/src/pretix/plugins/badges/urls.py +++ b/src/pretix/plugins/badges/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/badges/views.py b/src/pretix/plugins/badges/views.py index 409cb0e88..0ae02c430 100644 --- a/src/pretix/plugins/badges/views.py +++ b/src/pretix/plugins/badges/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/__init__.py b/src/pretix/plugins/banktransfer/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/banktransfer/__init__.py +++ b/src/pretix/plugins/banktransfer/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/api.py b/src/pretix/plugins/banktransfer/api.py index 17913678f..f611f405b 100644 --- a/src/pretix/plugins/banktransfer/api.py +++ b/src/pretix/plugins/banktransfer/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/apps.py b/src/pretix/plugins/banktransfer/apps.py index aa96b075d..01521dc5f 100644 --- a/src/pretix/plugins/banktransfer/apps.py +++ b/src/pretix/plugins/banktransfer/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/csvimport.py b/src/pretix/plugins/banktransfer/csvimport.py index 33f7f3459..ffc2bc3c4 100644 --- a/src/pretix/plugins/banktransfer/csvimport.py +++ b/src/pretix/plugins/banktransfer/csvimport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/models.py b/src/pretix/plugins/banktransfer/models.py index bdfb9a190..fe19c3029 100644 --- a/src/pretix/plugins/banktransfer/models.py +++ b/src/pretix/plugins/banktransfer/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/mt940import.py b/src/pretix/plugins/banktransfer/mt940import.py index 4a937b9ad..212287db6 100644 --- a/src/pretix/plugins/banktransfer/mt940import.py +++ b/src/pretix/plugins/banktransfer/mt940import.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/payment.py b/src/pretix/plugins/banktransfer/payment.py index 441e3c070..22c37f8a6 100644 --- a/src/pretix/plugins/banktransfer/payment.py +++ b/src/pretix/plugins/banktransfer/payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/refund_export.py b/src/pretix/plugins/banktransfer/refund_export.py index 1bcf65e73..d96f3885b 100644 --- a/src/pretix/plugins/banktransfer/refund_export.py +++ b/src/pretix/plugins/banktransfer/refund_export.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/signals.py b/src/pretix/plugins/banktransfer/signals.py index 4ba1c6892..6302cfcbe 100644 --- a/src/pretix/plugins/banktransfer/signals.py +++ b/src/pretix/plugins/banktransfer/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/tasks.py b/src/pretix/plugins/banktransfer/tasks.py index 301f799e2..f4fbc7d4e 100644 --- a/src/pretix/plugins/banktransfer/tasks.py +++ b/src/pretix/plugins/banktransfer/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/templatetags/__init__.py b/src/pretix/plugins/banktransfer/templatetags/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/banktransfer/templatetags/__init__.py +++ b/src/pretix/plugins/banktransfer/templatetags/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/templatetags/commadecimal.py b/src/pretix/plugins/banktransfer/templatetags/commadecimal.py index 119231e83..f46a0e197 100644 --- a/src/pretix/plugins/banktransfer/templatetags/commadecimal.py +++ b/src/pretix/plugins/banktransfer/templatetags/commadecimal.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/templatetags/dotdecimal.py b/src/pretix/plugins/banktransfer/templatetags/dotdecimal.py index 3e37ebb42..b550aab27 100644 --- a/src/pretix/plugins/banktransfer/templatetags/dotdecimal.py +++ b/src/pretix/plugins/banktransfer/templatetags/dotdecimal.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/templatetags/ibanformat.py b/src/pretix/plugins/banktransfer/templatetags/ibanformat.py index 4ffe1d7d1..e2f93e9c5 100644 --- a/src/pretix/plugins/banktransfer/templatetags/ibanformat.py +++ b/src/pretix/plugins/banktransfer/templatetags/ibanformat.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/urls.py b/src/pretix/plugins/banktransfer/urls.py index 968d0a9f1..91c2d3dd6 100644 --- a/src/pretix/plugins/banktransfer/urls.py +++ b/src/pretix/plugins/banktransfer/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/banktransfer/views.py b/src/pretix/plugins/banktransfer/views.py index e5adeefdb..ed3492cf8 100644 --- a/src/pretix/plugins/banktransfer/views.py +++ b/src/pretix/plugins/banktransfer/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/checkinlists/__init__.py b/src/pretix/plugins/checkinlists/__init__.py index c4b4deab3..fe627f44f 100644 --- a/src/pretix/plugins/checkinlists/__init__.py +++ b/src/pretix/plugins/checkinlists/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/checkinlists/apps.py b/src/pretix/plugins/checkinlists/apps.py index 72f7c38f1..b8d633fe2 100644 --- a/src/pretix/plugins/checkinlists/apps.py +++ b/src/pretix/plugins/checkinlists/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/checkinlists/exporters.py b/src/pretix/plugins/checkinlists/exporters.py index 6001f1023..142b60e59 100644 --- a/src/pretix/plugins/checkinlists/exporters.py +++ b/src/pretix/plugins/checkinlists/exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/checkinlists/signals.py b/src/pretix/plugins/checkinlists/signals.py index 7d00b93d2..b2f4df0af 100644 --- a/src/pretix/plugins/checkinlists/signals.py +++ b/src/pretix/plugins/checkinlists/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/manualpayment/__init__.py b/src/pretix/plugins/manualpayment/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/manualpayment/__init__.py +++ b/src/pretix/plugins/manualpayment/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/manualpayment/apps.py b/src/pretix/plugins/manualpayment/apps.py index bd1f2ad7f..8d1132f68 100644 --- a/src/pretix/plugins/manualpayment/apps.py +++ b/src/pretix/plugins/manualpayment/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/__init__.py b/src/pretix/plugins/paypal/__init__.py index c4b4deab3..fe627f44f 100644 --- a/src/pretix/plugins/paypal/__init__.py +++ b/src/pretix/plugins/paypal/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/api.py b/src/pretix/plugins/paypal/api.py index 3479b89c1..3a09c9422 100644 --- a/src/pretix/plugins/paypal/api.py +++ b/src/pretix/plugins/paypal/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/apps.py b/src/pretix/plugins/paypal/apps.py index 2a07d46a8..0b14e95e7 100644 --- a/src/pretix/plugins/paypal/apps.py +++ b/src/pretix/plugins/paypal/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/models.py b/src/pretix/plugins/paypal/models.py index 6707fd37c..b6ffe7c50 100644 --- a/src/pretix/plugins/paypal/models.py +++ b/src/pretix/plugins/paypal/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/payment.py b/src/pretix/plugins/paypal/payment.py index df1437c9b..63cb03501 100644 --- a/src/pretix/plugins/paypal/payment.py +++ b/src/pretix/plugins/paypal/payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/signals.py b/src/pretix/plugins/paypal/signals.py index 572a79c81..2d4dbd7d0 100644 --- a/src/pretix/plugins/paypal/signals.py +++ b/src/pretix/plugins/paypal/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/urls.py b/src/pretix/plugins/paypal/urls.py index 3b8dc501c..c13ca1236 100644 --- a/src/pretix/plugins/paypal/urls.py +++ b/src/pretix/plugins/paypal/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal/views.py b/src/pretix/plugins/paypal/views.py index 414b37789..01a37b814 100644 --- a/src/pretix/plugins/paypal/views.py +++ b/src/pretix/plugins/paypal/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/__init__.py b/src/pretix/plugins/paypal2/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/paypal2/__init__.py +++ b/src/pretix/plugins/paypal2/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/apps.py b/src/pretix/plugins/paypal2/apps.py index 2fee7bd4a..f442754e5 100644 --- a/src/pretix/plugins/paypal2/apps.py +++ b/src/pretix/plugins/paypal2/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/__init__.py b/src/pretix/plugins/paypal2/client/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/paypal2/client/__init__.py +++ b/src/pretix/plugins/paypal2/client/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/core/__init__.py b/src/pretix/plugins/paypal2/client/core/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/paypal2/client/core/__init__.py +++ b/src/pretix/plugins/paypal2/client/core/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/core/environment.py b/src/pretix/plugins/paypal2/client/core/environment.py index d8740b4c1..01c4af188 100644 --- a/src/pretix/plugins/paypal2/client/core/environment.py +++ b/src/pretix/plugins/paypal2/client/core/environment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/core/paypal_http_client.py b/src/pretix/plugins/paypal2/client/core/paypal_http_client.py index 714ad0954..75a4acd4a 100644 --- a/src/pretix/plugins/paypal2/client/core/paypal_http_client.py +++ b/src/pretix/plugins/paypal2/client/core/paypal_http_client.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/customer/__init__.py b/src/pretix/plugins/paypal2/client/customer/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/paypal2/client/customer/__init__.py +++ b/src/pretix/plugins/paypal2/client/customer/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/customer/partner_referral_create_request.py b/src/pretix/plugins/paypal2/client/customer/partner_referral_create_request.py index b0ca081ba..2f9f8de6f 100644 --- a/src/pretix/plugins/paypal2/client/customer/partner_referral_create_request.py +++ b/src/pretix/plugins/paypal2/client/customer/partner_referral_create_request.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/client/customer/partners_merchantintegrations_get_request.py b/src/pretix/plugins/paypal2/client/customer/partners_merchantintegrations_get_request.py index 68ce135e2..47ca25c49 100644 --- a/src/pretix/plugins/paypal2/client/customer/partners_merchantintegrations_get_request.py +++ b/src/pretix/plugins/paypal2/client/customer/partners_merchantintegrations_get_request.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/payment.py b/src/pretix/plugins/paypal2/payment.py index 1b8c6853e..18a265864 100644 --- a/src/pretix/plugins/paypal2/payment.py +++ b/src/pretix/plugins/paypal2/payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/signals.py b/src/pretix/plugins/paypal2/signals.py index 58894baa2..7965f8e0b 100644 --- a/src/pretix/plugins/paypal2/signals.py +++ b/src/pretix/plugins/paypal2/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/urls.py b/src/pretix/plugins/paypal2/urls.py index 11cb5715a..ed92dd473 100644 --- a/src/pretix/plugins/paypal2/urls.py +++ b/src/pretix/plugins/paypal2/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/paypal2/views.py b/src/pretix/plugins/paypal2/views.py index 9f617ce14..89cf81eaa 100644 --- a/src/pretix/plugins/paypal2/views.py +++ b/src/pretix/plugins/paypal2/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/pretixdroid/__init__.py b/src/pretix/plugins/pretixdroid/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/pretixdroid/__init__.py +++ b/src/pretix/plugins/pretixdroid/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/pretixdroid/apps.py b/src/pretix/plugins/pretixdroid/apps.py index d97868d47..7b2c9a3ae 100644 --- a/src/pretix/plugins/pretixdroid/apps.py +++ b/src/pretix/plugins/pretixdroid/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/reports/__init__.py b/src/pretix/plugins/reports/__init__.py index c4b4deab3..fe627f44f 100644 --- a/src/pretix/plugins/reports/__init__.py +++ b/src/pretix/plugins/reports/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/reports/accountingreport.py b/src/pretix/plugins/reports/accountingreport.py index 7d5da2731..0cef64663 100644 --- a/src/pretix/plugins/reports/accountingreport.py +++ b/src/pretix/plugins/reports/accountingreport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/reports/apps.py b/src/pretix/plugins/reports/apps.py index dd9924598..4e39df271 100644 --- a/src/pretix/plugins/reports/apps.py +++ b/src/pretix/plugins/reports/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/reports/exporters.py b/src/pretix/plugins/reports/exporters.py index a39eb738b..3a0cd9a15 100644 --- a/src/pretix/plugins/reports/exporters.py +++ b/src/pretix/plugins/reports/exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/reports/signals.py b/src/pretix/plugins/reports/signals.py index bc928a84e..a9670d5b7 100644 --- a/src/pretix/plugins/reports/signals.py +++ b/src/pretix/plugins/reports/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/returnurl/__init__.py b/src/pretix/plugins/returnurl/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/returnurl/__init__.py +++ b/src/pretix/plugins/returnurl/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/returnurl/apps.py b/src/pretix/plugins/returnurl/apps.py index f5217c3b6..524d076a9 100644 --- a/src/pretix/plugins/returnurl/apps.py +++ b/src/pretix/plugins/returnurl/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/returnurl/signals.py b/src/pretix/plugins/returnurl/signals.py index 894bed67b..60583003f 100644 --- a/src/pretix/plugins/returnurl/signals.py +++ b/src/pretix/plugins/returnurl/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/returnurl/urls.py b/src/pretix/plugins/returnurl/urls.py index df5f9d176..92536d02d 100644 --- a/src/pretix/plugins/returnurl/urls.py +++ b/src/pretix/plugins/returnurl/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/returnurl/views.py b/src/pretix/plugins/returnurl/views.py index 437a46695..f3fab2490 100644 --- a/src/pretix/plugins/returnurl/views.py +++ b/src/pretix/plugins/returnurl/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/__init__.py b/src/pretix/plugins/sendmail/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/sendmail/__init__.py +++ b/src/pretix/plugins/sendmail/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/api.py b/src/pretix/plugins/sendmail/api.py index 1bb0baec0..1bcc80593 100644 --- a/src/pretix/plugins/sendmail/api.py +++ b/src/pretix/plugins/sendmail/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/apps.py b/src/pretix/plugins/sendmail/apps.py index 14a5b2fce..7942559cb 100644 --- a/src/pretix/plugins/sendmail/apps.py +++ b/src/pretix/plugins/sendmail/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/forms.py b/src/pretix/plugins/sendmail/forms.py index fb69e9654..060bd5eea 100644 --- a/src/pretix/plugins/sendmail/forms.py +++ b/src/pretix/plugins/sendmail/forms.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/models.py b/src/pretix/plugins/sendmail/models.py index 432e48631..0f5733493 100644 --- a/src/pretix/plugins/sendmail/models.py +++ b/src/pretix/plugins/sendmail/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/signals.py b/src/pretix/plugins/sendmail/signals.py index 39fa11683..1186f11f4 100644 --- a/src/pretix/plugins/sendmail/signals.py +++ b/src/pretix/plugins/sendmail/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/tasks.py b/src/pretix/plugins/sendmail/tasks.py index 41dffdcd2..76808b080 100644 --- a/src/pretix/plugins/sendmail/tasks.py +++ b/src/pretix/plugins/sendmail/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/urls.py b/src/pretix/plugins/sendmail/urls.py index 757c7cb07..d14a687b6 100644 --- a/src/pretix/plugins/sendmail/urls.py +++ b/src/pretix/plugins/sendmail/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/sendmail/views.py b/src/pretix/plugins/sendmail/views.py index 5b46cac2c..189761ab4 100644 --- a/src/pretix/plugins/sendmail/views.py +++ b/src/pretix/plugins/sendmail/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/statistics/__init__.py b/src/pretix/plugins/statistics/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/statistics/__init__.py +++ b/src/pretix/plugins/statistics/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/statistics/apps.py b/src/pretix/plugins/statistics/apps.py index 580782e4c..a5e59683a 100644 --- a/src/pretix/plugins/statistics/apps.py +++ b/src/pretix/plugins/statistics/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/statistics/signals.py b/src/pretix/plugins/statistics/signals.py index c78dae5a9..224a916b0 100644 --- a/src/pretix/plugins/statistics/signals.py +++ b/src/pretix/plugins/statistics/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/statistics/urls.py b/src/pretix/plugins/statistics/urls.py index e7a08f3a0..c8ee94b65 100644 --- a/src/pretix/plugins/statistics/urls.py +++ b/src/pretix/plugins/statistics/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/statistics/views.py b/src/pretix/plugins/statistics/views.py index a3438bb15..518120854 100644 --- a/src/pretix/plugins/statistics/views.py +++ b/src/pretix/plugins/statistics/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/__init__.py b/src/pretix/plugins/stripe/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/stripe/__init__.py +++ b/src/pretix/plugins/stripe/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/apps.py b/src/pretix/plugins/stripe/apps.py index de478128f..bb19805e3 100644 --- a/src/pretix/plugins/stripe/apps.py +++ b/src/pretix/plugins/stripe/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/forms.py b/src/pretix/plugins/stripe/forms.py index 60cb26a41..5d79654dd 100644 --- a/src/pretix/plugins/stripe/forms.py +++ b/src/pretix/plugins/stripe/forms.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/management/__init__.py b/src/pretix/plugins/stripe/management/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/stripe/management/__init__.py +++ b/src/pretix/plugins/stripe/management/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/management/commands/__init__.py b/src/pretix/plugins/stripe/management/commands/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/stripe/management/commands/__init__.py +++ b/src/pretix/plugins/stripe/management/commands/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/management/commands/stripe_connect_fill_countries.py b/src/pretix/plugins/stripe/management/commands/stripe_connect_fill_countries.py index 7062e9b1f..b7a1d7168 100644 --- a/src/pretix/plugins/stripe/management/commands/stripe_connect_fill_countries.py +++ b/src/pretix/plugins/stripe/management/commands/stripe_connect_fill_countries.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/models.py b/src/pretix/plugins/stripe/models.py index d63f7aee1..cb6904d41 100644 --- a/src/pretix/plugins/stripe/models.py +++ b/src/pretix/plugins/stripe/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/payment.py b/src/pretix/plugins/stripe/payment.py index 2bf8ad4a2..325884a9f 100644 --- a/src/pretix/plugins/stripe/payment.py +++ b/src/pretix/plugins/stripe/payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/signals.py b/src/pretix/plugins/stripe/signals.py index 29189b7d2..8202c10e1 100644 --- a/src/pretix/plugins/stripe/signals.py +++ b/src/pretix/plugins/stripe/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/tasks.py b/src/pretix/plugins/stripe/tasks.py index cbf04fd35..c4f09dad5 100644 --- a/src/pretix/plugins/stripe/tasks.py +++ b/src/pretix/plugins/stripe/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/urls.py b/src/pretix/plugins/stripe/urls.py index 7bb62e9c4..51106622e 100644 --- a/src/pretix/plugins/stripe/urls.py +++ b/src/pretix/plugins/stripe/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/utils.py b/src/pretix/plugins/stripe/utils.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/stripe/utils.py +++ b/src/pretix/plugins/stripe/utils.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/stripe/views.py b/src/pretix/plugins/stripe/views.py index 628323dac..adc14965d 100644 --- a/src/pretix/plugins/stripe/views.py +++ b/src/pretix/plugins/stripe/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/__init__.py b/src/pretix/plugins/ticketoutputpdf/__init__.py index c4b4deab3..fe627f44f 100644 --- a/src/pretix/plugins/ticketoutputpdf/__init__.py +++ b/src/pretix/plugins/ticketoutputpdf/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/api.py b/src/pretix/plugins/ticketoutputpdf/api.py index b526ccf59..7232c4bcf 100644 --- a/src/pretix/plugins/ticketoutputpdf/api.py +++ b/src/pretix/plugins/ticketoutputpdf/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/apps.py b/src/pretix/plugins/ticketoutputpdf/apps.py index b307dd9a2..c5552fdf7 100644 --- a/src/pretix/plugins/ticketoutputpdf/apps.py +++ b/src/pretix/plugins/ticketoutputpdf/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/exporters.py b/src/pretix/plugins/ticketoutputpdf/exporters.py index 4d42e866b..cc9171f0c 100644 --- a/src/pretix/plugins/ticketoutputpdf/exporters.py +++ b/src/pretix/plugins/ticketoutputpdf/exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/forms.py b/src/pretix/plugins/ticketoutputpdf/forms.py index 57e8999c9..5a1cf4404 100644 --- a/src/pretix/plugins/ticketoutputpdf/forms.py +++ b/src/pretix/plugins/ticketoutputpdf/forms.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/models.py b/src/pretix/plugins/ticketoutputpdf/models.py index 07f7fb9f3..5b506f343 100644 --- a/src/pretix/plugins/ticketoutputpdf/models.py +++ b/src/pretix/plugins/ticketoutputpdf/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/signals.py b/src/pretix/plugins/ticketoutputpdf/signals.py index bd3464f5f..3bc2dc131 100644 --- a/src/pretix/plugins/ticketoutputpdf/signals.py +++ b/src/pretix/plugins/ticketoutputpdf/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/tasks.py b/src/pretix/plugins/ticketoutputpdf/tasks.py index c28f8e300..6d64a7a71 100644 --- a/src/pretix/plugins/ticketoutputpdf/tasks.py +++ b/src/pretix/plugins/ticketoutputpdf/tasks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py index bb5cdd5c3..636e5f08f 100644 --- a/src/pretix/plugins/ticketoutputpdf/ticketoutput.py +++ b/src/pretix/plugins/ticketoutputpdf/ticketoutput.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/urls.py b/src/pretix/plugins/ticketoutputpdf/urls.py index 224935374..7759b4196 100644 --- a/src/pretix/plugins/ticketoutputpdf/urls.py +++ b/src/pretix/plugins/ticketoutputpdf/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/ticketoutputpdf/views.py b/src/pretix/plugins/ticketoutputpdf/views.py index bf908fcea..5d47cad30 100644 --- a/src/pretix/plugins/ticketoutputpdf/views.py +++ b/src/pretix/plugins/ticketoutputpdf/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/webcheckin/__init__.py b/src/pretix/plugins/webcheckin/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/plugins/webcheckin/__init__.py +++ b/src/pretix/plugins/webcheckin/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/webcheckin/apps.py b/src/pretix/plugins/webcheckin/apps.py index af85d4703..bc03444d3 100644 --- a/src/pretix/plugins/webcheckin/apps.py +++ b/src/pretix/plugins/webcheckin/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/webcheckin/signals.py b/src/pretix/plugins/webcheckin/signals.py index f60bfa8f6..b88ad5fad 100644 --- a/src/pretix/plugins/webcheckin/signals.py +++ b/src/pretix/plugins/webcheckin/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/webcheckin/urls.py b/src/pretix/plugins/webcheckin/urls.py index 40551d546..5f7800e23 100644 --- a/src/pretix/plugins/webcheckin/urls.py +++ b/src/pretix/plugins/webcheckin/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/plugins/webcheckin/views.py b/src/pretix/plugins/webcheckin/views.py index b5aff4125..c4b42a795 100644 --- a/src/pretix/plugins/webcheckin/views.py +++ b/src/pretix/plugins/webcheckin/views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/__init__.py b/src/pretix/presale/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/presale/__init__.py +++ b/src/pretix/presale/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/apps.py b/src/pretix/presale/apps.py index 144152c50..9c5607091 100644 --- a/src/pretix/presale/apps.py +++ b/src/pretix/presale/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/checkoutflow.py b/src/pretix/presale/checkoutflow.py index 29304b0cf..31a130b0f 100644 --- a/src/pretix/presale/checkoutflow.py +++ b/src/pretix/presale/checkoutflow.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/context.py b/src/pretix/presale/context.py index 2bfeac2c5..d6b1ff24b 100644 --- a/src/pretix/presale/context.py +++ b/src/pretix/presale/context.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/cookies.py b/src/pretix/presale/cookies.py index afea6d5de..f1662d37a 100644 --- a/src/pretix/presale/cookies.py +++ b/src/pretix/presale/cookies.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/__init__.py b/src/pretix/presale/forms/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/presale/forms/__init__.py +++ b/src/pretix/presale/forms/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/checkout.py b/src/pretix/presale/forms/checkout.py index e786d1c92..ea6e8ff48 100644 --- a/src/pretix/presale/forms/checkout.py +++ b/src/pretix/presale/forms/checkout.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/customer.py b/src/pretix/presale/forms/customer.py index 264b11b9b..b8c14ac7c 100644 --- a/src/pretix/presale/forms/customer.py +++ b/src/pretix/presale/forms/customer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/order.py b/src/pretix/presale/forms/order.py index 38ae37267..19537b5a6 100644 --- a/src/pretix/presale/forms/order.py +++ b/src/pretix/presale/forms/order.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/organizer.py b/src/pretix/presale/forms/organizer.py index 50bd65e11..a0577c006 100644 --- a/src/pretix/presale/forms/organizer.py +++ b/src/pretix/presale/forms/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/renderers.py b/src/pretix/presale/forms/renderers.py index ae36b29b0..193a503fc 100644 --- a/src/pretix/presale/forms/renderers.py +++ b/src/pretix/presale/forms/renderers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/user.py b/src/pretix/presale/forms/user.py index deb461b96..3b76bd983 100644 --- a/src/pretix/presale/forms/user.py +++ b/src/pretix/presale/forms/user.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/forms/waitinglist.py b/src/pretix/presale/forms/waitinglist.py index 030fe9690..740ad3045 100644 --- a/src/pretix/presale/forms/waitinglist.py +++ b/src/pretix/presale/forms/waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/ical.py b/src/pretix/presale/ical.py index f9952cbde..cb5940a41 100644 --- a/src/pretix/presale/ical.py +++ b/src/pretix/presale/ical.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/management/__init__.py b/src/pretix/presale/management/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/presale/management/__init__.py +++ b/src/pretix/presale/management/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/management/commands/__init__.py b/src/pretix/presale/management/commands/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/presale/management/commands/__init__.py +++ b/src/pretix/presale/management/commands/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/management/commands/updateassets.py b/src/pretix/presale/management/commands/updateassets.py index 0aabae8d8..b1743907c 100644 --- a/src/pretix/presale/management/commands/updateassets.py +++ b/src/pretix/presale/management/commands/updateassets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/management/commands/updatestyles.py b/src/pretix/presale/management/commands/updatestyles.py index f6bdf0b59..cb07f8205 100644 --- a/src/pretix/presale/management/commands/updatestyles.py +++ b/src/pretix/presale/management/commands/updatestyles.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/middleware.py b/src/pretix/presale/middleware.py index 8832d4550..05260a648 100644 --- a/src/pretix/presale/middleware.py +++ b/src/pretix/presale/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/signals.py b/src/pretix/presale/signals.py index 267be37dd..077b35d2c 100644 --- a/src/pretix/presale/signals.py +++ b/src/pretix/presale/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/style.py b/src/pretix/presale/style.py index bbde358e7..9945cbf6b 100644 --- a/src/pretix/presale/style.py +++ b/src/pretix/presale/style.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/urls.py b/src/pretix/presale/urls.py index ac197af54..2fbfac589 100644 --- a/src/pretix/presale/urls.py +++ b/src/pretix/presale/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/utils.py b/src/pretix/presale/utils.py index 734fa2b21..4b4d64e58 100644 --- a/src/pretix/presale/utils.py +++ b/src/pretix/presale/utils.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/__init__.py b/src/pretix/presale/views/__init__.py index b8d6acb69..3ed42cad7 100644 --- a/src/pretix/presale/views/__init__.py +++ b/src/pretix/presale/views/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/cart.py b/src/pretix/presale/views/cart.py index 362dfef5d..b9cfebd41 100644 --- a/src/pretix/presale/views/cart.py +++ b/src/pretix/presale/views/cart.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py index 2184776bb..f2865e9e5 100644 --- a/src/pretix/presale/views/checkout.py +++ b/src/pretix/presale/views/checkout.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/customer.py b/src/pretix/presale/views/customer.py index a2aa3ff07..45c6216ba 100644 --- a/src/pretix/presale/views/customer.py +++ b/src/pretix/presale/views/customer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py index ef7a9ac75..43dec358a 100644 --- a/src/pretix/presale/views/event.py +++ b/src/pretix/presale/views/event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/locale.py b/src/pretix/presale/views/locale.py index 9cc0df2d7..15dcf7512 100644 --- a/src/pretix/presale/views/locale.py +++ b/src/pretix/presale/views/locale.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/oidc_op.py b/src/pretix/presale/views/oidc_op.py index 2c23360e7..a8178545f 100644 --- a/src/pretix/presale/views/oidc_op.py +++ b/src/pretix/presale/views/oidc_op.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py index efcfc3a64..291e4a129 100644 --- a/src/pretix/presale/views/order.py +++ b/src/pretix/presale/views/order.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/organizer.py b/src/pretix/presale/views/organizer.py index 519708c8b..d46c2ef6c 100644 --- a/src/pretix/presale/views/organizer.py +++ b/src/pretix/presale/views/organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/questions.py b/src/pretix/presale/views/questions.py index 76265434a..fad52d0b6 100644 --- a/src/pretix/presale/views/questions.py +++ b/src/pretix/presale/views/questions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/robots.py b/src/pretix/presale/views/robots.py index 1d0356c64..be88ee953 100644 --- a/src/pretix/presale/views/robots.py +++ b/src/pretix/presale/views/robots.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/theme.py b/src/pretix/presale/views/theme.py index d70515326..045addd93 100644 --- a/src/pretix/presale/views/theme.py +++ b/src/pretix/presale/views/theme.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/user.py b/src/pretix/presale/views/user.py index 926be4786..4fda0d32f 100644 --- a/src/pretix/presale/views/user.py +++ b/src/pretix/presale/views/user.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/waiting.py b/src/pretix/presale/views/waiting.py index b72888f82..6a8d85e46 100644 --- a/src/pretix/presale/views/waiting.py +++ b/src/pretix/presale/views/waiting.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/presale/views/widget.py b/src/pretix/presale/views/widget.py index c612accf9..87ffa7e68 100644 --- a/src/pretix/presale/views/widget.py +++ b/src/pretix/presale/views/widget.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/sentry.py b/src/pretix/sentry.py index 56eee6239..9e40e8ce3 100644 --- a/src/pretix/sentry.py +++ b/src/pretix/sentry.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 10123aa9b..7f7845858 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/__init__.py b/src/pretix/testutils/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/pretix/testutils/__init__.py +++ b/src/pretix/testutils/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/api.py b/src/pretix/testutils/api.py index a0e19255b..2ddd3ae92 100644 --- a/src/pretix/testutils/api.py +++ b/src/pretix/testutils/api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/mail.py b/src/pretix/testutils/mail.py index 134989720..29a569894 100644 --- a/src/pretix/testutils/mail.py +++ b/src/pretix/testutils/mail.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/middleware.py b/src/pretix/testutils/middleware.py index 9fe07857c..b76ca9d98 100644 --- a/src/pretix/testutils/middleware.py +++ b/src/pretix/testutils/middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/mock.py b/src/pretix/testutils/mock.py index 68fefae00..501d6e7b7 100644 --- a/src/pretix/testutils/mock.py +++ b/src/pretix/testutils/mock.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/queries.py b/src/pretix/testutils/queries.py index 267ad2103..bd9dfa32a 100644 --- a/src/pretix/testutils/queries.py +++ b/src/pretix/testutils/queries.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/scope.py b/src/pretix/testutils/scope.py index 40c7d2afc..d592d79f3 100644 --- a/src/pretix/testutils/scope.py +++ b/src/pretix/testutils/scope.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/sessions.py b/src/pretix/testutils/sessions.py index cc785e2e3..8e94a1b96 100644 --- a/src/pretix/testutils/sessions.py +++ b/src/pretix/testutils/sessions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/testutils/settings.py b/src/pretix/testutils/settings.py index 9c5bf7145..c73440dea 100644 --- a/src/pretix/testutils/settings.py +++ b/src/pretix/testutils/settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/urls.py b/src/pretix/urls.py index 8d1b3b7f3..f5a3d6a9c 100644 --- a/src/pretix/urls.py +++ b/src/pretix/urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/pretix/wsgi.py b/src/pretix/wsgi.py index 38ae94184..4e0a63943 100644 --- a/src/pretix/wsgi.py +++ b/src/pretix/wsgi.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/__init__.py b/src/tests/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/__init__.py +++ b/src/tests/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/__init__.py b/src/tests/api/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/api/__init__.py +++ b/src/tests/api/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/conftest.py b/src/tests/api/conftest.py index bc2e2742c..4947708d7 100644 --- a/src/tests/api/conftest.py +++ b/src/tests/api/conftest.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_append_slash.py b/src/tests/api/test_append_slash.py index c7c044add..5f1f1ee87 100644 --- a/src/tests/api/test_append_slash.py +++ b/src/tests/api/test_append_slash.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_auth.py b/src/tests/api/test_auth.py index 2fb4cb32f..fd7eec6a9 100644 --- a/src/tests/api/test_auth.py +++ b/src/tests/api/test_auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_cart.py b/src/tests/api/test_cart.py index d39b722e4..5bf7c3ad1 100644 --- a/src/tests/api/test_cart.py +++ b/src/tests/api/test_cart.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_checkin.py b/src/tests/api/test_checkin.py index 52af8a8cf..fd18b497d 100644 --- a/src/tests/api/test_checkin.py +++ b/src/tests/api/test_checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_checkinrpc.py b/src/tests/api/test_checkinrpc.py index 9021c7c0f..77d1b0329 100644 --- a/src/tests/api/test_checkinrpc.py +++ b/src/tests/api/test_checkinrpc.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_customers.py b/src/tests/api/test_customers.py index 9d8f38168..c59c58aeb 100644 --- a/src/tests/api/test_customers.py +++ b/src/tests/api/test_customers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_device_event_selection.py b/src/tests/api/test_device_event_selection.py index c8a309065..cd07c7bb4 100644 --- a/src/tests/api/test_device_event_selection.py +++ b/src/tests/api/test_device_event_selection.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_deviceauth.py b/src/tests/api/test_deviceauth.py index bed8fb0e3..dd29809b7 100644 --- a/src/tests/api/test_deviceauth.py +++ b/src/tests/api/test_deviceauth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_devices.py b/src/tests/api/test_devices.py index e1856ad06..dafdb7097 100644 --- a/src/tests/api/test_devices.py +++ b/src/tests/api/test_devices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_discounts.py b/src/tests/api/test_discounts.py index 22451135e..de461c129 100644 --- a/src/tests/api/test_discounts.py +++ b/src/tests/api/test_discounts.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_events.py b/src/tests/api/test_events.py index 60a1522ee..b2b350216 100644 --- a/src/tests/api/test_events.py +++ b/src/tests/api/test_events.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_exporters.py b/src/tests/api/test_exporters.py index 822fcad84..a7fdb45e1 100644 --- a/src/tests/api/test_exporters.py +++ b/src/tests/api/test_exporters.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_giftcards.py b/src/tests/api/test_giftcards.py index bbc50fec2..4fdb89cfe 100644 --- a/src/tests/api/test_giftcards.py +++ b/src/tests/api/test_giftcards.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_idempotency.py b/src/tests/api/test_idempotency.py index 884df388c..83fb8d283 100644 --- a/src/tests/api/test_idempotency.py +++ b/src/tests/api/test_idempotency.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_invoices.py b/src/tests/api/test_invoices.py index 10cf0fb1a..37c3db609 100644 --- a/src/tests/api/test_invoices.py +++ b/src/tests/api/test_invoices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_item_meta_properties.py b/src/tests/api/test_item_meta_properties.py index 7c0bfd346..78afd4fb7 100644 --- a/src/tests/api/test_item_meta_properties.py +++ b/src/tests/api/test_item_meta_properties.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_items.py b/src/tests/api/test_items.py index 4b011a4c9..4b10b80bf 100644 --- a/src/tests/api/test_items.py +++ b/src/tests/api/test_items.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_membership.py b/src/tests/api/test_membership.py index 356762cb8..c40bc789a 100644 --- a/src/tests/api/test_membership.py +++ b/src/tests/api/test_membership.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_membershiptypes.py b/src/tests/api/test_membershiptypes.py index aa89815e9..7af3e12b4 100644 --- a/src/tests/api/test_membershiptypes.py +++ b/src/tests/api/test_membershiptypes.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_oauth.py b/src/tests/api/test_oauth.py index 8c93b6bf7..8a9054c9c 100644 --- a/src/tests/api/test_oauth.py +++ b/src/tests/api/test_oauth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_order_change.py b/src/tests/api/test_order_change.py index e061aad40..0e628d20a 100644 --- a/src/tests/api/test_order_change.py +++ b/src/tests/api/test_order_change.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py index fae1581f6..06083965d 100644 --- a/src/tests/api/test_order_create.py +++ b/src/tests/api/test_order_create.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_orders.py b/src/tests/api/test_orders.py index da721db9a..08b7bd16b 100644 --- a/src/tests/api/test_orders.py +++ b/src/tests/api/test_orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_organizers.py b/src/tests/api/test_organizers.py index 55d9da30b..2109e8de1 100644 --- a/src/tests/api/test_organizers.py +++ b/src/tests/api/test_organizers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_permissions.py b/src/tests/api/test_permissions.py index c3c08f439..91249dd75 100644 --- a/src/tests/api/test_permissions.py +++ b/src/tests/api/test_permissions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_reusable_media.py b/src/tests/api/test_reusable_media.py index a415b3f54..2938e524a 100644 --- a/src/tests/api/test_reusable_media.py +++ b/src/tests/api/test_reusable_media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_saleschannels.py b/src/tests/api/test_saleschannels.py index 09a60004a..75171975b 100644 --- a/src/tests/api/test_saleschannels.py +++ b/src/tests/api/test_saleschannels.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_seatingplans.py b/src/tests/api/test_seatingplans.py index d95a24778..2e7d31140 100644 --- a/src/tests/api/test_seatingplans.py +++ b/src/tests/api/test_seatingplans.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_sendmail.py b/src/tests/api/test_sendmail.py index 4e876ef1e..86ee820a4 100644 --- a/src/tests/api/test_sendmail.py +++ b/src/tests/api/test_sendmail.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_shredders.py b/src/tests/api/test_shredders.py index 81d456726..a84d644e4 100644 --- a/src/tests/api/test_shredders.py +++ b/src/tests/api/test_shredders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_subevents.py b/src/tests/api/test_subevents.py index 4bc26bc50..24478d89b 100644 --- a/src/tests/api/test_subevents.py +++ b/src/tests/api/test_subevents.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_taxrules.py b/src/tests/api/test_taxrules.py index b342e09c3..383272e47 100644 --- a/src/tests/api/test_taxrules.py +++ b/src/tests/api/test_taxrules.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_teams.py b/src/tests/api/test_teams.py index 71ce6fd2e..e687d9650 100644 --- a/src/tests/api/test_teams.py +++ b/src/tests/api/test_teams.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_transactions.py b/src/tests/api/test_transactions.py index f38bc2cbc..9a0dea305 100644 --- a/src/tests/api/test_transactions.py +++ b/src/tests/api/test_transactions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_upload.py b/src/tests/api/test_upload.py index 955130f37..7bba13a14 100644 --- a/src/tests/api/test_upload.py +++ b/src/tests/api/test_upload.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_vouchers.py b/src/tests/api/test_vouchers.py index 20b1fde4d..83cc42fef 100644 --- a/src/tests/api/test_vouchers.py +++ b/src/tests/api/test_vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_waitinglist.py b/src/tests/api/test_waitinglist.py index 40ddf1e2b..8178a0fa7 100644 --- a/src/tests/api/test_waitinglist.py +++ b/src/tests/api/test_waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/api/test_webhooks.py b/src/tests/api/test_webhooks.py index c13e34015..1445933b9 100644 --- a/src/tests/api/test_webhooks.py +++ b/src/tests/api/test_webhooks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/__init__.py b/src/tests/base/__init__.py index e0186bbc3..14301c534 100644 --- a/src/tests/base/__init__.py +++ b/src/tests/base/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_addressvalidation.py b/src/tests/base/test_addressvalidation.py index b8e26edc8..a8ee487a3 100644 --- a/src/tests/base/test_addressvalidation.py +++ b/src/tests/base/test_addressvalidation.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_cache.py b/src/tests/base/test_cache.py index f1bf2e953..b7ffaf215 100644 --- a/src/tests/base/test_cache.py +++ b/src/tests/base/test_cache.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_cancelevent.py b/src/tests/base/test_cancelevent.py index d4ef4eea2..79509aef0 100644 --- a/src/tests/base/test_cancelevent.py +++ b/src/tests/base/test_cancelevent.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_checkin.py b/src/tests/base/test_checkin.py index 7ce184933..04f51d4a6 100644 --- a/src/tests/base/test_checkin.py +++ b/src/tests/base/test_checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_cross_selling.py b/src/tests/base/test_cross_selling.py index ab0d2a5b6..b94938961 100644 --- a/src/tests/base/test_cross_selling.py +++ b/src/tests/base/test_cross_selling.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_customer_oidc_rp.py b/src/tests/base/test_customer_oidc_rp.py index a0af12928..80ffb4b68 100644 --- a/src/tests/base/test_customer_oidc_rp.py +++ b/src/tests/base/test_customer_oidc_rp.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_datasync.py b/src/tests/base/test_datasync.py index a45db70e6..94fafb1e7 100644 --- a/src/tests/base/test_datasync.py +++ b/src/tests/base/test_datasync.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_event_clone.py b/src/tests/base/test_event_clone.py index 7f81478a1..c01339be7 100644 --- a/src/tests/base/test_event_clone.py +++ b/src/tests/base/test_event_clone.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_export.py b/src/tests/base/test_export.py index 4355f330e..d07bb576d 100644 --- a/src/tests/base/test_export.py +++ b/src/tests/base/test_export.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_i18n.py b/src/tests/base/test_i18n.py index 5a84a117b..afd7c45ef 100644 --- a/src/tests/base/test_i18n.py +++ b/src/tests/base/test_i18n.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_invoices.py b/src/tests/base/test_invoices.py index b50a98f80..a3032ce80 100644 --- a/src/tests/base/test_invoices.py +++ b/src/tests/base/test_invoices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_item_validity.py b/src/tests/base/test_item_validity.py index c18ba130f..3eca15ab6 100644 --- a/src/tests/base/test_item_validity.py +++ b/src/tests/base/test_item_validity.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_js_helpers.py b/src/tests/base/test_js_helpers.py index 2fbb477d1..654abeb86 100644 --- a/src/tests/base/test_js_helpers.py +++ b/src/tests/base/test_js_helpers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_mail.py b/src/tests/base/test_mail.py index a8e4c338a..a9ca4f20e 100644 --- a/src/tests/base/test_mail.py +++ b/src/tests/base/test_mail.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_memberships.py b/src/tests/base/test_memberships.py index ca3aae96c..1b074ccec 100644 --- a/src/tests/base/test_memberships.py +++ b/src/tests/base/test_memberships.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_metrics.py b/src/tests/base/test_metrics.py index 4f24bd71a..e0246189b 100644 --- a/src/tests/base/test_metrics.py +++ b/src/tests/base/test_metrics.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_middleware.py b/src/tests/base/test_middleware.py index 2b7bd3c4a..87da80a33 100644 --- a/src/tests/base/test_middleware.py +++ b/src/tests/base/test_middleware.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_modelimport_orders.py b/src/tests/base/test_modelimport_orders.py index 634e40664..494f74f7d 100644 --- a/src/tests/base/test_modelimport_orders.py +++ b/src/tests/base/test_modelimport_orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_modelimport_vouchers.py b/src/tests/base/test_modelimport_vouchers.py index 98fd044ef..f0fc81c80 100644 --- a/src/tests/base/test_modelimport_vouchers.py +++ b/src/tests/base/test_modelimport_vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index 1409a7a89..ae2137fd6 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_notifications.py b/src/tests/base/test_notifications.py index 79727d867..c3570be10 100644 --- a/src/tests/base/test_notifications.py +++ b/src/tests/base/test_notifications.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_orders.py b/src/tests/base/test_orders.py index 0d9ce2b8d..032c648c8 100644 --- a/src/tests/base/test_orders.py +++ b/src/tests/base/test_orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_ordersecrets.py b/src/tests/base/test_ordersecrets.py index 54db74d73..f2715e523 100644 --- a/src/tests/base/test_ordersecrets.py +++ b/src/tests/base/test_ordersecrets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_payment.py b/src/tests/base/test_payment.py index 0bc7ab220..9b88e37a7 100644 --- a/src/tests/base/test_payment.py +++ b/src/tests/base/test_payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_permissions.py b/src/tests/base/test_permissions.py index ed1f09590..366c40cfa 100644 --- a/src/tests/base/test_permissions.py +++ b/src/tests/base/test_permissions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_plugins.py b/src/tests/base/test_plugins.py index d9cb02585..bbfdc082b 100644 --- a/src/tests/base/test_plugins.py +++ b/src/tests/base/test_plugins.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_pricing.py b/src/tests/base/test_pricing.py index 92491a83f..feb88d90a 100644 --- a/src/tests/base/test_pricing.py +++ b/src/tests/base/test_pricing.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_pricing_discount.py b/src/tests/base/test_pricing_discount.py index 5b7dc801e..1d1aa3de8 100644 --- a/src/tests/base/test_pricing_discount.py +++ b/src/tests/base/test_pricing_discount.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_questions.py b/src/tests/base/test_questions.py index ca5101d82..23f5b434c 100644 --- a/src/tests/base/test_questions.py +++ b/src/tests/base/test_questions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_registry.py b/src/tests/base/test_registry.py index c170a1d95..ce1e22754 100644 --- a/src/tests/base/test_registry.py +++ b/src/tests/base/test_registry.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_reldate.py b/src/tests/base/test_reldate.py index 0e340cd9e..d5f0db9ec 100644 --- a/src/tests/base/test_reldate.py +++ b/src/tests/base/test_reldate.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_rich_text.py b/src/tests/base/test_rich_text.py index cfec1df68..c17fb4654 100644 --- a/src/tests/base/test_rich_text.py +++ b/src/tests/base/test_rich_text.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_runperiodic.py b/src/tests/base/test_runperiodic.py index f7a0d4562..52e7a7679 100644 --- a/src/tests/base/test_runperiodic.py +++ b/src/tests/base/test_runperiodic.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_secrets.py b/src/tests/base/test_secrets.py index c64067d63..1c6ea4bf0 100644 --- a/src/tests/base/test_secrets.py +++ b/src/tests/base/test_secrets.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_settings.py b/src/tests/base/test_settings.py index d6a7ac728..34bc4f40e 100644 --- a/src/tests/base/test_settings.py +++ b/src/tests/base/test_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_shredders.py b/src/tests/base/test_shredders.py index a7f6aabe6..b8ebd7828 100644 --- a/src/tests/base/test_shredders.py +++ b/src/tests/base/test_shredders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_taxrules.py b/src/tests/base/test_taxrules.py index 6498ab967..095d0276b 100644 --- a/src/tests/base/test_taxrules.py +++ b/src/tests/base/test_taxrules.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_templatetag.py b/src/tests/base/test_templatetag.py index a9c9518de..d310deedd 100644 --- a/src/tests/base/test_templatetag.py +++ b/src/tests/base/test_templatetag.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_timeframes.py b/src/tests/base/test_timeframes.py index 246873143..ae3315bb3 100644 --- a/src/tests/base/test_timeframes.py +++ b/src/tests/base/test_timeframes.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_timeline.py b/src/tests/base/test_timeline.py index c61befa1e..718bc645c 100644 --- a/src/tests/base/test_timeline.py +++ b/src/tests/base/test_timeline.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_updatecheck.py b/src/tests/base/test_updatecheck.py index 6bcfba3da..1317eef29 100644 --- a/src/tests/base/test_updatecheck.py +++ b/src/tests/base/test_updatecheck.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_urls.py b/src/tests/base/test_urls.py index 2b6ed8566..5acedad4c 100644 --- a/src/tests/base/test_urls.py +++ b/src/tests/base/test_urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_vat_id_validation.py b/src/tests/base/test_vat_id_validation.py index 36602d9ca..1963cd130 100644 --- a/src/tests/base/test_vat_id_validation.py +++ b/src/tests/base/test_vat_id_validation.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_waitinglist.py b/src/tests/base/test_waitinglist.py index ec7472d7f..df90eaa87 100644 --- a/src/tests/base/test_waitinglist.py +++ b/src/tests/base/test_waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/base/test_webhooks.py b/src/tests/base/test_webhooks.py index 5affcecf8..ab5a905dd 100644 --- a/src/tests/base/test_webhooks.py +++ b/src/tests/base/test_webhooks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/__init__.py b/src/tests/concurrency_tests/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/concurrency_tests/__init__.py +++ b/src/tests/concurrency_tests/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/conftest.py b/src/tests/concurrency_tests/conftest.py index 454110429..eea651711 100644 --- a/src/tests/concurrency_tests/conftest.py +++ b/src/tests/concurrency_tests/conftest.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/test_api_order_creation_code.py b/src/tests/concurrency_tests/test_api_order_creation_code.py index fcb2a1aa3..158891121 100644 --- a/src/tests/concurrency_tests/test_api_order_creation_code.py +++ b/src/tests/concurrency_tests/test_api_order_creation_code.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/test_cart_creation_locking.py b/src/tests/concurrency_tests/test_cart_creation_locking.py index a18f75348..6fcac8a96 100644 --- a/src/tests/concurrency_tests/test_cart_creation_locking.py +++ b/src/tests/concurrency_tests/test_cart_creation_locking.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/test_order_creation_locking.py b/src/tests/concurrency_tests/test_order_creation_locking.py index f67f4ed21..4220131f5 100644 --- a/src/tests/concurrency_tests/test_order_creation_locking.py +++ b/src/tests/concurrency_tests/test_order_creation_locking.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/test_order_paid_locking.py b/src/tests/concurrency_tests/test_order_paid_locking.py index c4853d4a0..5a713982d 100644 --- a/src/tests/concurrency_tests/test_order_paid_locking.py +++ b/src/tests/concurrency_tests/test_order_paid_locking.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/concurrency_tests/utils.py b/src/tests/concurrency_tests/utils.py index 59f65add6..6fc63d5d3 100644 --- a/src/tests/concurrency_tests/utils.py +++ b/src/tests/concurrency_tests/utils.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/conftest.py b/src/tests/conftest.py index abedc3192..418c20ab6 100644 --- a/src/tests/conftest.py +++ b/src/tests/conftest.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/const.py b/src/tests/const.py index b744653fe..248bb6f3a 100644 --- a/src/tests/const.py +++ b/src/tests/const.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/__init__.py b/src/tests/control/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/control/__init__.py +++ b/src/tests/control/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_auth.py b/src/tests/control/test_auth.py index 5a23a56af..8500c77f3 100644 --- a/src/tests/control/test_auth.py +++ b/src/tests/control/test_auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_checkins.py b/src/tests/control/test_checkins.py index 45cb19d19..bad7b5303 100644 --- a/src/tests/control/test_checkins.py +++ b/src/tests/control/test_checkins.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_customer.py b/src/tests/control/test_customer.py index 1d660986b..a973a1986 100644 --- a/src/tests/control/test_customer.py +++ b/src/tests/control/test_customer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_devices.py b/src/tests/control/test_devices.py index d3a678410..afbca7b3b 100644 --- a/src/tests/control/test_devices.py +++ b/src/tests/control/test_devices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_events.py b/src/tests/control/test_events.py index 4708d8c9c..904247056 100644 --- a/src/tests/control/test_events.py +++ b/src/tests/control/test_events.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_export.py b/src/tests/control/test_export.py index dfa7d366c..ed28cb869 100644 --- a/src/tests/control/test_export.py +++ b/src/tests/control/test_export.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_giftcards.py b/src/tests/control/test_giftcards.py index 8488d80d5..eb6215212 100644 --- a/src/tests/control/test_giftcards.py +++ b/src/tests/control/test_giftcards.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_items.py b/src/tests/control/test_items.py index dccadfc12..ef938206d 100644 --- a/src/tests/control/test_items.py +++ b/src/tests/control/test_items.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_mail_settings_preview.py b/src/tests/control/test_mail_settings_preview.py index 8d2972ec4..141fc043d 100644 --- a/src/tests/control/test_mail_settings_preview.py +++ b/src/tests/control/test_mail_settings_preview.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_modelimport.py b/src/tests/control/test_modelimport.py index f8726a7f3..31801950d 100644 --- a/src/tests/control/test_modelimport.py +++ b/src/tests/control/test_modelimport.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_orders.py b/src/tests/control/test_orders.py index d72148875..577cf0efe 100644 --- a/src/tests/control/test_orders.py +++ b/src/tests/control/test_orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_orders_bulk.py b/src/tests/control/test_orders_bulk.py index aa86160c2..e3bd60d64 100644 --- a/src/tests/control/test_orders_bulk.py +++ b/src/tests/control/test_orders_bulk.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_organizer.py b/src/tests/control/test_organizer.py index 52feecafb..d1d42f5a0 100644 --- a/src/tests/control/test_organizer.py +++ b/src/tests/control/test_organizer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_permissions.py b/src/tests/control/test_permissions.py index d2a35284d..3b3c11fc0 100644 --- a/src/tests/control/test_permissions.py +++ b/src/tests/control/test_permissions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_reusable_media.py b/src/tests/control/test_reusable_media.py index 9a4d9a12b..2ef20df84 100644 --- a/src/tests/control/test_reusable_media.py +++ b/src/tests/control/test_reusable_media.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_search.py b/src/tests/control/test_search.py index b2d898763..83c94cc01 100644 --- a/src/tests/control/test_search.py +++ b/src/tests/control/test_search.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_shredders.py b/src/tests/control/test_shredders.py index 2c03eb9e2..c409716ad 100644 --- a/src/tests/control/test_shredders.py +++ b/src/tests/control/test_shredders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_subevents.py b/src/tests/control/test_subevents.py index 55d41f38b..2b82b7094 100644 --- a/src/tests/control/test_subevents.py +++ b/src/tests/control/test_subevents.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_taxrates.py b/src/tests/control/test_taxrates.py index 78cc1953e..62a58a26d 100644 --- a/src/tests/control/test_taxrates.py +++ b/src/tests/control/test_taxrates.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_teams.py b/src/tests/control/test_teams.py index 6391414a4..65c3f2b0b 100644 --- a/src/tests/control/test_teams.py +++ b/src/tests/control/test_teams.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_updatecheck.py b/src/tests/control/test_updatecheck.py index b6fcc63bf..3bf41ffdb 100644 --- a/src/tests/control/test_updatecheck.py +++ b/src/tests/control/test_updatecheck.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_user.py b/src/tests/control/test_user.py index 553ab55b6..8c80ac280 100644 --- a/src/tests/control/test_user.py +++ b/src/tests/control/test_user.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_views.py b/src/tests/control/test_views.py index 6f06dd104..d73021ddd 100644 --- a/src/tests/control/test_views.py +++ b/src/tests/control/test_views.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_vouchers.py b/src/tests/control/test_vouchers.py index 81682f2f2..874b44574 100644 --- a/src/tests/control/test_vouchers.py +++ b/src/tests/control/test_vouchers.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_waitinglist.py b/src/tests/control/test_waitinglist.py index 13221bbdb..ea92dae2c 100644 --- a/src/tests/control/test_waitinglist.py +++ b/src/tests/control/test_waitinglist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/control/test_webhooks.py b/src/tests/control/test_webhooks.py index e59e5bd34..97f1e773b 100644 --- a/src/tests/control/test_webhooks.py +++ b/src/tests/control/test_webhooks.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/doc/__init__.py b/src/tests/doc/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/doc/__init__.py +++ b/src/tests/doc/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/doc/test_signals.py b/src/tests/doc/test_signals.py index af73a530d..7526fa101 100644 --- a/src/tests/doc/test_signals.py +++ b/src/tests/doc/test_signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/__init__.py b/src/tests/helpers/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/helpers/__init__.py +++ b/src/tests/helpers/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_daterange.py b/src/tests/helpers/test_daterange.py index 8acd60716..0654c69c2 100644 --- a/src/tests/helpers/test_daterange.py +++ b/src/tests/helpers/test_daterange.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_format.py b/src/tests/helpers/test_format.py index 6165fe622..5ab5c2569 100644 --- a/src/tests/helpers/test_format.py +++ b/src/tests/helpers/test_format.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_i18n.py b/src/tests/helpers/test_i18n.py index 07cee55ad..1c1306dce 100644 --- a/src/tests/helpers/test_i18n.py +++ b/src/tests/helpers/test_i18n.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_jsonlogic.py b/src/tests/helpers/test_jsonlogic.py index 674c1c943..ab73f8295 100644 --- a/src/tests/helpers/test_jsonlogic.py +++ b/src/tests/helpers/test_jsonlogic.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_jsonlogic_boolalg.py b/src/tests/helpers/test_jsonlogic_boolalg.py index db17bc7f1..63c11f934 100644 --- a/src/tests/helpers/test_jsonlogic_boolalg.py +++ b/src/tests/helpers/test_jsonlogic_boolalg.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_safe_openpyxl.py b/src/tests/helpers/test_safe_openpyxl.py index 64e53e155..050878ca7 100644 --- a/src/tests/helpers/test_safe_openpyxl.py +++ b/src/tests/helpers/test_safe_openpyxl.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_thumb.py b/src/tests/helpers/test_thumb.py index 9757b1d05..29a7904f6 100644 --- a/src/tests/helpers/test_thumb.py +++ b/src/tests/helpers/test_thumb.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/helpers/test_urls.py b/src/tests/helpers/test_urls.py index 300a731e6..eabbed0f3 100644 --- a/src/tests/helpers/test_urls.py +++ b/src/tests/helpers/test_urls.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/multidomain/__init__.py b/src/tests/multidomain/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/multidomain/__init__.py +++ b/src/tests/multidomain/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/multidomain/test_middlewares.py b/src/tests/multidomain/test_middlewares.py index acbba5c03..9fc488d41 100644 --- a/src/tests/multidomain/test_middlewares.py +++ b/src/tests/multidomain/test_middlewares.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/multidomain/test_plugin_handler.py b/src/tests/multidomain/test_plugin_handler.py index 384765ef3..8a8057cb1 100644 --- a/src/tests/multidomain/test_plugin_handler.py +++ b/src/tests/multidomain/test_plugin_handler.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/multidomain/test_templatetag.py b/src/tests/multidomain/test_templatetag.py index a95edf83b..3a7d36190 100644 --- a/src/tests/multidomain/test_templatetag.py +++ b/src/tests/multidomain/test_templatetag.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/multidomain/test_urlreverse.py b/src/tests/multidomain/test_urlreverse.py index 69c13f67b..61211c4ef 100644 --- a/src/tests/multidomain/test_urlreverse.py +++ b/src/tests/multidomain/test_urlreverse.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/__init__.py b/src/tests/plugins/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/__init__.py +++ b/src/tests/plugins/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/autocheckin/__init__.py b/src/tests/plugins/autocheckin/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/autocheckin/__init__.py +++ b/src/tests/plugins/autocheckin/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/autocheckin/conftest.py b/src/tests/plugins/autocheckin/conftest.py index bbd24d975..d8b3b9e48 100644 --- a/src/tests/plugins/autocheckin/conftest.py +++ b/src/tests/plugins/autocheckin/conftest.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/autocheckin/test_api.py b/src/tests/plugins/autocheckin/test_api.py index 8ec9bb96e..af5f45762 100644 --- a/src/tests/plugins/autocheckin/test_api.py +++ b/src/tests/plugins/autocheckin/test_api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/autocheckin/test_checkin.py b/src/tests/plugins/autocheckin/test_checkin.py index 9d6789593..fb757778b 100644 --- a/src/tests/plugins/autocheckin/test_checkin.py +++ b/src/tests/plugins/autocheckin/test_checkin.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/autocheckin/test_control.py b/src/tests/plugins/autocheckin/test_control.py index 04b36e12c..610400f60 100644 --- a/src/tests/plugins/autocheckin/test_control.py +++ b/src/tests/plugins/autocheckin/test_control.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/badges/__init__.py b/src/tests/plugins/badges/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/badges/__init__.py +++ b/src/tests/plugins/badges/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/badges/test_api.py b/src/tests/plugins/badges/test_api.py index 0bb854f3b..f7feca60f 100644 --- a/src/tests/plugins/badges/test_api.py +++ b/src/tests/plugins/badges/test_api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/badges/test_control.py b/src/tests/plugins/badges/test_control.py index 1615258c9..9053e18a1 100644 --- a/src/tests/plugins/badges/test_control.py +++ b/src/tests/plugins/badges/test_control.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/badges/test_pdf.py b/src/tests/plugins/badges/test_pdf.py index 57dd2e863..8dcdc8554 100644 --- a/src/tests/plugins/badges/test_pdf.py +++ b/src/tests/plugins/badges/test_pdf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/__init__.py b/src/tests/plugins/banktransfer/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/banktransfer/__init__.py +++ b/src/tests/plugins/banktransfer/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_actions.py b/src/tests/plugins/banktransfer/test_actions.py index 81d0e5ad8..11dd96311 100644 --- a/src/tests/plugins/banktransfer/test_actions.py +++ b/src/tests/plugins/banktransfer/test_actions.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_api.py b/src/tests/plugins/banktransfer/test_api.py index 6d3c9107e..4300c8525 100644 --- a/src/tests/plugins/banktransfer/test_api.py +++ b/src/tests/plugins/banktransfer/test_api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_csvparser.py b/src/tests/plugins/banktransfer/test_csvparser.py index c2aea00ac..9939a1ba5 100644 --- a/src/tests/plugins/banktransfer/test_csvparser.py +++ b/src/tests/plugins/banktransfer/test_csvparser.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_import.py b/src/tests/plugins/banktransfer/test_import.py index f0cb54a5f..925289119 100644 --- a/src/tests/plugins/banktransfer/test_import.py +++ b/src/tests/plugins/banktransfer/test_import.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_mt940.py b/src/tests/plugins/banktransfer/test_mt940.py index 8a6a46aa6..3fa4c8e93 100644 --- a/src/tests/plugins/banktransfer/test_mt940.py +++ b/src/tests/plugins/banktransfer/test_mt940.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_parsing.py b/src/tests/plugins/banktransfer/test_parsing.py index e338c3c6d..78bac2aae 100644 --- a/src/tests/plugins/banktransfer/test_parsing.py +++ b/src/tests/plugins/banktransfer/test_parsing.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_refund.py b/src/tests/plugins/banktransfer/test_refund.py index 8cdcb8a51..02b689e8a 100644 --- a/src/tests/plugins/banktransfer/test_refund.py +++ b/src/tests/plugins/banktransfer/test_refund.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/banktransfer/test_refund_export.py b/src/tests/plugins/banktransfer/test_refund_export.py index 527985ecb..b054afff7 100644 --- a/src/tests/plugins/banktransfer/test_refund_export.py +++ b/src/tests/plugins/banktransfer/test_refund_export.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal/__init__.py b/src/tests/plugins/paypal/__init__.py index c4b4deab3..fe627f44f 100644 --- a/src/tests/plugins/paypal/__init__.py +++ b/src/tests/plugins/paypal/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal/test_checkout.py b/src/tests/plugins/paypal/test_checkout.py index 0dd923a46..9eb068736 100644 --- a/src/tests/plugins/paypal/test_checkout.py +++ b/src/tests/plugins/paypal/test_checkout.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal/test_settings.py b/src/tests/plugins/paypal/test_settings.py index d9a4729d1..eb78411dd 100644 --- a/src/tests/plugins/paypal/test_settings.py +++ b/src/tests/plugins/paypal/test_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal/test_webhook.py b/src/tests/plugins/paypal/test_webhook.py index 31c60cb9c..1d5c74516 100644 --- a/src/tests/plugins/paypal/test_webhook.py +++ b/src/tests/plugins/paypal/test_webhook.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal2/__init__.py b/src/tests/plugins/paypal2/__init__.py index c4b4deab3..fe627f44f 100644 --- a/src/tests/plugins/paypal2/__init__.py +++ b/src/tests/plugins/paypal2/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal2/test_checkout.py b/src/tests/plugins/paypal2/test_checkout.py index 41b71345a..4bea8edc3 100644 --- a/src/tests/plugins/paypal2/test_checkout.py +++ b/src/tests/plugins/paypal2/test_checkout.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal2/test_settings.py b/src/tests/plugins/paypal2/test_settings.py index 686c37dba..24a2a74ef 100644 --- a/src/tests/plugins/paypal2/test_settings.py +++ b/src/tests/plugins/paypal2/test_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/paypal2/test_webhook.py b/src/tests/plugins/paypal2/test_webhook.py index 390b1c7dd..2c0cf68a2 100644 --- a/src/tests/plugins/paypal2/test_webhook.py +++ b/src/tests/plugins/paypal2/test_webhook.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/sendmail/__init__.py b/src/tests/plugins/sendmail/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/sendmail/__init__.py +++ b/src/tests/plugins/sendmail/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/sendmail/conftest.py b/src/tests/plugins/sendmail/conftest.py index 6c4d7ef32..3081c975b 100644 --- a/src/tests/plugins/sendmail/conftest.py +++ b/src/tests/plugins/sendmail/conftest.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/sendmail/test_rules.py b/src/tests/plugins/sendmail/test_rules.py index bb2900b0a..58f26aaae 100644 --- a/src/tests/plugins/sendmail/test_rules.py +++ b/src/tests/plugins/sendmail/test_rules.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/sendmail/test_sendmail.py b/src/tests/plugins/sendmail/test_sendmail.py index d43408b7b..e1322b393 100644 --- a/src/tests/plugins/sendmail/test_sendmail.py +++ b/src/tests/plugins/sendmail/test_sendmail.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/stripe/__init__.py b/src/tests/plugins/stripe/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/stripe/__init__.py +++ b/src/tests/plugins/stripe/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/stripe/test_checkout.py b/src/tests/plugins/stripe/test_checkout.py index fbeb0c4cd..ee6a77684 100644 --- a/src/tests/plugins/stripe/test_checkout.py +++ b/src/tests/plugins/stripe/test_checkout.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/stripe/test_provider.py b/src/tests/plugins/stripe/test_provider.py index 9234709f6..43f9e6317 100644 --- a/src/tests/plugins/stripe/test_provider.py +++ b/src/tests/plugins/stripe/test_provider.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/stripe/test_settings.py b/src/tests/plugins/stripe/test_settings.py index 0b3dc1f04..12ecbf4b2 100644 --- a/src/tests/plugins/stripe/test_settings.py +++ b/src/tests/plugins/stripe/test_settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/stripe/test_webhook.py b/src/tests/plugins/stripe/test_webhook.py index 40b98480d..3885e6762 100644 --- a/src/tests/plugins/stripe/test_webhook.py +++ b/src/tests/plugins/stripe/test_webhook.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/test_checkinlist.py b/src/tests/plugins/test_checkinlist.py index 795474a77..6f53bd35b 100644 --- a/src/tests/plugins/test_checkinlist.py +++ b/src/tests/plugins/test_checkinlist.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/test_returnurl.py b/src/tests/plugins/test_returnurl.py index 7b55c1d6c..c37a1346f 100644 --- a/src/tests/plugins/test_returnurl.py +++ b/src/tests/plugins/test_returnurl.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/ticketoutputpdf/__init__.py b/src/tests/plugins/ticketoutputpdf/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/plugins/ticketoutputpdf/__init__.py +++ b/src/tests/plugins/ticketoutputpdf/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/ticketoutputpdf/test_api.py b/src/tests/plugins/ticketoutputpdf/test_api.py index 7f6551e0b..533eb1bf3 100644 --- a/src/tests/plugins/ticketoutputpdf/test_api.py +++ b/src/tests/plugins/ticketoutputpdf/test_api.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/ticketoutputpdf/test_control.py b/src/tests/plugins/ticketoutputpdf/test_control.py index c217be890..e0ca09b1d 100644 --- a/src/tests/plugins/ticketoutputpdf/test_control.py +++ b/src/tests/plugins/ticketoutputpdf/test_control.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/ticketoutputpdf/test_defaults_and_copy.py b/src/tests/plugins/ticketoutputpdf/test_defaults_and_copy.py index 8f555ee93..d5b12ba90 100644 --- a/src/tests/plugins/ticketoutputpdf/test_defaults_and_copy.py +++ b/src/tests/plugins/ticketoutputpdf/test_defaults_and_copy.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/plugins/ticketoutputpdf/test_ticketoutputpdf.py b/src/tests/plugins/ticketoutputpdf/test_ticketoutputpdf.py index d4e9a6bc3..11bb8be74 100644 --- a/src/tests/plugins/ticketoutputpdf/test_ticketoutputpdf.py +++ b/src/tests/plugins/ticketoutputpdf/test_ticketoutputpdf.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/__init__.py b/src/tests/presale/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/presale/__init__.py +++ b/src/tests/presale/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_bundle_prices.py b/src/tests/presale/test_bundle_prices.py index ca56062e7..8693dea28 100644 --- a/src/tests/presale/test_bundle_prices.py +++ b/src/tests/presale/test_bundle_prices.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_cart.py b/src/tests/presale/test_cart.py index da78c4628..219a46ed9 100644 --- a/src/tests/presale/test_cart.py +++ b/src/tests/presale/test_cart.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_checkout.py b/src/tests/presale/test_checkout.py index 553db80cf..baf197b64 100644 --- a/src/tests/presale/test_checkout.py +++ b/src/tests/presale/test_checkout.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_checkoutflow.py b/src/tests/presale/test_checkoutflow.py index 055b2415c..1d4a39e0a 100644 --- a/src/tests/presale/test_checkoutflow.py +++ b/src/tests/presale/test_checkoutflow.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_customer.py b/src/tests/presale/test_customer.py index 01474734f..82d18f85a 100644 --- a/src/tests/presale/test_customer.py +++ b/src/tests/presale/test_customer.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_event.py b/src/tests/presale/test_event.py index 4e5fb89b0..15f3b7899 100644 --- a/src/tests/presale/test_event.py +++ b/src/tests/presale/test_event.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_locale.py b/src/tests/presale/test_locale.py index 4ed4b62f6..bb1874b1b 100644 --- a/src/tests/presale/test_locale.py +++ b/src/tests/presale/test_locale.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_oidc_op.py b/src/tests/presale/test_oidc_op.py index 161c16d55..af3e76b9d 100644 --- a/src/tests/presale/test_oidc_op.py +++ b/src/tests/presale/test_oidc_op.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_order_change.py b/src/tests/presale/test_order_change.py index af49fc0f1..3ebc21e97 100644 --- a/src/tests/presale/test_order_change.py +++ b/src/tests/presale/test_order_change.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_orders.py b/src/tests/presale/test_orders.py index 8ce916cae..583177df5 100644 --- a/src/tests/presale/test_orders.py +++ b/src/tests/presale/test_orders.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_organizer_page.py b/src/tests/presale/test_organizer_page.py index 053f281e0..ead641455 100644 --- a/src/tests/presale/test_organizer_page.py +++ b/src/tests/presale/test_organizer_page.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_style.py b/src/tests/presale/test_style.py index e71124f88..158cfef25 100644 --- a/src/tests/presale/test_style.py +++ b/src/tests/presale/test_style.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_timemachine.py b/src/tests/presale/test_timemachine.py index 0eed1de6d..92261b328 100644 --- a/src/tests/presale/test_timemachine.py +++ b/src/tests/presale/test_timemachine.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/presale/test_widget.py b/src/tests/presale/test_widget.py index a11b3c909..7a097558c 100644 --- a/src/tests/presale/test_widget.py +++ b/src/tests/presale/test_widget.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/settings.py b/src/tests/settings.py index 39ab239a1..e5d6f96de 100644 --- a/src/tests/settings.py +++ b/src/tests/settings.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/test_crashing.py b/src/tests/test_crashing.py index a6db06e44..6356f83c0 100644 --- a/src/tests/test_crashing.py +++ b/src/tests/test_crashing.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/__init__.py b/src/tests/testdummy/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummy/__init__.py +++ b/src/tests/testdummy/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/apps.py b/src/tests/testdummy/apps.py index 818642209..e85c69de4 100644 --- a/src/tests/testdummy/apps.py +++ b/src/tests/testdummy/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/auth.py b/src/tests/testdummy/auth.py index ccfef92c8..9cb558c7b 100644 --- a/src/tests/testdummy/auth.py +++ b/src/tests/testdummy/auth.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/models.py b/src/tests/testdummy/models.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummy/models.py +++ b/src/tests/testdummy/models.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/payment.py b/src/tests/testdummy/payment.py index c8b4f2345..827ce3de9 100644 --- a/src/tests/testdummy/payment.py +++ b/src/tests/testdummy/payment.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/signals.py b/src/tests/testdummy/signals.py index d2bd30ae2..3fcc84a8f 100644 --- a/src/tests/testdummy/signals.py +++ b/src/tests/testdummy/signals.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummy/ticketoutput.py b/src/tests/testdummy/ticketoutput.py index df02557ad..204f4a661 100644 --- a/src/tests/testdummy/ticketoutput.py +++ b/src/tests/testdummy/ticketoutput.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyhidden/__init__.py b/src/tests/testdummyhidden/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummyhidden/__init__.py +++ b/src/tests/testdummyhidden/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyhidden/apps.py b/src/tests/testdummyhidden/apps.py index 23e499b80..788763145 100644 --- a/src/tests/testdummyhidden/apps.py +++ b/src/tests/testdummyhidden/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyhybrid/__init__.py b/src/tests/testdummyhybrid/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummyhybrid/__init__.py +++ b/src/tests/testdummyhybrid/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyhybrid/apps.py b/src/tests/testdummyhybrid/apps.py index fac15229a..bcd78473c 100644 --- a/src/tests/testdummyhybrid/apps.py +++ b/src/tests/testdummyhybrid/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyorga/__init__.py b/src/tests/testdummyorga/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummyorga/__init__.py +++ b/src/tests/testdummyorga/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyorga/apps.py b/src/tests/testdummyorga/apps.py index d7af97e5b..afa831eb6 100644 --- a/src/tests/testdummyorga/apps.py +++ b/src/tests/testdummyorga/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyorgarestricted/__init__.py b/src/tests/testdummyorgarestricted/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummyorgarestricted/__init__.py +++ b/src/tests/testdummyorgarestricted/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyorgarestricted/apps.py b/src/tests/testdummyorgarestricted/apps.py index 324b99545..397113538 100644 --- a/src/tests/testdummyorgarestricted/apps.py +++ b/src/tests/testdummyorgarestricted/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyrestricted/__init__.py b/src/tests/testdummyrestricted/__init__.py index 9fd5bdc50..9616a7bf6 100644 --- a/src/tests/testdummyrestricted/__init__.py +++ b/src/tests/testdummyrestricted/__init__.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. diff --git a/src/tests/testdummyrestricted/apps.py b/src/tests/testdummyrestricted/apps.py index ea3d938fb..685674947 100644 --- a/src/tests/testdummyrestricted/apps.py +++ b/src/tests/testdummyrestricted/apps.py @@ -1,8 +1,8 @@ # # This file is part of pretix (Community Edition). # -# Copyright (C) 2014-2020 Raphael Michel and contributors -# Copyright (C) 2020-2021 rami.io GmbH and contributors +# Copyright (C) 2014-2020 Raphael Michel and contributors +# Copyright (C) 2020-today pretix GmbH and contributors # # This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General # Public License as published by the Free Software Foundation in version 3 of the License. -- 2.49.1 From a811a31dcc9b47d19d85b727609ebc0960867e49 Mon Sep 17 00:00:00 2001 From: luelista Date: Fri, 10 Oct 2025 15:49:22 +0200 Subject: [PATCH 060/134] Make sync_single task transaction-aware (#5541) --- src/pretix/base/services/datasync.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/services/datasync.py b/src/pretix/base/services/datasync.py index a4d7145da..f98d7514e 100644 --- a/src/pretix/base/services/datasync.py +++ b/src/pretix/base/services/datasync.py @@ -32,6 +32,7 @@ from django_scopes import scope, scopes_disabled from pretix.base.datasync.datasync import datasync_providers from pretix.base.models.datasync import OrderSyncQueue +from pretix.base.services.tasks import TransactionAwareTask from pretix.base.signals import periodic_task from pretix.celery_app import app @@ -89,7 +90,7 @@ def sync_all(): run_sync(queue) -@app.task() +@app.task(base=TransactionAwareTask) def sync_single(queue_item_id: int): with scopes_disabled(): queue = ( -- 2.49.1 From adca856cdb3082949406cf6c4c826df280d59303 Mon Sep 17 00:00:00 2001 From: Martin Gross Date: Mon, 13 Oct 2025 11:33:07 +0200 Subject: [PATCH 061/134] Make item_overrides and var_overrides prefetch_related-able --- src/pretix/base/models/event.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index 4c25100e5..c96ee870d 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -1639,20 +1639,16 @@ class SubEvent(EventMixin, LoggedModel): @cached_property def item_overrides(self): - from .items import SubEventItem - return { si.item_id: si - for si in SubEventItem.objects.filter(subevent=self) + for si in self.subeventitem_set.all() } @cached_property def var_overrides(self): - from .items import SubEventItemVariation - return { si.variation_id: si - for si in SubEventItemVariation.objects.filter(subevent=self) + for si in self.subeventitemvariation_set.all() } @property -- 2.49.1 From a1d078b48e58b03d0c32ac834a8d2404e2539cee Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 15 Oct 2025 09:06:38 +0200 Subject: [PATCH 062/134] Migrate LogEntry.object_id to bigint (#5520) --- .../0291_alter_logentry_object_id.py | 18 ++++++++++++++++++ src/pretix/base/models/log.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/pretix/base/migrations/0291_alter_logentry_object_id.py diff --git a/src/pretix/base/migrations/0291_alter_logentry_object_id.py b/src/pretix/base/migrations/0291_alter_logentry_object_id.py new file mode 100644 index 000000000..6be090cb8 --- /dev/null +++ b/src/pretix/base/migrations/0291_alter_logentry_object_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.16 on 2025-10-06 16:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("pretixbase", "0290_invoice_plugin_data"), + ] + + operations = [ + migrations.AlterField( + model_name="logentry", + name="object_id", + field=models.PositiveBigIntegerField(db_index=True), + ), + ] diff --git a/src/pretix/base/models/log.py b/src/pretix/base/models/log.py index 93530f090..2ccf5c20e 100644 --- a/src/pretix/base/models/log.py +++ b/src/pretix/base/models/log.py @@ -66,7 +66,7 @@ class LogEntry(models.Model): :type data: str """ content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) - object_id = models.PositiveIntegerField(db_index=True) + object_id = models.PositiveBigIntegerField(db_index=True) content_object = GenericForeignKey('content_type', 'object_id') datetime = models.DateTimeField(auto_now_add=True) user = models.ForeignKey('User', null=True, blank=True, on_delete=models.PROTECT) -- 2.49.1 From 40357681df44c55914c2fea14e0af511fbc8e150 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 15 Oct 2025 09:06:46 +0200 Subject: [PATCH 063/134] Invoice plugins: Call build_invoice_data for cancellations (#5523) --- src/pretix/base/services/invoices.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pretix/base/services/invoices.py b/src/pretix/base/services/invoices.py index 5bfad27a6..704ea90da 100644 --- a/src/pretix/base/services/invoices.py +++ b/src/pretix/base/services/invoices.py @@ -377,6 +377,8 @@ def build_cancellation(invoice: Invoice): line.gross_value *= -1 line.tax_value *= -1 line.save() + + build_invoice_data.send(sender=invoice.event, invoice=invoice) return invoice -- 2.49.1 From 6190b93f89568d29eb1eb3f2ddcb69efe4de440d Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 15 Oct 2025 09:06:54 +0200 Subject: [PATCH 064/134] Stop using ordinal numbers in English date represenation (Z#23210534) (#5539) * Stop using ordinal numbers in English date represenation (Z#23210534) * ADjust more tests --- src/pretix/helpers/daterange.py | 6 +-- src/pretix/helpers/formats/en/formats.py | 2 +- src/pretix/helpers/formats/en_CA/formats.py | 2 +- src/pretix/helpers/formats/en_US/formats.py | 2 +- src/tests/base/test_cross_selling.py | 28 ++++++------ src/tests/base/test_models.py | 40 ++++++++--------- src/tests/base/test_timeframes.py | 8 ++-- src/tests/helpers/test_daterange.py | 16 +++---- src/tests/presale/test_event.py | 4 +- src/tests/presale/test_widget.py | 48 ++++++++++----------- 10 files changed, 78 insertions(+), 78 deletions(-) diff --git a/src/pretix/helpers/daterange.py b/src/pretix/helpers/daterange.py index b104f4825..ec4c253ea 100644 --- a/src/pretix/helpers/daterange.py +++ b/src/pretix/helpers/daterange.py @@ -76,11 +76,11 @@ def daterange(df, dt, as_html=False): return format_html(base_format, _date(df, "j F"), until, _date(dt, "j F Y")) elif lng.startswith("en"): if df.year == dt.year and df.month == dt.month and df.day == dt.day: - return format_html(base_format, _date(df, "D, N jS, Y")) + return format_html(base_format, _date(df, "D, N j, Y")) elif df.year == dt.year and df.month == dt.month: - return format_html(base_format, _date(df, "N jS"), until, _date(dt, "jS, Y")) + return format_html(base_format, _date(df, "N j"), until, _date(dt, "j, Y")) elif df.year == dt.year: - return format_html(base_format, _date(df, "N jS"), until, _date(dt, "N jS, Y")) + return format_html(base_format, _date(df, "N j"), until, _date(dt, "N j, Y")) elif lng.startswith("es"): if df.year == dt.year and df.month == dt.month and df.day == dt.day: return format_html(base_format, _date(df, "DATE_FORMAT")) diff --git a/src/pretix/helpers/formats/en/formats.py b/src/pretix/helpers/formats/en/formats.py index 978efc341..e48ce0dca 100644 --- a/src/pretix/helpers/formats/en/formats.py +++ b/src/pretix/helpers/formats/en/formats.py @@ -38,5 +38,5 @@ SHORT_DATE_FORMAT = 'Y-m-d' SHORT_DATETIME_FORMAT = 'Y-m-d H:i' TIME_FORMAT = 'H:i' WEEK_FORMAT = '\\W W, o' -WEEK_DAY_FORMAT = 'D, M jS' +WEEK_DAY_FORMAT = 'D, M j' SHORT_MONTH_DAY_FORMAT = 'd.m.' diff --git a/src/pretix/helpers/formats/en_CA/formats.py b/src/pretix/helpers/formats/en_CA/formats.py index 62816b7f7..bdb16f621 100644 --- a/src/pretix/helpers/formats/en_CA/formats.py +++ b/src/pretix/helpers/formats/en_CA/formats.py @@ -38,7 +38,7 @@ SHORT_DATE_FORMAT = "Y-m-d" SHORT_DATETIME_FORMAT = 'Y-m-d P' TIME_FORMAT = 'P' WEEK_FORMAT = '\\W W, o' -WEEK_DAY_FORMAT = 'D, M jS' +WEEK_DAY_FORMAT = 'D, M j' SHORT_MONTH_DAY_FORMAT = 'm/d' DATE_INPUT_FORMATS = [ diff --git a/src/pretix/helpers/formats/en_US/formats.py b/src/pretix/helpers/formats/en_US/formats.py index de4818673..2ca232f7e 100644 --- a/src/pretix/helpers/formats/en_US/formats.py +++ b/src/pretix/helpers/formats/en_US/formats.py @@ -25,7 +25,7 @@ SHORT_DATE_FORMAT = 'm/d/Y' SHORT_DATETIME_FORMAT = 'm/d/Y P' TIME_FORMAT = 'P' WEEK_FORMAT = '\\W W, o' -WEEK_DAY_FORMAT = 'D, M jS' +WEEK_DAY_FORMAT = 'D, M j' SHORT_MONTH_DAY_FORMAT = 'm/d' DATE_INPUT_FORMATS = [ diff --git a/src/tests/base/test_cross_selling.py b/src/tests/base/test_cross_selling.py index b94938961..635a0d2e8 100644 --- a/src/tests/base/test_cross_selling.py +++ b/src/tests/base/test_cross_selling.py @@ -414,7 +414,7 @@ def test_2f1r_discount_cross_selling_eventseries_mixed(eventseries): Regular Ticket 42.00 42.00 Date1 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} ''' ) check_cart_behaviour( @@ -424,8 +424,8 @@ def test_2f1r_discount_cross_selling_eventseries_mixed(eventseries): Regular Ticket 42.00 42.00 Date2 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} - Tickets (Date2 - Wed, Jan. 1st, 2020 11:00) Reduced Ticket 23.00 11.50 1 {prefix_date2} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date2 - Wed, Jan. 1, 2020 11:00) Reduced Ticket 23.00 11.50 1 {prefix_date2} ''' ) check_cart_behaviour( @@ -460,8 +460,8 @@ def test_2f1r_discount_cross_selling_eventseries_mixed(eventseries): Regular Ticket 42.00 42.00 Date2 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 2 {prefix_date1} - Tickets (Date2 - Wed, Jan. 1st, 2020 11:00) Reduced Ticket 23.00 11.50 2 {prefix_date2} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 2 {prefix_date1} + Tickets (Date2 - Wed, Jan. 1, 2020 11:00) Reduced Ticket 23.00 11.50 2 {prefix_date2} ''' ) check_cart_behaviour( @@ -475,7 +475,7 @@ def test_2f1r_discount_cross_selling_eventseries_mixed(eventseries): Reduced Ticket 23.00 11.50 Date1 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} ''' ) check_cart_behaviour( @@ -490,7 +490,7 @@ def test_2f1r_discount_cross_selling_eventseries_mixed(eventseries): Reduced Ticket 23.00 11.50 Date1 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} ''' ) check_cart_behaviour( @@ -506,7 +506,7 @@ def test_2f1r_discount_cross_selling_eventseries_mixed(eventseries): Reduced Ticket 23.00 11.50 Date1 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 2 {prefix_date1} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 2 {prefix_date1} ''' ) @@ -531,8 +531,8 @@ def test_2f1r_discount_cross_selling_eventseries_same(eventseries): Regular Ticket 42.00 42.00 Date2 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} - Tickets (Date2 - Wed, Jan. 1st, 2020 11:00) Reduced Ticket 23.00 11.50 1 {prefix_date2} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date2 - Wed, Jan. 1, 2020 11:00) Reduced Ticket 23.00 11.50 1 {prefix_date2} ''' ) check_cart_behaviour( @@ -546,8 +546,8 @@ def test_2f1r_discount_cross_selling_eventseries_same(eventseries): Regular Ticket 42.00 42.00 Date2 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} - Tickets (Date2 - Wed, Jan. 1st, 2020 11:00) Reduced Ticket 23.00 11.50 2 {prefix_date2} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date2 - Wed, Jan. 1, 2020 11:00) Reduced Ticket 23.00 11.50 2 {prefix_date2} ''' ) check_cart_behaviour( @@ -561,7 +561,7 @@ def test_2f1r_discount_cross_selling_eventseries_same(eventseries): Reduced Ticket 23.00 11.50 Date1 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date1 - Wed, Jan. 1st, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} + Tickets (Date1 - Wed, Jan. 1, 2020 10:00) Reduced Ticket 23.00 11.50 1 {prefix_date1} ''' ) check_cart_behaviour( @@ -589,7 +589,7 @@ def test_2f1r_discount_cross_selling_eventseries_same(eventseries): Reduced Ticket 23.00 11.50 Date1 ''', recommendations=f''' Price Discounted Price Max Count Prefix - Tickets (Date2 - Wed, Jan. 1st, 2020 11:00) Reduced Ticket 23.00 11.50 1 {prefix_date2} + Tickets (Date2 - Wed, Jan. 1, 2020 11:00) Reduced Ticket 23.00 11.50 1 {prefix_date2} ''' ) diff --git a/src/tests/base/test_models.py b/src/tests/base/test_models.py index ae2137fd6..6f2359db1 100644 --- a/src/tests/base/test_models.py +++ b/src/tests/base/test_models.py @@ -2489,44 +2489,44 @@ class EventTest(TestCase): ( datetime.datetime(2025, 3, 9, 21, 0, 0, tzinfo=tz), datetime.datetime(2025, 3, 9, 22, 0, 0, tzinfo=tz), - 'Sun, March 9th, 2025', - '', - 'Sun, March 9th, 2025 20:00–21:00', - ' ' + 'Sun, March 9, 2025', + '', + 'Sun, March 9, 2025 20:00–21:00', + ' ' '' ), ( datetime.datetime(2025, 3, 9, 21, 0, 0, tzinfo=tz), datetime.datetime(2025, 3, 10, 3, 0, 0, tzinfo=tz), - 'March 9th – 10th, 2025', - ' ' + 'March 9 – 10, 2025', + ' ' ' until ' - '', - 'March 9th – 10th, 2025 20:00–02:00', - ' ' + '', + 'March 9 – 10, 2025 20:00–02:00', + ' ' ' until ' - ' ' + ' ' '' ), ( datetime.datetime(2025, 3, 9, 21, 0, 0, tzinfo=tz), datetime.datetime(2025, 3, 12, 14, 0, 0, tzinfo=tz), - 'March 9th – 12th, 2025', - ' ' + 'March 9 – 12, 2025', + ' ' ' until ' - '', - 'March 9th – 12th, 2025', - ' ' + '', + 'March 9 – 12, 2025', + ' ' ' until ' - '', + '', ), ( datetime.datetime(2025, 3, 9, 21, 0, 0, tzinfo=tz), None, - 'Sun, March 9th, 2025', - '', - 'Sun, March 9th, 2025 20:00', - ' ' + 'Sun, March 9, 2025', + '', + 'Sun, March 9, 2025 20:00', + ' ' '' ), ) diff --git a/src/tests/base/test_timeframes.py b/src/tests/base/test_timeframes.py index ae3315bb3..80d51f50a 100644 --- a/src/tests/base/test_timeframes.py +++ b/src/tests/base/test_timeframes.py @@ -48,10 +48,10 @@ ref_date = date(2023, 3, 28) (ref_date, 'days_tomorrow', date(2023, 3, 29), date(2023, 3, 29), None), (ref_date, 'days_next7', date(2023, 3, 29), date(2023, 4, 4), None), (ref_date, 'days_next14', date(2023, 3, 29), date(2023, 4, 11), None), - (ref_date, 'week_this', date(2023, 3, 27), date(2023, 4, 2), 'W 13, 2023 - March 27th – April 2nd, 2023'), - (ref_date, 'week_to_date', date(2023, 3, 27), date(2023, 3, 28), 'W 13, 2023 - March 27th – 28th, 2023'), - (ref_date, 'week_previous', date(2023, 3, 20), date(2023, 3, 26), 'W 12, 2023 - March 20th – 26th, 2023'), - (ref_date, 'week_next', date(2023, 4, 3), date(2023, 4, 9), 'W 14, 2023 - April 3rd – 9th, 2023'), + (ref_date, 'week_this', date(2023, 3, 27), date(2023, 4, 2), 'W 13, 2023 - March 27 – April 2, 2023'), + (ref_date, 'week_to_date', date(2023, 3, 27), date(2023, 3, 28), 'W 13, 2023 - March 27 – 28, 2023'), + (ref_date, 'week_previous', date(2023, 3, 20), date(2023, 3, 26), 'W 12, 2023 - March 20 – 26, 2023'), + (ref_date, 'week_next', date(2023, 4, 3), date(2023, 4, 9), 'W 14, 2023 - April 3 – 9, 2023'), (ref_date, 'month_this', date(2023, 3, 1), date(2023, 3, 31), 'March 2023'), (ref_date, 'month_to_date', date(2023, 3, 1), date(2023, 3, 28), 'March 2023'), (ref_date, 'month_previous', date(2023, 2, 1), date(2023, 2, 28), 'February 2023'), diff --git a/src/tests/helpers/test_daterange.py b/src/tests/helpers/test_daterange.py index 0654c69c2..1779e0852 100644 --- a/src/tests/helpers/test_daterange.py +++ b/src/tests/helpers/test_daterange.py @@ -50,8 +50,8 @@ def test_same_day_german(): def test_same_day_english(): with translation.override('en'): df = date(2003, 2, 1) - assert daterange(df, df) == "Sat, Feb. 1st, 2003" - assert daterange(df, df, as_html=True) == '' + assert daterange(df, df) == "Sat, Feb. 1, 2003" + assert daterange(df, df, as_html=True) == '' def test_same_day_spanish(): @@ -82,10 +82,10 @@ def test_same_month_english(): with translation.override('en'): df = date(2003, 2, 1) dt = date(2003, 2, 3) - assert daterange(df, dt) == "Feb. 1st – 3rd, 2003" - assert daterange(df, dt, as_html=True) == ' ' \ + assert daterange(df, dt) == "Feb. 1 – 3, 2003" + assert daterange(df, dt, as_html=True) == ' ' \ ' until ' \ - '' + '' def test_same_month_spanish(): @@ -112,10 +112,10 @@ def test_same_year_english(): with translation.override('en'): df = date(2003, 2, 1) dt = date(2003, 4, 3) - assert daterange(df, dt) == "Feb. 1st – April 3rd, 2003" - assert daterange(df, dt, as_html=True) == ' ' \ + assert daterange(df, dt) == "Feb. 1 – April 3, 2003" + assert daterange(df, dt, as_html=True) == ' ' \ ' until ' \ - '' + '' def test_same_year_spanish(): diff --git a/src/tests/presale/test_event.py b/src/tests/presale/test_event.py index 15f3b7899..078dbb735 100644 --- a/src/tests/presale/test_event.py +++ b/src/tests/presale/test_event.py @@ -1621,7 +1621,7 @@ class EventLocaleTest(EventTestMixin, SoupTest): '/%s/%s/' % (self.orga.slug, self.event.slug) ) self.assertEqual(response.status_code, 200) - self.assertIn('Thu, Dec. 26th,', response.rendered_content) + self.assertIn('Thu, Dec. 26,', response.rendered_content) self.assertIn('14:00', response.rendered_content) def test_english_region_US(self): @@ -1631,7 +1631,7 @@ class EventLocaleTest(EventTestMixin, SoupTest): '/%s/%s/' % (self.orga.slug, self.event.slug) ) self.assertEqual(response.status_code, 200) - self.assertIn('Thu, Dec. 26th,', response.rendered_content) + self.assertIn('Thu, Dec. 26,', response.rendered_content) self.assertIn('2 p.m.', response.rendered_content) def test_german_region_US(self): diff --git a/src/tests/presale/test_widget.py b/src/tests/presale/test_widget.py index 7a097558c..9b338ec91 100644 --- a/src/tests/presale/test_widget.py +++ b/src/tests/presale/test_widget.py @@ -169,7 +169,7 @@ class WidgetCartTest(CartTestMixin, TestCase): "target_url": "http://example.com/ccc/30c3/", "subevent": None, "name": "30C3", - "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26th, {self.event.date_from.year} 00:00", + "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26, {self.event.date_from.year} 00:00", "frontpage_text": "", "location": "", "currency": "EUR", @@ -375,7 +375,7 @@ class WidgetCartTest(CartTestMixin, TestCase): "target_url": "http://example.com/ccc/30c3/", "subevent": None, "name": "30C3", - "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26th, {self.event.date_from.year} 00:00", + "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26, {self.event.date_from.year} 00:00", "frontpage_text": "", "location": "", "currency": "EUR", @@ -435,7 +435,7 @@ class WidgetCartTest(CartTestMixin, TestCase): "target_url": "http://example.com/ccc/30c3/", "subevent": None, "name": "30C3", - "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26th, {self.event.date_from.year} 00:00", + "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26, {self.event.date_from.year} 00:00", "frontpage_text": "", "location": "", "currency": "EUR", @@ -520,7 +520,7 @@ class WidgetCartTest(CartTestMixin, TestCase): "target_url": "http://example.com/ccc/30c3/", "subevent": None, "name": "30C3", - "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26th, {self.event.date_from.year} 00:00", + "date_range": f"{self.event.date_from.strftime('%a')}, Dec. 26, {self.event.date_from.year} 00:00", "frontpage_text": "", "location": "", "currency": "EUR", @@ -627,9 +627,9 @@ class WidgetCartTest(CartTestMixin, TestCase): 'poweredby': 'ticketing powered by pretix', 'has_more_events': False, 'events': [ - {'name': 'Present', 'date_range': 'Tue, Jan. 1st, 2019 11:00', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, + {'name': 'Present', 'date_range': 'Tue, Jan. 1, 2019 11:00', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'event_url': 'http://example.com/ccc/30c3/', 'subevent': se1.pk, 'location': ''}, - {'name': 'Future', 'date_range': 'Fri, Jan. 4th, 2019 11:00', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, + {'name': 'Future', 'date_range': 'Fri, Jan. 4, 2019 11:00', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'event_url': 'http://example.com/ccc/30c3/', 'subevent': se2.pk, 'location': ''} ] } @@ -659,14 +659,14 @@ class WidgetCartTest(CartTestMixin, TestCase): [ None, {'day': 1, 'date': '2019-01-01', 'events': [ - {'name': 'Present', 'time': '11:00', 'continued': False, 'date_range': 'Tue, Jan. 1st, 2019 11:00', + {'name': 'Present', 'time': '11:00', 'continued': False, 'date_range': 'Tue, Jan. 1, 2019 11:00', 'location': '', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'event_url': 'http://example.com/ccc/30c3/', 'subevent': se1.pk}]}, {'day': 2, 'date': '2019-01-02', 'events': []}, {'day': 3, 'date': '2019-01-03', 'events': []}, {'day': 4, 'date': '2019-01-04', 'events': [ - {'name': 'Future', 'time': '11:00', 'continued': False, 'date_range': 'Fri, Jan. 4th, 2019 11:00', + {'name': 'Future', 'time': '11:00', 'continued': False, 'date_range': 'Fri, Jan. 4, 2019 11:00', 'location': '', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'event_url': 'http://example.com/ccc/30c3/', 'subevent': se2.pk}]}, @@ -732,21 +732,21 @@ class WidgetCartTest(CartTestMixin, TestCase): 'week': [2019, 1], 'poweredby': 'ticketing powered by pretix', 'days': [ - {'day_formatted': 'Mon, Dec 31st', 'date': '2018-12-31', 'events': [], 'today': False}, - {'day_formatted': 'Tue, Jan 1st', 'date': '2019-01-01', 'events': [ - {'name': 'Present', 'time': '11:00', 'continued': False, 'date_range': 'Tue, Jan. 1st, 2019 11:00', + {'day_formatted': 'Mon, Dec 31', 'date': '2018-12-31', 'events': [], 'today': False}, + {'day_formatted': 'Tue, Jan 1', 'date': '2019-01-01', 'events': [ + {'name': 'Present', 'time': '11:00', 'continued': False, 'date_range': 'Tue, Jan. 1, 2019 11:00', 'location': '', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'event_url': 'http://example.com/ccc/30c3/', 'subevent': se1.pk}], 'today': True}, - {'day_formatted': 'Wed, Jan 2nd', 'date': '2019-01-02', 'events': [], 'today': False}, - {'day_formatted': 'Thu, Jan 3rd', 'date': '2019-01-03', 'events': [], 'today': False}, - {'day_formatted': 'Fri, Jan 4th', 'date': '2019-01-04', 'events': [ - {'name': 'Future', 'time': '11:00', 'continued': False, 'date_range': 'Fri, Jan. 4th, 2019 11:00', + {'day_formatted': 'Wed, Jan 2', 'date': '2019-01-02', 'events': [], 'today': False}, + {'day_formatted': 'Thu, Jan 3', 'date': '2019-01-03', 'events': [], 'today': False}, + {'day_formatted': 'Fri, Jan 4', 'date': '2019-01-04', 'events': [ + {'name': 'Future', 'time': '11:00', 'continued': False, 'date_range': 'Fri, Jan. 4, 2019 11:00', 'location': '', 'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'event_url': 'http://example.com/ccc/30c3/', 'subevent': se2.pk}], 'today': False}, - {'day_formatted': 'Sat, Jan 5th', 'date': '2019-01-05', 'events': [], 'today': False}, - {'day_formatted': 'Sun, Jan 6th', 'date': '2019-01-06', 'events': [], 'today': False} + {'day_formatted': 'Sat, Jan 5', 'date': '2019-01-05', 'events': [], 'today': False}, + {'day_formatted': 'Sun, Jan 6', 'date': '2019-01-06', 'events': [], 'today': False} ], } @@ -773,17 +773,17 @@ class WidgetCartTest(CartTestMixin, TestCase): 'poweredby': 'ticketing powered by pretix', 'events': [ {'availability': {'color': 'none', 'text': 'Event series'}, - 'date_range': 'Jan. 1st – 4th, 2019', + 'date_range': 'Jan. 1 – 4, 2019', 'event_url': 'http://example.com/ccc/30c3/', 'location': '', 'name': '30C3'}, {'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, - 'date_range': 'Tue, Jan. 1st, 2019 10:00', + 'date_range': 'Tue, Jan. 1, 2019 10:00', 'location': '', 'event_url': 'http://example.com/ccc/present/', 'name': 'Present'}, {'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, - 'date_range': 'Fri, Jan. 4th, 2019 10:00', + 'date_range': 'Fri, Jan. 4, 2019 10:00', 'location': '', 'event_url': 'http://example.com/ccc/future/', 'name': 'Future'} @@ -884,7 +884,7 @@ class WidgetCartTest(CartTestMixin, TestCase): 'day': 1, 'events': [{'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'continued': False, - 'date_range': 'Tue, Jan. 1st, 2019 10:00', + 'date_range': 'Tue, Jan. 1, 2019 10:00', 'event_url': 'http://example.com/ccc/present/', 'name': 'Present', 'location': '', @@ -892,7 +892,7 @@ class WidgetCartTest(CartTestMixin, TestCase): 'time': '10:00'}, {'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'continued': False, - 'date_range': 'Tue, Jan. 1st, 2019 11:00', + 'date_range': 'Tue, Jan. 1, 2019 11:00', 'event_url': 'http://example.com/ccc/30c3/', 'name': 'Present', 'location': '', @@ -904,7 +904,7 @@ class WidgetCartTest(CartTestMixin, TestCase): 'day': 4, 'events': [{'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'continued': False, - 'date_range': 'Fri, Jan. 4th, 2019 10:00', + 'date_range': 'Fri, Jan. 4, 2019 10:00', 'event_url': 'http://example.com/ccc/future/', 'name': 'Future', 'location': '', @@ -912,7 +912,7 @@ class WidgetCartTest(CartTestMixin, TestCase): 'time': '10:00'}, {'availability': {'color': 'none', 'text': 'More info', 'reason': 'unknown'}, 'continued': False, - 'date_range': 'Fri, Jan. 4th, 2019 11:00', + 'date_range': 'Fri, Jan. 4, 2019 11:00', 'event_url': 'http://example.com/ccc/30c3/', 'name': 'Future', 'location': '', -- 2.49.1 From ebfcb6f7c80b3d7b9b400ce436c5a90271b8f9bc Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 15 Oct 2025 09:13:05 +0200 Subject: [PATCH 065/134] Improve interface to create and edit subevents (Z#23207890) (#5519) * Use select2 item input in newly added quotas * Make submit row sticky on really long forms * Only show product settings that match quotas --- src/pretix/control/forms/subevents.py | 3 +- .../pretixcontrol/subevents/bulk.html | 50 ++++++++++--------- .../pretixcontrol/subevents/bulk_edit.html | 2 +- .../pretixcontrol/subevents/detail.html | 50 ++++++++++--------- .../static/pretixcontrol/js/ui/subevent.js | 50 +++++++++++++++++-- .../static/pretixcontrol/scss/_forms.scss | 6 +++ 6 files changed, 106 insertions(+), 55 deletions(-) diff --git a/src/pretix/control/forms/subevents.py b/src/pretix/control/forms/subevents.py index 4e442c6d3..b0a78fd7f 100644 --- a/src/pretix/control/forms/subevents.py +++ b/src/pretix/control/forms/subevents.py @@ -390,7 +390,8 @@ class QuotaFormSet(I18nInlineFormSet): use_required_attribute=False, locales=self.locales, event=self.event, - items=self.items + items=self.items, + searchable_selection=self.searchable_selection, ) self.add_fields(form, None) return form diff --git a/src/pretix/control/templates/pretixcontrol/subevents/bulk.html b/src/pretix/control/templates/pretixcontrol/subevents/bulk.html index ba82ccdd7..3f7a041f7 100644 --- a/src/pretix/control/templates/pretixcontrol/subevents/bulk.html +++ b/src/pretix/control/templates/pretixcontrol/subevents/bulk.html @@ -487,30 +487,32 @@ {% trans "These settings are optional, if you leave them empty, the default values from the product settings will be used." %}

{% for f in itemvar_forms %} - {% bootstrap_form_errors f %} -
- -
-
- {% bootstrap_field f.price addon_after=request.event.currency form_group_class="" layout="inline" %} +
+ {% bootstrap_form_errors f %} +
+ +
+
+ {% bootstrap_field f.price addon_after=request.event.currency form_group_class="" layout="inline" %} +
+
+
+ {% bootstrap_field f.disabled layout="inline" form_group_class="" %} +
-
-
- {% bootstrap_field f.disabled layout="inline" form_group_class="" %} -
-
-
-
- - {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_from_mode %}
- {% bootstrap_field f.rel_available_from form_group_class="" layout="inline" %} -
-
- - {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_until_mode %}
- {% bootstrap_field f.rel_available_until form_group_class="" layout="inline" %} +
+
+ + {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_from_mode %}
+ {% bootstrap_field f.rel_available_from form_group_class="" layout="inline" %} +
+
+ + {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_until_mode %}
+ {% bootstrap_field f.rel_available_until form_group_class="" layout="inline" %} +
{% endfor %} @@ -625,7 +627,7 @@ {% endif %} {% endfor %} -
+
diff --git a/src/pretix/control/templates/pretixcontrol/subevents/bulk_edit.html b/src/pretix/control/templates/pretixcontrol/subevents/bulk_edit.html index 8770301c5..369bf3fa6 100644 --- a/src/pretix/control/templates/pretixcontrol/subevents/bulk_edit.html +++ b/src/pretix/control/templates/pretixcontrol/subevents/bulk_edit.html @@ -363,7 +363,7 @@
{% endif %} -
+
diff --git a/src/pretix/control/templates/pretixcontrol/subevents/detail.html b/src/pretix/control/templates/pretixcontrol/subevents/detail.html index 9a7466c85..5bce7afbb 100644 --- a/src/pretix/control/templates/pretixcontrol/subevents/detail.html +++ b/src/pretix/control/templates/pretixcontrol/subevents/detail.html @@ -130,30 +130,32 @@ {% trans "These settings are optional, if you leave them empty, the default values from the product settings will be used." %}

{% for f in itemvar_forms %} - {% bootstrap_form_errors f %} -
- -
-
- {% bootstrap_field f.price addon_after=request.event.currency form_group_class="" layout="inline" %} +
+ {% bootstrap_form_errors f %} +
+ +
+
+ {% bootstrap_field f.price addon_after=request.event.currency form_group_class="" layout="inline" %} +
+
+
+ {% bootstrap_field f.disabled layout="inline" form_group_class="" %} +
-
-
- {% bootstrap_field f.disabled layout="inline" form_group_class="" %} -
-
-
-
- - {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_from_mode %}
- {% bootstrap_field f.available_from form_group_class="foo" layout="inline" %} -
-
- - {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_until_mode %}
- {% bootstrap_field f.available_until form_group_class="" layout="inline" %} +
+
+ + {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_from_mode %}
+ {% bootstrap_field f.available_from form_group_class="foo" layout="inline" %} +
+
+ + {% include "pretixcontrol/subevents/fragment_unavail_mode_indicator.html" with mode=f.available_until_mode %}
+ {% bootstrap_field f.available_until form_group_class="" layout="inline" %} +
{% endfor %} @@ -282,7 +284,7 @@
{% endif %}
-
+
diff --git a/src/pretix/static/pretixcontrol/js/ui/subevent.js b/src/pretix/static/pretixcontrol/js/ui/subevent.js index d38773c1b..81872d7db 100644 --- a/src/pretix/static/pretixcontrol/js/ui/subevent.js +++ b/src/pretix/static/pretixcontrol/js/ui/subevent.js @@ -26,6 +26,7 @@ $(document).on("pretix:bind-forms", function () { } } + // RRule editor function rrule_preview() { var ruleset = new rrule.RRuleSet(); @@ -121,7 +122,14 @@ $(document).on("pretix:bind-forms", function () { }); } } + $("#rrule-formset").on("change keydown keyup keypress dp.change", "input, select", function () { + rrule_preview(); + }); + rrule_preview(); + $("#rrule-formset").on("formAdded", "div", function (event) {rrule_bind_form($(event.target)); }); + + // Timeslot editor $("#subevent_add_many_slots_go").on("click", function () { $("#time-formset [data-formset-form]").each(function () { var tf = $(this).find("[name$=time_from]").val() @@ -167,13 +175,45 @@ $(document).on("pretix:bind-forms", function () { $(this).addClass("hidden"); }); - $("#rrule-formset").on("change keydown keyup keypress dp.change", "input, select", function () { - rrule_preview(); - }); - rrule_preview(); + // Hide config for products that are not for sale + function quota_form_handlers(el) { + // searchable_selection = True + el.find('[id^="id_quotas-"]').on("select2:select select2:unselect", () => { + update_item_visibility(); + }); + // searchable_selection = False + el.find('input[id^="id_quotas-"][id*=itemvars_]').on("change", () => { + update_item_visibility(); + }); + } + function update_item_visibility() { + const itemvars = []; - $("#rrule-formset").on("formAdded", "div", function (event) { rrule_bind_form($(event.target)); }); + // searchable_selection = True + $("select[id^=id_quotas-][id$=-itemvars]").filter((idx, el) => { + return !$(el).closest('[data-formset-form]').is('[data-formset-form-deleted]'); + }).each((_, e) => itemvars.push(...$(e).val())); + // searchable_selection = False + $("input[id^=id_quotas-][id*=itemvars_]:checked").filter((idx, el) => { + return !$(el).closest('[data-formset-form]').is('[data-formset-form-deleted]'); + }).each((_, e) => itemvars.push($(e).val())); + $("div[data-itemvar]").each(function (idx, e) { + const el = $(e); + el.prop("hidden", !itemvars.includes(el.attr("data-itemvar")) && !el.find(".has-error, .alert-danger").length); + }); + } + + $('[data-formset-prefix="quotas"]').on("formDeleted", "div", () => { + update_item_visibility(); + }).on("formAdded", "div", (event) => { + quota_form_handlers($(event.target)); + update_item_visibility(); + }) + quota_form_handlers($("body")); + update_item_visibility(); + + // Auto-set name of check-in list var $namef = $("input[id^=id_name]").first(); var lastValue = $namef.val(); $namef.change(function () { diff --git a/src/pretix/static/pretixcontrol/scss/_forms.scss b/src/pretix/static/pretixcontrol/scss/_forms.scss index d096df830..f6f2d55f9 100644 --- a/src/pretix/static/pretixcontrol/scss/_forms.scss +++ b/src/pretix/static/pretixcontrol/scss/_forms.scss @@ -91,6 +91,12 @@ td > .form-group > .checkbox { } } +.submit-group-sticky { + position: sticky; + bottom: 0; + z-index: 100; +} + .panel .form-group:last-child { margin-bottom: 0; } -- 2.49.1 From 02b5bdb321282548e82ddf1634f5851709dd14ea Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Wed, 15 Oct 2025 09:13:45 +0200 Subject: [PATCH 066/134] Add organizer scope when getting all plugins (#5544) --- src/pretix/base/plugins.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/plugins.py b/src/pretix/base/plugins.py index 2beb5ec10..4f32b6682 100644 --- a/src/pretix/base/plugins.py +++ b/src/pretix/base/plugins.py @@ -29,6 +29,7 @@ from django.apps import AppConfig, apps from django.conf import settings from django.core.exceptions import ImproperlyConfigured from django.utils.translation import gettext_lazy as _ +from django_scopes import scope from packaging.requirements import Requirement PLUGIN_LEVEL_EVENT = 'event' @@ -71,7 +72,8 @@ def get_all_plugins(*, event=None, organizer=None) -> List[type]: continue elif organizer and hasattr(app, 'is_available'): if not event_fallback_used: - event_fallback = organizer.events.first() + with scope(organizer=organizer): + event_fallback = organizer.events.first() event_fallback_used = True if not event_fallback or not app.is_available(event_fallback): continue -- 2.49.1 From d0116ab7dd7dc76ee2d3c73b9920dad411d0f9c2 Mon Sep 17 00:00:00 2001 From: Linnea Thelander Date: Fri, 10 Oct 2025 10:55:50 +0200 Subject: [PATCH 067/134] Translations: Update Swedish Currently translated at 91.9% (5584 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/sv/ powered by weblate --- src/pretix/locale/sv/LC_MESSAGES/django.po | 30 +++++++--------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/pretix/locale/sv/LC_MESSAGES/django.po b/src/pretix/locale/sv/LC_MESSAGES/django.po index 7da56df2a..17b433860 100644 --- a/src/pretix/locale/sv/LC_MESSAGES/django.po +++ b/src/pretix/locale/sv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-09 16:00+0000\n" +"PO-Revision-Date: 2025-10-10 17:00+0000\n" "Last-Translator: Linnea Thelander \n" "Language-Team: Swedish \n" @@ -19251,8 +19251,6 @@ msgid "" msgstr "" #: pretix/control/templates/pretixcontrol/checkin/reset.html:46 -#, fuzzy -#| msgid "Proceed with checkout" msgid "Proceed with reset" msgstr "Fortsätt med din bokning" @@ -35073,25 +35071,16 @@ msgstr "" "processen." #: pretix/presale/templates/pretixpresale/event/order.html:55 -#, fuzzy -#| msgid "" -#| "Please bookmark or save the link to this exact page if you want to access " -#| "your order later. We also sent you an email containing the link to the " -#| "address you specified." msgid "" "Please bookmark or save the link to this exact page if you want to access " "your order later. We also sent you an email to the address you specified " "containing the link to this page." msgstr "" -"Vänligen bokmärk eller spara länken till denna exakta sida om du vill komma " -"åt din order senare. Vi har också skickat en e-post med länken till den " -"adress du angav." +"Vänligen markera som bokmärke eller spara länken till denna exakta sida om " +"du vill komma åt din order senare. Vi har också skickat en e-post med länken " +"till den adress du angav." #: pretix/presale/templates/pretixpresale/event/order.html:59 -#, fuzzy -#| msgid "" -#| "Please save the following link if you want to access your order later. We " -#| "also sent you an email containing the link to the address you specified." msgid "" "Please save the following link if you want to access your order later. We " "also sent you an email to the address you specified containing the link." @@ -35105,19 +35094,18 @@ msgid "View in backend" msgstr "Visa i backend" #: pretix/presale/templates/pretixpresale/event/order.html:91 -#, fuzzy, python-format +#, python-format msgid "A payment of %(total)s is still pending for this order." -msgstr "En faktura på totalt %(total)s kommer att skickas från Coeo" +msgstr "En faktura på totalt %(total)s kommer att skickas från Coeo." #: pretix/presale/templates/pretixpresale/event/order.html:96 -#, python-format +#, fuzzy, python-format msgid "Please complete your payment before %(date)s" -msgstr "Var god slutför din betalning före %(date)s" +msgstr "Tack för din bokning!" #: pretix/presale/templates/pretixpresale/event/order.html:108 -#, fuzzy msgid "Re-try payment or choose another payment method" -msgstr "Tack för din bokning!" +msgstr "Tack" #: pretix/presale/templates/pretixpresale/event/order.html:126 msgid "" -- 2.49.1 From 5c4451cfa35b531c8776b516548e794e11491786 Mon Sep 17 00:00:00 2001 From: Linnea Thelander Date: Fri, 10 Oct 2025 10:52:39 +0200 Subject: [PATCH 068/134] Translations: Update Swedish Currently translated at 77.7% (196 of 252 strings) Translation: pretix/pretix (JavaScript parts) Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/sv/ powered by weblate --- src/pretix/locale/sv/LC_MESSAGES/djangojs.po | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/pretix/locale/sv/LC_MESSAGES/djangojs.po b/src/pretix/locale/sv/LC_MESSAGES/djangojs.po index 470cc5fbf..1287fee6e 100644 --- a/src/pretix/locale/sv/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/sv/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-10 07:16+0000\n" +"PO-Revision-Date: 2025-10-10 17:00+0000\n" "Last-Translator: Linnea Thelander \n" "Language-Team: Swedish \n" @@ -982,9 +982,6 @@ msgid "Open ticket shop" msgstr "Öppna biljettbutik" #: pretix/static/pretixpresale/js/widget/widget.js:50 -#, fuzzy -#| msgctxt "widget" -#| msgid "Resume checkout" msgctxt "widget" msgid "Checkout" msgstr "Fortsätt med din bokning" @@ -1019,7 +1016,6 @@ msgstr "" "fler produkter, kommer de att läggas till i din befintliga bokning." #: pretix/static/pretixpresale/js/widget/widget.js:57 -#, fuzzy msgctxt "widget" msgid "Resume checkout" msgstr "Fortsätt med din bokning" @@ -1045,9 +1041,6 @@ msgid "Close" msgstr "Stäng" #: pretix/static/pretixpresale/js/widget/widget.js:62 -#, fuzzy -#| msgctxt "widget" -#| msgid "Resume checkout" msgctxt "widget" msgid "Close checkout" msgstr "Fortsätt med din bokning" -- 2.49.1 From 8bb8c92e033faaa1fe457ad1b8ee02b667b1f6b4 Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sat, 11 Oct 2025 14:18:39 +0200 Subject: [PATCH 069/134] Translations: Update German Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de/ powered by weblate --- src/pretix/locale/de/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/de/LC_MESSAGES/django.po b/src/pretix/locale/de/LC_MESSAGES/django.po index af490fb1f..4fc7133ed 100644 --- a/src/pretix/locale/de/LC_MESSAGES/django.po +++ b/src/pretix/locale/de/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-03 01:00+0000\n" -"Last-Translator: Mira \n" +"PO-Revision-Date: 2025-10-11 21:00+0000\n" +"Last-Translator: Peter Schlaile \n" "Language-Team: German \n" "Language: de\n" @@ -15944,7 +15944,7 @@ msgstr "Informationen an die Warteliste verschicken" #: pretix/control/forms/orders.py:955 pretix/control/forms/orders.py:981 #, python-brace-format msgid "Canceled: {event}" -msgstr "Storniert: {event}" +msgstr "Abgesagt: {event}" #: pretix/control/forms/orders.py:966 #, python-brace-format -- 2.49.1 From c051623b3ae66c4ab1c3ab79aa23f7fdbdb20f09 Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Sat, 11 Oct 2025 14:19:34 +0200 Subject: [PATCH 070/134] Translations: Update German (informal) (de_Informal) Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/de_Informal/ powered by weblate --- src/pretix/locale/de_Informal/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po index 22cbcb331..123473ed8 100644 --- a/src/pretix/locale/de_Informal/LC_MESSAGES/django.po +++ b/src/pretix/locale/de_Informal/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-03 01:00+0000\n" -"Last-Translator: Mira \n" +"PO-Revision-Date: 2025-10-11 21:00+0000\n" +"Last-Translator: Peter Schlaile \n" "Language-Team: German (informal) \n" "Language: de_Informal\n" @@ -15920,7 +15920,7 @@ msgstr "Informationen an die Warteliste verschicken" #: pretix/control/forms/orders.py:955 pretix/control/forms/orders.py:981 #, python-brace-format msgid "Canceled: {event}" -msgstr "Storniert: {event}" +msgstr "Abgesagt: {event}" #: pretix/control/forms/orders.py:966 #, python-brace-format -- 2.49.1 From 9af31cd29b8af6ff9d58afc27228eccc3353f619 Mon Sep 17 00:00:00 2001 From: adminauen Date: Sat, 11 Oct 2025 20:35:11 +0200 Subject: [PATCH 071/134] Translations: Update Italian Currently translated at 37.2% (2261 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/it/ powered by weblate --- src/pretix/locale/it/LC_MESSAGES/django.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/it/LC_MESSAGES/django.po b/src/pretix/locale/it/LC_MESSAGES/django.po index 2a76c81f3..f48487e6e 100644 --- a/src/pretix/locale/it/LC_MESSAGES/django.po +++ b/src/pretix/locale/it/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-26 13:02+0000\n" -"Last-Translator: Raphael Michel \n" +"PO-Revision-Date: 2025-10-11 21:00+0000\n" +"Last-Translator: adminauen \n" "Language-Team: Italian \n" "Language: it\n" @@ -26315,7 +26315,7 @@ msgstr "" #: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:79 #: pretix/presale/views/widget.py:472 msgid "Sale over" -msgstr "Vendite conclusa" +msgstr "Vendite concluse" #: pretix/control/views/dashboards.py:540 #: pretix/presale/templates/pretixpresale/fragment_calendar.html:119 -- 2.49.1 From b415f8066f58195348392c24eade5e099e52551f Mon Sep 17 00:00:00 2001 From: Tim Maurizio Dullaart Date: Mon, 13 Oct 2025 00:18:47 +0200 Subject: [PATCH 072/134] Translations: Update Dutch Currently translated at 97.8% (5947 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/nl/ powered by weblate --- src/pretix/locale/nl/LC_MESSAGES/django.po | 134 +++++++++------------ 1 file changed, 59 insertions(+), 75 deletions(-) diff --git a/src/pretix/locale/nl/LC_MESSAGES/django.po b/src/pretix/locale/nl/LC_MESSAGES/django.po index b34d4565e..7ff560330 100644 --- a/src/pretix/locale/nl/LC_MESSAGES/django.po +++ b/src/pretix/locale/nl/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-04 19:00+0000\n" -"Last-Translator: Jan Van Haver \n" +"PO-Revision-Date: 2025-10-13 06:00+0000\n" +"Last-Translator: Tim Maurizio Dullaart \n" "Language-Team: Dutch " "\n" "Language: nl\n" @@ -1128,16 +1128,14 @@ msgid "Ticket link" msgstr "Ticketlink" #: pretix/base/datasync/sourcefields.py:578 -#, fuzzy, python-brace-format -#| msgid "Check-in list {val}" +#, python-brace-format msgid "Check-in datetime on list {}" -msgstr "Inchecklijst {val}" +msgstr "Incheck datum en tijd lijst {}" #: pretix/base/datasync/sourcefields.py:590 -#, fuzzy, python-brace-format -#| msgid "Question: %(name)s" +#, python-brace-format msgid "Question: {name}" -msgstr "Vraag: %(name)s" +msgstr "Vraag: {name}" #: pretix/base/datasync/sourcefields.py:604 #: pretix/base/datasync/sourcefields.py:614 pretix/base/settings.py:3559 @@ -2611,10 +2609,8 @@ msgid "Check-in lists" msgstr "Inchecklijsten" #: pretix/base/exporters/orderlist.py:671 -#, fuzzy -#| msgid "Resend order link" msgid "Position order link" -msgstr "Bestellink opnieuw versturen" +msgstr "Positie bestellink" #: pretix/base/exporters/orderlist.py:840 msgid "Order transaction data" @@ -3332,14 +3328,12 @@ msgstr "" "verkoper heeft u dit misschien nodig om belasting terug te kunnen vragen." #: pretix/base/forms/questions.py:1177 -#, fuzzy -#| msgid "Cancellation requested" msgid "No invoice requested" msgstr "Annulering aangevraagd" #: pretix/base/forms/questions.py:1179 msgid "Invoice transmission method" -msgstr "" +msgstr "Factuur verzendmethode" #: pretix/base/forms/questions.py:1325 msgid "You need to provide a company name." @@ -3354,25 +3348,29 @@ msgid "" "If you enter an invoice address, you also need to select an invoice " "transmission method." msgstr "" +"Als u een factuuradres invult, moet u ook een factuur verzendmethode " +"selecteren." #: pretix/base/forms/questions.py:1381 -#, fuzzy -#| msgid "The selected media type is not enabled in your organizer settings." msgid "" "The selected transmission type is not available in your country or for your " "type of address." msgstr "" -"Het geselecteerde mediatype is niet ingeschakeld in uw organizerinstellingen." +"Het geselecteerde verzend is niet beschikbaar in uw land voor dit type adres." #: pretix/base/forms/questions.py:1390 msgid "" "The selected type of invoice transmission requires a field that is currently " "not available, please reach out to the organizer." msgstr "" +"De geselecteerde type van factuur verzending heeft een veld nodig dat " +"momenteel nog niet beschikbaar is, neem alstublieft contact op met de " +"organisator." #: pretix/base/forms/questions.py:1394 msgid "This field is required for the selected type of invoice transmission." msgstr "" +"Dit veld is verplicht voor het geselecteerde type van factuur verzending." #: pretix/base/forms/user.py:51 pretix/control/forms/users.py:43 msgid "" @@ -3485,60 +3483,49 @@ msgid "Individual customer" msgstr "Particuliere klant" #: pretix/base/invoicing/email.py:50 -#, fuzzy -#| msgid "" -#| "Please additionally send my invoice directly to our accounting department" msgid "Email invoice directly to accounting department" -msgstr "Gelieve de factuur ook direct naar onze boekhouding te versturen" +msgstr "Email factuur direct naar de boekhoudafdeling" #: pretix/base/invoicing/email.py:51 -#, fuzzy -#| msgid "The invoice was sent to the designated email address." msgid "" "If not selected, the invoice will be sent to you using the email address " "listed above." -msgstr "De factuur is verstuurd naar het aangegeven e-mailadres." +msgstr "" +"Als het niet geselecteerd is, word de factuur verstuurd naar u middels het " +"bovenstaande e-mailadres." #: pretix/base/invoicing/email.py:55 -#, fuzzy -#| msgid "Email address verified" msgid "Email address for invoice" -msgstr "E-mailadres gecontroleerd" +msgstr "E-mailadres voor facturen" #: pretix/base/invoicing/email.py:91 -#, fuzzy -#| msgid "Preview email" msgid "PDF via email" -msgstr "Toon voorbeeld email" +msgstr "PDF via email" #: pretix/base/invoicing/national.py:37 msgctxt "italian_invoice" msgid "Italian Exchange System (SdI)" -msgstr "" +msgstr "Italiaanse wissel systeem (SdI)" #: pretix/base/invoicing/national.py:38 msgctxt "italian_invoice" msgid "Exchange System (SdI)" -msgstr "" +msgstr "Wisselsysteem (SdI)" #: pretix/base/invoicing/national.py:49 -#, fuzzy -#| msgid "Gift card code" msgctxt "italian_invoice" msgid "Fiscal code" -msgstr "Cadeauboncode" +msgstr "Fiscale code" #: pretix/base/invoicing/national.py:53 msgctxt "italian_invoice" msgid "Address for certified electronic mail" -msgstr "" +msgstr "Adres voor gecertificeerde electronische mail" #: pretix/base/invoicing/national.py:57 -#, fuzzy -#| msgid "Recipient" msgctxt "italian_invoice" msgid "Recipient code" -msgstr "Ontvanger" +msgstr "Ontvanger code" #: pretix/base/invoicing/national.py:81 msgctxt "italian_invoice" @@ -3548,6 +3535,10 @@ msgid "" "in accordance with the procedures and terms set forth in No. 89757/2018 of " "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" +"Dit PDF-document is een visuele kopie van de factuur en vormt geen factuur " +"voor btw-doeleinden. De factuur wordt in XML-formaat verzonden volgens de " +"procedures en voorwaarden zoals vastgelegd in nr. 89757/2018 van 30 april " +"2018, uitgegeven door de directeur van de belastingdienst." #: pretix/base/invoicing/pdf.py:141 #, python-format @@ -3945,7 +3936,7 @@ msgstr "Er zijn meerdere overeenkomende datums gevonden." #: pretix/base/modelimport_orders.py:73 msgid "Grouping" -msgstr "" +msgstr "Groepering" #: pretix/base/modelimport_orders.py:75 msgid "" @@ -3953,6 +3944,10 @@ msgid "" "together...\". Lines with the same grouping value will be put in the same " "order, but MUST be consecutive lines of the input file." msgstr "" +"Alleen toepasbaar wanneer \"Importeer methode\" is ingesteld op " +"\"Groepeer meerde lijnen samen...\". Lijnen met de zelfde groeperings waarde " +"zullen in dezelfde volgorde gestopt, maar MOETEN opeenvolgende regels van " +"het invoerbestand zijn." #: pretix/base/modelimport_orders.py:101 msgid "Enter a valid phone number." @@ -3964,6 +3959,8 @@ msgid "" "The date can be specified through its full name, full date and time, or " "internal ID, provided only one date in the system matches the input." msgstr "" +"De datum kan gespecificeerd worden door de volledige naam, datum en tijd, of " +"interne ID, mits alleen één datum in het systeem hetzelfde is als de invoer." #: pretix/base/modelimport_orders.py:120 pretix/presale/views/waiting.py:157 msgctxt "subevent" @@ -3974,6 +3971,8 @@ msgstr "U moet een datum selecteren." msgid "" "The product can be specified by its internal ID, full name or internal name." msgstr "" +"Het product kan worden gespecificeerd door zijn interne ID, volledige naam " +"of interne naam." #: pretix/base/modelimport_orders.py:149 #: pretix/base/modelimport_vouchers.py:194 @@ -3994,6 +3993,7 @@ msgstr "Productvariant" #: pretix/base/modelimport_orders.py:161 msgid "The variation can be specified by its internal ID or full name." msgstr "" +"De variatie kan worden gespecificeerd door zijn interne ID of volledige naam." #: pretix/base/modelimport_orders.py:181 #: pretix/base/modelimport_vouchers.py:225 @@ -4012,10 +4012,9 @@ msgid "You need to select a variation for this product." msgstr "U moet een variant van dit product selecteren." #: pretix/base/modelimport_orders.py:265 pretix/base/modelimport_orders.py:417 -#, fuzzy -#| msgid "The count needs to be equal to or greater than zero." msgid "The country needs to be specified using a two-letter country code." -msgstr "Het aantal moet gelijk zijn aan of groter zijn dan nul." +msgstr "" +"Het land moet worden gespecificeerd worden door een twee-letterige landcode." #: pretix/base/modelimport_orders.py:281 pretix/base/modelimport_orders.py:432 msgid "Please enter a valid country code." @@ -4024,6 +4023,8 @@ msgstr "Vul een geldige landcode in." #: pretix/base/modelimport_orders.py:290 pretix/base/modelimport_orders.py:441 msgid "The state can be specified by its short form or full name." msgstr "" +"De staat kan worden gespecificeerd worden door zijn korte vorm of volledige " +"naam." #: pretix/base/modelimport_orders.py:300 pretix/base/modelimport_orders.py:450 msgid "States are not supported for this country." @@ -4080,16 +4081,16 @@ msgid "" "The sales channel can be specified by it's internal identifier or its full " "name." msgstr "" +"De verkoop kanalen kunnen worden gespecificeerd door zijn interne " +"identificatie of zijn volledige naam." #: pretix/base/modelimport_orders.py:599 pretix/base/modelimport_orders.py:601 msgid "Please enter a valid sales channel." msgstr "Vul een geldig verkoopkanaal in." #: pretix/base/modelimport_orders.py:611 -#, fuzzy -#| msgid "The refund amount needs to be positive and less than {}." msgid "The seat needs to be specified by its internal ID." -msgstr "Het bedrag van de terugbetaling moet positief zijn en minder dan {}." +msgstr "De zetel moet worden gespecificeerd worden door zijn interne ID." #: pretix/base/modelimport_orders.py:626 #: pretix/base/modelimport_vouchers.py:291 @@ -4453,10 +4454,8 @@ msgid "Ticket not valid at this time" msgstr "Ticket is op dit moment niet geldig" #: pretix/base/models/checkin.py:368 -#, fuzzy -#| msgid "Check-in status" msgid "Check-in annulled" -msgstr "Incheckstatus" +msgstr "Incheck is nietig verklaard" #: pretix/base/models/customers.py:55 msgid "Provider name" @@ -4558,21 +4557,19 @@ msgstr "Scheid meerdere waarden door spaties" #: pretix/base/models/datasync.py:53 msgid "Temporary error, auto-retry limit exceeded" -msgstr "" +msgstr "Tijdelijke fout, geautomatiseerde opnieuw proberen limiet overschreden" #: pretix/base/models/datasync.py:54 -#, fuzzy -#| msgid "Stripe reported an error: %s" msgid "Provider reported a permanent error" -msgstr "Stripe meldde een fout: %s" +msgstr "Aanbieder rapporteerde een permanente fout" #: pretix/base/models/datasync.py:55 msgid "Misconfiguration, please check provider settings" -msgstr "" +msgstr "Verkeerde configuratie, alstublieft kijk uw aanbieders instellingen na" #: pretix/base/models/datasync.py:56 pretix/base/models/datasync.py:57 msgid "System error, needs manual intervention" -msgstr "" +msgstr "Systeem fout, heeft handmatige interventie nodig" #: pretix/base/models/devices.py:70 pretix/base/models/items.py:1675 msgid "Internal identifier" @@ -5128,21 +5125,16 @@ msgid "Manual transaction" msgstr "Handmatige transactie" #: pretix/base/models/invoices.py:121 -#, fuzzy -#| msgid "Pending amount" msgid "pending transmission" -msgstr "Openstaand bedrag" +msgstr "openstaand verzending" #: pretix/base/models/invoices.py:122 msgid "currently being transmitted" -msgstr "" +msgstr "momenteel word verzonden" #: pretix/base/models/invoices.py:123 -#, fuzzy -#| msgctxt "subevent" -#| msgid "No date selected." msgid "transmitted" -msgstr "Geen datum geselecteerd." +msgstr "verstuurd" #: pretix/base/models/invoices.py:124 pretix/plugins/sendmail/models.py:52 msgid "failed" @@ -5154,10 +5146,8 @@ msgid "unknown" msgstr "onbekend" #: pretix/base/models/invoices.py:126 -#, fuzzy -#| msgid "in private test mode" msgid "not transmitted due to test mode" -msgstr "in privétestmodus" +msgstr "niet verstuurd vanwege test modus" #: pretix/base/models/invoices.py:218 #, python-format @@ -6603,10 +6593,8 @@ msgstr "" "administratie gebruiken." #: pretix/base/models/orders.py:3422 -#, fuzzy -#| msgid "Transaction time" msgid "Transmission type" -msgstr "Transactietijdstip" +msgstr "Verzending type" #: pretix/base/models/orders.py:3520 #: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9 @@ -7865,16 +7853,12 @@ msgid "123.45 EUR" msgstr "€123,45" #: pretix/base/pdf.py:165 -#, fuzzy -#| msgid "Price including add-ons" msgid "Price including bundled products" -msgstr "Prijs inclusief add-ons" +msgstr "Prijs inclusief de bundel van producten" #: pretix/base/pdf.py:174 -#, fuzzy -#| msgid "Price including add-ons" msgid "Price including add-ons and bundled products" -msgstr "Prijs inclusief add-ons" +msgstr "Prijs inclusief add-ons en bundel van producten" #: pretix/base/pdf.py:184 pretix/base/pdf.py:342 #: pretix/base/services/invoices.py:487 -- 2.49.1 From ac09b56a2c933abd65ac6f275779a121afaf7a31 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 15 Oct 2025 11:05:55 +0200 Subject: [PATCH 073/134] Fix crash in API validation (Z#23211224) --- src/pretix/api/serializers/item.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pretix/api/serializers/item.py b/src/pretix/api/serializers/item.py index d29b960ab..3b1dd9d9b 100644 --- a/src/pretix/api/serializers/item.py +++ b/src/pretix/api/serializers/item.py @@ -550,7 +550,7 @@ class QuestionSerializer(I18nAwareModelSerializer): if full_data.get('show_during_checkin') and full_data.get('type') in Question.SHOW_DURING_CHECKIN_UNSUPPORTED: raise ValidationError(_('This type of question cannot be shown during check-in.')) - Question.clean_items(event, full_data.get('items')) + Question.clean_items(event, full_data.get('items') or []) return data def validate_options(self, value): @@ -566,7 +566,7 @@ class QuestionSerializer(I18nAwareModelSerializer): @transaction.atomic def create(self, validated_data): options_data = validated_data.pop('options') if 'options' in validated_data else [] - items = validated_data.pop('items') + items = validated_data.pop('items', []) question = Question.objects.create(**validated_data) question.items.set(items) -- 2.49.1 From 2e674916c22dbd3ea8c1837bdd6f506204efc40f Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 15 Oct 2025 13:33:48 +0200 Subject: [PATCH 074/134] Fix email attachment limit to actually be 4MB as documented, not 5 MB (Z#23210802) (#5546) --- src/pretix/base/services/mail.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pretix/base/services/mail.py b/src/pretix/base/services/mail.py index 61c4bf685..65041e2fc 100644 --- a/src/pretix/base/services/mail.py +++ b/src/pretix/base/services/mail.py @@ -470,7 +470,7 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st logger.exception('Could not attach invoice to email') pass - if attach_size < settings.FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT - 1: + if attach_size < settings.FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT - 1024 * 1024: # Do not attach more than (limit - 1 MB) in tickets (1MB space for invoice, email itself, …), # it will bounce way to often. for a in args: -- 2.49.1 From 71f2c8093f56c62fbb7cda63ecca4595b3516253 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 16 Oct 2025 11:07:20 +0200 Subject: [PATCH 075/134] Further tune attachment size computation (Z#23210802) (#5550) Attaching a 1 MB file makes the email ~1.4 MB larger, because all attachments in emails are base64 encoded which takes more space. --- src/pretix/base/services/mail.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/services/mail.py b/src/pretix/base/services/mail.py index 65041e2fc..03bd489e7 100644 --- a/src/pretix/base/services/mail.py +++ b/src/pretix/base/services/mail.py @@ -470,9 +470,11 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st logger.exception('Could not attach invoice to email') pass - if attach_size < settings.FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT - 1024 * 1024: + if attach_size * 1.37 < settings.FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT - 1024 * 1024: # Do not attach more than (limit - 1 MB) in tickets (1MB space for invoice, email itself, …), # it will bounce way to often. + # 1 MB is the buffer for the rest of the email (text, invoice, calendar, pictures) + # 1.37 is the factor for base64 encoding https://en.wikipedia.org/wiki/Base64 for a in args: try: email.attach(*a) -- 2.49.1 From 8a3da37b453f9503c4ede7dfb59ccb17355deff0 Mon Sep 17 00:00:00 2001 From: Phin Wolkwitz Date: Thu, 16 Oct 2025 13:20:00 +0200 Subject: [PATCH 076/134] Connect giftcards with customer accounts (#5126) Connect giftcards with customer accounts, show giftcards during checkout and in account , show giftcard list in backend customer view --- .../base/migrations/0292_giftcard_customer.py | 19 +++++ src/pretix/base/models/customers.py | 20 +++++ src/pretix/base/models/giftcards.py | 7 ++ src/pretix/base/payment.py | 35 +++++++- src/pretix/base/services/orders.py | 1 + src/pretix/control/forms/organizer.py | 38 ++++++++- .../pretixcontrol/giftcards/checkout.html | 30 ++++++- .../pretixcontrol/organizers/customer.html | 48 +++++++++++ .../pretixcontrol/organizers/giftcard.html | 8 ++ .../organizers/giftcard_create.html | 3 + .../organizers/giftcard_edit.html | 3 + src/pretix/control/views/orders.py | 1 + src/pretix/control/views/organizer.py | 2 + .../pretixpresale/event/checkout_payment.html | 37 +++++++++ .../pretixpresale/event/order_pay_change.html | 9 ++ .../organizers/customer_giftcards.html | 83 +++++++++++++++++++ src/pretix/presale/urls.py | 2 + src/pretix/presale/views/customer.py | 15 ++++ src/pretix/static/pretixpresale/js/ui/main.js | 6 ++ src/tests/presale/test_checkout.py | 19 +++++ src/tests/presale/test_order_change.py | 41 +++++++++ src/tests/presale/test_orders.py | 69 +++++++++++++++ 22 files changed, 490 insertions(+), 6 deletions(-) create mode 100644 src/pretix/base/migrations/0292_giftcard_customer.py create mode 100644 src/pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html diff --git a/src/pretix/base/migrations/0292_giftcard_customer.py b/src/pretix/base/migrations/0292_giftcard_customer.py new file mode 100644 index 000000000..5ee6b7dd4 --- /dev/null +++ b/src/pretix/base/migrations/0292_giftcard_customer.py @@ -0,0 +1,19 @@ +# Generated by Django 4.2.19 on 2025-05-19 11:06 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0291_alter_logentry_object_id'), + ] + + operations = [ + migrations.AddField( + model_name='giftcard', + name='customer', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='customer_gift_cards', to='pretixbase.customer'), + ), + ] diff --git a/src/pretix/base/models/customers.py b/src/pretix/base/models/customers.py index 5d94657a4..942ae5918 100644 --- a/src/pretix/base/models/customers.py +++ b/src/pretix/base/models/customers.py @@ -19,6 +19,8 @@ # You should have received a copy of the GNU Affero General Public License along with this program. If not, see # . # +from decimal import Decimal + import pycountry from django.conf import settings from django.contrib.auth.hashers import ( @@ -27,7 +29,11 @@ from django.contrib.auth.hashers import ( from django.core.validators import RegexValidator, URLValidator from django.db import models from django.db.models import F, Q +from django.db.models.aggregates import Sum +from django.db.models.expressions import OuterRef, Subquery +from django.db.models.functions.comparison import Coalesce from django.utils.crypto import get_random_string, salted_hmac +from django.utils.timezone import now from django.utils.translation import gettext_lazy as _, pgettext_lazy from django_scopes import ScopedManager, scopes_disabled from i18nfield.fields import I18nCharField @@ -36,6 +42,7 @@ from phonenumber_field.modelfields import PhoneNumberField from pretix.base.banlist import banned from pretix.base.models.base import LoggedModel from pretix.base.models.fields import MultiStringField +from pretix.base.models.giftcards import GiftCardTransaction from pretix.base.models.organizer import Organizer from pretix.base.settings import PERSON_NAME_SCHEMES from pretix.helpers.countries import FastCountryField @@ -288,6 +295,19 @@ class Customer(LoggedModel): organizer=self.organizer, ) + def usable_gift_cards(self, used_cards=[]): + s = GiftCardTransaction.objects.filter( + card=OuterRef('pk') + ).order_by().values('card').annotate(s=Sum('value')).values('s') + qs = self.customer_gift_cards.annotate( + cached_value=Coalesce(Subquery(s), Decimal('0.00')), + ) + ne_qs = qs.filter( + Q(expires__isnull=True) | Q(expires__gte=now()), + ) + ex_qs = ne_qs.exclude(id__in=used_cards) + return ex_qs.filter(cached_value__gt=0) + class AttendeeProfile(models.Model): customer = models.ForeignKey( diff --git a/src/pretix/base/models/giftcards.py b/src/pretix/base/models/giftcards.py index d93eba36b..409bf4a1c 100644 --- a/src/pretix/base/models/giftcards.py +++ b/src/pretix/base/models/giftcards.py @@ -80,6 +80,13 @@ class GiftCard(LoggedModel): null=True, blank=True, verbose_name=_('Owned by ticket holder') ) + customer = models.ForeignKey( + 'Customer', + related_name='customer_gift_cards', + on_delete=models.PROTECT, + null=True, blank=True, + verbose_name=_('Owned by customer account') + ) issuance = models.DateTimeField( auto_now_add=True, ) diff --git a/src/pretix/base/payment.py b/src/pretix/base/payment.py index 548739182..72f127770 100644 --- a/src/pretix/base/payment.py +++ b/src/pretix/base/payment.py @@ -38,6 +38,7 @@ import json import logging from collections import OrderedDict from decimal import ROUND_HALF_UP, Decimal +from functools import cached_property from typing import Any, Dict, Union from zoneinfo import ZoneInfo @@ -57,8 +58,8 @@ from i18nfield.strings import LazyI18nString from pretix.base.forms import I18nMarkdownTextarea, PlaceholderValidator from pretix.base.models import ( - CartPosition, Event, GiftCard, InvoiceAddress, Order, OrderPayment, - OrderRefund, Quota, TaxRule, + CartPosition, Customer, Event, GiftCard, InvoiceAddress, Order, + OrderPayment, OrderRefund, Quota, TaxRule, ) from pretix.base.reldate import RelativeDateField, RelativeDateWrapper from pretix.base.settings import SettingsSandbox @@ -99,6 +100,7 @@ class PaymentProviderForm(Form): class GiftCardPaymentForm(PaymentProviderForm): def __init__(self, *args, **kwargs): + self.customer_gift_cards = kwargs.pop('customer_gift_cards') if 'customer_gift_cards' in kwargs else None self.event = kwargs.pop('event') self.testmode = kwargs.pop('testmode') self.positions = kwargs.pop('positions') @@ -1373,6 +1375,31 @@ class GiftCardPayment(BasePaymentProvider): payment_form_class = GiftCardPaymentForm payment_form_template_name = 'pretixcontrol/giftcards/checkout.html' + @cached_property + def customer_gift_cards(self): + if not self.request: + return None + if not self.used_cards: + self.used_cards = [] + cs = None + if 'checkout' in self.request.resolver_match.url_name: + cs = cart_session(self.request) + customer = getattr(self.request, "customer", None) + if customer: + return customer.usable_gift_cards(self.used_cards) + elif cs and cs.get('customer_mode', 'guest') == 'login': + try: + customer = self.request.organizer.customers.get(pk=cs["customer"]) + return customer.usable_gift_cards(self.used_cards) + except Customer.DoesNotExist: + return None + + def payment_form_render(self, request: HttpRequest, total: Decimal, order: Order = None) -> str: + form = self.payment_form(request) + template = get_template(self.payment_form_template_name) + ctx = {'request': request, 'form': form, 'customer_gift_cards': form.customer_gift_cards, } + return template.render(ctx) + def payment_form(self, request: HttpRequest) -> Form: # Unfortunately, in payment_form we do not know if we're in checkout # or in an existing order. But we need to do the validation logic in the @@ -1392,8 +1419,12 @@ class GiftCardPayment(BasePaymentProvider): positions = order.positions.all() testmode = order.testmode + self.request = request + self.used_cards = used_cards + form = self.payment_form_class( event=self.event, + customer_gift_cards=self.customer_gift_cards, used_cards=used_cards, positions=positions, testmode=testmode, diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index 01be0e254..bfe817d0f 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -3087,6 +3087,7 @@ def _try_auto_refund(order, auto_refund=True, manual_refund=False, allow_partial expires=order.event.organizer.default_gift_card_expiry if giftcard_expires is _unset else giftcard_expires, conditions=giftcard_conditions, currency=order.event.currency, + customer=order.customer, testmode=order.testmode ) giftcard.log_action('pretix.giftcards.created', data={}) diff --git a/src/pretix/control/forms/organizer.py b/src/pretix/control/forms/organizer.py index 8e614a12e..c8f63914f 100644 --- a/src/pretix/control/forms/organizer.py +++ b/src/pretix/control/forms/organizer.py @@ -731,6 +731,21 @@ class GiftCardCreateForm(forms.ModelForm): kwargs['initial'] = initial super().__init__(*args, **kwargs) + if self.organizer.settings.customer_accounts: + self.fields['customer'].queryset = self.organizer.customers.all() + self.fields['customer'].widget = Select2( + attrs={ + 'data-model-select2': 'generic', + 'data-select2-url': reverse('control:organizer.customers.select2', kwargs={ + 'organizer': self.organizer.slug, + }), + } + ) + self.fields['customer'].widget.choices = self.fields['customer'].choices + self.fields['customer'].required = False + else: + del self.fields['customer'] + def clean_secret(self): s = self.cleaned_data['secret'] if GiftCard.objects.filter( @@ -749,9 +764,10 @@ class GiftCardCreateForm(forms.ModelForm): class Meta: model = GiftCard - fields = ['secret', 'currency', 'testmode', 'expires', 'conditions'] + fields = ['secret', 'currency', 'testmode', 'expires', 'conditions', 'customer'] field_classes = { - 'expires': SplitDateTimeField + 'expires': SplitDateTimeField, + 'customer': SafeModelChoiceField, } widgets = { 'expires': SplitDateTimePickerWidget, @@ -762,10 +778,11 @@ class GiftCardCreateForm(forms.ModelForm): class GiftCardUpdateForm(forms.ModelForm): class Meta: model = GiftCard - fields = ['expires', 'conditions', 'owner_ticket'] + fields = ['expires', 'conditions', 'owner_ticket', 'customer'] field_classes = { 'expires': SplitDateTimeField, 'owner_ticket': SafeOrderPositionChoiceField, + 'customer': SafeModelChoiceField, } widgets = { 'expires': SplitDateTimePickerWidget, @@ -788,6 +805,21 @@ class GiftCardUpdateForm(forms.ModelForm): self.fields['owner_ticket'].widget.choices = self.fields['owner_ticket'].choices self.fields['owner_ticket'].required = False + if organizer.settings.customer_accounts: + self.fields['customer'].queryset = organizer.customers.all() + self.fields['customer'].widget = Select2( + attrs={ + 'data-model-select2': 'generic', + 'data-select2-url': reverse('control:organizer.customers.select2', kwargs={ + 'organizer': organizer.slug, + }), + } + ) + self.fields['customer'].widget.choices = self.fields['customer'].choices + self.fields['customer'].required = False + else: + del self.fields['customer'] + class ReusableMediumUpdateForm(forms.ModelForm): error_messages = { diff --git a/src/pretix/control/templates/pretixcontrol/giftcards/checkout.html b/src/pretix/control/templates/pretixcontrol/giftcards/checkout.html index ca579a36b..23403ac1e 100644 --- a/src/pretix/control/templates/pretixcontrol/giftcards/checkout.html +++ b/src/pretix/control/templates/pretixcontrol/giftcards/checkout.html @@ -1,7 +1,35 @@ {% load i18n %} {% load bootstrap3 %} +{% load money %} {% load rich_text %} {{ request.event.settings.payment_giftcard_public_description|rich_text }} - +{% if customer_gift_cards %} +

+ {% trans "Information" %} + {% trans "The following gift cards are available in your customer account:" %} +

+
+ {% csrf_token %} +
    + {% for c in customer_gift_cards %} +
  • +
    + {{ c }} +
    +
    + {{ c.value|money:c.currency }} +
    +
    + +
    +
  • + {% endfor %} +
+
+{% endif %} {% bootstrap_form form layout='checkout' %} diff --git a/src/pretix/control/templates/pretixcontrol/organizers/customer.html b/src/pretix/control/templates/pretixcontrol/organizers/customer.html index b5954d068..8a86c8f68 100644 --- a/src/pretix/control/templates/pretixcontrol/organizers/customer.html +++ b/src/pretix/control/templates/pretixcontrol/organizers/customer.html @@ -1,6 +1,7 @@ {% extends "pretixcontrol/organizers/base.html" %} {% load i18n %} {% load bootstrap3 %} +{% load icon %} {% load money %} {% load static %} {% block title %} @@ -278,6 +279,53 @@ {% include "pretixcontrol/pagination.html" %}
+
+
+

+ {% trans "Gift cards" %} +

+
+ + + + + + + + {% for gc in gift_cards %} + + + + + + + + + {% endfor %} + +
{% trans "Gift card code" %} + {% trans "Creation date" %} + {% trans "Expiry date" %} + {% trans "Last transaction" %} + {% trans "Current value" %} +
+ + {{ gc.secret }} + {% if gc.testmode %} + {% trans "TEST MODE" %} + {% endif %} + {% if gc.expired %} + {% trans "Expired" %} + {% endif %} + {{ gc.issuance|date:"SHORT_DATETIME_FORMAT" }}{% if gc.expires %}{{ gc.expires|date:"SHORT_DATETIME_FORMAT" }}{% endif %}{% if gc.last_tx %}{{ gc.last_tx|date:"SHORT_DATETIME_FORMAT" }}{% endif %} +

{{ gc.value|money:gc.currency }}

+
+ + + +
+
diff --git a/src/pretix/control/templates/pretixcontrol/organizers/giftcard.html b/src/pretix/control/templates/pretixcontrol/organizers/giftcard.html index 271780abe..8a035e490 100644 --- a/src/pretix/control/templates/pretixcontrol/organizers/giftcard.html +++ b/src/pretix/control/templates/pretixcontrol/organizers/giftcard.html @@ -54,6 +54,14 @@ {{ card.owner_ticket.order.code }}-{{ card.owner_ticket.positionid }} {% endif %} + {% if card.customer %} +
{% trans "Customer account" %}
+
+ + {{ card.customer.identifier }} – {{ card.customer.email }} + +
+ {% endif %}
diff --git a/src/pretix/control/templates/pretixcontrol/organizers/giftcard_create.html b/src/pretix/control/templates/pretixcontrol/organizers/giftcard_create.html index 86bac3b05..5c21b8fc7 100644 --- a/src/pretix/control/templates/pretixcontrol/organizers/giftcard_create.html +++ b/src/pretix/control/templates/pretixcontrol/organizers/giftcard_create.html @@ -12,6 +12,9 @@ {% bootstrap_field form.testmode layout="control" %} {% bootstrap_field form.expires layout="control" %} {% bootstrap_field form.conditions layout="control" %} + {% if form.customer %} + {% bootstrap_field form.customer layout="control" %} + {% endif %}
+
+ + {% endfor %} + + + {% endif %} {% if current_payments %}

{% trans "You already selected the following payment methods:" %}

@@ -77,6 +105,15 @@ aria-controls="payment_{{ p.provider.identifier }}" data-wallets="{{ p.provider.walletqueries|join:"|" }}" /> {{ p.provider.public_name }} + {% if p.provider.identifier == 'giftcard' and p.provider.customer_gift_cards %} + + {% blocktrans trimmed count count=p.provider.customer_gift_cards|length %} + ({{ count }} available) + {% plural %} + ({{ count }} available) + {% endblocktrans %} + + {% endif %} diff --git a/src/pretix/presale/templates/pretixpresale/event/order_pay_change.html b/src/pretix/presale/templates/pretixpresale/event/order_pay_change.html index c32e568c5..324d697a6 100644 --- a/src/pretix/presale/templates/pretixpresale/event/order_pay_change.html +++ b/src/pretix/presale/templates/pretixpresale/event/order_pay_change.html @@ -40,6 +40,15 @@ {% if selected == p.provider.identifier %}checked="checked"{% endif %} data-wallets="{{ p.provider.walletqueries|join:"|" }}"/> {{ p.provider.public_name }} + {% if p.provider.identifier == 'giftcard' and p.provider.customer_gift_cards %} + + {% blocktrans trimmed count count=p.provider.customer_gift_cards|length %} + ({{ count }} available) + {% plural %} + ({{ count }} available) + {% endblocktrans %} + + {% endif %} diff --git a/src/pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html b/src/pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html new file mode 100644 index 000000000..691ffed59 --- /dev/null +++ b/src/pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html @@ -0,0 +1,83 @@ +{% extends "pretixpresale/organizers/customer_base.html" %} +{% load money %} +{% load i18n %} +{% load icon %} +{% load eventurl %} +{% load textbubble %} +{% block title %}{% trans "Gift cards" %}{% endblock %} +{% block inner %} +
+
+

+ {% icon "gift" %} + {% trans "Gift cards" %} ({{ page_obj.paginator.count }}) +

+
+
+ {% if gift_cards %} +
+ {% for gc in gift_cards %} +
+
+

+ {% icon "gift" %} {{ gc }} +

+ {% if gc.issuance %} +

+ {% icon "calendar" %} + {% blocktrans trimmed with date=gc.issuance|date:"SHORT_DATE_FORMAT" %} + Issued on {{ date }} + {% endblocktrans %} +

+ {% endif %} +

+ + {% if gc.expired %} + {% icon "clock-o" %} + {% if gc.expires %} + {% blocktrans trimmed with date=gc.expires|date:"SHORT_DATETIME_FORMAT" %} + Expired since {{ date }} + {% endblocktrans %} + {% else %} + {% trans "Expired" %} + {% endif %} + {% elif gc.expires %} + {% icon "check" %} + {% blocktrans trimmed with date=gc.expires|date:"SHORT_DATETIME_FORMAT" %} + Valid until {{ date }} + {% endblocktrans %} + {% else %} + {% icon "check" %} + {% trans "Valid" %} + {% endif %} + +

+ {% if gc.testmode %} +

+ + {% textbubble "warning" %} + {% trans "TEST MODE" %} + {% endtextbubble %} + +

+ {% endif %} +
+
+ {% blocktrans trimmed with value=gc.value|money:gc.currency %} + Remaining value: + {% endblocktrans %} +

{{ value }}

+
+
+ {% endfor %} +
+ {% else %} +

+ {% trans "You don’t have any gift cards in your account currently." %} + {% trans "Currently, only gift cards resulting from refunds show up here, any purchased gift cards show up under the orders tab." %} +

+ {% endif %} +
+
+ {% include "pretixcontrol/pagination.html" %} +{% endblock %} diff --git a/src/pretix/presale/urls.py b/src/pretix/presale/urls.py index 2fbfac589..2fe4fc398 100644 --- a/src/pretix/presale/urls.py +++ b/src/pretix/presale/urls.py @@ -214,6 +214,8 @@ organizer_patterns = [ re_path(r'^account/confirmchange$', pretix.presale.views.customer.ConfirmChangeView.as_view(), name='organizer.customer.change.confirm'), re_path(r'^account/memberships$', pretix.presale.views.customer.MembershipView.as_view(), name='organizer.customer.memberships'), re_path(r'^account/memberships/(?P\d+)/$', pretix.presale.views.customer.MembershipUsageView.as_view(), name='organizer.customer.membership'), + re_path(r'^account/giftcards$', pretix.presale.views.customer.GiftcardView.as_view(), + name='organizer.customer.giftcards'), re_path(r'^account/addresses$', pretix.presale.views.customer.AddressView.as_view(), name='organizer.customer.addresses'), re_path(r'^account/addresses/(?P\d+)/delete$', pretix.presale.views.customer.AddressDeleteView.as_view(), name='organizer.customer.address.delete'), re_path(r'^account/profiles$', pretix.presale.views.customer.ProfileView.as_view(), name='organizer.customer.profiles'), diff --git a/src/pretix/presale/views/customer.py b/src/pretix/presale/views/customer.py index 45c6216ba..fa0dd884b 100644 --- a/src/pretix/presale/views/customer.py +++ b/src/pretix/presale/views/customer.py @@ -368,6 +368,12 @@ class CustomerAccountBaseMixin(CustomerRequiredMixin): 'active': url_name.startswith('organizer.customer.membership'), 'icon': 'id-badge', }, + { + 'label': _('Gift cards'), + 'url': eventreverse(self.request.organizer, 'presale:organizer.customer.giftcards', kwargs={}), + 'active': url_name.startswith('organizer.customer.giftcard'), + 'icon': 'gift', + }, { 'label': _('Addresses'), 'url': eventreverse(self.request.organizer, 'presale:organizer.customer.addresses', kwargs={}), @@ -461,6 +467,15 @@ class MembershipUsageView(CustomerAccountBaseMixin, ListView): return ctx +class GiftcardView(CustomerAccountBaseMixin, ListView): + template_name = 'pretixpresale/organizers/customer_giftcards.html' + context_object_name = 'gift_cards' + paginate_by = 20 + + def get_queryset(self): + return self.request.customer.customer_gift_cards.all() + + class AddressView(CustomerAccountBaseMixin, ListView): template_name = 'pretixpresale/organizers/customer_addresses.html' context_object_name = 'invoice_addresses' diff --git a/src/pretix/static/pretixpresale/js/ui/main.js b/src/pretix/static/pretixpresale/js/ui/main.js index 0a5c71552..c83eb3409 100644 --- a/src/pretix/static/pretixpresale/js/ui/main.js +++ b/src/pretix/static/pretixpresale/js/ui/main.js @@ -222,6 +222,12 @@ var form_handlers = function (el) { } }); } + + el.find('.use_giftcard').on("click", function () { + var value = $(this).data('value'); + $('#id_payment_giftcard-code').val(value) + }) + }; function setup_basics(el) { diff --git a/src/tests/presale/test_checkout.py b/src/tests/presale/test_checkout.py index baf197b64..2241e4300 100644 --- a/src/tests/presale/test_checkout.py +++ b/src/tests/presale/test_checkout.py @@ -5488,3 +5488,22 @@ class CustomerCheckoutTestCase(BaseCheckoutTestCase, TestCase): with scopes_disabled(): assert order.positions.first().used_membership == m_correct1 assert order.positions.first().attendee_name == 'John Doe' + + def test_giftcard_customer_offered(self): + with scopes_disabled(): + gc = self.orga.issued_gift_cards.create(currency="EUR", customer=self.customer) + gc.transactions.create(value=23, acceptor=self.orga) + ugc = self.customer.usable_gift_cards() + assert len(ugc) == 1 + CartPosition.objects.create( + event=self.event, cart_id=self.session_key, item=self.ticket, + price=23, expires=now() + timedelta(minutes=10) + ) + self.client.post('/%s/%s/checkout/customer/' % (self.orga.slug, self.event.slug), { + 'customer_mode': 'login', + 'login-email': 'john@example.org', + 'login-password': 'foo', + }, follow=True) + response = self.client.get('/%s/%s/checkout/payment/' % (self.orga.slug, self.event.slug), follow=True) + assert 'Gift card' in response.content.decode() + assert '(1 available)' in response.content.decode() diff --git a/src/tests/presale/test_order_change.py b/src/tests/presale/test_order_change.py index 3ebc21e97..0bcafeb4e 100644 --- a/src/tests/presale/test_order_change.py +++ b/src/tests/presale/test_order_change.py @@ -1915,6 +1915,47 @@ class OrderChangeAddonsTest(BaseOrdersTest): r = self.order.refunds.get() assert r.provider == 'giftcard' + def test_refund_giftcard_to_customer_account(self): + with scopes_disabled(): + customer = self.orga.customers.create(email='john@example.org', is_verified=True) + customer.set_password('foo') + customer.save() + + self.order.customer = customer + self.event.settings.cancel_allow_user_paid_refund_as_giftcard = 'force' + with scopes_disabled(): + gc = customer.usable_gift_cards() + assert len(gc) == 0 + OrderPosition.objects.create( + order=self.order, + item=self.workshop1, + variation=None, + price=Decimal("12"), + addon_to=self.ticket_pos, + attendee_name_parts={'full_name': "Peter"}, + ) + self.order.status = Order.STATUS_PAID + self.order.total += Decimal("12") + self.order.save() + self.order.payments.create(provider='testdummy_partialrefund', amount=self.order.total, + state=OrderPayment.PAYMENT_STATE_CONFIRMED) + + response = self.client.post( + '/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {}, + follow=True + ) + doc = BeautifulSoup(response.content.decode(), "lxml") + form_data = extract_form_fields(doc.select('.main-box form')[0]) + form_data['confirm'] = 'true' + self.client.post( + '/%s/%s/order/%s/%s/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), + form_data, follow=True + ) + + with scopes_disabled(): + gc = customer.usable_gift_cards() + assert len(gc) == 1 + def test_attendee(self): self.workshop2a.default_price = Decimal('0.00') self.workshop2a.save() diff --git a/src/tests/presale/test_orders.py b/src/tests/presale/test_orders.py index 583177df5..be4d7d033 100644 --- a/src/tests/presale/test_orders.py +++ b/src/tests/presale/test_orders.py @@ -702,6 +702,46 @@ class OrdersTest(BaseOrdersTest): assert r.provider == "giftcard" assert r.amount == Decimal('20.00') + def test_orders_cancel_autorefund_gift_card_customer(self): + self.order.status = Order.STATUS_PAID + self.order.save() + with scopes_disabled(): + customer = self.orga.customers.create(email='john@example.org', is_verified=True) + customer.set_password('foo') + customer.save() + self.order.customer = customer + self.order.save() + with scopes_disabled(): + self.order.payments.create(provider='testdummy_partialrefund', amount=self.order.total, + state=OrderPayment.PAYMENT_STATE_CONFIRMED) + self.event.settings.cancel_allow_user_paid = True + self.event.settings.cancel_allow_user_paid_refund_as_giftcard = 'option' + gc = customer.usable_gift_cards() + assert len(gc) == 0 + response = self.client.get( + '/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret) + ) + assert response.status_code == 200 + assert 'manually' not in response.content.decode() + assert "gift card" in response.content.decode() + response = self.client.post( + '/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), { + 'giftcard': 'true' + }, follow=True) + self.assertRedirects(response, + '/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, + self.order.secret), + target_status_code=200) + assert "gift card" in response.content.decode() + self.order.refresh_from_db() + assert self.order.status == Order.STATUS_CANCELED + with scopes_disabled(): + r = self.order.refunds.get() + assert r.provider == "giftcard" + assert r.amount == Decimal('23.00') + gc = customer.usable_gift_cards() + assert len(gc) == 1 + def test_orders_cancel_unpaid_fee(self): self.order.status = Order.STATUS_PENDING self.order.save() @@ -1583,6 +1623,35 @@ class OrdersTest(BaseOrdersTest): assert self.order.status == Order.STATUS_PAID assert gc.value == Decimal('87.00') + def test_change_paymentmethod_customeraccount_giftcard_offered(self): + with scopes_disabled(): + self.orga.settings.customer_accounts = True + customer = self.orga.customers.create(email='john@example.org', is_verified=True) + customer.set_password('foo') + customer.save() + self.order.customer = customer + self.order.payments.create( + provider='manual', + state=OrderPayment.PAYMENT_STATE_CONFIRMED, + amount=Decimal('10.00'), + ) + gc = self.orga.issued_gift_cards.create(currency="EUR", customer=customer) + gc.transactions.create(value=100, acceptor=self.orga) + ugc = customer.usable_gift_cards() + assert len(ugc) == 1 + r = self.client.post('/%s/account/login' % (self.orga.slug), { + 'email': 'john@example.org', + 'password': 'foo', + }) + assert r.status_code == 302 + r = self.client.get('/%s/account/' % (self.orga.slug)) + assert r.status_code == 200 + response = self.client.get( + '/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), + ) + assert 'Gift card' in response.content.decode() + assert '1 available' in response.content.decode() + def test_answer_download_token(self): with scopes_disabled(): q = self.event.questions.create(question="Foo", type="F") -- 2.49.1 From 068f82457daaded1811606252fda32fcdb0d7e48 Mon Sep 17 00:00:00 2001 From: Vasco Baleia Date: Fri, 17 Oct 2025 04:04:06 +0200 Subject: [PATCH 077/134] Translations: Update Portuguese (Portugal) Currently translated at 81.5% (4957 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/pt_PT/ powered by weblate --- src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 47 +++++++++---------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po index d70cfd453..94cb7e7c1 100644 --- a/src/pretix/locale/pt_PT/LC_MESSAGES/django.po +++ b/src/pretix/locale/pt_PT/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-02-13 22:00+0000\n" -"Last-Translator: Ana Rute Pacheco Vivas \n" +"PO-Revision-Date: 2025-10-17 02:04+0000\n" +"Last-Translator: Vasco Baleia \n" "Language-Team: Portuguese (Portugal) \n" "Language: pt_PT\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.9.2\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" @@ -9587,7 +9587,7 @@ msgstr "" #: pretix/base/services/placeholders.py:478 #: pretix/base/templates/pretixbase/email/order_details.html:49 msgid "View registration details" -msgstr "Ver detalhes do registro" +msgstr "Ver detalhes do registo" #: pretix/base/services/placeholders.py:575 msgid "Sample Corporation" @@ -11770,7 +11770,7 @@ msgstr "" #: pretix/base/settings.py:2441 #, python-brace-format msgid "Event registration confirmed: {code}" -msgstr "Registro de Evento confirmado: {code}" +msgstr "Registo de Evento confirmado: {code}" #: pretix/base/settings.py:2445 #, python-brace-format @@ -18443,7 +18443,7 @@ msgstr "Login" #: pretix/control/templates/pretixcontrol/auth/login.html:43 #: pretix/control/templates/pretixcontrol/auth/register.html:22 msgid "Register" -msgstr "Registro" +msgstr "Registo" #: pretix/control/templates/pretixcontrol/auth/login.html:27 #: pretix/presale/templates/pretixpresale/fragment_login_status.html:19 @@ -19926,7 +19926,7 @@ msgstr "Redefinir para configurações de organizador" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:29 msgid "This is the SPF record we found on your domain:" -msgstr "Este é o registro do SPF que encontramos em seu domínio:" +msgstr "Este é o registo do SPF que encontramos em seu domínio:" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:33 msgid "To fix this, include the following part before the last word:" @@ -19934,7 +19934,7 @@ msgstr "Para consertar isso, inclua a parte seguinte antes da última palavra:" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:38 msgid "Your new SPF record could look like this:" -msgstr "Seu novo registro do SPF pode ficar assim:" +msgstr "O seu novo registo de SPF pode ficar assim:" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:43 msgid "" @@ -19947,8 +19947,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:48 msgid "We found an SPF record on your domain that includes this system. Great!" msgstr "" -"Encontramos um registro SPF em seu domínio que inclui este sistema. " -"Excelente!" +"Encontramos um registo SPF em seu domínio que inclui este sistema. Excelente!" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:54 msgid "Verification" @@ -21870,16 +21869,12 @@ msgid "October" msgstr "" #: pretix/control/templates/pretixcontrol/global_sysreport.html:26 -#, fuzzy -#| msgid "Member" msgid "November" -msgstr "Membro" +msgstr "novembro" #: pretix/control/templates/pretixcontrol/global_sysreport.html:27 -#, fuzzy -#| msgid "Member" msgid "December" -msgstr "Membro" +msgstr "dezembro" #: pretix/control/templates/pretixcontrol/global_sysreport.html:32 #, fuzzy @@ -26521,7 +26516,7 @@ msgid "" msgstr "" "Para a maioria das categorias de dados, será capaz de descarregar " "parcialmente os dados para armazená-lo offline. Alguns tipos de dados (como " -"algumas informações de pagamento), bem como dados de registro histórico não " +"algumas informações de pagamento), bem como dados de registo histórico não " "podem ser descarregados no momento." #: pretix/control/templates/pretixcontrol/shredder/index.html:46 @@ -28469,11 +28464,11 @@ msgid "" "the domain. You can do so through the DNS settings at the provider you " "registered your domain with." msgstr "" -"Não conseguimos encontrar um conjunto de registros SPF para o domínio que " +"Não conseguimos encontrar um conjunto de registos SPF para o domínio que " "você está tentando usar. Você ainda pode prosseguir, mas aumentará a chance " "de os e -mails irem spam ou serem rejeitados. Recomendamos fortemente " -"definir um registro SPF no domínio. Você pode fazê -lo através das " -"configurações do DNS no provedor com o qual registrou seu domínio." +"definir um registo SPF no domínio. Você pode fazê -lo através das " +"configurações do DNS no provedor com o qual registou seu domínio." #: pretix/control/views/mailsetup.py:207 msgid "" @@ -28483,11 +28478,11 @@ msgid "" "update the DNS settings of your domain to include this system in the SPF " "record." msgstr "" -"Encontramos um conjunto de registros SPF para o domínio que você está " +"Encontramos um conjunto de registos SPF para o domínio que você está " "tentando usar, mas ele não inclui o servidor de email deste sistema. Isso " "significa que há uma chance muito alta que a maioria dos e -mails seja " "rejeitada ou marcada como spam. Você deve atualizar as configurações do DNS " -"do seu domínio para incluir este sistema no registro SPF." +"do seu domínio para incluir este sistema no registo SPF." #: pretix/control/views/mailsetup.py:216 msgid "The verification code was incorrect, please try again." @@ -29488,7 +29483,7 @@ msgstr "O dispositivo foi verificado e agora pode ser usado." #: pretix/control/views/user.py:504 msgid "The registration could not be completed. Please try again." -msgstr "O registro não pôde ser concluído. Por favor, tente novamente." +msgstr "O registo não pôde ser concluído. Por favor, tente novamente." #: pretix/control/views/user.py:564 msgid "" @@ -34058,7 +34053,7 @@ msgstr "tem erros" #: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:14 msgctxt "form" msgid "required" -msgstr "mandatório" +msgstr "obrigatório" #: pretix/presale/ical.py:85 pretix/presale/ical.py:141 #, python-brace-format @@ -35923,11 +35918,11 @@ msgstr "Total: %(total)s" #: pretix/presale/templates/pretixpresale/event/position.html:7 msgid "Registration details" -msgstr "Detalhes do registro" +msgstr "Detalhes do registo" #: pretix/presale/templates/pretixpresale/event/position.html:10 msgid "Your registration" -msgstr "O seu registro" +msgstr "O seu registo" #: pretix/presale/templates/pretixpresale/event/position.html:31 msgid "Your items" -- 2.49.1 From 3562952e6d5f8314fb3a8fb33ba4c3507821c350 Mon Sep 17 00:00:00 2001 From: Maximilian Wintergerst Date: Fri, 17 Oct 2025 14:05:07 +0200 Subject: [PATCH 078/134] Translations: Update French Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/ powered by weblate --- src/pretix/locale/fr/LC_MESSAGES/django.po | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pretix/locale/fr/LC_MESSAGES/django.po b/src/pretix/locale/fr/LC_MESSAGES/django.po index 21bc5513f..7043d7e48 100644 --- a/src/pretix/locale/fr/LC_MESSAGES/django.po +++ b/src/pretix/locale/fr/LC_MESSAGES/django.po @@ -4,8 +4,9 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-30 16:00+0000\n" -"Last-Translator: CVZ-es \n" +"PO-Revision-Date: 2025-10-17 16:55+0000\n" +"Last-Translator: Maximilian Wintergerst " +"\n" "Language-Team: French \n" "Language: fr\n" @@ -3788,7 +3789,7 @@ msgstr "Rendu de la facture par défaut (lettre européenne)" #: pretix/base/invoicing/pdf.py:1058 msgctxt "invoice" msgid "(Please quote at all times.)" -msgstr "(Veuillez mettre entre guillemets systématiquement.)" +msgstr "(Veuillez toujours l'indiquer.)" #: pretix/base/invoicing/pdf.py:1105 msgid "Simplified invoice renderer" -- 2.49.1 From 855b8c800e3fcc0be24ecb712b6ece674145ff5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C4=8Cerm=C3=A1k?= Date: Fri, 17 Oct 2025 15:56:49 +0200 Subject: [PATCH 079/134] Translations: Update Czech Currently translated at 71.1% (4321 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/cs/ powered by weblate --- src/pretix/locale/cs/LC_MESSAGES/django.po | 78 ++++++++++------------ 1 file changed, 34 insertions(+), 44 deletions(-) diff --git a/src/pretix/locale/cs/LC_MESSAGES/django.po b/src/pretix/locale/cs/LC_MESSAGES/django.po index 2276edc4d..c5733184f 100644 --- a/src/pretix/locale/cs/LC_MESSAGES/django.po +++ b/src/pretix/locale/cs/LC_MESSAGES/django.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-09 04:00+0000\n" -"Last-Translator: Alois Pospíšil \n" -"Language-Team: Czech \n" +"PO-Revision-Date: 2025-10-17 16:55+0000\n" +"Last-Translator: Petr Čermák \n" +"Language-Team: Czech " +"\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 5.13.2\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/_base_settings.py:87 msgid "English" -msgstr "AngličDodací adresatina" +msgstr "Angličtina" #: pretix/_base_settings.py:88 msgid "German" @@ -89,7 +89,7 @@ msgstr "Řečtina" #: pretix/_base_settings.py:104 msgid "Hebrew" -msgstr "" +msgstr "Hebrejština" #: pretix/_base_settings.py:105 msgid "Indonesian" @@ -554,22 +554,16 @@ msgid "Event series date deleted" msgstr "Datum série akcí byla odstraněna" #: pretix/api/webhooks.py:374 -#, fuzzy -#| msgid "Product name" msgid "Product changed" -msgstr "Název produktu" +msgstr "Produkt změněn" #: pretix/api/webhooks.py:375 -#, fuzzy -#| msgid "" -#| "Product changed (including product added or deleted and including changes " -#| "to nested objects like variations or bundles)" msgid "" "This includes product added or deleted and changes to nested objects like " "variations or bundles." msgstr "" -"Změna produktu (včetně přidání nebo odstranění produktu a včetně změn " -"dílčích objektů, jako jsou varianty nebo obsažené produkty)" +"Včetně přidání nebo odstranění produktu a včetně změn dílčích objektů, jako " +"jsou varianty nebo obsažené produkty." #: pretix/api/webhooks.py:380 msgid "Shop taken live" @@ -604,28 +598,24 @@ msgid "Waiting list entry received voucher" msgstr "Zápis na čekací listinu obdržel poukaz" #: pretix/api/webhooks.py:412 -#, fuzzy -#| msgid "Voucher code" msgid "Voucher added" -msgstr "Kód poukázky" +msgstr "Dárkový poukaz přidán" #: pretix/api/webhooks.py:416 -#, fuzzy -#| msgid "Voucher assigned" msgid "Voucher changed" -msgstr "Dárkový poukaz přiřazen" +msgstr "Dárkový poukaz změněn" #: pretix/api/webhooks.py:417 msgid "" "Only includes explicit changes to the voucher, not e.g. an increase of the " "number of redemptions." msgstr "" +"Zahrnuje pouze výslovné změny dárkového poukazu; nezahrnuje například " +"navýšení počtu uplatnění." #: pretix/api/webhooks.py:421 -#, fuzzy -#| msgid "Voucher redeemed" msgid "Voucher deleted" -msgstr "Dárkový poukaz uplatněn" +msgstr "Dárkový poukaz smazán" #: pretix/api/webhooks.py:425 msgid "Customer account created" @@ -732,16 +722,17 @@ msgstr "" "pro vlastní integrace." #: pretix/base/context.py:38 -#, fuzzy, python-brace-format -#| msgid "powered by {name} based on pretix" +#, python-brace-format msgid "powered by {name} based on pretix" -msgstr "od: {name} postaveno na systému pretix" +msgstr "" +"Běží na systému {name}, který je založen na systému pretix" #: pretix/base/context.py:48 -#, fuzzy, python-brace-format -#| msgid "powered by {name} based on pretix" +#, python-brace-format msgid "powered by {name} based on pretix" -msgstr "od: {name} postaveno na systému pretix" +msgstr "" +"Běží na systému {name}, který je založen na systému pretix" #: pretix/base/context.py:55 #, python-format @@ -816,6 +807,8 @@ msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" +"Pole \"{field_name}\" neexistuje. Zkontrolujte prosím nastavení u " +"{provider_name}." #: pretix/base/datasync/datasync.py:262 #, python-brace-format @@ -823,6 +816,8 @@ msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" +"Pole „{field_name}“ vyžaduje {required_input}, ale bylo zadáno pouze " +"{available_inputs}. Zkontrolujte prosím nastavení u {provider_name}." #: pretix/base/datasync/datasync.py:273 #, python-brace-format @@ -830,18 +825,16 @@ msgid "" "Please update value mapping for field \"{field_name}\" - option \"{val}\" " "not assigned" msgstr "" +"Aktualizujte prosím mapování hodnot pro pole „{field_name}“ – možnost „{val}“" +" není přiřazena" #: pretix/base/datasync/sourcefields.py:128 -#, fuzzy -#| msgid "Order positions" msgid "Order position details" -msgstr "Pořadí objednávky" +msgstr "Detaily pořadí objednávky" #: pretix/base/datasync/sourcefields.py:129 -#, fuzzy -#| msgid "Attendee email" msgid "Attendee details" -msgstr "Email účastníka" +msgstr "Detaily účastníka" #: pretix/base/datasync/sourcefields.py:130 pretix/base/exporters/answers.py:66 #: pretix/base/models/items.py:1767 pretix/control/navigation.py:172 @@ -851,10 +844,8 @@ msgid "Questions" msgstr "Otázky" #: pretix/base/datasync/sourcefields.py:131 -#, fuzzy -#| msgid "Product data" msgid "Product details" -msgstr "Údaje o produktu" +msgstr "Detaily o produktu" #: pretix/base/datasync/sourcefields.py:132 #: pretix/control/templates/pretixcontrol/event/settings.html:280 @@ -15716,7 +15707,7 @@ msgstr "Potvrďte prosím, že chcete zrušit VŠECHNY termíny této série akc #: pretix/control/forms/organizer.py:93 msgid "This slug is already in use. Please choose a different one." -msgstr "Tato zkratka se již používá. Zvolte prosím jinou." +msgstr "Tento slug se již používá. Použijte prosím jiný." #: pretix/control/forms/organizer.py:172 msgid "You cannot choose the base domain of this installation." @@ -32975,9 +32966,8 @@ msgid "There are no add-ons available for this product." msgstr "Pro tento produkt nejsou k dispozici žádné doplňky." #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:6 -#, fuzzy msgid "Enter a voucher code below to buy this product." -msgstr "Pro zakoupení této vstupenky zadejte níže kód poukázky." +msgstr "Pro objednání této vstupenky zadejte níže kód poukazu." #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:10 #: pretix/presale/templates/pretixpresale/event/fragment_availability.html:14 @@ -33426,7 +33416,7 @@ msgstr "Kdy se akce koná?" #: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:25 #, python-format msgid "Begin: %(time)s" -msgstr "Začátek: %(time)s)" +msgstr "Začátek: %(time)s" #: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:34 #, python-format -- 2.49.1 From cdb69281ad3ad7bbc36a1c1ced9f7c3e059390fd Mon Sep 17 00:00:00 2001 From: Svyatoslav Date: Fri, 17 Oct 2025 18:53:25 +0200 Subject: [PATCH 080/134] Translations: Update Russian Currently translated at 19.1% (1166 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ru/ powered by weblate --- src/pretix/locale/ru/LC_MESSAGES/django.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pretix/locale/ru/LC_MESSAGES/django.po b/src/pretix/locale/ru/LC_MESSAGES/django.po index 542d626f4..5741e7f81 100644 --- a/src/pretix/locale/ru/LC_MESSAGES/django.po +++ b/src/pretix/locale/ru/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-25 03:00+0000\n" -"Last-Translator: Hijiri Umemoto \n" +"PO-Revision-Date: 2025-10-17 16:55+0000\n" +"Last-Translator: Svyatoslav \n" "Language-Team: Russian \n" "Language: ru\n" @@ -35180,9 +35180,8 @@ msgstr "Заплатить сейчас" #: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:62 #: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:77 #: pretix/presale/views/widget.py:445 pretix/presale/views/widget.py:468 -#, fuzzy msgid "Book now" -msgstr "Купить" +msgstr "Забронировать" #: pretix/presale/templates/pretixpresale/fragment_calendar.html:104 #: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:110 -- 2.49.1 From bdf6b6cfa8f155e8d830fbbe1b06aa8e105027d6 Mon Sep 17 00:00:00 2001 From: fd Date: Fri, 17 Oct 2025 18:54:41 +0200 Subject: [PATCH 081/134] Translations: Update Russian Currently translated at 19.1% (1166 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/ru/ powered by weblate --- src/pretix/locale/ru/LC_MESSAGES/django.po | 206 ++++++++++----------- 1 file changed, 100 insertions(+), 106 deletions(-) diff --git a/src/pretix/locale/ru/LC_MESSAGES/django.po b/src/pretix/locale/ru/LC_MESSAGES/django.po index 5741e7f81..ec8790359 100644 --- a/src/pretix/locale/ru/LC_MESSAGES/django.po +++ b/src/pretix/locale/ru/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" "PO-Revision-Date: 2025-10-17 16:55+0000\n" -"Last-Translator: Svyatoslav \n" +"Last-Translator: fd \n" "Language-Team: Russian \n" "Language: ru\n" @@ -22,157 +22,159 @@ msgstr "" #: pretix/_base_settings.py:87 msgid "English" -msgstr "" +msgstr "английский язык" #: pretix/_base_settings.py:88 msgid "German" -msgstr "" +msgstr "Немецкий" #: pretix/_base_settings.py:89 msgid "German (informal)" -msgstr "" +msgstr "Немецкий (разговорный)" #: pretix/_base_settings.py:90 msgid "Arabic" -msgstr "" +msgstr "Арабский" #: pretix/_base_settings.py:91 msgid "Basque" -msgstr "" +msgstr "Баскский" #: pretix/_base_settings.py:92 msgid "Catalan" -msgstr "" +msgstr "Каталанский" #: pretix/_base_settings.py:93 msgid "Chinese (simplified)" -msgstr "" +msgstr "Китайский (упрощённый)" #: pretix/_base_settings.py:94 msgid "Chinese (traditional)" -msgstr "" +msgstr "Китайский (традиционный)" #: pretix/_base_settings.py:95 msgid "Czech" -msgstr "" +msgstr "Чешский" #: pretix/_base_settings.py:96 msgid "Croatian" -msgstr "" +msgstr "Хорватский" #: pretix/_base_settings.py:97 msgid "Danish" -msgstr "" +msgstr "Датский" #: pretix/_base_settings.py:98 msgid "Dutch" -msgstr "" +msgstr "Нидерландский" #: pretix/_base_settings.py:99 msgid "Dutch (informal)" -msgstr "" +msgstr "Нидерландский (разговорный)" #: pretix/_base_settings.py:100 msgid "French" -msgstr "" +msgstr "Французский" #: pretix/_base_settings.py:101 msgid "Finnish" -msgstr "" +msgstr "Финский" #: pretix/_base_settings.py:102 msgid "Galician" -msgstr "" +msgstr "Галисийский" #: pretix/_base_settings.py:103 msgid "Greek" -msgstr "" +msgstr "Греческий" #: pretix/_base_settings.py:104 msgid "Hebrew" -msgstr "" +msgstr "Иврит" #: pretix/_base_settings.py:105 msgid "Indonesian" -msgstr "" +msgstr "Индонезийский" #: pretix/_base_settings.py:106 msgid "Italian" -msgstr "" +msgstr "Итальянский" #: pretix/_base_settings.py:107 msgid "Japanese" -msgstr "" +msgstr "Японский" #: pretix/_base_settings.py:108 msgid "Latvian" -msgstr "" +msgstr "Латышский" #: pretix/_base_settings.py:109 msgid "Norwegian Bokmål" -msgstr "" +msgstr "Норвежский (букмол)" #: pretix/_base_settings.py:110 msgid "Polish" -msgstr "" +msgstr "Польский" #: pretix/_base_settings.py:111 msgid "Portuguese (Portugal)" -msgstr "" +msgstr "Португальский (Португалия)" #: pretix/_base_settings.py:112 msgid "Portuguese (Brazil)" -msgstr "" +msgstr "Португальский (Бразилия)" #: pretix/_base_settings.py:113 msgid "Romanian" -msgstr "" +msgstr "Romanian" #: pretix/_base_settings.py:114 msgid "Russian" -msgstr "" +msgstr "Русский" #: pretix/_base_settings.py:115 msgid "Slovak" -msgstr "" +msgstr "Словацкий" #: pretix/_base_settings.py:116 msgid "Swedish" -msgstr "" +msgstr "Шведский" #: pretix/_base_settings.py:117 msgid "Spanish" -msgstr "" +msgstr "Испанский" #: pretix/_base_settings.py:118 msgid "Spanish (Latin America)" -msgstr "" +msgstr "Spanish (Latin America)" #: pretix/_base_settings.py:119 msgid "Turkish" -msgstr "" +msgstr "Турецкий" #: pretix/_base_settings.py:120 msgid "Ukrainian" -msgstr "" +msgstr "Украинский" #: pretix/api/auth/devicesecurity.py:58 msgid "" "Full device access (reading and changing orders and gift cards, reading of " "products and settings)" msgstr "" +"Полный доступ к устройству (чтение и изменение заказов и подарочных карт, " +"чтение продуктов и настроек)" #: pretix/api/auth/devicesecurity.py:80 msgid "pretixSCAN" -msgstr "" +msgstr "pretixSCAN" #: pretix/api/auth/devicesecurity.py:118 msgid "pretixSCAN (kiosk mode, no order sync, no search)" -msgstr "" +msgstr "pretixSCAN (режим киоска, без синхронизации заказов, без поиска)" #: pretix/api/auth/devicesecurity.py:153 msgid "pretixSCAN (online only, no order sync)" -msgstr "" +msgstr "pretixSCAN (только онлайн, без синхронизации заказов)" #: pretix/api/models.py:39 pretix/base/models/customers.py:402 msgid "Application name" @@ -180,17 +182,15 @@ msgstr "Название приложения" #: pretix/api/models.py:42 pretix/base/models/customers.py:425 msgid "Redirection URIs" -msgstr "" +msgstr "URI перенаправления" #: pretix/api/models.py:43 pretix/base/models/customers.py:426 msgid "Allowed URIs list, space separated" msgstr "Список разрешённых URI, разделённых пробелами" #: pretix/api/models.py:47 -#, fuzzy -#| msgid "Allowed URIs list, space separated" msgid "Allowed Post Logout URIs list, space separated" -msgstr "Список разрешённых URI, разделённых пробелами" +msgstr "Список разрешённых URI после выхода, разделённых пробелами" #: pretix/api/models.py:51 pretix/base/models/customers.py:406 #: pretix/plugins/paypal/payment.py:114 pretix/plugins/paypal2/payment.py:111 @@ -199,7 +199,7 @@ msgstr "ID клиента" #: pretix/api/models.py:55 msgid "Client secret" -msgstr "" +msgstr "Секрет клиента" #: pretix/api/models.py:116 msgid "Enable webhook" @@ -208,7 +208,7 @@ msgstr "Включить вебхук" #: pretix/api/models.py:117 #: pretix/control/templates/pretixcontrol/organizers/webhooks.html:36 msgid "Target URL" -msgstr "" +msgstr "адрес назначения (URL)" #: pretix/api/models.py:118 pretix/base/models/devices.py:122 #: pretix/base/models/organizer.py:352 @@ -231,12 +231,12 @@ msgstr "Ограничиться мероприятиями" #: pretix/plugins/banktransfer/refund_export.py:46 #: pretix/plugins/checkinlists/exporters.py:524 msgid "Comment" -msgstr "" +msgstr "примечание" #: pretix/api/serializers/cart.py:168 pretix/api/serializers/order.py:1466 #, python-brace-format msgid "The product \"{}\" is not assigned to a quota." -msgstr "" +msgstr "Продукт \"{}\" не ассоциирован с квотой распределения." #: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1722 #: pretix/base/models/items.py:1917 pretix/base/models/items.py:2203 @@ -254,96 +254,105 @@ msgid "" "Events cannot be created as 'live'. Quotas and payment must be added to the " "event before sales can go live." msgstr "" +"Мероприятия нельзя создать в статусе \"активно\". Необходимо добавить квоты " +"и способы оплаты, прежде чем продажи станут доступны." #: pretix/api/serializers/event.py:234 pretix/api/serializers/event.py:554 #, python-brace-format msgid "Meta data property '{name}' does not exist." -msgstr "" +msgstr "Свойство метаданных '{name}' не существует." #: pretix/api/serializers/event.py:237 pretix/api/serializers/event.py:557 #, python-brace-format msgid "Meta data property '{name}' does not allow value '{value}'." -msgstr "" +msgstr "Свойство метаданных '{name}' не допускает значение '{value}'." #: pretix/api/serializers/event.py:283 pretix/api/serializers/organizer.py:85 #, python-brace-format msgid "Unknown plugin: '{name}'." -msgstr "" +msgstr "Неизвестный плагин: '{name}'." #: pretix/api/serializers/event.py:286 pretix/api/serializers/organizer.py:88 #, python-brace-format msgid "Restricted plugin: '{name}'." -msgstr "" +msgstr "Ограниченный плагин: '{name}'." #: pretix/api/serializers/item.py:86 pretix/api/serializers/item.py:148 #: pretix/api/serializers/item.py:359 #, python-brace-format msgid "Item meta data property '{name}' does not exist." -msgstr "" +msgstr "Свойство метаданных элемента '{name}' не существует." #: pretix/api/serializers/item.py:207 pretix/control/forms/item.py:1274 msgid "The bundled item must not be the same item as the bundling one." msgstr "" +"Элемент в комплекте не должен совпадать с элементом, формирующим комплект." #: pretix/api/serializers/item.py:210 pretix/control/forms/item.py:1276 msgid "The bundled item must not have bundles on its own." -msgstr "" +msgstr "Элемент в комплекте не должен содержать собственных наборов." #: pretix/api/serializers/item.py:298 msgid "" "Updating add-ons, bundles, or variations via PATCH/PUT is not supported. " "Please use the dedicated nested endpoint." msgstr "" +"Методы PATCH/PUT не поддерживают обновление дополнений, комплектов или " +"вариаций; используйте соответствующую вложенную конечную точку API." #: pretix/api/serializers/item.py:306 msgid "Only admission products can currently be personalized." msgstr "" +"Только продукты для входа могут быть персонализированы в настоящее время." #: pretix/api/serializers/item.py:317 msgid "" "Gift card products should not be associated with non-zero tax rates since " "sales tax will be applied when the gift card is redeemed." msgstr "" +"Подарочные карты не должны быть связаны с ненулевыми налоговыми ставками, " +"поскольку налог с продаж применяется при их использовании." #: pretix/api/serializers/item.py:322 pretix/control/forms/item.py:781 msgid "Gift card products should not be admission products at the same time." -msgstr "" +msgstr "Подарочные карты не должны одновременно быть продуктами для входа." #: pretix/api/serializers/item.py:524 msgid "" "Updating options via PATCH/PUT is not supported. Please use the dedicated " "nested endpoint." msgstr "" +"Методы PATCH/PUT не поддерживают обновление опций; используйте " +"соответствующую вложенную конечную точку API." #: pretix/api/serializers/item.py:538 pretix/control/forms/item.py:176 msgid "Question cannot depend on a question asked during check-in." -msgstr "" +msgstr "Вопрос не может зависеть от вопроса, заданного во время регистрации." #: pretix/api/serializers/item.py:543 pretix/control/forms/item.py:181 msgid "Circular dependency between questions detected." -msgstr "" +msgstr "Обнаружена циклическая зависимость между вопросами." #: pretix/api/serializers/item.py:548 pretix/control/forms/item.py:190 msgid "This type of question cannot be asked during check-in." -msgstr "" +msgstr "Этот тип вопроса не может быть задан во время регистрации." #: pretix/api/serializers/item.py:551 pretix/control/forms/item.py:198 -#, fuzzy -#| msgid "This question will only show up in the backend." msgid "This type of question cannot be shown during check-in." -msgstr "Этот вопрос будет отображаться только в серверной части." +msgstr "Этот тип вопроса не может быть отображён во время регистрации." #: pretix/api/serializers/media.py:108 msgid "" "A medium with the same identifier and type already exists in your organizer " "account." msgstr "" +"Носитель с таким же идентификатором и типом уже существует в вашем аккаунте " +"организатора." #: pretix/api/serializers/order.py:81 -#, fuzzy, python-brace-format -#| msgid "Your gift card has been applied." +#, python-brace-format msgid "\"{input}\" is not a valid choice." -msgstr "Ваш подарочный сертификат использован." +msgstr "\"{input}\" не является допустимым выбором." #: pretix/api/serializers/order.py:1427 pretix/api/views/cart.py:224 #: pretix/base/services/orders.py:1589 @@ -352,23 +361,20 @@ msgid "The selected seat \"{seat}\" is not available." msgstr "Выбранное место \"{seat}\" недоступно." #: pretix/api/serializers/order.py:1453 pretix/api/serializers/order.py:1460 -#, fuzzy, python-brace-format -#| msgid "The ordered product \"{item}\" is no longer available." +#, python-brace-format msgid "The product \"{}\" is not available on this date." -msgstr "Заказанный продукт \"{item}\" более не доступен." +msgstr "Продукт \"{}\" недоступен на эту дату." #: pretix/api/serializers/order.py:1475 pretix/api/views/cart.py:200 #, python-brace-format msgid "" "There is not enough quota available on quota \"{}\" to perform the operation." -msgstr "" +msgstr "Недостаточно квоты в \"{}\" для выполнения операции." #: pretix/api/serializers/organizer.py:145 #: pretix/control/forms/organizer.py:893 pretix/presale/forms/customer.py:458 -#, fuzzy -#| msgid "A voucher with this code already exists." msgid "An account with this email address is already registered." -msgstr "Ваучер с этим кодом уже существует." +msgstr "Аккаунт с этим адресом электронной почты уже зарегистрирован." #: pretix/api/serializers/organizer.py:278 #: pretix/control/forms/organizer.py:746 @@ -376,35 +382,32 @@ msgid "" "A gift card with the same secret already exists in your or an affiliated " "organizer account." msgstr "" +"Подарочная карта с таким же секретом уже существует в вашем или связанном " +"аккаунте организатора." #: pretix/api/serializers/organizer.py:369 #: pretix/control/views/organizer.py:1042 msgid "pretix account invitation" -msgstr "" +msgstr "Приглашение в аккаунт pretix" #: pretix/api/serializers/organizer.py:391 #: pretix/control/views/organizer.py:1141 msgid "This user already has been invited for this team." -msgstr "" +msgstr "Этот пользователь уже приглашён в данную команду." #: pretix/api/serializers/organizer.py:407 #: pretix/control/views/organizer.py:1158 msgid "This user already has permissions for this team." -msgstr "" +msgstr "Этот пользователь уже имеет разрешения для данной команды." #: pretix/api/views/cart.py:209 -#, fuzzy -#| msgid "" -#| "This voucher code has already been used the maximum number of times " -#| "allowed." msgid "" "The specified voucher has already been used the maximum number of times." -msgstr "" -"Этот код ваучера уже был использован максимально допустимое количество раз." +msgstr "Указанный ваучер уже использован максимальное количество раз." #: pretix/api/views/checkin.py:616 pretix/api/views/checkin.py:623 msgid "Medium connected to other event" -msgstr "" +msgstr "Носитель подключён к другому мероприятию" #: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:754 #, python-brace-format @@ -412,6 +415,8 @@ msgid "" "The application \"{application_name}\" has been authorized to access your " "account." msgstr "" +"Приложение \"{application_name}\" получило разрешение на доступ к вашему " +"аккаунту." #: pretix/api/views/order.py:608 pretix/control/views/orders.py:1601 #: pretix/presale/views/order.py:733 pretix/presale/views/order.py:806 @@ -427,13 +432,12 @@ msgstr "Счёт для данного заказа уже существует. #: pretix/control/views/users.py:145 msgid "There was an error sending the mail. Please try again later." msgstr "" +"Произошла ошибка при отправке письма. Пожалуйста, попробуйте снова позже." #: pretix/api/views/order.py:719 pretix/base/services/cart.py:216 #: pretix/base/services/orders.py:191 pretix/presale/views/order.py:790 -#, fuzzy -#| msgid "The selected product does not allow to select a seat." msgid "One of the selected products is not available in the selected country." -msgstr "Выбранный продукт не позволяет выбрать место." +msgstr "Один из выбранных продуктов недоступен в указанной стране." #: pretix/api/webhooks.py:262 pretix/base/notifications.py:233 msgid "New order placed" @@ -452,23 +456,19 @@ msgstr "Заказ помечен как оплаченный" #: pretix/control/templates/pretixcontrol/event/mail.html:114 #: pretix/control/views/orders.py:1562 msgid "Order canceled" -msgstr "" +msgstr "Заказ отменён" #: pretix/api/webhooks.py:278 pretix/base/notifications.py:257 -#, fuzzy -#| msgid "Order expired" msgid "Order reactivated" -msgstr "Срок действия заказа истёк" +msgstr "Заказ восстановлен" #: pretix/api/webhooks.py:282 pretix/base/notifications.py:263 msgid "Order expired" msgstr "Срок действия заказа истёк" #: pretix/api/webhooks.py:286 -#, fuzzy -#| msgid "Order information changed" msgid "Order expiry date changed" -msgstr "Информация в заказе изменена" +msgstr "Дата истечения заказа изменена" #: pretix/api/webhooks.py:290 pretix/base/notifications.py:269 msgid "Order information changed" @@ -481,13 +481,11 @@ msgstr "Контактный адрес заказа изменён" #: pretix/api/webhooks.py:298 pretix/base/notifications.py:281 #: pretix/control/templates/pretixcontrol/event/mail.html:102 msgid "Order changed" -msgstr "" +msgstr "Заказ изменён" #: pretix/api/webhooks.py:302 -#, fuzzy -#| msgid "Enable payment method" msgid "Refund of payment created" -msgstr "Активировать способ оплаты" +msgstr "Возврат платежа создан" #: pretix/api/webhooks.py:306 pretix/base/notifications.py:293 msgid "External refund of payment" @@ -495,25 +493,19 @@ msgstr "Внешний возврат оплаты" #: pretix/api/webhooks.py:310 msgid "Refund of payment requested by customer" -msgstr "" +msgstr "Возврат платежа запрошен клиентом" #: pretix/api/webhooks.py:314 -#, fuzzy -#| msgid "Enable payment method" msgid "Refund of payment completed" -msgstr "Активировать способ оплаты" +msgstr "Возврат платежа завершён" #: pretix/api/webhooks.py:318 -#, fuzzy -#| msgid "External refund of payment" msgid "Refund of payment canceled" -msgstr "Внешний возврат оплаты" +msgstr "Возврат платежа отменён" #: pretix/api/webhooks.py:322 -#, fuzzy -#| msgid "External refund of payment" msgid "Refund of payment failed" -msgstr "Внешний возврат оплаты" +msgstr "Возврат платежа не удался" #: pretix/api/webhooks.py:326 #, fuzzy @@ -15818,7 +15810,7 @@ msgstr "" #: pretix/control/forms/organizer.py:93 msgid "This slug is already in use. Please choose a different one." -msgstr "" +msgstr "Этот идентификатор уже используется. Пожалуйста, выберите другой." #: pretix/control/forms/organizer.py:172 msgid "You cannot choose the base domain of this installation." @@ -15860,6 +15852,8 @@ msgid "" "The changes could not be saved because there would be no remaining team with " "the permission to change teams and permissions." msgstr "" +"Изменения не могут быть сохранены, так как не останется команды с правом " +"изменять команды и разрешения." #: pretix/control/forms/organizer.py:369 pretix/control/forms/organizer.py:407 msgid "" @@ -35181,7 +35175,7 @@ msgstr "Заплатить сейчас" #: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:77 #: pretix/presale/views/widget.py:445 pretix/presale/views/widget.py:468 msgid "Book now" -msgstr "Забронировать" +msgstr "Забронировать сейчас" #: pretix/presale/templates/pretixpresale/fragment_calendar.html:104 #: pretix/presale/templates/pretixpresale/fragment_day_calendar.html:110 @@ -35189,7 +35183,7 @@ msgstr "Забронировать" #: pretix/presale/templates/pretixpresale/fragment_week_calendar.html:73 #: pretix/presale/views/widget.py:460 msgid "Fully booked" -msgstr "" +msgstr "Полностью забронировано" #: pretix/presale/templates/pretixpresale/fragment_calendar.html:114 #, python-format -- 2.49.1 From d9572420eb9492faf46fe20557c0677d56058ea0 Mon Sep 17 00:00:00 2001 From: fd Date: Fri, 17 Oct 2025 18:46:16 +0200 Subject: [PATCH 082/134] Translations: Update Russian Currently translated at 36.9% (93 of 252 strings) Translation: pretix/pretix (JavaScript parts) Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/ru/ powered by weblate --- src/pretix/locale/ru/LC_MESSAGES/djangojs.po | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pretix/locale/ru/LC_MESSAGES/djangojs.po b/src/pretix/locale/ru/LC_MESSAGES/djangojs.po index bd30a8f62..f42cbe6c3 100644 --- a/src/pretix/locale/ru/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/ru/LC_MESSAGES/djangojs.po @@ -8,17 +8,17 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2021-08-09 13:10+0000\n" -"Last-Translator: Svyatoslav \n" -"Language-Team: Russian \n" +"PO-Revision-Date: 2025-10-17 16:55+0000\n" +"Last-Translator: fd \n" +"Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.6\n" +"X-Generator: Weblate 5.13.3\n" #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56 #: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62 @@ -321,7 +321,7 @@ msgstr "" #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65 msgid "Order canceled" -msgstr "" +msgstr "Заказ отменён" #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:66 msgid "Ticket code is ambiguous on list" -- 2.49.1 From 0f25a1d6c8988d08dea9da916b420dac2b83a0c4 Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 21 Oct 2025 08:43:12 +0200 Subject: [PATCH 083/134] Fix addressform handling reloading address-info while XHR-request is still running (Z#23210723) (#5558) * Fix handling answers with null-value * fix handling re-requesting the same url while XHR is still running --- .../static/pretixbase/js/addressform.js | 31 ++++++++++--------- .../static/pretixpresale/js/ui/questions.js | 3 +- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/pretix/static/pretixbase/js/addressform.js b/src/pretix/static/pretixbase/js/addressform.js index baedc8da7..b1aa04e76 100644 --- a/src/pretix/static/pretixbase/js/addressform.js +++ b/src/pretix/static/pretixbase/js/addressform.js @@ -95,10 +95,6 @@ $(function () { } const update = function (ev) { - if (xhr) { - xhr.abort(); - } - dependents.state.prop("data-selected-value", dependents.state.val()); if (dependents.transmission_type) { dependents.transmission_type.prop("data-selected-value", dependents.transmission_type.val()); @@ -119,17 +115,24 @@ $(function () { url.searchParams.append("transmission_type_required", !dependents.transmission_type.find("option[value='-']").length); } + if (xhr && url in responseCache) { + if (responseCache[url] == xhr) { + // already requested this, but XHR is still running and will resolve promise + // only re-resolve promise for JSON-data in responseCache[url] + return; + } else { + // abort current xhr as it is not the one we want + // aborting deletes responseCache[url] but async + xhr.abort(); + } + } + if (!(url in responseCache)) { - responseCache[url] = new Promise((resolve, reject) => { - xhr = $.ajax({ - dataType: "json", - url: url, - timeout: 3000, - success: resolve, - }).fail(function(){ - reject(); - }); - }) + responseCache[url] = xhr = $.ajax({ + dataType: "json", + url: url, + timeout: 3000, + }); } Promise.resolve(responseCache[url]).then(function (data) { diff --git a/src/pretix/static/pretixpresale/js/ui/questions.js b/src/pretix/static/pretixpresale/js/ui/questions.js index ce054945e..d2317b07a 100644 --- a/src/pretix/static/pretixpresale/js/ui/questions.js +++ b/src/pretix/static/pretixpresale/js/ui/questions.js @@ -168,7 +168,7 @@ function questions_init_profiles(el) { for (var p of profiles) { data = {}; for (var key of Object.keys(p)) { - if (key.startsWith("_")) { + if (key.startsWith("_") || p[key] === null) { continue; } matched_field = getMatchingInput(key, p[key], scope); @@ -230,6 +230,7 @@ function questions_init_profiles(el) { // _0 and _1 are e.g. for phone-fields. name-fields have their parts/keys already split var $fields = $('[name$="' + key + '"], [name$="' + key + '_0"], [name$="' + key + '_1"]', scope).not(":disabled"); if ($fields.length) return $fields; + if (!answer) return null; if (answer.identifier) { $label = $('[data-identifier="' + answer.identifier + '"]', scope); -- 2.49.1 From df9147d2077d82ad8fdf62fe00a51823d6a7c3f3 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 21 Oct 2025 09:18:05 +0200 Subject: [PATCH 084/134] Order import: Do not allow importing variation for wrong item (Z#23211320) (#5553) * Order import: Do not allow importing variation for wrong item (Z#23211320) * Fix test --- src/pretix/base/modelimport_orders.py | 2 +- src/tests/base/test_modelimport_orders.py | 31 +++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/modelimport_orders.py b/src/pretix/base/modelimport_orders.py index 604a532cd..144cdf613 100644 --- a/src/pretix/base/modelimport_orders.py +++ b/src/pretix/base/modelimport_orders.py @@ -175,7 +175,7 @@ class Variation(ImportColumn): if value: matches = [ p for p in self.items - if str(p.pk) == value or any((v and v == value) for v in i18n_flat(p.value)) and p.item_id == previous_values['item'].pk + if (str(p.pk) == value or any((v and v == value) for v in i18n_flat(p.value))) and p.item_id == previous_values['item'].pk ] if len(matches) == 0: raise ValidationError(_("No matching variation was found.")) diff --git a/src/tests/base/test_modelimport_orders.py b/src/tests/base/test_modelimport_orders.py index 494f74f7d..2cb57aed6 100644 --- a/src/tests/base/test_modelimport_orders.py +++ b/src/tests/base/test_modelimport_orders.py @@ -443,6 +443,37 @@ def test_variation_invalid(user, event, item): assert 'Error while importing value "Foo" for column "Product variation" in line "1": No matching variation was found.' in str(excinfo.value) +@pytest.mark.django_db +@scopes_disabled() +def test_variation_wrong_item(user, event, item): + settings = dict(DEFAULT_SETTINGS) + settings['item'] = 'static:{}'.format(item.pk) + settings['variation'] = 'csv:E' + item2 = Item.objects.create(event=event, name="Ticket", default_price=23) + v1 = item2.variations.create(value='Foo') + data = [{ + 'A': 'Dieter', + 'B': 'Schneider', + 'C': 'schneider@example.org', + 'D': 'Test', + 'E': str(v1.pk), + 'F': '0.00', + 'G': 'US', + 'H': 'Texas', + 'I': 'Foo', + 'J': '2021-06-28 11:00:00', + 'K': '06221/32177-50', + 'L': 'True', + 'M': 'baz', + 'N': 'Seat-1', + }] + with pytest.raises(DataImportError) as excinfo: + import_orders.apply( + args=(event.pk, inputfile_factory(data).id, settings, 'en', user.pk) + ).get() + assert f'Error while importing value "{str(v1.pk)}" for column "Product variation" in line "1": No matching variation was found.' in str(excinfo.value) + + @pytest.mark.django_db @scopes_disabled() def test_variation_dynamic(user, event, item): -- 2.49.1 From 6cf916d0e6e963666175fd9ff8e40dbe9aa5ddf9 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 21 Oct 2025 09:21:22 +0200 Subject: [PATCH 085/134] Email layout: Generalize order details for non-event shops (Z#23210379) (#5547) --- .../pretixbase/email/order_details.html | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/pretix/base/templates/pretixbase/email/order_details.html b/src/pretix/base/templates/pretixbase/email/order_details.html index 4824cd9fe..e3c0a0a82 100644 --- a/src/pretix/base/templates/pretixbase/email/order_details.html +++ b/src/pretix/base/templates/pretixbase/email/order_details.html @@ -51,42 +51,46 @@
{% else %}
- {% trans "You are receiving this email because you placed an order for the following event:" %} + {% blocktrans trimmed with event=event.name %} + You are receiving this email because you placed an order for {{ event }}. + {% endblocktrans %}
- - - - + {% if not event.has_subevents and event.settings.show_dates_on_frontpage %} + + + + + {% endif %} + {% if not event.has_subevents and event.location %} + + + + + {% endif %} {% if cart %}
- {% trans "Event:" %} - - {{ event.name }} - {% if not event.has_subevents %} - {% if event.settings.show_dates_on_frontpage %} -
- {{ event.get_date_range_display }} - {% if event.settings.show_times %} - {{ event.date_from|date:"TIME_FORMAT" }} - {% endif %} - {% endif %} - {% if event.location %} -
- {{ event.location|oneline }} - {% endif %} - {% endif %} -
- {% trans "Order code:" %} + {% trans "Order code" %}: {{ order.code }} ({{ order.datetime|date:"SHORT_DATE_FORMAT" }})
+ {% trans "Date" %}: + + {{ event.get_date_range_display }} + {% if event.settings.show_times %} + {{ event.date_from|date:"TIME_FORMAT" }} + {% endif %} +
+ {% trans "Location" %}: + + {{ event.location|oneline }} +
- {% trans "Details:" %} + {% trans "Details" %}: @@ -129,7 +133,7 @@ {% endif %}
- {% trans "Contact:" %} + {% trans "Contact" %}: {{ event.organizer }} -- 2.49.1 From 0f7928268b399a5e70a6058c709e065bd3264287 Mon Sep 17 00:00:00 2001 From: CVZ-es Date: Mon, 20 Oct 2025 12:22:41 +0200 Subject: [PATCH 086/134] Translations: Update French Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/fr/ powered by weblate --- src/pretix/locale/fr/LC_MESSAGES/django.po | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pretix/locale/fr/LC_MESSAGES/django.po b/src/pretix/locale/fr/LC_MESSAGES/django.po index 7043d7e48..96863a601 100644 --- a/src/pretix/locale/fr/LC_MESSAGES/django.po +++ b/src/pretix/locale/fr/LC_MESSAGES/django.po @@ -4,9 +4,8 @@ msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-10-17 16:55+0000\n" -"Last-Translator: Maximilian Wintergerst " -"\n" +"PO-Revision-Date: 2025-10-20 19:00+0000\n" +"Last-Translator: CVZ-es \n" "Language-Team: French \n" "Language: fr\n" @@ -12810,7 +12809,7 @@ msgstr "M." #: pretix/base/settings.py:3527 msgctxt "person_name_salutation" msgid "Mx" -msgstr "Non binaire ou ne souhaite pas répondre" +msgstr "NB" #: pretix/base/settings.py:3564 pretix/base/settings.py:3580 #: pretix/base/settings.py:3596 pretix/base/settings.py:3611 -- 2.49.1 From 98bed10e25b8327a889f73acc6fd4d49ecac34b3 Mon Sep 17 00:00:00 2001 From: CVZ-es Date: Mon, 20 Oct 2025 12:23:32 +0200 Subject: [PATCH 087/134] Translations: Update Spanish Currently translated at 100.0% (6076 of 6076 strings) Translation: pretix/pretix Translate-URL: https://translate.pretix.eu/projects/pretix/pretix/es/ powered by weblate --- src/pretix/locale/es/LC_MESSAGES/django.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pretix/locale/es/LC_MESSAGES/django.po b/src/pretix/locale/es/LC_MESSAGES/django.po index f80cf92cd..16ecd731a 100644 --- a/src/pretix/locale/es/LC_MESSAGES/django.po +++ b/src/pretix/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-26 11:16+0000\n" -"PO-Revision-Date: 2025-09-30 16:00+0000\n" +"PO-Revision-Date: 2025-10-20 19:00+0000\n" "Last-Translator: CVZ-es \n" "Language-Team: Spanish \n" @@ -12686,7 +12686,7 @@ msgstr "Sr." #: pretix/base/settings.py:3527 msgctxt "person_name_salutation" msgid "Mx" -msgstr "Srx." +msgstr "NB" #: pretix/base/settings.py:3564 pretix/base/settings.py:3580 #: pretix/base/settings.py:3596 pretix/base/settings.py:3611 -- 2.49.1 From c8f90c96459ba64e1fc754fa5fcf1155d9e8bd03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Oct 2025 18:09:36 +0000 Subject: [PATCH 088/134] Update sentry-sdk requirement from ==2.41.* to ==2.42.* Updates the requirements on [sentry-sdk](https://github.com/getsentry/sentry-python) to permit the latest version. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/2.41.0...2.42.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-version: 2.42.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a3903adce..af1adc3a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,7 +91,7 @@ dependencies = [ "redis==6.4.*", "reportlab==4.4.*", "requests==2.32.*", - "sentry-sdk==2.41.*", + "sentry-sdk==2.42.*", "sepaxml==2.6.*", "stripe==7.9.*", "text-unidecode==1.*", -- 2.49.1 From b68f68740c3bc4ba35d58e1c09745ab723c6fb89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 09:22:01 +0200 Subject: [PATCH 089/134] Update protobuf requirement from ==6.32.* to ==6.33.* (#5551) --- updated-dependencies: - dependency-name: protobuf dependency-version: 6.33.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index af1adc3a1..49abc090c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,7 +76,7 @@ dependencies = [ "phonenumberslite==9.0.*", "Pillow==11.3.*", "pretix-plugin-build", - "protobuf==6.32.*", + "protobuf==6.33.*", "psycopg2-binary", "pycountry", "pycparser==2.23", -- 2.49.1 From 9098eb2a26dcfdf0154d4f8abba11242814324ea Mon Sep 17 00:00:00 2001 From: luelista Date: Tue, 21 Oct 2025 09:22:17 +0200 Subject: [PATCH 090/134] Only store transmission email if invoice receiver is a business (Z#23210414) (#5535) * Use the transmission info transformation methods Use form_data_to_transmission_info and transmission_info_to_form_data to convert between database representation and form data * Only store transmission email address if invoice receiver is a business * Fix default implementation of form_data_to_transmission_info * Update src/pretix/base/forms/questions.py --- src/pretix/base/forms/questions.py | 16 +++++++++------- src/pretix/base/invoicing/email.py | 2 +- src/pretix/base/invoicing/transmission.py | 4 +++- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py index 2736e5384..bb56ceb9c 100644 --- a/src/pretix/base/forms/questions.py +++ b/src/pretix/base/forms/questions.py @@ -77,7 +77,9 @@ from pretix.base.forms.widgets import ( from pretix.base.i18n import ( get_babel_locale, get_language_without_region, language, ) -from pretix.base.invoicing.transmission import get_transmission_types +from pretix.base.invoicing.transmission import ( + get_transmission_types, transmission_types, +) from pretix.base.models import InvoiceAddress, Item, Question, QuestionOption from pretix.base.models.tax import ask_for_vat_id from pretix.base.services.tax import ( @@ -1142,9 +1144,11 @@ class BaseInvoiceAddressForm(forms.ModelForm): if (not kwargs.get('instance') or not kwargs['instance'].country) and not kwargs["initial"].get("country"): kwargs['initial']['country'] = guess_country_from_request(self.request, self.event) - if kwargs.get('instance'): - kwargs['initial'].update(kwargs['instance'].transmission_info or {}) - kwargs['initial']['transmission_type'] = kwargs['instance'].transmission_type + if kwargs.get('instance') and kwargs['instance'].transmission_type: + ttype, meta = transmission_types.get(identifier=kwargs['instance'].transmission_type) + if ttype: + kwargs['initial'].update(ttype.transmission_info_to_form_data(kwargs['instance'].transmission_info or {})) + kwargs['initial']['transmission_type'] = ttype.identifier super().__init__(*args, **kwargs) @@ -1394,9 +1398,7 @@ class BaseInvoiceAddressForm(forms.ModelForm): raise ValidationError({r: _("This field is required for the selected type of invoice transmission.")}) self.instance.transmission_type = transmission_type.identifier - self.instance.transmission_info = { - k: data.get(k) for k in transmission_type.invoice_address_form_fields - } + self.instance.transmission_info = transmission_type.form_data_to_transmission_info(data) elif transmission_type.exclusive: if transmission_type.is_available(self.event, data.get("country"), data.get("is_business")): raise ValidationError({ diff --git a/src/pretix/base/invoicing/email.py b/src/pretix/base/invoicing/email.py index 78f7d7f82..d3064af77 100644 --- a/src/pretix/base/invoicing/email.py +++ b/src/pretix/base/invoicing/email.py @@ -77,7 +77,7 @@ class EmailTransmissionType(TransmissionType): } def form_data_to_transmission_info(self, form_data: dict) -> dict: - if form_data.get("transmission_email_other") and form_data.get("transmission_email_address"): + if form_data.get("is_business") and form_data.get("transmission_email_other") and form_data.get("transmission_email_address"): return { "transmission_email_address": form_data["transmission_email_address"], } diff --git a/src/pretix/base/invoicing/transmission.py b/src/pretix/base/invoicing/transmission.py index 0fbb37611..6b7d39831 100644 --- a/src/pretix/base/invoicing/transmission.py +++ b/src/pretix/base/invoicing/transmission.py @@ -99,7 +99,9 @@ class TransmissionType: return {} def form_data_to_transmission_info(self, form_data: dict) -> dict: - return form_data + return { + k: form_data.get(k) for k in self.invoice_address_form_fields + } def transmission_info_to_form_data(self, transmission_info: dict) -> dict: return transmission_info -- 2.49.1 From 0c05296df3c6e2af64bf90a78e1a1042f313cc8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 09:22:30 +0200 Subject: [PATCH 091/134] Update pypdf requirement from ==6.0.* to ==6.1.* (#5480) Updates the requirements on [pypdf](https://github.com/py-pdf/pypdf) to permit the latest version. - [Release notes](https://github.com/py-pdf/pypdf/releases) - [Changelog](https://github.com/py-pdf/pypdf/blob/main/CHANGELOG.md) - [Commits](https://github.com/py-pdf/pypdf/compare/6.0.0...6.1.0) --- updated-dependencies: - dependency-name: pypdf dependency-version: 6.1.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 49abc090c..a5ab8c546 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -81,7 +81,7 @@ dependencies = [ "pycountry", "pycparser==2.23", "pycryptodome==3.23.*", - "pypdf==6.0.*", + "pypdf==6.1.*", "python-bidi==0.6.*", # Support for Arabic in reportlab "python-dateutil==2.9.*", "pytz", -- 2.49.1 From 0ee028a9dae09d3f2eafaa4ac5f1323c28570470 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 21 Oct 2025 09:27:06 +0200 Subject: [PATCH 092/134] Update po files [CI skip] Signed-off-by: Raphael Michel --- src/pretix/locale/ang/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/ang/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/ar/LC_MESSAGES/django.po | 3879 ++++++++-------- src/pretix/locale/ar/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/az/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/az/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/ca/LC_MESSAGES/django.po | 3902 ++++++++-------- src/pretix/locale/ca/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/cs/LC_MESSAGES/django.po | 3872 ++++++++-------- src/pretix/locale/cs/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/cy/LC_MESSAGES/django.po | 3873 ++++++++-------- src/pretix/locale/cy/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/da/LC_MESSAGES/django.po | 3872 ++++++++-------- src/pretix/locale/da/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/de/LC_MESSAGES/django.po | 3866 ++++++++-------- src/pretix/locale/de/LC_MESSAGES/djangojs.po | 30 +- .../locale/de_Informal/LC_MESSAGES/django.po | 3866 ++++++++-------- .../de_Informal/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/django.pot | 3887 ++++++++-------- src/pretix/locale/djangojs.pot | 30 +- src/pretix/locale/el/LC_MESSAGES/django.po | 3883 ++++++++-------- src/pretix/locale/el/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/enm/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/enm/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/es/LC_MESSAGES/django.po | 3872 ++++++++-------- src/pretix/locale/es/LC_MESSAGES/djangojs.po | 30 +- .../locale/es_419/LC_MESSAGES/django.po | 3871 ++++++++-------- .../locale/es_419/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/et/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/et/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/eu/LC_MESSAGES/django.po | 3918 ++++++++-------- src/pretix/locale/eu/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/fi/LC_MESSAGES/django.po | 3917 ++++++++-------- src/pretix/locale/fi/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/fo/LC_MESSAGES/django.po | 3889 ++++++++-------- src/pretix/locale/fo/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/fr/LC_MESSAGES/django.po | 3867 ++++++++-------- src/pretix/locale/fr/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/gl/LC_MESSAGES/django.po | 3855 ++++++++-------- src/pretix/locale/gl/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/he/LC_MESSAGES/django.po | 3868 ++++++++-------- src/pretix/locale/he/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/hr/LC_MESSAGES/django.po | 3877 ++++++++-------- src/pretix/locale/hr/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/hu/LC_MESSAGES/django.po | 3908 ++++++++-------- src/pretix/locale/hu/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/id/LC_MESSAGES/django.po | 3873 ++++++++-------- src/pretix/locale/id/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/it/LC_MESSAGES/django.po | 3903 ++++++++-------- src/pretix/locale/it/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/ja/LC_MESSAGES/django.po | 4059 +++++++++-------- src/pretix/locale/ja/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/ko/LC_MESSAGES/django.po | 3858 ++++++++-------- src/pretix/locale/ko/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/lt/LC_MESSAGES/django.po | 3888 ++++++++-------- src/pretix/locale/lt/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/lv/LC_MESSAGES/django.po | 3901 ++++++++-------- src/pretix/locale/lv/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/nan/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/nan/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/nb_NO/LC_MESSAGES/django.po | 3868 ++++++++-------- .../locale/nb_NO/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/nl/LC_MESSAGES/django.po | 3890 ++++++++-------- src/pretix/locale/nl/LC_MESSAGES/djangojs.po | 30 +- .../locale/nl_Informal/LC_MESSAGES/django.po | 3881 ++++++++-------- .../nl_Informal/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/pl/LC_MESSAGES/django.po | 3875 ++++++++-------- src/pretix/locale/pl/LC_MESSAGES/djangojs.po | 30 +- .../locale/pl_Informal/LC_MESSAGES/django.po | 3886 ++++++++-------- .../pl_Informal/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/pt/LC_MESSAGES/django.po | 3881 ++++++++-------- src/pretix/locale/pt/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/pt_BR/LC_MESSAGES/django.po | 3868 ++++++++-------- .../locale/pt_BR/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/pt_PT/LC_MESSAGES/django.po | 3881 ++++++++-------- .../locale/pt_PT/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/ro/LC_MESSAGES/django.po | 3882 ++++++++-------- src/pretix/locale/ro/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/ru/LC_MESSAGES/django.po | 3893 ++++++++-------- src/pretix/locale/ru/LC_MESSAGES/djangojs.po | 34 +- src/pretix/locale/si/LC_MESSAGES/django.po | 3895 ++++++++-------- src/pretix/locale/si/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/sk/LC_MESSAGES/django.po | 3873 ++++++++-------- src/pretix/locale/sk/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/sl/LC_MESSAGES/django.po | 3867 ++++++++-------- src/pretix/locale/sl/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/sq/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/sq/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/sv/LC_MESSAGES/django.po | 3871 ++++++++-------- src/pretix/locale/sv/LC_MESSAGES/djangojs.po | 34 +- src/pretix/locale/th/LC_MESSAGES/django.po | 3886 ++++++++-------- src/pretix/locale/th/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/tr/LC_MESSAGES/django.po | 3889 ++++++++-------- src/pretix/locale/tr/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/uk/LC_MESSAGES/django.po | 3884 ++++++++-------- src/pretix/locale/uk/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/vi/LC_MESSAGES/django.po | 3860 ++++++++-------- src/pretix/locale/vi/LC_MESSAGES/djangojs.po | 30 +- src/pretix/locale/vls/LC_MESSAGES/django.po | 3887 ++++++++-------- src/pretix/locale/vls/LC_MESSAGES/djangojs.po | 30 +- .../locale/zh_Hans/LC_MESSAGES/django.po | 3876 ++++++++-------- .../locale/zh_Hans/LC_MESSAGES/djangojs.po | 30 +- .../locale/zh_Hant/LC_MESSAGES/django.po | 3871 ++++++++-------- .../locale/zh_Hant/LC_MESSAGES/djangojs.po | 30 +- 104 files changed, 105708 insertions(+), 97870 deletions(-) diff --git a/src/pretix/locale/ang/LC_MESSAGES/django.po b/src/pretix/locale/ang/LC_MESSAGES/django.po index afdf4247e..c52be7ca6 100644 --- a/src/pretix/locale/ang/LC_MESSAGES/django.po +++ b/src/pretix/locale/ang/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-26 11:16+0000\n" +"POT-Creation-Date: 2025-10-21 07:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -171,15 +171,15 @@ msgstr "" msgid "pretixSCAN (online only, no order sync)" msgstr "" -#: pretix/api/models.py:39 pretix/base/models/customers.py:402 +#: pretix/api/models.py:39 pretix/base/models/customers.py:422 msgid "Application name" msgstr "" -#: pretix/api/models.py:42 pretix/base/models/customers.py:425 +#: pretix/api/models.py:42 pretix/base/models/customers.py:445 msgid "Redirection URIs" msgstr "" -#: pretix/api/models.py:43 pretix/base/models/customers.py:426 +#: pretix/api/models.py:43 pretix/base/models/customers.py:446 msgid "Allowed URIs list, space separated" msgstr "" @@ -187,7 +187,7 @@ msgstr "" msgid "Allowed Post Logout URIs list, space separated" msgstr "" -#: pretix/api/models.py:51 pretix/base/models/customers.py:406 +#: pretix/api/models.py:51 pretix/base/models/customers.py:426 #: pretix/plugins/paypal/payment.py:114 pretix/plugins/paypal2/payment.py:111 msgid "Client ID" msgstr "" @@ -215,8 +215,8 @@ msgstr "" msgid "Limit to events" msgstr "" -#: pretix/api/models.py:120 pretix/base/exporters/orderlist.py:285 -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/api/models.py:120 pretix/base/exporters/orderlist.py:286 +#: pretix/base/exporters/orderlist.py:1098 #: pretix/base/modelimport_vouchers.py:326 pretix/base/models/orders.py:272 #: pretix/base/models/vouchers.py:295 pretix/control/forms/filter.py:588 #: pretix/control/templates/pretixcontrol/order/index.html:950 @@ -224,7 +224,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/user/staff_session_list.html:21 #: pretix/control/views/vouchers.py:121 #: pretix/plugins/banktransfer/refund_export.py:46 -#: pretix/plugins/checkinlists/exporters.py:524 +#: pretix/plugins/checkinlists/exporters.py:525 msgid "Comment" msgstr "" @@ -233,7 +233,7 @@ msgstr "" msgid "The product \"{}\" is not assigned to a quota." msgstr "" -#: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1722 +#: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1718 #: pretix/base/models/items.py:1917 pretix/base/models/items.py:2203 msgid "One or more items do not belong to this event." msgstr "" @@ -338,7 +338,7 @@ msgid "\"{input}\" is not a valid choice." msgstr "" #: pretix/api/serializers/order.py:1427 pretix/api/views/cart.py:224 -#: pretix/base/services/orders.py:1589 +#: pretix/base/services/orders.py:1619 #, python-brace-format msgid "The selected seat \"{seat}\" is not available." msgstr "" @@ -355,12 +355,12 @@ msgid "" msgstr "" #: pretix/api/serializers/organizer.py:145 -#: pretix/control/forms/organizer.py:893 pretix/presale/forms/customer.py:458 +#: pretix/control/forms/organizer.py:925 pretix/presale/forms/customer.py:458 msgid "An account with this email address is already registered." msgstr "" #: pretix/api/serializers/organizer.py:278 -#: pretix/control/forms/organizer.py:746 +#: pretix/control/forms/organizer.py:761 msgid "" "A gift card with the same secret already exists in your or an affiliated " "organizer account." @@ -390,30 +390,30 @@ msgstr "" msgid "Medium connected to other event" msgstr "" -#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:754 +#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:755 #, python-brace-format msgid "" "The application \"{application_name}\" has been authorized to access your " "account." msgstr "" -#: pretix/api/views/order.py:608 pretix/control/views/orders.py:1601 -#: pretix/presale/views/order.py:733 pretix/presale/views/order.py:806 +#: pretix/api/views/order.py:608 pretix/control/views/orders.py:1602 +#: pretix/presale/views/order.py:736 pretix/presale/views/order.py:816 msgid "You cannot generate an invoice for this order." msgstr "" -#: pretix/api/views/order.py:613 pretix/control/views/orders.py:1603 -#: pretix/presale/views/order.py:735 pretix/presale/views/order.py:808 +#: pretix/api/views/order.py:613 pretix/control/views/orders.py:1604 +#: pretix/presale/views/order.py:738 pretix/presale/views/order.py:818 msgid "An invoice for this order already exists." msgstr "" -#: pretix/api/views/order.py:639 pretix/control/views/orders.py:1762 +#: pretix/api/views/order.py:639 pretix/control/views/orders.py:1763 #: pretix/control/views/users.py:145 msgid "There was an error sending the mail. Please try again later." msgstr "" #: pretix/api/views/order.py:719 pretix/base/services/cart.py:216 -#: pretix/base/services/orders.py:191 pretix/presale/views/order.py:790 +#: pretix/base/services/orders.py:191 pretix/presale/views/order.py:800 msgid "One of the selected products is not available in the selected country." msgstr "" @@ -432,7 +432,7 @@ msgstr "" #: pretix/api/webhooks.py:274 pretix/base/models/checkin.py:355 #: pretix/base/notifications.py:251 #: pretix/control/templates/pretixcontrol/event/mail.html:114 -#: pretix/control/views/orders.py:1562 +#: pretix/control/views/orders.py:1563 msgid "Order canceled" msgstr "" @@ -609,11 +609,11 @@ msgid "Customer account anonymized" msgstr "" #: pretix/base/addressvalidation.py:100 pretix/base/addressvalidation.py:103 -#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:1046 -#: pretix/base/forms/questions.py:1077 pretix/base/forms/questions.py:1329 -#: pretix/base/payment.py:96 pretix/control/forms/event.py:792 +#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:1048 +#: pretix/base/forms/questions.py:1079 pretix/base/forms/questions.py:1333 +#: pretix/base/payment.py:97 pretix/control/forms/event.py:792 #: pretix/control/forms/event.py:798 pretix/control/forms/event.py:838 -#: pretix/control/forms/event.py:1454 pretix/control/forms/mailsetup.py:87 +#: pretix/control/forms/event.py:1455 pretix/control/forms/mailsetup.py:87 #: pretix/control/forms/mailsetup.py:129 pretix/control/forms/subevents.py:181 #: pretix/plugins/banktransfer/payment.py:506 #: pretix/plugins/banktransfer/payment.py:512 @@ -635,21 +635,21 @@ msgid "{system} User" msgstr "" #: pretix/base/auth.py:155 pretix/base/exporters/customers.py:67 -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:453 -#: pretix/base/exporters/orderlist.py:586 -#: pretix/base/exporters/waitinglist.py:109 pretix/base/forms/auth.py:257 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:454 +#: pretix/base/exporters/orderlist.py:587 +#: pretix/base/exporters/waitinglist.py:110 pretix/base/forms/auth.py:257 #: pretix/base/invoicing/email.py:43 pretix/base/models/auth.py:244 -#: pretix/base/models/customers.py:94 pretix/base/models/notifications.py:46 +#: pretix/base/models/customers.py:101 pretix/base/models/notifications.py:46 #: pretix/base/models/orders.py:246 pretix/base/pdf.py:336 #: pretix/control/navigation.py:81 pretix/control/navigation.py:513 #: pretix/control/templates/pretixcontrol/checkin/index.html:107 #: pretix/control/templates/pretixcontrol/event/settings.html:71 #: pretix/control/templates/pretixcontrol/orders/fragment_export_schedule_form.html:108 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:49 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:50 #: pretix/control/templates/pretixcontrol/organizers/customers.html:59 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:161 -#: pretix/plugins/checkinlists/exporters.py:508 +#: pretix/plugins/checkinlists/exporters.py:509 #: pretix/presale/checkoutflow.py:1542 pretix/presale/forms/checkout.py:57 #: pretix/presale/forms/customer.py:57 pretix/presale/forms/customer.py:142 #: pretix/presale/forms/customer.py:298 pretix/presale/forms/customer.py:344 @@ -661,7 +661,7 @@ msgstr "" #: pretix/base/auth.py:157 pretix/base/forms/auth.py:164 #: pretix/base/forms/auth.py:218 pretix/base/models/auth.py:675 -#: pretix/base/models/customers.py:96 pretix/control/forms/mailsetup.py:57 +#: pretix/base/models/customers.py:103 pretix/control/forms/mailsetup.py:57 #: pretix/presale/forms/customer.py:61 pretix/presale/forms/customer.py:302 msgid "Password" msgstr "" @@ -751,9 +751,9 @@ msgstr "" #: pretix/base/customersso/oidc.py:223 pretix/base/customersso/oidc.py:231 #: pretix/base/customersso/oidc.py:254 pretix/base/customersso/oidc.py:271 -#: pretix/base/customersso/oidc.py:278 pretix/presale/views/customer.py:743 -#: pretix/presale/views/customer.py:753 pretix/presale/views/customer.py:792 -#: pretix/presale/views/customer.py:866 +#: pretix/base/customersso/oidc.py:278 pretix/presale/views/customer.py:758 +#: pretix/presale/views/customer.py:768 pretix/presale/views/customer.py:807 +#: pretix/presale/views/customer.py:881 #, python-brace-format msgid "Login was not successful. Error message: \"{error}\"." msgstr "" @@ -764,21 +764,21 @@ msgid "" "the email address in your customer account." msgstr "" -#: pretix/base/datasync/datasync.py:255 +#: pretix/base/datasync/datasync.py:263 #, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" -#: pretix/base/datasync/datasync.py:262 +#: pretix/base/datasync/datasync.py:270 #, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -#: pretix/base/datasync/datasync.py:273 +#: pretix/base/datasync/datasync.py:281 #, python-brace-format msgid "" "Please update value mapping for field \"{field_name}\" - option \"{val}\" " @@ -836,16 +836,16 @@ msgid "Event or date information" msgstr "" #: pretix/base/datasync/sourcefields.py:175 -#: pretix/base/exporters/orderlist.py:604 -#: pretix/base/exporters/orderlist.py:609 pretix/base/forms/questions.py:679 -#: pretix/base/modelimport_orders.py:347 pretix/base/models/customers.py:300 +#: pretix/base/exporters/orderlist.py:605 +#: pretix/base/exporters/orderlist.py:610 pretix/base/forms/questions.py:681 +#: pretix/base/modelimport_orders.py:347 pretix/base/models/customers.py:320 #: pretix/base/models/orders.py:1504 pretix/base/pdf.py:183 -#: pretix/control/forms/filter.py:679 pretix/control/forms/organizer.py:987 +#: pretix/control/forms/filter.py:679 pretix/control/forms/organizer.py:1019 #: pretix/control/templates/pretixcontrol/order/index.html:566 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:120 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:121 #: pretix/control/views/item.py:442 pretix/plugins/badges/exporters.py:495 #: pretix/plugins/checkinlists/exporters.py:121 -#: pretix/plugins/checkinlists/exporters.py:494 +#: pretix/plugins/checkinlists/exporters.py:495 #: pretix/plugins/ticketoutputpdf/exporters.py:94 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:162 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:165 @@ -862,8 +862,8 @@ msgid "Attendee" msgstr "" #: pretix/base/datasync/sourcefields.py:207 -#: pretix/base/exporters/orderlist.py:611 pretix/base/forms/questions.py:685 -#: pretix/base/models/customers.py:307 pretix/base/models/orders.py:1512 +#: pretix/base/exporters/orderlist.py:612 pretix/base/forms/questions.py:687 +#: pretix/base/models/customers.py:327 pretix/base/models/orders.py:1512 #: pretix/base/pdf.py:225 #: pretix/control/templates/pretixcontrol/order/index.html:571 #: pretix/control/views/item.py:454 @@ -906,30 +906,30 @@ msgid "Invoice address company" msgstr "" #: pretix/base/datasync/sourcefields.py:288 -#: pretix/base/exporters/orderlist.py:464 -#: pretix/base/exporters/orderlist.py:469 -#: pretix/base/exporters/orderlist.py:653 -#: pretix/base/exporters/orderlist.py:657 pretix/base/pdf.py:341 +#: pretix/base/exporters/orderlist.py:465 +#: pretix/base/exporters/orderlist.py:470 +#: pretix/base/exporters/orderlist.py:654 +#: pretix/base/exporters/orderlist.py:658 pretix/base/pdf.py:341 msgid "Invoice address name" msgstr "" #: pretix/base/datasync/sourcefields.py:317 -#: pretix/base/exporters/orderlist.py:659 pretix/base/pdf.py:351 +#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:351 msgid "Invoice address street" msgstr "" #: pretix/base/datasync/sourcefields.py:326 -#: pretix/base/exporters/orderlist.py:659 pretix/base/pdf.py:356 +#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:356 msgid "Invoice address ZIP code" msgstr "" #: pretix/base/datasync/sourcefields.py:335 -#: pretix/base/exporters/orderlist.py:659 pretix/base/pdf.py:361 +#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:361 msgid "Invoice address city" msgstr "" #: pretix/base/datasync/sourcefields.py:344 -#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:371 +#: pretix/base/exporters/orderlist.py:661 pretix/base/pdf.py:371 msgid "Invoice address country" msgstr "" @@ -942,29 +942,30 @@ msgid "Order email domain" msgstr "" #: pretix/base/datasync/sourcefields.py:371 -#: pretix/base/exporters/invoices.py:201 pretix/base/exporters/invoices.py:328 -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:451 -#: pretix/base/exporters/orderlist.py:583 -#: pretix/base/exporters/orderlist.py:897 pretix/base/models/orders.py:210 +#: pretix/base/exporters/invoices.py:203 pretix/base/exporters/invoices.py:330 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:452 +#: pretix/base/exporters/orderlist.py:584 +#: pretix/base/exporters/orderlist.py:899 pretix/base/models/orders.py:210 #: pretix/base/notifications.py:199 pretix/base/pdf.py:105 +#: pretix/base/templates/pretixbase/email/order_details.html:61 #: pretix/control/templates/pretixcontrol/checkin/index.html:95 #: pretix/control/templates/pretixcontrol/order/index.html:181 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:116 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:22 #: pretix/control/templates/pretixcontrol/orders/index.html:47 #: pretix/control/templates/pretixcontrol/orders/index.html:131 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:204 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:205 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:41 #: pretix/control/templates/pretixcontrol/search/orders.html:48 #: pretix/plugins/badges/exporters.py:497 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:29 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:41 #: pretix/plugins/checkinlists/exporters.py:122 -#: pretix/plugins/checkinlists/exporters.py:493 -#: pretix/plugins/checkinlists/exporters.py:757 +#: pretix/plugins/checkinlists/exporters.py:494 +#: pretix/plugins/checkinlists/exporters.py:760 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:895 +#: pretix/plugins/reports/exporters.py:896 #: pretix/plugins/ticketoutputpdf/exporters.py:96 msgid "Order code" msgstr "" @@ -974,11 +975,11 @@ msgid "Event and order code" msgstr "" #: pretix/base/datasync/sourcefields.py:389 -#: pretix/base/exporters/orderlist.py:262 pretix/base/notifications.py:201 +#: pretix/base/exporters/orderlist.py:263 pretix/base/notifications.py:201 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:25 #: pretix/control/templates/pretixcontrol/search/orders.html:60 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:898 msgid "Order total" msgstr "" @@ -987,9 +988,9 @@ msgid "Product and variation name" msgstr "" #: pretix/base/datasync/sourcefields.py:410 pretix/base/exporters/items.py:57 -#: pretix/base/exporters/orderlist.py:597 -#: pretix/base/exporters/orderlist.py:908 -#: pretix/base/exporters/waitinglist.py:112 +#: pretix/base/exporters/orderlist.py:598 +#: pretix/base/exporters/orderlist.py:910 +#: pretix/base/exporters/waitinglist.py:113 msgid "Product ID" msgstr "" @@ -1002,10 +1003,10 @@ msgid "Event short form" msgstr "" #: pretix/base/datasync/sourcefields.py:437 pretix/base/exporters/events.py:57 -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:450 -#: pretix/base/exporters/orderlist.py:582 -#: pretix/base/exporters/waitinglist.py:116 pretix/base/models/event.py:595 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:451 +#: pretix/base/exporters/orderlist.py:583 +#: pretix/base/exporters/waitinglist.py:117 pretix/base/models/event.py:595 #: pretix/base/pdf.py:235 pretix/control/forms/filter.py:1279 #: pretix/control/forms/filter.py:1724 #: pretix/control/templates/pretixcontrol/events/index.html:68 @@ -1014,22 +1015,22 @@ msgid "Event name" msgstr "" #: pretix/base/datasync/sourcefields.py:446 -#: pretix/base/exporters/invoices.py:326 +#: pretix/base/exporters/invoices.py:328 msgid "Event start date" msgstr "" #: pretix/base/datasync/sourcefields.py:455 -#: pretix/base/exporters/invoices.py:350 pretix/base/pdf.py:289 +#: pretix/base/exporters/invoices.py:352 pretix/base/pdf.py:289 msgid "Event end date" msgstr "" #: pretix/base/datasync/sourcefields.py:464 -#: pretix/base/exporters/waitinglist.py:123 +#: pretix/base/exporters/waitinglist.py:124 #: pretix/base/modelimport_vouchers.py:39 pretix/base/models/vouchers.py:193 #: pretix/control/templates/pretixcontrol/vouchers/index.html:18 #: pretix/control/templates/pretixcontrol/vouchers/index.html:114 #: pretix/control/views/vouchers.py:119 pretix/control/views/waitinglist.py:314 -#: pretix/plugins/checkinlists/exporters.py:520 +#: pretix/plugins/checkinlists/exporters.py:521 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:74 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:76 #: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:12 @@ -1046,7 +1047,7 @@ msgid "Ticket price" msgstr "" #: pretix/base/datasync/sourcefields.py:491 pretix/base/notifications.py:204 -#: pretix/control/forms/filter.py:216 pretix/control/forms/modelimport.py:85 +#: pretix/control/forms/filter.py:216 pretix/control/forms/modelimport.py:90 msgid "Order status" msgstr "" @@ -1063,8 +1064,8 @@ msgid "Payment date and time" msgstr "" #: pretix/base/datasync/sourcefields.py:527 -#: pretix/base/exporters/orderlist.py:271 -#: pretix/base/exporters/orderlist.py:666 pretix/base/modelimport_orders.py:508 +#: pretix/base/exporters/orderlist.py:272 +#: pretix/base/exporters/orderlist.py:667 pretix/base/modelimport_orders.py:508 #: pretix/control/templates/pretixcontrol/order/index.html:193 #: pretix/control/templates/pretixcontrol/pdf/index.html:249 msgid "Order locale" @@ -1075,7 +1076,7 @@ msgid "Order position ID" msgstr "" #: pretix/base/datasync/sourcefields.py:545 -#: pretix/base/exporters/orderlist.py:291 +#: pretix/base/exporters/orderlist.py:292 msgid "Order link" msgstr "" @@ -1094,21 +1095,21 @@ msgid "Question: {name}" msgstr "" #: pretix/base/datasync/sourcefields.py:604 -#: pretix/base/datasync/sourcefields.py:614 pretix/base/settings.py:3559 -#: pretix/base/settings.py:3572 pretix/base/settings.py:3588 -#: pretix/base/settings.py:3638 pretix/base/settings.py:3651 -#: pretix/base/settings.py:3665 pretix/base/settings.py:3718 -#: pretix/base/settings.py:3739 pretix/base/settings.py:3761 +#: pretix/base/datasync/sourcefields.py:614 pretix/base/settings.py:3588 +#: pretix/base/settings.py:3601 pretix/base/settings.py:3617 +#: pretix/base/settings.py:3667 pretix/base/settings.py:3680 +#: pretix/base/settings.py:3694 pretix/base/settings.py:3747 +#: pretix/base/settings.py:3768 pretix/base/settings.py:3790 msgid "Given name" msgstr "" #: pretix/base/datasync/sourcefields.py:628 -#: pretix/base/datasync/sourcefields.py:638 pretix/base/settings.py:3560 -#: pretix/base/settings.py:3573 pretix/base/settings.py:3589 -#: pretix/base/settings.py:3605 pretix/base/settings.py:3622 -#: pretix/base/settings.py:3637 pretix/base/settings.py:3652 -#: pretix/base/settings.py:3666 pretix/base/settings.py:3719 -#: pretix/base/settings.py:3740 pretix/base/settings.py:3762 +#: pretix/base/datasync/sourcefields.py:638 pretix/base/settings.py:3589 +#: pretix/base/settings.py:3602 pretix/base/settings.py:3618 +#: pretix/base/settings.py:3634 pretix/base/settings.py:3651 +#: pretix/base/settings.py:3666 pretix/base/settings.py:3681 +#: pretix/base/settings.py:3695 pretix/base/settings.py:3748 +#: pretix/base/settings.py:3769 pretix/base/settings.py:3791 msgid "Family name" msgstr "" @@ -1130,27 +1131,27 @@ msgstr "" msgid "Simple with logo" msgstr "" -#: pretix/base/exporter.py:187 pretix/base/exporter.py:320 +#: pretix/base/exporter.py:199 pretix/base/exporter.py:332 msgid "Export format" msgstr "" -#: pretix/base/exporter.py:189 +#: pretix/base/exporter.py:201 msgid "Excel (.xlsx)" msgstr "" -#: pretix/base/exporter.py:190 pretix/base/exporter.py:312 +#: pretix/base/exporter.py:202 pretix/base/exporter.py:324 msgid "CSV (with commas)" msgstr "" -#: pretix/base/exporter.py:191 pretix/base/exporter.py:313 +#: pretix/base/exporter.py:203 pretix/base/exporter.py:325 msgid "CSV (Excel-style)" msgstr "" -#: pretix/base/exporter.py:192 pretix/base/exporter.py:314 +#: pretix/base/exporter.py:204 pretix/base/exporter.py:326 msgid "CSV (with semicolons)" msgstr "" -#: pretix/base/exporter.py:308 +#: pretix/base/exporter.py:320 msgid "Combined Excel (.xlsx)" msgstr "" @@ -1160,9 +1161,9 @@ msgstr "" #: pretix/base/exporters/answers.py:55 pretix/base/exporters/json.py:52 #: pretix/base/exporters/mail.py:53 pretix/base/exporters/orderlist.py:88 -#: pretix/base/exporters/orderlist.py:841 -#: pretix/base/exporters/orderlist.py:1020 -#: pretix/base/exporters/orderlist.py:1259 +#: pretix/base/exporters/orderlist.py:842 +#: pretix/base/exporters/orderlist.py:1022 +#: pretix/base/exporters/orderlist.py:1263 #: pretix/plugins/reports/exporters.py:489 #: pretix/plugins/reports/exporters.py:662 msgctxt "export_category" @@ -1175,12 +1176,12 @@ msgid "" "customers while creating an order." msgstr "" -#: pretix/base/exporters/answers.py:76 pretix/base/exporters/orderlist.py:592 -#: pretix/base/exporters/orderlist.py:916 -#: pretix/base/exporters/orderlist.py:1156 pretix/base/models/checkin.py:58 +#: pretix/base/exporters/answers.py:76 pretix/base/exporters/orderlist.py:593 +#: pretix/base/exporters/orderlist.py:918 +#: pretix/base/exporters/orderlist.py:1159 pretix/base/models/checkin.py:58 #: pretix/base/models/items.py:2067 pretix/base/models/orders.py:1485 -#: pretix/base/models/orders.py:3010 pretix/base/models/vouchers.py:190 -#: pretix/base/models/waitinglist.py:61 pretix/control/forms/event.py:1619 +#: pretix/base/models/orders.py:3024 pretix/base/models/vouchers.py:190 +#: pretix/base/models/waitinglist.py:61 pretix/control/forms/event.py:1620 #: pretix/control/forms/filter.py:441 pretix/control/forms/filter.py:1928 #: pretix/control/forms/filter.py:2150 pretix/control/forms/filter.py:2265 #: pretix/control/forms/filter.py:2347 pretix/control/forms/filter.py:2564 @@ -1195,8 +1196,8 @@ msgstr "" #: pretix/control/templates/pretixcontrol/vouchers/index.html:140 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:167 #: pretix/control/views/waitinglist.py:318 -#: pretix/plugins/checkinlists/exporters.py:512 -#: pretix/plugins/checkinlists/exporters.py:701 +#: pretix/plugins/checkinlists/exporters.py:513 +#: pretix/plugins/checkinlists/exporters.py:703 #: pretix/plugins/sendmail/forms.py:137 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:32 #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:48 @@ -1207,7 +1208,7 @@ msgid "Date" msgstr "" #: pretix/base/exporters/answers.py:79 pretix/base/exporters/answers.py:88 -#: pretix/control/forms/checkin.py:83 pretix/control/forms/event.py:1620 +#: pretix/control/forms/checkin.py:83 pretix/control/forms/event.py:1621 #: pretix/control/forms/filter.py:444 pretix/control/forms/filter.py:471 #: pretix/control/forms/filter.py:1931 pretix/control/forms/filter.py:1964 #: pretix/control/forms/filter.py:2153 pretix/control/forms/filter.py:2173 @@ -1238,8 +1239,8 @@ msgstr "" msgid "Download a spreadsheet of all currently registered customer accounts." msgstr "" -#: pretix/base/exporters/customers.py:64 pretix/base/models/customers.py:82 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:29 +#: pretix/base/exporters/customers.py:64 pretix/base/models/customers.py:89 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:30 #: pretix/control/templates/pretixcontrol/organizers/customers.html:54 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:37 #: pretix/presale/templates/pretixpresale/organizers/customer_base.html:37 @@ -1247,29 +1248,29 @@ msgid "Customer ID" msgstr "" #: pretix/base/exporters/customers.py:65 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:32 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:33 msgid "SSO provider" msgstr "" -#: pretix/base/exporters/customers.py:66 pretix/base/models/customers.py:108 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:36 +#: pretix/base/exporters/customers.py:66 pretix/base/models/customers.py:115 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:37 #: pretix/control/templates/pretixcontrol/organizers/customers.html:65 #: pretix/control/templates/pretixcontrol/users/form.html:49 msgid "External identifier" msgstr "" -#: pretix/base/exporters/customers.py:68 pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:454 -#: pretix/base/exporters/orderlist.py:587 -#: pretix/base/exporters/waitinglist.py:110 -#: pretix/base/modelimport_orders.py:87 pretix/base/models/customers.py:95 -#: pretix/base/models/customers.py:396 pretix/base/models/items.py:1659 +#: pretix/base/exporters/customers.py:68 pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:455 +#: pretix/base/exporters/orderlist.py:588 +#: pretix/base/exporters/waitinglist.py:111 +#: pretix/base/modelimport_orders.py:87 pretix/base/models/customers.py:102 +#: pretix/base/models/customers.py:416 pretix/base/models/items.py:1659 #: pretix/base/models/orders.py:250 pretix/base/models/waitinglist.py:80 #: pretix/base/pdf.py:331 #: pretix/control/templates/pretixcontrol/order/index.html:257 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:163 #: pretix/control/views/waitinglist.py:314 -#: pretix/plugins/checkinlists/exporters.py:509 +#: pretix/plugins/checkinlists/exporters.py:510 #: pretix/presale/checkoutflow.py:1548 pretix/presale/forms/checkout.py:84 #: pretix/presale/forms/waitinglist.py:80 #: pretix/presale/templates/pretixpresale/event/order.html:304 @@ -1277,32 +1278,32 @@ msgid "Phone number" msgstr "" #: pretix/base/exporters/customers.py:69 pretix/base/models/auth.py:246 -#: pretix/base/models/customers.py:97 pretix/base/models/orders.py:3281 -#: pretix/base/settings.py:3692 pretix/base/settings.py:3704 +#: pretix/base/models/customers.py:104 pretix/base/models/orders.py:3295 +#: pretix/base/settings.py:3721 pretix/base/settings.py:3733 #: pretix/control/templates/pretixcontrol/users/index.html:47 msgid "Full name" msgstr "" -#: pretix/base/exporters/customers.py:74 pretix/base/exporters/invoices.py:206 -#: pretix/base/exporters/invoices.py:214 pretix/base/exporters/invoices.py:332 -#: pretix/base/exporters/invoices.py:340 pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/waitinglist.py:108 pretix/base/forms/questions.py:1244 +#: pretix/base/exporters/customers.py:74 pretix/base/exporters/invoices.py:208 +#: pretix/base/exporters/invoices.py:216 pretix/base/exporters/invoices.py:334 +#: pretix/base/exporters/invoices.py:342 pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/waitinglist.py:109 pretix/base/forms/questions.py:1248 #: pretix/base/models/devices.py:65 pretix/base/models/devices.py:127 -#: pretix/base/models/event.py:1524 pretix/base/models/event.py:1766 +#: pretix/base/models/event.py:1524 pretix/base/models/event.py:1762 #: pretix/base/models/items.py:2071 pretix/base/models/items.py:2244 #: pretix/base/models/memberships.py:41 pretix/base/models/organizer.py:77 #: pretix/base/models/organizer.py:601 pretix/base/models/seating.py:85 -#: pretix/base/models/waitinglist.py:69 pretix/base/settings.py:3317 -#: pretix/base/settings.py:3327 pretix/base/settings.py:3681 +#: pretix/base/models/waitinglist.py:69 pretix/base/settings.py:3346 +#: pretix/base/settings.py:3356 pretix/base/settings.py:3710 #: pretix/control/forms/filter.py:656 pretix/control/forms/item.py:446 -#: pretix/control/forms/organizer.py:918 +#: pretix/control/forms/organizer.py:950 #: pretix/control/templates/pretixcontrol/checkin/index.html:109 #: pretix/control/templates/pretixcontrol/checkin/lists.html:99 #: pretix/control/templates/pretixcontrol/event/tax_index.html:26 #: pretix/control/templates/pretixcontrol/oauth/app_list.html:12 #: pretix/control/templates/pretixcontrol/oauth/authorized.html:17 #: pretix/control/templates/pretixcontrol/order/index.html:999 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:58 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:59 #: pretix/control/templates/pretixcontrol/organizers/customers.html:62 #: pretix/control/templates/pretixcontrol/organizers/devices.html:77 #: pretix/control/templates/pretixcontrol/organizers/membershiptypes.html:26 @@ -1314,8 +1315,8 @@ msgstr "" #: pretix/control/views/waitinglist.py:314 pretix/plugins/badges/models.py:53 #: pretix/plugins/badges/templates/pretixplugins/badges/index.html:34 #: pretix/plugins/checkinlists/exporters.py:376 -#: pretix/plugins/checkinlists/exporters.py:761 -#: pretix/plugins/reports/exporters.py:896 +#: pretix/plugins/checkinlists/exporters.py:764 +#: pretix/plugins/reports/exporters.py:897 #: pretix/plugins/ticketoutputpdf/models.py:333 #: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:32 #: pretix/presale/forms/customer.py:179 pretix/presale/forms/customer.py:483 @@ -1327,43 +1328,43 @@ msgstr "" msgid "Name" msgstr "" -#: pretix/base/exporters/customers.py:77 pretix/base/models/customers.py:99 +#: pretix/base/exporters/customers.py:77 pretix/base/models/customers.py:106 msgid "Account active" msgstr "" -#: pretix/base/exporters/customers.py:78 pretix/base/models/customers.py:100 +#: pretix/base/exporters/customers.py:78 pretix/base/models/customers.py:107 msgid "Verified email address" msgstr "" -#: pretix/base/exporters/customers.py:79 pretix/base/models/customers.py:101 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:68 +#: pretix/base/exporters/customers.py:79 pretix/base/models/customers.py:108 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:69 msgid "Last login" msgstr "" -#: pretix/base/exporters/customers.py:80 pretix/base/models/customers.py:102 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:66 +#: pretix/base/exporters/customers.py:80 pretix/base/models/customers.py:109 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:67 msgid "Registration date" msgstr "" -#: pretix/base/exporters/customers.py:81 pretix/base/exporters/invoices.py:205 -#: pretix/base/exporters/waitinglist.py:120 pretix/base/models/auth.py:258 -#: pretix/base/models/customers.py:106 pretix/base/models/exports.py:54 -#: pretix/control/forms/event.py:1625 pretix/control/forms/exports.py:49 +#: pretix/base/exporters/customers.py:81 pretix/base/exporters/invoices.py:207 +#: pretix/base/exporters/waitinglist.py:121 pretix/base/models/auth.py:258 +#: pretix/base/models/customers.py:113 pretix/base/models/exports.py:54 +#: pretix/control/forms/event.py:1626 pretix/control/forms/exports.py:49 #: pretix/control/forms/exports.py:88 pretix/control/views/waitinglist.py:315 msgid "Language" msgstr "" #: pretix/base/exporters/customers.py:82 -#: pretix/base/exporters/reusablemedia.py:53 -#: pretix/base/models/customers.py:109 pretix/base/models/media.py:110 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:72 +#: pretix/base/exporters/reusablemedia.py:54 +#: pretix/base/models/customers.py:116 pretix/base/models/media.py:110 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:73 #: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:68 msgid "Notes" msgstr "" #: pretix/base/exporters/customers.py:100 #: pretix/base/exporters/customers.py:101 pretix/base/exporters/events.py:83 -#: pretix/base/exporters/invoices.py:305 pretix/base/exporters/items.py:150 +#: pretix/base/exporters/invoices.py:307 pretix/base/exporters/items.py:150 #: pretix/base/exporters/items.py:153 pretix/base/exporters/items.py:155 #: pretix/base/exporters/items.py:156 pretix/base/exporters/items.py:157 #: pretix/base/exporters/items.py:158 pretix/base/exporters/items.py:163 @@ -1378,51 +1379,51 @@ msgstr "" #: pretix/base/exporters/items.py:213 pretix/base/exporters/items.py:214 #: pretix/base/exporters/items.py:215 pretix/base/exporters/items.py:218 #: pretix/base/exporters/items.py:221 pretix/base/exporters/items.py:222 -#: pretix/base/exporters/items.py:223 pretix/base/exporters/orderlist.py:395 -#: pretix/base/exporters/orderlist.py:400 -#: pretix/base/exporters/orderlist.py:752 -#: pretix/base/exporters/orderlist.py:775 -#: pretix/base/exporters/orderlist.py:807 -#: pretix/base/exporters/orderlist.py:1399 -#: pretix/base/exporters/reusablemedia.py:63 pretix/base/modelimport.py:194 +#: pretix/base/exporters/items.py:223 pretix/base/exporters/orderlist.py:396 +#: pretix/base/exporters/orderlist.py:401 +#: pretix/base/exporters/orderlist.py:753 +#: pretix/base/exporters/orderlist.py:776 +#: pretix/base/exporters/orderlist.py:808 +#: pretix/base/exporters/orderlist.py:1404 +#: pretix/base/exporters/reusablemedia.py:64 pretix/base/modelimport.py:194 #: pretix/base/modelimport.py:201 pretix/base/models/orders.py:1401 -#: pretix/base/models/orders.py:3427 pretix/control/forms/filter.py:177 +#: pretix/base/models/orders.py:3441 pretix/control/forms/filter.py:177 #: pretix/control/forms/filter.py:551 pretix/control/forms/filter.py:738 #: pretix/control/forms/item.py:615 pretix/control/forms/subevents.py:119 #: pretix/control/views/item.py:733 pretix/control/views/vouchers.py:139 #: pretix/control/views/vouchers.py:140 -#: pretix/plugins/checkinlists/exporters.py:601 -#: pretix/plugins/checkinlists/exporters.py:604 -#: pretix/plugins/checkinlists/exporters.py:631 -#: pretix/plugins/checkinlists/exporters.py:647 -#: pretix/plugins/checkinlists/exporters.py:716 -#: pretix/plugins/checkinlists/exporters.py:823 -#: pretix/plugins/checkinlists/exporters.py:824 -#: pretix/plugins/checkinlists/exporters.py:825 +#: pretix/plugins/checkinlists/exporters.py:602 +#: pretix/plugins/checkinlists/exporters.py:605 +#: pretix/plugins/checkinlists/exporters.py:632 +#: pretix/plugins/checkinlists/exporters.py:648 +#: pretix/plugins/checkinlists/exporters.py:718 +#: pretix/plugins/checkinlists/exporters.py:826 +#: pretix/plugins/checkinlists/exporters.py:827 +#: pretix/plugins/checkinlists/exporters.py:828 msgid "Yes" msgstr "" #: pretix/base/exporters/customers.py:100 #: pretix/base/exporters/customers.py:101 pretix/base/exporters/events.py:83 -#: pretix/base/exporters/invoices.py:305 pretix/base/exporters/orderlist.py:395 -#: pretix/base/exporters/orderlist.py:400 -#: pretix/base/exporters/orderlist.py:775 -#: pretix/base/exporters/orderlist.py:807 -#: pretix/base/exporters/orderlist.py:1399 -#: pretix/base/exporters/reusablemedia.py:63 pretix/base/modelimport.py:193 +#: pretix/base/exporters/invoices.py:307 pretix/base/exporters/orderlist.py:396 +#: pretix/base/exporters/orderlist.py:401 +#: pretix/base/exporters/orderlist.py:776 +#: pretix/base/exporters/orderlist.py:808 +#: pretix/base/exporters/orderlist.py:1404 +#: pretix/base/exporters/reusablemedia.py:64 pretix/base/modelimport.py:193 #: pretix/base/modelimport.py:203 pretix/base/models/orders.py:1403 -#: pretix/base/models/orders.py:3429 pretix/control/forms/filter.py:177 +#: pretix/base/models/orders.py:3443 pretix/control/forms/filter.py:177 #: pretix/control/forms/filter.py:552 pretix/control/forms/filter.py:739 #: pretix/control/forms/item.py:616 pretix/control/forms/subevents.py:120 #: pretix/control/views/item.py:733 pretix/control/views/vouchers.py:139 #: pretix/control/views/vouchers.py:140 -#: pretix/plugins/checkinlists/exporters.py:601 -#: pretix/plugins/checkinlists/exporters.py:604 -#: pretix/plugins/checkinlists/exporters.py:631 -#: pretix/plugins/checkinlists/exporters.py:716 -#: pretix/plugins/checkinlists/exporters.py:823 -#: pretix/plugins/checkinlists/exporters.py:824 -#: pretix/plugins/checkinlists/exporters.py:825 +#: pretix/plugins/checkinlists/exporters.py:602 +#: pretix/plugins/checkinlists/exporters.py:605 +#: pretix/plugins/checkinlists/exporters.py:632 +#: pretix/plugins/checkinlists/exporters.py:718 +#: pretix/plugins/checkinlists/exporters.py:826 +#: pretix/plugins/checkinlists/exporters.py:827 +#: pretix/plugins/checkinlists/exporters.py:828 msgid "No" msgstr "" @@ -1443,14 +1444,14 @@ msgid "Event ticket {event}-{code}" msgstr "" #: pretix/base/exporters/dekodi.py:234 pretix/base/exporters/invoices.py:74 -#: pretix/base/exporters/orderlist.py:129 -#: pretix/base/exporters/orderlist.py:855 -#: pretix/base/exporters/orderlist.py:1209 +#: pretix/base/exporters/orderlist.py:130 +#: pretix/base/exporters/orderlist.py:857 +#: pretix/base/exporters/orderlist.py:1213 #: pretix/plugins/checkinlists/exporters.py:89 -#: pretix/plugins/checkinlists/exporters.py:865 +#: pretix/plugins/checkinlists/exporters.py:868 #: pretix/plugins/reports/accountingreport.py:75 #: pretix/plugins/reports/exporters.py:472 -#: pretix/plugins/reports/exporters.py:709 +#: pretix/plugins/reports/exporters.py:710 #: pretix/plugins/ticketoutputpdf/exporters.py:85 msgid "Date range" msgstr "" @@ -1496,21 +1497,21 @@ msgid "Timezone" msgstr "" #: pretix/base/exporters/events.py:62 pretix/base/models/event.py:618 -#: pretix/base/models/event.py:1526 pretix/base/settings.py:3315 -#: pretix/base/settings.py:3325 pretix/control/forms/subevents.py:483 +#: pretix/base/models/event.py:1526 pretix/base/settings.py:3344 +#: pretix/base/settings.py:3354 pretix/control/forms/subevents.py:484 #: pretix/control/templates/pretixcontrol/subevents/bulk.html:268 msgid "Event start time" msgstr "" #: pretix/base/exporters/events.py:63 pretix/base/models/event.py:620 #: pretix/base/models/event.py:1528 pretix/base/pdf.py:297 -#: pretix/control/forms/subevents.py:488 +#: pretix/control/forms/subevents.py:489 #: pretix/control/templates/pretixcontrol/subevents/bulk.html:270 msgid "Event end time" msgstr "" #: pretix/base/exporters/events.py:64 pretix/base/models/event.py:622 -#: pretix/base/models/event.py:1530 pretix/control/forms/subevents.py:493 +#: pretix/base/models/event.py:1530 pretix/control/forms/subevents.py:494 #: pretix/control/templates/pretixcontrol/subevents/bulk.html:274 msgid "Admission time" msgstr "" @@ -1525,8 +1526,9 @@ msgstr "" msgid "End of presale" msgstr "" -#: pretix/base/exporters/events.py:67 pretix/base/exporters/invoices.py:351 +#: pretix/base/exporters/events.py:67 pretix/base/exporters/invoices.py:353 #: pretix/base/models/event.py:640 pretix/base/models/event.py:1545 +#: pretix/base/templates/pretixbase/email/order_details.html:83 msgid "Location" msgstr "" @@ -1552,7 +1554,7 @@ msgid "Internal comment" msgstr "" #: pretix/base/exporters/invoices.py:82 pretix/base/models/orders.py:1753 -#: pretix/base/models/orders.py:2173 pretix/control/forms/filter.py:209 +#: pretix/base/models/orders.py:2187 pretix/control/forms/filter.py:209 #: pretix/control/forms/filter.py:1055 pretix/control/forms/filter.py:2305 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:9 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:14 @@ -1587,18 +1589,18 @@ msgstr "" msgid "Download all invoices created by the system as a ZIP file of PDF files." msgstr "" -#: pretix/base/exporters/invoices.py:178 +#: pretix/base/exporters/invoices.py:179 msgid "Invoice data" msgstr "" -#: pretix/base/exporters/invoices.py:179 +#: pretix/base/exporters/invoices.py:180 msgid "" "Download a spreadsheet with the data of all invoices created by the system. " "The spreadsheet includes two sheets, one with a line for every invoice, and " "one with a line for every position of every invoice." msgstr "" -#: pretix/base/exporters/invoices.py:191 pretix/base/shredder.py:579 +#: pretix/base/exporters/invoices.py:193 pretix/base/shredder.py:579 #: pretix/control/templates/pretixcontrol/order/index.html:268 #: pretix/control/templates/pretixcontrol/order/index.html:381 #: pretix/control/templates/pretixcontrol/organizers/edit.html:312 @@ -1607,244 +1609,245 @@ msgstr "" msgid "Invoices" msgstr "" -#: pretix/base/exporters/invoices.py:192 +#: pretix/base/exporters/invoices.py:194 msgid "Invoice lines" msgstr "" -#: pretix/base/exporters/invoices.py:199 pretix/base/exporters/invoices.py:318 +#: pretix/base/exporters/invoices.py:201 pretix/base/exporters/invoices.py:320 msgid "Invoice number" msgstr "" -#: pretix/base/exporters/invoices.py:200 pretix/base/exporters/invoices.py:327 -#: pretix/base/exporters/orderlist.py:1232 -#: pretix/base/exporters/orderlist.py:1277 -#: pretix/base/exporters/waitinglist.py:107 pretix/base/forms/widgets.py:213 +#: pretix/base/exporters/invoices.py:202 pretix/base/exporters/invoices.py:329 +#: pretix/base/exporters/orderlist.py:1236 +#: pretix/base/exporters/orderlist.py:1282 +#: pretix/base/exporters/waitinglist.py:108 pretix/base/forms/widgets.py:213 #: pretix/base/models/items.py:1655 pretix/base/models/orders.py:259 -#: pretix/base/models/orders.py:2985 pretix/base/models/orders.py:3105 +#: pretix/base/models/orders.py:2999 pretix/base/models/orders.py:3119 +#: pretix/base/templates/pretixbase/email/order_details.html:70 #: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html:25 #: pretix/control/templates/pretixcontrol/order/transactions.html:19 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:72 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:80 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:17 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:11 -#: pretix/plugins/checkinlists/exporters.py:753 +#: pretix/plugins/checkinlists/exporters.py:756 #: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:6 #: pretix/presale/templates/pretixpresale/organizers/calendar_day.html:58 msgid "Date" msgstr "" -#: pretix/base/exporters/invoices.py:202 pretix/base/exporters/invoices.py:329 +#: pretix/base/exporters/invoices.py:204 pretix/base/exporters/invoices.py:331 #: pretix/base/forms/auth.py:160 pretix/base/modelimport_orders.py:59 -#: pretix/base/models/customers.py:395 pretix/base/models/waitinglist.py:76 +#: pretix/base/models/customers.py:415 pretix/base/models/waitinglist.py:76 #: pretix/control/forms/filter.py:584 #: pretix/control/templates/pretixcontrol/users/index.html:42 #: pretix/control/views/waitinglist.py:314 msgid "Email address" msgstr "" -#: pretix/base/exporters/invoices.py:203 pretix/base/exporters/invoices.py:330 +#: pretix/base/exporters/invoices.py:205 pretix/base/exporters/invoices.py:332 msgid "Invoice type" msgstr "" -#: pretix/base/exporters/invoices.py:204 pretix/base/exporters/invoices.py:331 +#: pretix/base/exporters/invoices.py:206 pretix/base/exporters/invoices.py:333 msgid "Cancellation of" msgstr "" -#: pretix/base/exporters/invoices.py:206 pretix/base/exporters/invoices.py:207 #: pretix/base/exporters/invoices.py:208 pretix/base/exporters/invoices.py:209 #: pretix/base/exporters/invoices.py:210 pretix/base/exporters/invoices.py:211 -#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:332 -#: pretix/base/exporters/invoices.py:333 pretix/base/exporters/invoices.py:334 +#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:213 +#: pretix/base/exporters/invoices.py:214 pretix/base/exporters/invoices.py:334 #: pretix/base/exporters/invoices.py:335 pretix/base/exporters/invoices.py:336 #: pretix/base/exporters/invoices.py:337 pretix/base/exporters/invoices.py:338 +#: pretix/base/exporters/invoices.py:339 pretix/base/exporters/invoices.py:340 msgid "Invoice sender:" msgstr "" -#: pretix/base/exporters/invoices.py:207 pretix/base/exporters/invoices.py:333 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:613 pretix/base/forms/questions.py:704 +#: pretix/base/exporters/invoices.py:209 pretix/base/exporters/invoices.py:335 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:614 pretix/base/forms/questions.py:706 #: pretix/base/modelimport_orders.py:232 pretix/base/modelimport_orders.py:386 -#: pretix/base/models/customers.py:311 pretix/base/models/orders.py:1539 -#: pretix/base/models/orders.py:3283 pretix/control/forms/filter.py:660 +#: pretix/base/models/customers.py:331 pretix/base/models/orders.py:1539 +#: pretix/base/models/orders.py:3297 pretix/control/forms/filter.py:660 #: pretix/control/forms/filter.py:691 #: pretix/control/templates/pretixcontrol/order/index.html:1001 -#: pretix/plugins/checkinlists/exporters.py:535 -#: pretix/plugins/reports/exporters.py:851 +#: pretix/plugins/checkinlists/exporters.py:536 +#: pretix/plugins/reports/exporters.py:852 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:88 #: pretix/presale/templates/pretixpresale/event/order.html:316 msgid "Address" msgstr "" -#: pretix/base/exporters/invoices.py:208 pretix/base/exporters/invoices.py:216 -#: pretix/base/exporters/invoices.py:334 pretix/base/exporters/invoices.py:342 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:614 pretix/base/forms/questions.py:715 +#: pretix/base/exporters/invoices.py:210 pretix/base/exporters/invoices.py:218 +#: pretix/base/exporters/invoices.py:336 pretix/base/exporters/invoices.py:344 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:615 pretix/base/forms/questions.py:717 #: pretix/base/modelimport_orders.py:244 pretix/base/modelimport_orders.py:397 -#: pretix/base/models/customers.py:312 pretix/base/models/orders.py:1540 -#: pretix/base/models/orders.py:3284 pretix/base/settings.py:1162 +#: pretix/base/models/customers.py:332 pretix/base/models/orders.py:1540 +#: pretix/base/models/orders.py:3298 pretix/base/settings.py:1191 #: pretix/control/forms/filter.py:664 pretix/control/forms/filter.py:695 #: pretix/control/views/item.py:488 -#: pretix/plugins/checkinlists/exporters.py:536 -#: pretix/plugins/reports/exporters.py:852 +#: pretix/plugins/checkinlists/exporters.py:537 +#: pretix/plugins/reports/exporters.py:853 msgid "ZIP code" msgstr "" -#: pretix/base/exporters/invoices.py:209 pretix/base/exporters/invoices.py:217 -#: pretix/base/exporters/invoices.py:335 pretix/base/exporters/invoices.py:343 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:615 pretix/base/forms/questions.py:723 +#: pretix/base/exporters/invoices.py:211 pretix/base/exporters/invoices.py:219 +#: pretix/base/exporters/invoices.py:337 pretix/base/exporters/invoices.py:345 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:616 pretix/base/forms/questions.py:725 #: pretix/base/modelimport_orders.py:256 pretix/base/modelimport_orders.py:408 -#: pretix/base/models/customers.py:313 pretix/base/models/orders.py:1541 -#: pretix/base/models/orders.py:3285 pretix/base/settings.py:1174 +#: pretix/base/models/customers.py:333 pretix/base/models/orders.py:1541 +#: pretix/base/models/orders.py:3299 pretix/base/settings.py:1203 #: pretix/control/forms/filter.py:669 pretix/control/forms/filter.py:700 #: pretix/control/views/item.py:498 -#: pretix/plugins/checkinlists/exporters.py:537 -#: pretix/plugins/reports/exporters.py:853 -msgid "City" -msgstr "" - -#: pretix/base/exporters/invoices.py:210 pretix/base/exporters/invoices.py:218 -#: pretix/base/exporters/invoices.py:336 pretix/base/exporters/invoices.py:344 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:616 pretix/base/forms/questions.py:735 -#: pretix/base/modelimport_orders.py:274 pretix/base/modelimport_orders.py:425 -#: pretix/base/models/customers.py:314 pretix/base/models/orders.py:1542 -#: pretix/base/models/orders.py:3286 pretix/base/models/orders.py:3287 -#: pretix/base/settings.py:1183 pretix/control/forms/filter.py:674 -#: pretix/control/forms/filter.py:705 -#: pretix/control/templates/pretixcontrol/order/index.html:1005 -#: pretix/control/views/item.py:508 #: pretix/plugins/checkinlists/exporters.py:538 -#: pretix/plugins/reports/exporters.py:803 -#: pretix/plugins/reports/exporters.py:848 -#: pretix/plugins/reports/exporters.py:897 -#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:92 -#: pretix/presale/templates/pretixpresale/event/order.html:320 -msgid "Country" -msgstr "" - -#: pretix/base/exporters/invoices.py:211 pretix/base/exporters/invoices.py:337 -msgid "Tax ID" +#: pretix/plugins/reports/exporters.py:854 +msgid "City" msgstr "" #: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:220 #: pretix/base/exporters/invoices.py:338 pretix/base/exporters/invoices.py:346 #: pretix/base/exporters/orderlist.py:271 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:662 pretix/base/modelimport_orders.py:321 -#: pretix/base/models/orders.py:3290 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:617 pretix/base/forms/questions.py:737 +#: pretix/base/modelimport_orders.py:274 pretix/base/modelimport_orders.py:425 +#: pretix/base/models/customers.py:334 pretix/base/models/orders.py:1542 +#: pretix/base/models/orders.py:3300 pretix/base/models/orders.py:3301 +#: pretix/base/settings.py:1212 pretix/control/forms/filter.py:674 +#: pretix/control/forms/filter.py:705 +#: pretix/control/templates/pretixcontrol/order/index.html:1005 +#: pretix/control/views/item.py:508 +#: pretix/plugins/checkinlists/exporters.py:539 +#: pretix/plugins/reports/exporters.py:804 +#: pretix/plugins/reports/exporters.py:849 +#: pretix/plugins/reports/exporters.py:898 +#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:92 +#: pretix/presale/templates/pretixpresale/event/order.html:320 +msgid "Country" +msgstr "" + +#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:339 +msgid "Tax ID" +msgstr "" + +#: pretix/base/exporters/invoices.py:214 pretix/base/exporters/invoices.py:222 +#: pretix/base/exporters/invoices.py:340 pretix/base/exporters/invoices.py:348 +#: pretix/base/exporters/orderlist.py:272 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:663 pretix/base/modelimport_orders.py:321 +#: pretix/base/models/orders.py:3304 #: pretix/control/templates/pretixcontrol/order/index.html:1012 -#: pretix/plugins/reports/exporters.py:855 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:856 +#: pretix/plugins/reports/exporters.py:898 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:99 #: pretix/presale/templates/pretixpresale/event/order.html:327 msgid "VAT ID" msgstr "" -#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:214 #: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:216 #: pretix/base/exporters/invoices.py:217 pretix/base/exporters/invoices.py:218 #: pretix/base/exporters/invoices.py:219 pretix/base/exporters/invoices.py:220 #: pretix/base/exporters/invoices.py:221 pretix/base/exporters/invoices.py:222 -#: pretix/base/exporters/invoices.py:339 pretix/base/exporters/invoices.py:340 +#: pretix/base/exporters/invoices.py:223 pretix/base/exporters/invoices.py:224 #: pretix/base/exporters/invoices.py:341 pretix/base/exporters/invoices.py:342 #: pretix/base/exporters/invoices.py:343 pretix/base/exporters/invoices.py:344 #: pretix/base/exporters/invoices.py:345 pretix/base/exporters/invoices.py:346 #: pretix/base/exporters/invoices.py:347 pretix/base/exporters/invoices.py:348 +#: pretix/base/exporters/invoices.py:349 pretix/base/exporters/invoices.py:350 msgid "Invoice recipient:" msgstr "" -#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:339 -#: pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:463 -#: pretix/base/exporters/orderlist.py:612 -#: pretix/base/exporters/orderlist.py:652 pretix/base/forms/questions.py:696 +#: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:341 +#: pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:464 +#: pretix/base/exporters/orderlist.py:613 +#: pretix/base/exporters/orderlist.py:653 pretix/base/forms/questions.py:698 #: pretix/base/modelimport_orders.py:199 pretix/base/modelimport_orders.py:375 #: pretix/control/forms/filter.py:652 pretix/control/forms/filter.py:687 #: pretix/control/templates/pretixcontrol/order/index.html:997 #: pretix/control/views/item.py:466 -#: pretix/plugins/checkinlists/exporters.py:519 -#: pretix/plugins/reports/exporters.py:850 -#: pretix/plugins/reports/exporters.py:896 +#: pretix/plugins/checkinlists/exporters.py:520 +#: pretix/plugins/reports/exporters.py:851 +#: pretix/plugins/reports/exporters.py:897 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83 #: pretix/presale/templates/pretixpresale/event/order.html:308 msgid "Company" msgstr "" -#: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:341 +#: pretix/base/exporters/invoices.py:217 pretix/base/exporters/invoices.py:343 msgid "Street address" msgstr "" -#: pretix/base/exporters/invoices.py:219 pretix/base/exporters/invoices.py:345 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:617 pretix/base/forms/questions.py:760 -#: pretix/base/forms/questions.py:1194 pretix/base/modelimport_orders.py:295 -#: pretix/base/models/customers.py:315 pretix/base/models/orders.py:1543 -#: pretix/base/models/orders.py:3289 pretix/base/views/js_helpers.py:48 +#: pretix/base/exporters/invoices.py:221 pretix/base/exporters/invoices.py:347 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:618 pretix/base/forms/questions.py:762 +#: pretix/base/forms/questions.py:1198 pretix/base/modelimport_orders.py:295 +#: pretix/base/models/customers.py:335 pretix/base/models/orders.py:1543 +#: pretix/base/models/orders.py:3303 pretix/base/views/js_helpers.py:48 #: pretix/control/templates/pretixcontrol/order/index.html:1008 -#: pretix/plugins/checkinlists/exporters.py:539 -#: pretix/plugins/reports/exporters.py:854 +#: pretix/plugins/checkinlists/exporters.py:540 +#: pretix/plugins/reports/exporters.py:855 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:95 #: pretix/presale/templates/pretixpresale/event/order.html:323 msgctxt "address" msgid "State" msgstr "" -#: pretix/base/exporters/invoices.py:221 pretix/base/exporters/invoices.py:347 -#: pretix/base/models/orders.py:3299 pretix/base/models/orders.py:3355 +#: pretix/base/exporters/invoices.py:223 pretix/base/exporters/invoices.py:349 +#: pretix/base/models/orders.py:3313 pretix/base/models/orders.py:3369 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:103 msgid "Beneficiary" msgstr "" -#: pretix/base/exporters/invoices.py:222 pretix/base/exporters/invoices.py:348 -#: pretix/base/modelimport_orders.py:333 pretix/base/models/orders.py:3294 +#: pretix/base/exporters/invoices.py:224 pretix/base/exporters/invoices.py:350 +#: pretix/base/modelimport_orders.py:333 pretix/base/models/orders.py:3308 #: pretix/control/templates/pretixcontrol/order/index.html:1033 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111 msgid "Internal reference" msgstr "" -#: pretix/base/exporters/invoices.py:223 pretix/base/models/tax.py:162 -#: pretix/control/forms/event.py:1515 +#: pretix/base/exporters/invoices.py:225 pretix/base/models/tax.py:162 +#: pretix/control/forms/event.py:1516 msgid "Reverse charge" msgstr "" -#: pretix/base/exporters/invoices.py:224 +#: pretix/base/exporters/invoices.py:226 msgid "Shown foreign currency" msgstr "" -#: pretix/base/exporters/invoices.py:225 +#: pretix/base/exporters/invoices.py:227 msgid "Foreign currency rate" msgstr "" -#: pretix/base/exporters/invoices.py:226 +#: pretix/base/exporters/invoices.py:228 msgid "Total value (with taxes)" msgstr "" -#: pretix/base/exporters/invoices.py:227 +#: pretix/base/exporters/invoices.py:229 msgid "Total value (without taxes)" msgstr "" -#: pretix/base/exporters/invoices.py:228 +#: pretix/base/exporters/invoices.py:230 msgid "Payment matching IDs" msgstr "" -#: pretix/base/exporters/invoices.py:229 pretix/base/exporters/invoices.py:349 -#: pretix/base/exporters/orderlist.py:290 -#: pretix/base/exporters/orderlist.py:475 -#: pretix/base/exporters/orderlist.py:670 pretix/base/plugins.py:137 +#: pretix/base/exporters/invoices.py:231 pretix/base/exporters/invoices.py:351 +#: pretix/base/exporters/orderlist.py:291 +#: pretix/base/exporters/orderlist.py:476 +#: pretix/base/exporters/orderlist.py:671 pretix/base/plugins.py:139 #: pretix/control/templates/pretixcontrol/event/payment.html:11 msgid "Payment providers" msgstr "" -#: pretix/base/exporters/invoices.py:285 pretix/base/exporters/invoices.py:388 +#: pretix/base/exporters/invoices.py:287 pretix/base/exporters/invoices.py:390 msgid "Cancellation" msgstr "" -#: pretix/base/exporters/invoices.py:285 pretix/base/exporters/invoices.py:388 +#: pretix/base/exporters/invoices.py:287 pretix/base/exporters/invoices.py:390 #: pretix/control/templates/pretixcontrol/event/mail.html:120 #: pretix/control/templates/pretixcontrol/order/index.html:272 #: pretix/control/templates/pretixcontrol/order/mail_history.html:70 @@ -1852,44 +1855,44 @@ msgstr "" msgid "Invoice" msgstr "" -#: pretix/base/exporters/invoices.py:319 +#: pretix/base/exporters/invoices.py:321 msgid "Line number" msgstr "" -#: pretix/base/exporters/invoices.py:320 pretix/base/exporters/orderlist.py:458 +#: pretix/base/exporters/invoices.py:322 pretix/base/exporters/orderlist.py:459 #: pretix/base/models/items.py:492 pretix/base/models/items.py:1155 #: pretix/control/templates/pretixcontrol/pdf/placeholders.html:32 msgid "Description" msgstr "" -#: pretix/base/exporters/invoices.py:321 pretix/control/forms/orders.py:355 +#: pretix/base/exporters/invoices.py:323 pretix/control/forms/orders.py:355 msgid "Gross price" msgstr "" -#: pretix/base/exporters/invoices.py:322 +#: pretix/base/exporters/invoices.py:324 msgid "Net price" msgstr "" -#: pretix/base/exporters/invoices.py:323 pretix/base/exporters/orderlist.py:462 -#: pretix/base/exporters/orderlist.py:603 -#: pretix/base/exporters/orderlist.py:922 pretix/base/models/orders.py:2337 -#: pretix/base/models/orders.py:2509 pretix/base/models/orders.py:3031 +#: pretix/base/exporters/invoices.py:325 pretix/base/exporters/orderlist.py:463 +#: pretix/base/exporters/orderlist.py:604 +#: pretix/base/exporters/orderlist.py:924 pretix/base/models/orders.py:2351 +#: pretix/base/models/orders.py:2523 pretix/base/models/orders.py:3045 msgid "Tax value" msgstr "" -#: pretix/base/exporters/invoices.py:324 pretix/base/exporters/orderlist.py:460 -#: pretix/base/exporters/orderlist.py:601 -#: pretix/base/exporters/orderlist.py:919 pretix/base/models/orders.py:2324 -#: pretix/base/models/orders.py:2496 pretix/base/models/orders.py:3018 -#: pretix/base/models/orders.py:3118 pretix/base/models/tax.py:348 +#: pretix/base/exporters/invoices.py:326 pretix/base/exporters/orderlist.py:461 +#: pretix/base/exporters/orderlist.py:602 +#: pretix/base/exporters/orderlist.py:921 pretix/base/models/orders.py:2338 +#: pretix/base/models/orders.py:2510 pretix/base/models/orders.py:3032 +#: pretix/base/models/orders.py:3132 pretix/base/models/tax.py:348 #: pretix/control/templates/pretixcontrol/order/transactions.html:21 #: pretix/plugins/reports/accountingreport.py:316 -#: pretix/plugins/reports/exporters.py:804 -#: pretix/plugins/reports/exporters.py:849 +#: pretix/plugins/reports/exporters.py:805 +#: pretix/plugins/reports/exporters.py:850 msgid "Tax rate" msgstr "" -#: pretix/base/exporters/invoices.py:325 +#: pretix/base/exporters/invoices.py:327 msgid "Tax name" msgstr "" @@ -1897,7 +1900,7 @@ msgstr "" msgid "Product data" msgstr "" -#: pretix/base/exporters/items.py:50 pretix/base/exporters/orderlist.py:1146 +#: pretix/base/exporters/items.py:50 pretix/base/exporters/orderlist.py:1149 msgctxt "export_category" msgid "Product data" msgstr "" @@ -1906,9 +1909,9 @@ msgstr "" msgid "Download a spreadsheet with details about all products and variations." msgstr "" -#: pretix/base/exporters/items.py:58 pretix/base/exporters/orderlist.py:599 -#: pretix/base/exporters/orderlist.py:910 -#: pretix/base/exporters/waitinglist.py:114 +#: pretix/base/exporters/items.py:58 pretix/base/exporters/orderlist.py:600 +#: pretix/base/exporters/orderlist.py:912 +#: pretix/base/exporters/waitinglist.py:115 msgid "Variation ID" msgstr "" @@ -1930,16 +1933,16 @@ msgstr "" msgid "Item name" msgstr "" -#: pretix/base/exporters/items.py:68 pretix/base/exporters/orderlist.py:598 -#: pretix/base/exporters/orderlist.py:911 -#: pretix/base/exporters/waitinglist.py:113 pretix/base/models/items.py:1148 -#: pretix/base/models/orders.py:1495 pretix/base/models/orders.py:3003 -#: pretix/plugins/checkinlists/exporters.py:696 +#: pretix/base/exporters/items.py:68 pretix/base/exporters/orderlist.py:599 +#: pretix/base/exporters/orderlist.py:913 +#: pretix/base/exporters/waitinglist.py:114 pretix/base/models/items.py:1148 +#: pretix/base/models/orders.py:1495 pretix/base/models/orders.py:3017 +#: pretix/plugins/checkinlists/exporters.py:698 msgid "Variation" msgstr "" -#: pretix/base/exporters/items.py:71 pretix/base/exporters/reusablemedia.py:48 -#: pretix/base/models/customers.py:57 pretix/base/models/customers.py:403 +#: pretix/base/exporters/items.py:71 pretix/base/exporters/reusablemedia.py:49 +#: pretix/base/models/customers.py:64 pretix/base/models/customers.py:423 #: pretix/base/models/discount.py:60 pretix/base/models/event.py:1515 #: pretix/base/models/items.py:489 pretix/base/models/items.py:1152 #: pretix/base/models/media.py:77 pretix/base/settings.py:204 @@ -1954,7 +1957,7 @@ msgid "Active" msgstr "" #: pretix/base/exporters/items.py:72 pretix/base/models/discount.py:77 -#: pretix/control/forms/event.py:976 pretix/control/navigation.py:520 +#: pretix/control/forms/event.py:977 pretix/control/navigation.py:520 #: pretix/control/templates/pretixcontrol/organizers/channels.html:6 #: pretix/plugins/autocheckin/models.py:64 #: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:30 @@ -1990,9 +1993,9 @@ msgstr "" msgid "Generate tickets" msgstr "" -#: pretix/base/exporters/items.py:79 pretix/base/exporters/orderlist.py:1153 +#: pretix/base/exporters/items.py:79 pretix/base/exporters/orderlist.py:1156 #: pretix/base/exporters/waitinglist.py:41 pretix/base/shredder.py:367 -#: pretix/control/forms/event.py:1695 pretix/control/navigation.py:237 +#: pretix/control/forms/event.py:1696 pretix/control/navigation.py:237 #: pretix/control/templates/pretixcontrol/event/settings.html:363 #: pretix/control/templates/pretixcontrol/orders/cancel.html:62 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:6 @@ -2016,21 +2019,21 @@ msgstr "" #: pretix/base/exporters/items.py:80 pretix/base/models/discount.py:82 #: pretix/base/models/items.py:224 pretix/base/models/items.py:280 #: pretix/base/models/items.py:562 pretix/base/models/items.py:1205 -#: pretix/base/payment.py:392 pretix/control/forms/subevents.py:323 +#: pretix/base/payment.py:394 pretix/control/forms/subevents.py:323 #: pretix/control/forms/subevents.py:345 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:506 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:507 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:172 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:149 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:150 msgid "Available from" msgstr "" #: pretix/base/exporters/items.py:81 pretix/base/models/discount.py:87 #: pretix/base/models/items.py:229 pretix/base/models/items.py:285 #: pretix/base/models/items.py:572 pretix/base/models/items.py:1215 -#: pretix/base/payment.py:398 pretix/control/forms/subevents.py:328 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:511 +#: pretix/base/payment.py:400 pretix/control/forms/subevents.py:328 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:512 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:177 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:154 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:155 msgid "Available until" msgstr "" @@ -2064,17 +2067,17 @@ msgstr "" msgid "Maximum amount per order" msgstr "" -#: pretix/base/exporters/items.py:89 pretix/base/exporters/orderlist.py:283 +#: pretix/base/exporters/items.py:89 pretix/base/exporters/orderlist.py:284 #: pretix/base/modelimport_orders.py:652 pretix/base/models/items.py:656 #: pretix/base/models/items.py:1242 pretix/base/models/orders.py:282 -#: pretix/plugins/checkinlists/exporters.py:523 +#: pretix/plugins/checkinlists/exporters.py:524 msgid "Requires special attention" msgstr "" -#: pretix/base/exporters/items.py:90 pretix/base/exporters/orderlist.py:284 +#: pretix/base/exporters/items.py:90 pretix/base/exporters/orderlist.py:285 #: pretix/base/modelimport_orders.py:661 pretix/base/models/items.py:663 #: pretix/base/models/items.py:1249 pretix/base/models/orders.py:289 -#: pretix/plugins/checkinlists/exporters.py:525 +#: pretix/plugins/checkinlists/exporters.py:526 msgid "Check-in text" msgstr "" @@ -2120,7 +2123,7 @@ msgid "" msgstr "" #: pretix/base/exporters/mail.py:76 pretix/plugins/reports/exporters.py:498 -#: pretix/plugins/reports/exporters.py:680 +#: pretix/plugins/reports/exporters.py:681 msgid "Filter by status" msgstr "" @@ -2131,77 +2134,78 @@ msgid "" "position, and one with a line for every additional fee charged in an order." msgstr "" -#: pretix/base/exporters/orderlist.py:101 pretix/base/models/orders.py:332 +#: pretix/base/exporters/orderlist.py:102 pretix/base/models/orders.py:332 #: pretix/control/navigation.py:255 pretix/control/navigation.py:362 #: pretix/control/templates/pretixcontrol/orders/index.html:8 #: pretix/control/templates/pretixcontrol/orders/index.html:10 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:198 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:199 #: pretix/plugins/reports/accountingreport.py:671 #: pretix/plugins/reports/accountingreport.py:863 -#: pretix/plugins/reports/exporters.py:668 pretix/plugins/statistics/apps.py:39 +#: pretix/plugins/reports/exporters.py:669 pretix/plugins/statistics/apps.py:39 #: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:13 #: pretix/presale/views/customer.py:360 msgid "Orders" msgstr "" -#: pretix/base/exporters/orderlist.py:102 pretix/base/models/orders.py:2558 +#: pretix/base/exporters/orderlist.py:103 pretix/base/models/orders.py:2572 #: pretix/base/notifications.py:205 msgid "Order positions" msgstr "" -#: pretix/base/exporters/orderlist.py:103 +#: pretix/base/exporters/orderlist.py:104 msgid "Order fees" msgstr "" -#: pretix/base/exporters/orderlist.py:111 +#: pretix/base/exporters/orderlist.py:112 msgid "Only paid orders" msgstr "" -#: pretix/base/exporters/orderlist.py:117 +#: pretix/base/exporters/orderlist.py:118 msgid "Include payment amounts" msgstr "" -#: pretix/base/exporters/orderlist.py:123 +#: pretix/base/exporters/orderlist.py:124 msgid "Show multiple choice answers grouped in one column" msgstr "" -#: pretix/base/exporters/orderlist.py:132 -#: pretix/plugins/reports/exporters.py:712 +#: pretix/base/exporters/orderlist.py:133 +#: pretix/plugins/reports/exporters.py:713 msgid "Only include orders created within this date range." msgstr "" -#: pretix/base/exporters/orderlist.py:136 pretix/base/notifications.py:194 -#: pretix/base/pdf.py:245 pretix/plugins/badges/exporters.py:499 +#: pretix/base/exporters/orderlist.py:137 pretix/base/notifications.py:194 +#: pretix/base/pdf.py:245 pretix/base/settings.py:1110 +#: pretix/base/settings.py:1121 pretix/plugins/badges/exporters.py:499 #: pretix/plugins/reports/exporters.py:316 #: pretix/plugins/reports/exporters.py:465 #: pretix/plugins/ticketoutputpdf/exporters.py:97 msgid "Event date" msgstr "" -#: pretix/base/exporters/orderlist.py:139 +#: pretix/base/exporters/orderlist.py:140 msgid "" "Only include orders including at least one ticket for a date in this range. " "Will also include other dates in case of mixed orders!" msgstr "" -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:449 -#: pretix/base/exporters/orderlist.py:581 -#: pretix/base/exporters/orderlist.py:894 -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1277 -#: pretix/base/exporters/waitinglist.py:115 pretix/control/forms/event.py:1671 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:450 +#: pretix/base/exporters/orderlist.py:582 +#: pretix/base/exporters/orderlist.py:896 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1282 +#: pretix/base/exporters/waitinglist.py:116 pretix/control/forms/event.py:1672 #: pretix/control/forms/organizer.py:116 msgid "Event slug" msgstr "" -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:452 -#: pretix/base/exporters/orderlist.py:585 -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1330 -#: pretix/base/exporters/waitinglist.py:122 -#: pretix/base/exporters/waitinglist.py:172 pretix/base/models/orders.py:216 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:453 +#: pretix/base/exporters/orderlist.py:586 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1335 +#: pretix/base/exporters/waitinglist.py:123 +#: pretix/base/exporters/waitinglist.py:173 pretix/base/models/orders.py:216 #: pretix/control/forms/filter.py:1050 pretix/control/forms/filter.py:1229 #: pretix/control/forms/filter.py:1455 pretix/control/forms/filter.py:1524 #: pretix/control/forms/filter.py:1596 pretix/control/forms/filter.py:1696 @@ -2209,15 +2213,15 @@ msgstr "" #: pretix/control/forms/filter.py:2395 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:52 #: pretix/control/templates/pretixcontrol/checkin/index.html:112 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:83 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:96 #: pretix/control/templates/pretixcontrol/events/index.html:90 #: pretix/control/templates/pretixcontrol/order/index.html:795 #: pretix/control/templates/pretixcontrol/order/index.html:891 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:26 #: pretix/control/templates/pretixcontrol/orders/index.html:151 #: pretix/control/templates/pretixcontrol/orders/refunds.html:65 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:39 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:209 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:40 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:210 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:46 #: pretix/control/templates/pretixcontrol/organizers/detail.html:70 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:34 @@ -2230,155 +2234,156 @@ msgstr "" #: pretix/control/views/waitinglist.py:314 #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:9 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:898 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:34 #: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:79 msgid "Status" msgstr "" -#: pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:455 -#: pretix/base/exporters/orderlist.py:588 -#: pretix/base/exporters/orderlist.py:898 pretix/base/notifications.py:203 +#: pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:456 +#: pretix/base/exporters/orderlist.py:589 +#: pretix/base/exporters/orderlist.py:900 pretix/base/notifications.py:203 +#: pretix/base/settings.py:1111 pretix/base/settings.py:1122 #: pretix/control/forms/filter.py:2356 #: pretix/control/templates/pretixcontrol/order/index.html:183 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:24 #: pretix/control/templates/pretixcontrol/orders/index.html:140 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:206 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:207 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:45 #: pretix/control/templates/pretixcontrol/search/orders.html:57 #: pretix/plugins/badges/exporters.py:498 #: pretix/plugins/checkinlists/exporters.py:123 -#: pretix/plugins/checkinlists/exporters.py:521 +#: pretix/plugins/checkinlists/exporters.py:522 #: pretix/plugins/reports/exporters.py:509 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:691 -#: pretix/plugins/reports/exporters.py:702 -#: pretix/plugins/reports/exporters.py:895 +#: pretix/plugins/reports/exporters.py:692 +#: pretix/plugins/reports/exporters.py:703 +#: pretix/plugins/reports/exporters.py:896 msgid "Order date" msgstr "" -#: pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:456 -#: pretix/base/exporters/orderlist.py:589 -#: pretix/base/exporters/orderlist.py:899 -#: pretix/plugins/checkinlists/exporters.py:522 +#: pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:457 +#: pretix/base/exporters/orderlist.py:590 +#: pretix/base/exporters/orderlist.py:901 +#: pretix/plugins/checkinlists/exporters.py:523 msgid "Order time" msgstr "" -#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:272 msgid "Custom address field" msgstr "" -#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:272 msgid "Date of last payment" msgstr "" -#: pretix/base/exporters/orderlist.py:271 pretix/base/services/stats.py:238 +#: pretix/base/exporters/orderlist.py:272 pretix/base/services/stats.py:238 msgid "Fees" msgstr "" -#: pretix/base/exporters/orderlist.py:276 -#, python-brace-format -msgid "Gross at {rate} % tax" -msgstr "" - #: pretix/base/exporters/orderlist.py:277 #, python-brace-format -msgid "Net at {rate} % tax" +msgid "Gross at {rate} % tax" msgstr "" #: pretix/base/exporters/orderlist.py:278 #, python-brace-format +msgid "Net at {rate} % tax" +msgstr "" + +#: pretix/base/exporters/orderlist.py:279 +#, python-brace-format msgid "Tax value at {rate} % tax" msgstr "" -#: pretix/base/exporters/orderlist.py:281 +#: pretix/base/exporters/orderlist.py:282 msgid "Invoice numbers" msgstr "" -#: pretix/base/exporters/orderlist.py:282 -#: pretix/base/exporters/orderlist.py:665 pretix/base/modelimport_orders.py:578 +#: pretix/base/exporters/orderlist.py:283 +#: pretix/base/exporters/orderlist.py:666 pretix/base/modelimport_orders.py:578 #: pretix/control/forms/filter.py:616 #: pretix/control/templates/pretixcontrol/order/index.html:190 msgid "Sales channel" msgstr "" -#: pretix/base/exporters/orderlist.py:286 -#: pretix/base/exporters/orderlist.py:630 pretix/base/models/orders.py:277 +#: pretix/base/exporters/orderlist.py:287 +#: pretix/base/exporters/orderlist.py:631 pretix/base/models/orders.py:277 #: pretix/control/forms/filter.py:246 msgid "Follow-up date" msgstr "" -#: pretix/base/exporters/orderlist.py:287 +#: pretix/base/exporters/orderlist.py:288 #: pretix/control/templates/pretixcontrol/orders/index.html:150 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:208 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:209 msgid "Positions" msgstr "" -#: pretix/base/exporters/orderlist.py:288 -#: pretix/base/exporters/orderlist.py:667 pretix/base/models/orders.py:321 +#: pretix/base/exporters/orderlist.py:289 +#: pretix/base/exporters/orderlist.py:668 pretix/base/models/orders.py:321 #: pretix/control/forms/filter.py:598 msgid "Email address verified" msgstr "" -#: pretix/base/exporters/orderlist.py:289 -#: pretix/base/exporters/orderlist.py:474 -#: pretix/base/exporters/orderlist.py:668 +#: pretix/base/exporters/orderlist.py:290 +#: pretix/base/exporters/orderlist.py:475 +#: pretix/base/exporters/orderlist.py:669 msgid "External customer ID" msgstr "" -#: pretix/base/exporters/orderlist.py:295 +#: pretix/base/exporters/orderlist.py:296 #, python-brace-format msgid "Paid by {method}" msgstr "" -#: pretix/base/exporters/orderlist.py:457 -#: pretix/base/exporters/orderlist.py:912 +#: pretix/base/exporters/orderlist.py:458 +#: pretix/base/exporters/orderlist.py:914 msgid "Fee type" msgstr "" -#: pretix/base/exporters/orderlist.py:459 -#: pretix/base/exporters/orderlist.py:600 -#: pretix/base/exporters/orderlist.py:918 pretix/base/modelimport_orders.py:467 -#: pretix/base/models/orders.py:1500 pretix/base/models/orders.py:3014 +#: pretix/base/exporters/orderlist.py:460 +#: pretix/base/exporters/orderlist.py:601 +#: pretix/base/exporters/orderlist.py:920 pretix/base/modelimport_orders.py:467 +#: pretix/base/models/orders.py:1500 pretix/base/models/orders.py:3028 #: pretix/base/pdf.py:160 pretix/control/forms/orders.py:638 #: pretix/control/templates/pretixcontrol/item/index.html:146 #: pretix/control/templates/pretixcontrol/order/change.html:194 #: pretix/control/templates/pretixcontrol/order/change.html:418 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:496 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:497 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:162 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:139 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:140 #: pretix/plugins/checkinlists/exporters.py:377 -#: pretix/plugins/checkinlists/exporters.py:500 +#: pretix/plugins/checkinlists/exporters.py:501 #: pretix/plugins/reports/accountingreport.py:315 msgid "Price" msgstr "" -#: pretix/base/exporters/orderlist.py:461 -#: pretix/base/exporters/orderlist.py:602 -#: pretix/base/exporters/orderlist.py:921 +#: pretix/base/exporters/orderlist.py:462 +#: pretix/base/exporters/orderlist.py:603 +#: pretix/base/exporters/orderlist.py:923 #: pretix/control/templates/pretixcontrol/event/tax_edit.html:9 #: pretix/control/templates/pretixcontrol/event/tax_edit.html:16 #: pretix/control/templates/pretixcontrol/order/change.html:165 msgid "Tax rule" msgstr "" -#: pretix/base/exporters/orderlist.py:489 -#: pretix/base/exporters/orderlist.py:693 pretix/base/models/orders.py:205 +#: pretix/base/exporters/orderlist.py:490 +#: pretix/base/exporters/orderlist.py:694 pretix/base/models/orders.py:205 msgid "canceled" msgstr "" -#: pretix/base/exporters/orderlist.py:584 -#: pretix/base/exporters/orderlist.py:905 -#: pretix/plugins/checkinlists/exporters.py:758 +#: pretix/base/exporters/orderlist.py:585 +#: pretix/base/exporters/orderlist.py:907 +#: pretix/plugins/checkinlists/exporters.py:761 msgid "Position ID" msgstr "" -#: pretix/base/exporters/orderlist.py:593 -#: pretix/base/exporters/orderlist.py:1157 -#: pretix/base/exporters/waitinglist.py:118 pretix/base/forms/questions.py:650 -#: pretix/base/forms/questions.py:659 pretix/base/models/memberships.py:145 +#: pretix/base/exporters/orderlist.py:594 +#: pretix/base/exporters/orderlist.py:1160 +#: pretix/base/exporters/waitinglist.py:119 pretix/base/forms/questions.py:652 +#: pretix/base/forms/questions.py:661 pretix/base/models/memberships.py:145 #: pretix/control/forms/rrule.py:49 #: pretix/control/templates/pretixcontrol/events/index.html:78 #: pretix/control/templates/pretixcontrol/order/index.html:792 @@ -2388,27 +2393,27 @@ msgstr "" #: pretix/control/templates/pretixcontrol/search/payments.html:83 #: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:19 #: pretix/control/templates/pretixcontrol/user/staff_session_list.html:18 -#: pretix/plugins/checkinlists/exporters.py:513 -#: pretix/plugins/checkinlists/exporters.py:702 +#: pretix/plugins/checkinlists/exporters.py:514 +#: pretix/plugins/checkinlists/exporters.py:704 msgid "Start date" msgstr "" -#: pretix/base/exporters/orderlist.py:594 -#: pretix/base/exporters/orderlist.py:1158 -#: pretix/base/exporters/waitinglist.py:119 +#: pretix/base/exporters/orderlist.py:595 +#: pretix/base/exporters/orderlist.py:1161 +#: pretix/base/exporters/waitinglist.py:120 #: pretix/base/models/memberships.py:148 #: pretix/control/templates/pretixcontrol/events/index.html:82 #: pretix/control/templates/pretixcontrol/organizers/detail.html:68 #: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:21 #: pretix/control/templates/pretixcontrol/user/staff_session_list.html:20 -#: pretix/plugins/checkinlists/exporters.py:514 -#: pretix/plugins/checkinlists/exporters.py:703 +#: pretix/plugins/checkinlists/exporters.py:515 +#: pretix/plugins/checkinlists/exporters.py:705 msgid "End date" msgstr "" -#: pretix/base/exporters/orderlist.py:596 -#: pretix/base/exporters/orderlist.py:909 -#: pretix/base/exporters/waitinglist.py:111 +#: pretix/base/exporters/orderlist.py:597 +#: pretix/base/exporters/orderlist.py:911 +#: pretix/base/exporters/waitinglist.py:112 #: pretix/base/modelimport_orders.py:129 #: pretix/base/modelimport_vouchers.py:174 pretix/base/models/items.py:794 #: pretix/base/models/vouchers.py:253 pretix/base/models/waitinglist.py:91 @@ -2424,9 +2429,9 @@ msgstr "" #: pretix/control/templates/pretixcontrol/waitinglist/index.html:165 #: pretix/control/views/vouchers.py:119 pretix/control/views/waitinglist.py:314 #: pretix/plugins/checkinlists/exporters.py:377 -#: pretix/plugins/checkinlists/exporters.py:500 -#: pretix/plugins/checkinlists/exporters.py:695 -#: pretix/plugins/checkinlists/exporters.py:760 +#: pretix/plugins/checkinlists/exporters.py:501 +#: pretix/plugins/checkinlists/exporters.py:697 +#: pretix/plugins/checkinlists/exporters.py:763 #: pretix/plugins/reports/accountingreport.py:271 #: pretix/plugins/reports/exporters.py:386 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:100 @@ -2436,7 +2441,7 @@ msgstr "" msgid "Product" msgstr "" -#: pretix/base/exporters/orderlist.py:618 pretix/base/models/vouchers.py:315 +#: pretix/base/exporters/orderlist.py:619 pretix/base/models/vouchers.py:315 #: pretix/control/templates/pretixcontrol/vouchers/bulk.html:5 #: pretix/control/templates/pretixcontrol/vouchers/detail.html:6 #: pretix/control/templates/pretixcontrol/vouchers/detail.html:8 @@ -2444,120 +2449,120 @@ msgstr "" msgid "Voucher" msgstr "" -#: pretix/base/exporters/orderlist.py:619 +#: pretix/base/exporters/orderlist.py:620 msgid "Pseudonymization ID" msgstr "" -#: pretix/base/exporters/orderlist.py:620 pretix/control/forms/filter.py:709 +#: pretix/base/exporters/orderlist.py:621 pretix/control/forms/filter.py:709 #: pretix/control/templates/pretixcontrol/order/change.html:280 msgid "Ticket secret" msgstr "" -#: pretix/base/exporters/orderlist.py:621 pretix/base/modelimport_orders.py:610 +#: pretix/base/exporters/orderlist.py:622 pretix/base/modelimport_orders.py:610 #: pretix/base/modelimport_vouchers.py:272 -#: pretix/plugins/checkinlists/exporters.py:526 -msgid "Seat ID" -msgstr "" - -#: pretix/base/exporters/orderlist.py:622 #: pretix/plugins/checkinlists/exporters.py:527 -msgid "Seat name" +msgid "Seat ID" msgstr "" #: pretix/base/exporters/orderlist.py:623 #: pretix/plugins/checkinlists/exporters.py:528 -msgid "Seat zone" +msgid "Seat name" msgstr "" #: pretix/base/exporters/orderlist.py:624 #: pretix/plugins/checkinlists/exporters.py:529 -msgid "Seat row" +msgid "Seat zone" msgstr "" #: pretix/base/exporters/orderlist.py:625 #: pretix/plugins/checkinlists/exporters.py:530 -msgid "Seat number" +msgid "Seat row" msgstr "" #: pretix/base/exporters/orderlist.py:626 +#: pretix/plugins/checkinlists/exporters.py:531 +msgid "Seat number" +msgstr "" + +#: pretix/base/exporters/orderlist.py:627 #: pretix/control/templates/pretixcontrol/order/change.html:224 #: pretix/plugins/checkinlists/exporters.py:429 -#: pretix/plugins/checkinlists/exporters.py:531 +#: pretix/plugins/checkinlists/exporters.py:532 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:108 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:110 msgid "Blocked" msgstr "" -#: pretix/base/exporters/orderlist.py:627 pretix/base/modelimport_orders.py:537 -#: pretix/base/models/orders.py:2525 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:117 -#: pretix/plugins/checkinlists/exporters.py:532 -#: pretix/plugins/checkinlists/exporters.py:705 +#: pretix/base/exporters/orderlist.py:628 pretix/base/modelimport_orders.py:537 +#: pretix/base/models/orders.py:2539 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:118 +#: pretix/plugins/checkinlists/exporters.py:533 +#: pretix/plugins/checkinlists/exporters.py:707 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:46 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:54 msgid "Valid from" msgstr "" -#: pretix/base/exporters/orderlist.py:628 pretix/base/modelimport_orders.py:545 -#: pretix/base/modelimport_vouchers.py:111 pretix/base/models/orders.py:2530 +#: pretix/base/exporters/orderlist.py:629 pretix/base/modelimport_orders.py:545 +#: pretix/base/modelimport_vouchers.py:111 pretix/base/models/orders.py:2544 #: pretix/base/models/vouchers.py:224 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:118 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:119 #: pretix/control/views/vouchers.py:119 -#: pretix/plugins/checkinlists/exporters.py:533 -#: pretix/plugins/checkinlists/exporters.py:706 +#: pretix/plugins/checkinlists/exporters.py:534 +#: pretix/plugins/checkinlists/exporters.py:708 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:48 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:60 msgid "Valid until" msgstr "" -#: pretix/base/exporters/orderlist.py:629 pretix/base/modelimport_orders.py:643 +#: pretix/base/exporters/orderlist.py:630 pretix/base/modelimport_orders.py:643 msgid "Order comment" msgstr "" -#: pretix/base/exporters/orderlist.py:631 +#: pretix/base/exporters/orderlist.py:632 msgid "Add-on to position ID" msgstr "" -#: pretix/base/exporters/orderlist.py:661 +#: pretix/base/exporters/orderlist.py:662 msgctxt "address" msgid "Invoice address state" msgstr "" -#: pretix/base/exporters/orderlist.py:669 pretix/control/navigation.py:305 +#: pretix/base/exporters/orderlist.py:670 pretix/control/navigation.py:305 #: pretix/control/templates/pretixcontrol/checkin/lists.html:6 #: pretix/control/templates/pretixcontrol/checkin/lists.html:8 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:519 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:521 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:274 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:162 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:164 #: pretix/plugins/checkinlists/apps.py:44 msgid "Check-in lists" msgstr "" -#: pretix/base/exporters/orderlist.py:671 +#: pretix/base/exporters/orderlist.py:672 msgid "Position order link" msgstr "" -#: pretix/base/exporters/orderlist.py:840 +#: pretix/base/exporters/orderlist.py:841 msgid "Order transaction data" msgstr "" -#: pretix/base/exporters/orderlist.py:842 +#: pretix/base/exporters/orderlist.py:843 msgid "" "Download a spreadsheet of all substantial changes to orders, i.e. all " "changes to products, prices or tax rates. The information is only accurate " "for changes made with pretix versions released after October 2021." msgstr "" -#: pretix/base/exporters/orderlist.py:858 +#: pretix/base/exporters/orderlist.py:860 msgid "Only include transactions created within this date range." msgstr "" -#: pretix/base/exporters/orderlist.py:893 pretix/base/models/event.py:695 +#: pretix/base/exporters/orderlist.py:895 pretix/base/models/event.py:695 #: pretix/base/models/items.py:468 pretix/base/models/items.py:2060 -#: pretix/base/models/orders.py:233 pretix/base/models/orders.py:3097 +#: pretix/base/models/orders.py:233 pretix/base/models/orders.py:3111 #: pretix/base/models/vouchers.py:184 pretix/base/models/waitinglist.py:55 #: pretix/base/notifications.py:187 pretix/control/forms/filter.py:1025 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:205 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:206 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:42 #: pretix/control/templates/pretixcontrol/search/orders.html:51 #: pretix/multidomain/models.py:65 @@ -2568,9 +2573,9 @@ msgstr "" msgid "Event" msgstr "" -#: pretix/base/exporters/orderlist.py:895 -#: pretix/base/exporters/orderlist.py:1234 -#: pretix/base/exporters/orderlist.py:1378 +#: pretix/base/exporters/orderlist.py:897 +#: pretix/base/exporters/orderlist.py:1238 +#: pretix/base/exporters/orderlist.py:1383 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:50 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:34 #: pretix/plugins/banktransfer/refund_export.py:46 @@ -2582,19 +2587,19 @@ msgstr "" msgid "Currency" msgstr "" -#: pretix/base/exporters/orderlist.py:901 +#: pretix/base/exporters/orderlist.py:903 msgid "Transaction date" msgstr "" -#: pretix/base/exporters/orderlist.py:902 +#: pretix/base/exporters/orderlist.py:904 msgid "Transaction time" msgstr "" -#: pretix/base/exporters/orderlist.py:903 +#: pretix/base/exporters/orderlist.py:905 msgid "Old data" msgstr "" -#: pretix/base/exporters/orderlist.py:906 pretix/base/models/items.py:1555 +#: pretix/base/exporters/orderlist.py:908 pretix/base/models/items.py:1555 #: pretix/control/templates/pretixcontrol/order/transactions.html:23 #: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:207 #: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:353 @@ -2606,77 +2611,77 @@ msgstr "" msgid "Quantity" msgstr "" -#: pretix/base/exporters/orderlist.py:913 +#: pretix/base/exporters/orderlist.py:915 msgid "Internal fee type" msgstr "" -#: pretix/base/exporters/orderlist.py:915 +#: pretix/base/exporters/orderlist.py:917 msgctxt "subevent" msgid "Date ID" msgstr "" -#: pretix/base/exporters/orderlist.py:920 +#: pretix/base/exporters/orderlist.py:922 msgid "Tax rule ID" msgstr "" -#: pretix/base/exporters/orderlist.py:923 +#: pretix/base/exporters/orderlist.py:925 #: pretix/plugins/reports/accountingreport.py:320 msgid "Gross total" msgstr "" -#: pretix/base/exporters/orderlist.py:924 +#: pretix/base/exporters/orderlist.py:926 #: pretix/plugins/reports/accountingreport.py:319 msgid "Tax total" msgstr "" -#: pretix/base/exporters/orderlist.py:934 +#: pretix/base/exporters/orderlist.py:936 msgid "" "This value is supplied for informational purposes, it is not part of the " "original transaction data and might have changed since the transaction." msgstr "" -#: pretix/base/exporters/orderlist.py:957 +#: pretix/base/exporters/orderlist.py:959 msgid "Converted from legacy version" msgstr "" -#: pretix/base/exporters/orderlist.py:1019 +#: pretix/base/exporters/orderlist.py:1021 msgid "Payments and refunds" msgstr "" -#: pretix/base/exporters/orderlist.py:1021 +#: pretix/base/exporters/orderlist.py:1023 msgid "Download a spreadsheet of all payments or refunds of every order." msgstr "" -#: pretix/base/exporters/orderlist.py:1030 +#: pretix/base/exporters/orderlist.py:1033 msgid "Date range (payment date)" msgstr "" -#: pretix/base/exporters/orderlist.py:1033 +#: pretix/base/exporters/orderlist.py:1036 msgid "" "Note that using this will exclude any non-confirmed payments or non-" "completed refunds." msgstr "" -#: pretix/base/exporters/orderlist.py:1037 +#: pretix/base/exporters/orderlist.py:1040 msgid "Date range (start of transaction)" msgstr "" -#: pretix/base/exporters/orderlist.py:1043 +#: pretix/base/exporters/orderlist.py:1046 msgid "Payment states" msgstr "" -#: pretix/base/exporters/orderlist.py:1051 +#: pretix/base/exporters/orderlist.py:1054 msgid "Refund states" msgstr "" -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1235 -#: pretix/base/exporters/orderlist.py:1277 pretix/base/models/orders.py:331 -#: pretix/base/models/orders.py:1740 pretix/base/models/orders.py:2154 -#: pretix/base/models/orders.py:2313 pretix/base/models/orders.py:2485 -#: pretix/base/models/orders.py:2976 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1239 +#: pretix/base/exporters/orderlist.py:1282 pretix/base/models/orders.py:331 +#: pretix/base/models/orders.py:1740 pretix/base/models/orders.py:2168 +#: pretix/base/models/orders.py:2327 pretix/base/models/orders.py:2499 +#: pretix/base/models/orders.py:2990 #: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html:23 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:119 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:120 #: pretix/control/templates/pretixcontrol/search/payments.html:78 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:15 #: pretix/plugins/checkinlists/exporters.py:375 @@ -2685,34 +2690,35 @@ msgstr "" msgid "Order" msgstr "" -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1277 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1282 #: pretix/control/templates/pretixcontrol/search/payments.html:75 #: pretix/plugins/paypal/templates/pretixplugins/paypal/control.html:5 #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control_legacy.html:5 msgid "Payment ID" msgstr "" -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1375 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1380 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:292 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:30 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:59 msgid "Creation date" msgstr "" -#: pretix/base/exporters/orderlist.py:1094 +#: pretix/base/exporters/orderlist.py:1097 #: pretix/control/templates/pretixcontrol/order/index.html:887 msgid "Completion date" msgstr "" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 msgid "Status code" msgstr "" -#: pretix/base/exporters/orderlist.py:1095 -#: pretix/base/exporters/orderlist.py:1233 -#: pretix/base/exporters/orderlist.py:1277 pretix/base/models/orders.py:1736 -#: pretix/base/models/orders.py:2150 pretix/control/forms/filter.py:1082 +#: pretix/base/exporters/orderlist.py:1098 +#: pretix/base/exporters/orderlist.py:1237 +#: pretix/base/exporters/orderlist.py:1282 pretix/base/models/orders.py:1736 +#: pretix/base/models/orders.py:2164 pretix/control/forms/filter.py:1082 #: pretix/control/forms/filter.py:1085 #: pretix/control/templates/pretixcontrol/order/index.html:796 #: pretix/control/templates/pretixcontrol/order/index.html:892 @@ -2726,7 +2732,7 @@ msgstr "" msgid "Amount" msgstr "" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:102 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:115 #: pretix/control/templates/pretixcontrol/order/index.html:794 @@ -2737,103 +2743,104 @@ msgstr "" msgid "Payment method" msgstr "" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 msgid "Matching ID" msgstr "" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:38 msgid "Payment details" msgstr "" -#: pretix/base/exporters/orderlist.py:1145 +#: pretix/base/exporters/orderlist.py:1148 msgid "Quota availabilities" msgstr "" -#: pretix/base/exporters/orderlist.py:1147 +#: pretix/base/exporters/orderlist.py:1150 msgid "" "Download a spreadsheet of all quotas including their current availability." msgstr "" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 #: pretix/control/templates/pretixcontrol/items/quotas.html:45 msgid "Quota name" msgstr "" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 #: pretix/control/templates/pretixcontrol/items/quota.html:56 msgid "Total quota" msgstr "" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 #: pretix/control/templates/pretixcontrol/event/cancel.html:20 #: pretix/control/views/item.py:970 msgid "Paid orders" msgstr "" -#: pretix/base/exporters/orderlist.py:1152 pretix/control/views/item.py:975 +#: pretix/base/exporters/orderlist.py:1155 pretix/control/views/item.py:975 msgid "Pending orders" msgstr "" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 msgid "Blocking vouchers" msgstr "" -#: pretix/base/exporters/orderlist.py:1153 pretix/control/views/item.py:994 +#: pretix/base/exporters/orderlist.py:1156 pretix/control/views/item.py:994 msgid "Current user's carts" msgstr "" -#: pretix/base/exporters/orderlist.py:1153 +#: pretix/base/exporters/orderlist.py:1156 msgid "Exited orders" msgstr "" -#: pretix/base/exporters/orderlist.py:1153 +#: pretix/base/exporters/orderlist.py:1156 msgid "Current availability" msgstr "" -#: pretix/base/exporters/orderlist.py:1170 -#: pretix/base/exporters/orderlist.py:1177 +#: pretix/base/exporters/orderlist.py:1173 +#: pretix/base/exporters/orderlist.py:1180 #: pretix/control/templates/pretixcontrol/items/quota.html:58 #: pretix/control/views/item.py:1001 msgid "Infinite" msgstr "" -#: pretix/base/exporters/orderlist.py:1199 +#: pretix/base/exporters/orderlist.py:1202 msgid "Gift card transactions" msgstr "" -#: pretix/base/exporters/orderlist.py:1201 -#: pretix/base/exporters/orderlist.py:1306 +#: pretix/base/exporters/orderlist.py:1204 +#: pretix/base/exporters/orderlist.py:1311 msgctxt "export_category" msgid "Gift cards" msgstr "" -#: pretix/base/exporters/orderlist.py:1202 +#: pretix/base/exporters/orderlist.py:1205 msgid "Download a spreadsheet of all gift card transactions." msgstr "" -#: pretix/base/exporters/orderlist.py:1230 -#: pretix/base/exporters/orderlist.py:1277 -#: pretix/base/exporters/orderlist.py:1373 pretix/base/models/giftcards.py:89 -#: pretix/base/payment.py:1454 +#: pretix/base/exporters/orderlist.py:1234 +#: pretix/base/exporters/orderlist.py:1282 +#: pretix/base/exporters/orderlist.py:1378 pretix/base/models/giftcards.py:96 +#: pretix/base/payment.py:1485 #: pretix/control/templates/pretixcontrol/giftcards/payment.html:4 #: pretix/control/templates/pretixcontrol/order/index.html:558 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:291 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:28 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:56 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:152 msgid "Gift card code" msgstr "" -#: pretix/base/exporters/orderlist.py:1231 -#: pretix/base/exporters/orderlist.py:1320 -#: pretix/base/exporters/orderlist.py:1323 +#: pretix/base/exporters/orderlist.py:1235 +#: pretix/base/exporters/orderlist.py:1325 +#: pretix/base/exporters/orderlist.py:1328 #: pretix/base/models/memberships.py:120 pretix/control/forms/filter.py:250 #: pretix/control/forms/filter.py:1446 pretix/control/forms/filter.py:1449 #: pretix/control/templates/pretixcontrol/event/live.html:75 msgid "Test mode" msgstr "" -#: pretix/base/exporters/orderlist.py:1236 pretix/base/models/organizer.py:102 +#: pretix/base/exporters/orderlist.py:1240 pretix/base/models/organizer.py:102 #: pretix/control/forms/event.py:110 pretix/control/forms/filter.py:919 #: pretix/control/forms/filter.py:1037 pretix/control/forms/filter.py:1711 #: pretix/control/templates/pretixcontrol/email_setup.html:6 @@ -2848,15 +2855,16 @@ msgstr "" msgid "Organizer" msgstr "" -#: pretix/base/exporters/orderlist.py:1243 pretix/base/invoicing/pdf.py:580 +#: pretix/base/exporters/orderlist.py:1247 pretix/base/invoicing/pdf.py:587 #: pretix/control/templates/pretixcontrol/base.html:281 #: pretix/control/templates/pretixcontrol/checkin/index.html:145 #: pretix/control/templates/pretixcontrol/order/index.html:25 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:38 #: pretix/control/templates/pretixcontrol/orders/index.html:189 #: pretix/control/templates/pretixcontrol/orders/refunds.html:86 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:133 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:222 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:134 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:223 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:306 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:10 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:58 #: pretix/control/templates/pretixcontrol/organizers/customer_membership_delete.html:10 @@ -2869,6 +2877,7 @@ msgstr "" #: pretix/presale/forms/checkout.py:259 #: pretix/presale/templates/pretixpresale/event/order.html:69 #: pretix/presale/templates/pretixpresale/event/position.html:14 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:59 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:20 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:84 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:71 @@ -2876,41 +2885,45 @@ msgstr "" msgid "TEST MODE" msgstr "" -#: pretix/base/exporters/orderlist.py:1258 +#: pretix/base/exporters/orderlist.py:1262 msgid "Gift card redemptions" msgstr "" -#: pretix/base/exporters/orderlist.py:1260 +#: pretix/base/exporters/orderlist.py:1264 msgid "" "Download a spreadsheet of all payments or refunds that involve gift cards." msgstr "" -#: pretix/base/exporters/orderlist.py:1277 +#: pretix/base/exporters/orderlist.py:1282 #: pretix/control/templates/pretixcontrol/giftcards/payment.html:16 msgid "Issuer" msgstr "" -#: pretix/base/exporters/orderlist.py:1304 pretix/control/navigation.py:550 +#: pretix/base/exporters/orderlist.py:1309 pretix/control/navigation.py:550 #: pretix/control/navigation.py:568 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:285 #: pretix/control/templates/pretixcontrol/organizers/edit.html:156 #: pretix/plugins/reports/accountingreport.py:899 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:7 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:13 +#: pretix/presale/views/customer.py:372 msgid "Gift cards" msgstr "" -#: pretix/base/exporters/orderlist.py:1307 +#: pretix/base/exporters/orderlist.py:1312 msgid "Download a spreadsheet of all gift cards including their current value." msgstr "" -#: pretix/base/exporters/orderlist.py:1314 +#: pretix/base/exporters/orderlist.py:1319 msgid "Show value at" msgstr "" -#: pretix/base/exporters/orderlist.py:1317 +#: pretix/base/exporters/orderlist.py:1322 msgid "Defaults to the time of report." msgstr "" -#: pretix/base/exporters/orderlist.py:1322 -#: pretix/base/exporters/orderlist.py:1332 pretix/control/forms/filter.py:550 +#: pretix/base/exporters/orderlist.py:1327 +#: pretix/base/exporters/orderlist.py:1337 pretix/control/forms/filter.py:550 #: pretix/control/forms/filter.py:1231 pretix/control/forms/filter.py:1448 #: pretix/control/forms/filter.py:1457 pretix/control/forms/filter.py:1527 #: pretix/control/forms/filter.py:1537 pretix/control/forms/filter.py:1599 @@ -2933,66 +2946,70 @@ msgstr "" msgid "All" msgstr "" -#: pretix/base/exporters/orderlist.py:1324 pretix/control/forms/filter.py:1450 +#: pretix/base/exporters/orderlist.py:1329 pretix/control/forms/filter.py:1450 msgid "Live" msgstr "" -#: pretix/base/exporters/orderlist.py:1333 pretix/control/forms/filter.py:1458 +#: pretix/base/exporters/orderlist.py:1338 pretix/control/forms/filter.py:1458 #: pretix/control/templates/pretixcontrol/pdf/index.html:325 msgid "Empty" msgstr "" -#: pretix/base/exporters/orderlist.py:1334 pretix/control/forms/filter.py:1459 +#: pretix/base/exporters/orderlist.py:1339 pretix/control/forms/filter.py:1459 msgid "Valid and with value" msgstr "" -#: pretix/base/exporters/orderlist.py:1335 pretix/control/forms/filter.py:1460 +#: pretix/base/exporters/orderlist.py:1340 pretix/control/forms/filter.py:1460 msgid "Expired and with value" msgstr "" -#: pretix/base/exporters/orderlist.py:1336 pretix/control/forms/filter.py:233 +#: pretix/base/exporters/orderlist.py:1341 pretix/control/forms/filter.py:233 #: pretix/control/forms/filter.py:1461 pretix/control/forms/filter.py:2121 #: pretix/control/templates/pretixcontrol/items/question.html:31 #: pretix/control/templates/pretixcontrol/orders/fragment_order_status.html:37 #: pretix/control/templates/pretixcontrol/orders/overview.html:78 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:309 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:84 #: pretix/plugins/reports/exporters.py:389 #: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:26 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:42 msgid "Expired" msgstr "" -#: pretix/base/exporters/orderlist.py:1374 pretix/base/models/giftcards.py:98 +#: pretix/base/exporters/orderlist.py:1379 pretix/base/models/giftcards.py:105 msgid "Test mode card" msgstr "" -#: pretix/base/exporters/orderlist.py:1376 -#: pretix/base/modelimport_orders.py:553 pretix/base/models/giftcards.py:102 +#: pretix/base/exporters/orderlist.py:1381 +#: pretix/base/modelimport_orders.py:553 pretix/base/models/giftcards.py:109 #: pretix/control/templates/pretixcontrol/order/index.html:203 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:293 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:62 msgid "Expiry date" msgstr "" -#: pretix/base/exporters/orderlist.py:1377 pretix/control/forms/orders.py:902 +#: pretix/base/exporters/orderlist.py:1382 pretix/control/forms/orders.py:902 msgid "Special terms and conditions" msgstr "" -#: pretix/base/exporters/orderlist.py:1379 +#: pretix/base/exporters/orderlist.py:1384 #: pretix/control/templates/pretixcontrol/order/change.html:98 #: pretix/control/templates/pretixcontrol/order/change.html:410 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:295 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:32 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:68 msgid "Current value" msgstr "" -#: pretix/base/exporters/orderlist.py:1380 +#: pretix/base/exporters/orderlist.py:1385 msgid "Created in order" msgstr "" -#: pretix/base/exporters/orderlist.py:1381 +#: pretix/base/exporters/orderlist.py:1386 msgid "Last invoice number of order" msgstr "" -#: pretix/base/exporters/orderlist.py:1382 +#: pretix/base/exporters/orderlist.py:1387 msgid "Last invoice date of order" msgstr "" @@ -3015,35 +3032,36 @@ msgid "" "Download a spread sheet with the data of all reusable medias on your account." msgstr "" -#: pretix/base/exporters/reusablemedia.py:46 pretix/base/models/media.py:67 +#: pretix/base/exporters/reusablemedia.py:47 pretix/base/models/media.py:67 msgctxt "reusable_medium" msgid "Media type" msgstr "" -#: pretix/base/exporters/reusablemedia.py:47 pretix/base/models/media.py:73 +#: pretix/base/exporters/reusablemedia.py:48 pretix/base/models/media.py:73 msgctxt "reusable_medium" msgid "Identifier" msgstr "" -#: pretix/base/exporters/reusablemedia.py:49 pretix/base/models/media.py:81 -#: pretix/base/models/orders.py:265 pretix/base/models/orders.py:3109 +#: pretix/base/exporters/reusablemedia.py:50 pretix/base/models/media.py:81 +#: pretix/base/models/orders.py:265 pretix/base/models/orders.py:3123 #: pretix/control/forms/orders.py:78 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:138 msgid "Expiration date" msgstr "" -#: pretix/base/exporters/reusablemedia.py:50 pretix/base/models/media.py:90 +#: pretix/base/exporters/reusablemedia.py:51 pretix/base/models/media.py:90 #: pretix/control/templates/pretixcontrol/order/index.html:216 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:58 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:136 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:8 msgid "Customer account" msgstr "" -#: pretix/base/exporters/reusablemedia.py:51 pretix/base/models/media.py:97 +#: pretix/base/exporters/reusablemedia.py:52 pretix/base/models/media.py:97 msgid "Linked ticket" msgstr "" -#: pretix/base/exporters/reusablemedia.py:52 pretix/base/models/media.py:104 +#: pretix/base/exporters/reusablemedia.py:53 pretix/base/models/media.py:104 msgid "Linked gift card" msgstr "" @@ -3056,49 +3074,49 @@ msgstr "" msgid "Download a spread sheet with all your waiting list data." msgstr "" -#: pretix/base/exporters/waitinglist.py:49 +#: pretix/base/exporters/waitinglist.py:50 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:102 msgid "All entries" msgstr "" -#: pretix/base/exporters/waitinglist.py:54 +#: pretix/base/exporters/waitinglist.py:55 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:105 msgid "Waiting for a voucher" msgstr "" -#: pretix/base/exporters/waitinglist.py:59 +#: pretix/base/exporters/waitinglist.py:60 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:107 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:227 #: pretix/control/views/waitinglist.py:333 msgid "Voucher assigned" msgstr "" -#: pretix/base/exporters/waitinglist.py:64 +#: pretix/base/exporters/waitinglist.py:65 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:110 msgid "Waiting for redemption" msgstr "" -#: pretix/base/exporters/waitinglist.py:72 +#: pretix/base/exporters/waitinglist.py:73 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:223 #: pretix/control/views/waitinglist.py:329 msgid "Voucher redeemed" msgstr "" -#: pretix/base/exporters/waitinglist.py:80 +#: pretix/base/exporters/waitinglist.py:81 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:116 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:225 #: pretix/control/views/waitinglist.py:331 msgid "Voucher expired" msgstr "" -#: pretix/base/exporters/waitinglist.py:117 +#: pretix/base/exporters/waitinglist.py:118 #: pretix/base/modelimport_orders.py:111 pretix/base/modelimport_vouchers.py:60 #: pretix/control/templates/pretixcontrol/checkin/index.html:100 msgctxt "subevents" msgid "Date" msgstr "" -#: pretix/base/exporters/waitinglist.py:121 +#: pretix/base/exporters/waitinglist.py:122 #: pretix/control/views/waitinglist.py:315 msgid "Priority" msgstr "" @@ -3149,112 +3167,112 @@ msgstr "" msgid "Repeat password" msgstr "" -#: pretix/base/forms/questions.py:135 pretix/base/forms/questions.py:262 +#: pretix/base/forms/questions.py:137 pretix/base/forms/questions.py:264 msgctxt "name_salutation" msgid "not specified" msgstr "" -#: pretix/base/forms/questions.py:225 +#: pretix/base/forms/questions.py:227 msgid "Please do not use special characters in names." msgstr "" -#: pretix/base/forms/questions.py:287 +#: pretix/base/forms/questions.py:289 msgid "Please enter a shorter name." msgstr "" -#: pretix/base/forms/questions.py:312 +#: pretix/base/forms/questions.py:314 msgctxt "phonenumber" msgid "International area code" msgstr "" -#: pretix/base/forms/questions.py:338 +#: pretix/base/forms/questions.py:340 msgctxt "phonenumber" msgid "Phone number (without international area code)" msgstr "" -#: pretix/base/forms/questions.py:499 +#: pretix/base/forms/questions.py:501 msgid "" "You uploaded an image in landscape orientation. Please upload an image in " "portrait orientation." msgstr "" -#: pretix/base/forms/questions.py:502 +#: pretix/base/forms/questions.py:504 msgid "Please upload an image where the width is 3/4 of the height." msgstr "" -#: pretix/base/forms/questions.py:505 +#: pretix/base/forms/questions.py:507 msgid "" "The file you uploaded has a very large number of pixels, please upload an " "image no larger than 10000 x 10000 pixels." msgstr "" -#: pretix/base/forms/questions.py:508 pretix/helpers/images.py:75 +#: pretix/base/forms/questions.py:510 pretix/helpers/images.py:75 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -#: pretix/base/forms/questions.py:651 pretix/base/forms/questions.py:660 +#: pretix/base/forms/questions.py:653 pretix/base/forms/questions.py:662 msgid "" "If you keep this empty, the ticket will be valid starting at the time of " "purchase." msgstr "" -#: pretix/base/forms/questions.py:707 pretix/base/forms/questions.py:1100 +#: pretix/base/forms/questions.py:709 pretix/base/forms/questions.py:1102 msgid "Street and Number" msgstr "" -#: pretix/base/forms/questions.py:1162 +#: pretix/base/forms/questions.py:1166 msgid "" "Optional, but depending on the country you reside in we might need to charge " "you additional taxes if you do not enter it." msgstr "" -#: pretix/base/forms/questions.py:1164 pretix/base/forms/questions.py:1170 +#: pretix/base/forms/questions.py:1168 pretix/base/forms/questions.py:1174 msgid "If you are registered in Switzerland, you can enter your UID instead." msgstr "" -#: pretix/base/forms/questions.py:1168 +#: pretix/base/forms/questions.py:1172 msgid "" "Optional, but it might be required for you to claim tax benefits on your " "invoice depending on your and the seller’s country of residence." msgstr "" -#: pretix/base/forms/questions.py:1177 +#: pretix/base/forms/questions.py:1181 msgid "No invoice requested" msgstr "" -#: pretix/base/forms/questions.py:1179 +#: pretix/base/forms/questions.py:1183 msgid "Invoice transmission method" msgstr "" -#: pretix/base/forms/questions.py:1325 +#: pretix/base/forms/questions.py:1329 msgid "You need to provide a company name." msgstr "" -#: pretix/base/forms/questions.py:1327 +#: pretix/base/forms/questions.py:1331 msgid "You need to provide your name." msgstr "" -#: pretix/base/forms/questions.py:1353 +#: pretix/base/forms/questions.py:1357 msgid "" "If you enter an invoice address, you also need to select an invoice " "transmission method." msgstr "" -#: pretix/base/forms/questions.py:1381 +#: pretix/base/forms/questions.py:1385 msgid "" "The selected transmission type is not available in your country or for your " "type of address." msgstr "" -#: pretix/base/forms/questions.py:1390 +#: pretix/base/forms/questions.py:1394 msgid "" "The selected type of invoice transmission requires a field that is currently " "not available, please reach out to the organizer." msgstr "" -#: pretix/base/forms/questions.py:1394 +#: pretix/base/forms/questions.py:1398 msgid "This field is required for the selected type of invoice transmission." msgstr "" @@ -3344,7 +3362,7 @@ msgid "Available placeholders: {list}" msgstr "" #: pretix/base/forms/widgets.py:214 pretix/base/models/items.py:1656 -#: pretix/plugins/checkinlists/exporters.py:754 +#: pretix/plugins/checkinlists/exporters.py:757 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:40 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:54 msgid "Time" @@ -3410,68 +3428,68 @@ msgid "" "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" -#: pretix/base/invoicing/pdf.py:141 +#: pretix/base/invoicing/pdf.py:142 #, python-format msgctxt "invoice" msgid "Page %d of %d" msgstr "" -#: pretix/base/invoicing/pdf.py:382 +#: pretix/base/invoicing/pdf.py:383 msgctxt "invoice" msgid "Classic renderer (pretix 1.0)" msgstr "" -#: pretix/base/invoicing/pdf.py:426 +#: pretix/base/invoicing/pdf.py:427 msgctxt "invoice" msgid "Invoice from" msgstr "" -#: pretix/base/invoicing/pdf.py:432 +#: pretix/base/invoicing/pdf.py:433 msgctxt "invoice" msgid "Invoice to" msgstr "" -#: pretix/base/invoicing/pdf.py:469 pretix/base/invoicing/pdf.py:1062 +#: pretix/base/invoicing/pdf.py:470 pretix/base/invoicing/pdf.py:1143 msgctxt "invoice" msgid "Order code" msgstr "" -#: pretix/base/invoicing/pdf.py:478 pretix/base/invoicing/pdf.py:1075 +#: pretix/base/invoicing/pdf.py:479 pretix/base/invoicing/pdf.py:1156 msgctxt "invoice" msgid "Cancellation number" msgstr "" -#: pretix/base/invoicing/pdf.py:484 pretix/base/invoicing/pdf.py:1077 +#: pretix/base/invoicing/pdf.py:485 pretix/base/invoicing/pdf.py:1158 msgctxt "invoice" msgid "Original invoice" msgstr "" -#: pretix/base/invoicing/pdf.py:489 pretix/base/invoicing/pdf.py:1082 +#: pretix/base/invoicing/pdf.py:490 pretix/base/invoicing/pdf.py:1163 msgctxt "invoice" msgid "Invoice number" msgstr "" -#: pretix/base/invoicing/pdf.py:497 pretix/base/invoicing/pdf.py:1097 +#: pretix/base/invoicing/pdf.py:498 pretix/base/invoicing/pdf.py:1178 msgctxt "invoice" msgid "Cancellation date" msgstr "" -#: pretix/base/invoicing/pdf.py:503 +#: pretix/base/invoicing/pdf.py:504 msgctxt "invoice" msgid "Original invoice date" msgstr "" -#: pretix/base/invoicing/pdf.py:510 pretix/base/invoicing/pdf.py:1099 +#: pretix/base/invoicing/pdf.py:511 pretix/base/invoicing/pdf.py:1180 msgctxt "invoice" msgid "Invoice date" msgstr "" -#: pretix/base/invoicing/pdf.py:526 +#: pretix/base/invoicing/pdf.py:527 msgctxt "invoice" msgid "Event" msgstr "" -#: pretix/base/invoicing/pdf.py:552 +#: pretix/base/invoicing/pdf.py:561 #, python-brace-format msgctxt "invoice" msgid "" @@ -3479,39 +3497,39 @@ msgid "" "until {to_date}" msgstr "" -#: pretix/base/invoicing/pdf.py:601 pretix/base/services/mail.py:509 +#: pretix/base/invoicing/pdf.py:608 pretix/base/services/mail.py:511 #, python-brace-format msgctxt "invoice" msgid "Invoice {num}" msgstr "" -#: pretix/base/invoicing/pdf.py:653 +#: pretix/base/invoicing/pdf.py:660 #, python-brace-format msgctxt "invoice" msgid "Customer reference: {reference}" msgstr "" -#: pretix/base/invoicing/pdf.py:661 +#: pretix/base/invoicing/pdf.py:668 msgctxt "invoice" msgid "Customer VAT ID" msgstr "" -#: pretix/base/invoicing/pdf.py:668 +#: pretix/base/invoicing/pdf.py:675 msgctxt "invoice" msgid "Beneficiary" msgstr "" -#: pretix/base/invoicing/pdf.py:694 +#: pretix/base/invoicing/pdf.py:708 msgctxt "invoice" msgid "Tax Invoice" msgstr "" -#: pretix/base/invoicing/pdf.py:695 +#: pretix/base/invoicing/pdf.py:709 msgctxt "invoice" msgid "Invoice" msgstr "" -#: pretix/base/invoicing/pdf.py:696 +#: pretix/base/invoicing/pdf.py:710 #: pretix/control/templates/pretixcontrol/order/index.html:272 #: pretix/control/templates/pretixcontrol/order/mail_history.html:70 #: pretix/presale/templates/pretixpresale/event/order.html:244 @@ -3519,94 +3537,100 @@ msgctxt "invoice" msgid "Cancellation" msgstr "" -#: pretix/base/invoicing/pdf.py:718 pretix/base/invoicing/pdf.py:726 +#: pretix/base/invoicing/pdf.py:732 pretix/base/invoicing/pdf.py:740 msgctxt "invoice" msgid "Description" msgstr "" -#: pretix/base/invoicing/pdf.py:719 pretix/base/invoicing/pdf.py:727 +#: pretix/base/invoicing/pdf.py:733 pretix/base/invoicing/pdf.py:741 msgctxt "invoice" msgid "Qty" msgstr "" -#: pretix/base/invoicing/pdf.py:720 pretix/base/invoicing/pdf.py:879 +#: pretix/base/invoicing/pdf.py:734 pretix/base/invoicing/pdf.py:960 msgctxt "invoice" msgid "Tax rate" msgstr "" -#: pretix/base/invoicing/pdf.py:721 +#: pretix/base/invoicing/pdf.py:735 msgctxt "invoice" msgid "Net" msgstr "" -#: pretix/base/invoicing/pdf.py:722 +#: pretix/base/invoicing/pdf.py:736 msgctxt "invoice" msgid "Gross" msgstr "" -#: pretix/base/invoicing/pdf.py:728 +#: pretix/base/invoicing/pdf.py:742 msgctxt "invoice" msgid "Amount" msgstr "" -#: pretix/base/invoicing/pdf.py:744 +#: pretix/base/invoicing/pdf.py:818 #, python-brace-format msgctxt "invoice" msgid "Single price: {net_price} net / {gross_price} gross" msgstr "" -#: pretix/base/invoicing/pdf.py:767 +#: pretix/base/invoicing/pdf.py:842 #, python-brace-format msgctxt "invoice" msgid "Single price: {price}" msgstr "" -#: pretix/base/invoicing/pdf.py:788 pretix/base/invoicing/pdf.py:794 +#: pretix/base/invoicing/pdf.py:863 pretix/base/invoicing/pdf.py:869 msgctxt "invoice" msgid "Invoice total" msgstr "" -#: pretix/base/invoicing/pdf.py:804 +#: pretix/base/invoicing/pdf.py:879 msgctxt "invoice" msgid "Received payments" msgstr "" -#: pretix/base/invoicing/pdf.py:809 +#: pretix/base/invoicing/pdf.py:884 msgctxt "invoice" msgid "Outstanding payments" msgstr "" -#: pretix/base/invoicing/pdf.py:826 +#: pretix/base/invoicing/pdf.py:901 msgctxt "invoice" msgid "Paid by gift card" msgstr "" -#: pretix/base/invoicing/pdf.py:831 +#: pretix/base/invoicing/pdf.py:906 msgctxt "invoice" msgid "Remaining amount" msgstr "" -#: pretix/base/invoicing/pdf.py:880 +#: pretix/base/invoicing/pdf.py:930 +#, python-brace-format +msgctxt "invoice" +msgid "Invoice period: {daterange}" +msgstr "" + +#: pretix/base/invoicing/pdf.py:961 msgctxt "invoice" msgid "Net value" msgstr "" -#: pretix/base/invoicing/pdf.py:881 +#: pretix/base/invoicing/pdf.py:962 msgctxt "invoice" msgid "Gross value" msgstr "" -#: pretix/base/invoicing/pdf.py:882 +#: pretix/base/invoicing/pdf.py:963 msgctxt "invoice" msgid "Tax" msgstr "" -#: pretix/base/invoicing/pdf.py:912 +#: pretix/base/invoicing/pdf.py:993 msgctxt "invoice" msgid "Included taxes" msgstr "" -#: pretix/base/invoicing/pdf.py:940 +#: pretix/base/invoicing/pdf.py:1021 #, python-brace-format msgctxt "invoice" msgid "" @@ -3614,7 +3638,7 @@ msgid "" "{date}, this corresponds to:" msgstr "" -#: pretix/base/invoicing/pdf.py:955 +#: pretix/base/invoicing/pdf.py:1036 #, python-brace-format msgctxt "invoice" msgid "" @@ -3622,20 +3646,20 @@ msgid "" "{date}, the invoice total corresponds to {total}." msgstr "" -#: pretix/base/invoicing/pdf.py:969 +#: pretix/base/invoicing/pdf.py:1050 msgid "Default invoice renderer (European-style letter)" msgstr "" -#: pretix/base/invoicing/pdf.py:1058 +#: pretix/base/invoicing/pdf.py:1139 msgctxt "invoice" msgid "(Please quote at all times.)" msgstr "" -#: pretix/base/invoicing/pdf.py:1105 +#: pretix/base/invoicing/pdf.py:1186 msgid "Simplified invoice renderer" msgstr "" -#: pretix/base/invoicing/pdf.py:1124 +#: pretix/base/invoicing/pdf.py:1205 #, python-brace-format msgctxt "invoice" msgid "Event date: {date_range}" @@ -3771,8 +3795,8 @@ msgid "Could not parse {value} as a date and time." msgstr "" #: pretix/base/modelimport.py:239 pretix/control/views/orders.py:1173 -#: pretix/control/views/orders.py:1202 pretix/control/views/orders.py:1246 -#: pretix/control/views/orders.py:1281 pretix/control/views/orders.py:1304 +#: pretix/control/views/orders.py:1202 pretix/control/views/orders.py:1247 +#: pretix/control/views/orders.py:1282 pretix/control/views/orders.py:1305 msgid "You entered an invalid number." msgstr "" @@ -3942,8 +3966,8 @@ msgstr "" #: pretix/base/modelimport_orders.py:631 #: pretix/base/modelimport_vouchers.py:296 pretix/base/services/cart.py:213 -#: pretix/base/services/modelimport.py:175 -#: pretix/base/services/modelimport.py:287 +#: pretix/base/services/modelimport.py:178 +#: pretix/base/services/modelimport.py:299 msgid "" "The seat you selected has already been taken. Please select a different seat." msgstr "" @@ -4134,7 +4158,7 @@ msgid "All products (including newly created ones)" msgstr "" #: pretix/base/models/checkin.py:56 pretix/plugins/badges/exporters.py:436 -#: pretix/plugins/checkinlists/exporters.py:851 +#: pretix/plugins/checkinlists/exporters.py:854 msgid "Limit to products" msgstr "" @@ -4271,96 +4295,96 @@ msgstr "" msgid "Check-in annulled" msgstr "" -#: pretix/base/models/customers.py:55 +#: pretix/base/models/customers.py:62 msgid "Provider name" msgstr "" -#: pretix/base/models/customers.py:60 +#: pretix/base/models/customers.py:67 msgid "Login button label" msgstr "" -#: pretix/base/models/customers.py:64 +#: pretix/base/models/customers.py:71 msgid "Single-sign-on method" msgstr "" -#: pretix/base/models/customers.py:85 pretix/base/models/devices.py:71 +#: pretix/base/models/customers.py:92 pretix/base/models/devices.py:71 #: pretix/base/models/items.py:1676 pretix/base/models/items.py:1952 msgid "" "You can enter any value here to make it easier to match the data with other " "sources. If you do not input one, we will generate one automatically." msgstr "" -#: pretix/base/models/customers.py:90 +#: pretix/base/models/customers.py:97 msgid "" "The identifier may only contain letters, numbers, dots, dashes, and " "underscores. It must start and end with a letter or number." msgstr "" -#: pretix/base/models/customers.py:195 pretix/control/forms/filter.py:1529 +#: pretix/base/models/customers.py:202 pretix/control/forms/filter.py:1529 #: pretix/control/forms/filter.py:1601 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:42 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:43 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:56 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:135 #: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:35 msgid "disabled" msgstr "" -#: pretix/base/models/customers.py:310 pretix/base/models/orders.py:1538 -#: pretix/base/models/orders.py:3280 pretix/base/settings.py:1150 +#: pretix/base/models/customers.py:330 pretix/base/models/orders.py:1538 +#: pretix/base/models/orders.py:3294 pretix/base/settings.py:1179 msgid "Company name" msgstr "" -#: pretix/base/models/customers.py:314 pretix/base/models/orders.py:1542 -#: pretix/base/models/orders.py:3287 pretix/base/settings.py:83 +#: pretix/base/models/customers.py:334 pretix/base/models/orders.py:1542 +#: pretix/base/models/orders.py:3301 pretix/base/settings.py:83 #: pretix/plugins/stripe/payment.py:272 msgid "Select country" msgstr "" -#: pretix/base/models/customers.py:381 +#: pretix/base/models/customers.py:401 msgctxt "openidconnect" msgid "Confidential" msgstr "" -#: pretix/base/models/customers.py:382 +#: pretix/base/models/customers.py:402 msgctxt "openidconnect" msgid "Public" msgstr "" -#: pretix/base/models/customers.py:388 +#: pretix/base/models/customers.py:408 msgctxt "openidconnect" msgid "Authorization code" msgstr "" -#: pretix/base/models/customers.py:389 +#: pretix/base/models/customers.py:409 msgctxt "openidconnect" msgid "Implicit" msgstr "" -#: pretix/base/models/customers.py:393 +#: pretix/base/models/customers.py:413 msgid "OpenID Connect access (required)" msgstr "" -#: pretix/base/models/customers.py:394 +#: pretix/base/models/customers.py:414 msgid "Profile data (name, addresses)" msgstr "" -#: pretix/base/models/customers.py:414 +#: pretix/base/models/customers.py:434 msgid "Client type" msgstr "" -#: pretix/base/models/customers.py:417 +#: pretix/base/models/customers.py:437 msgid "Grant type" msgstr "" -#: pretix/base/models/customers.py:420 +#: pretix/base/models/customers.py:440 msgid "Require PKCE extension" msgstr "" -#: pretix/base/models/customers.py:432 +#: pretix/base/models/customers.py:452 msgid "Allowed access scopes" msgstr "" -#: pretix/base/models/customers.py:433 +#: pretix/base/models/customers.py:453 msgid "Separate multiple values with spaces" msgstr "" @@ -4393,7 +4417,7 @@ msgstr "" #: pretix/control/forms/filter.py:2468 pretix/control/forms/filter.py:2628 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:67 #: pretix/control/templates/pretixcontrol/organizers/gates.html:16 -#: pretix/plugins/checkinlists/exporters.py:766 +#: pretix/plugins/checkinlists/exporters.py:769 msgid "Gate" msgstr "" @@ -4635,7 +4659,7 @@ msgid "Sell on all sales channels" msgstr "" #: pretix/base/models/event.py:688 pretix/base/models/items.py:680 -#: pretix/base/models/items.py:1230 pretix/base/payment.py:474 +#: pretix/base/models/items.py:1230 pretix/base/payment.py:476 msgid "Restrict to specific sales channels" msgstr "" @@ -4706,7 +4730,7 @@ msgid "" "event." msgstr "" -#: pretix/base/models/event.py:1565 pretix/base/settings.py:3116 +#: pretix/base/models/event.py:1565 pretix/base/settings.py:3145 msgid "Frontpage text" msgstr "" @@ -4718,78 +4742,78 @@ msgstr "" msgid "Dates in event series" msgstr "" -#: pretix/base/models/event.py:1728 +#: pretix/base/models/event.py:1724 msgid "One or more variations do not belong to this event." msgstr "" -#: pretix/base/models/event.py:1758 pretix/base/models/items.py:2236 +#: pretix/base/models/event.py:1754 pretix/base/models/items.py:2236 msgid "Can not contain spaces or special characters except underscores" msgstr "" -#: pretix/base/models/event.py:1763 pretix/base/models/items.py:2241 +#: pretix/base/models/event.py:1759 pretix/base/models/items.py:2241 msgid "The property name may only contain letters, numbers and underscores." msgstr "" -#: pretix/base/models/event.py:1768 +#: pretix/base/models/event.py:1764 msgid "Default value" msgstr "" -#: pretix/base/models/event.py:1770 +#: pretix/base/models/event.py:1766 #: pretix/control/templates/pretixcontrol/organizers/properties.html:50 msgid "Can only be changed by organizer-level administrators" msgstr "" -#: pretix/base/models/event.py:1772 +#: pretix/base/models/event.py:1768 msgid "Required for events" msgstr "" -#: pretix/base/models/event.py:1773 +#: pretix/base/models/event.py:1769 msgid "" "If checked, an event can only be taken live if the property is set. In event " "series, its always optional to set a value for individual dates" msgstr "" -#: pretix/base/models/event.py:1779 pretix/base/models/items.py:2253 +#: pretix/base/models/event.py:1775 pretix/base/models/items.py:2253 msgid "Valid values" msgstr "" -#: pretix/base/models/event.py:1782 +#: pretix/base/models/event.py:1778 #: pretix/control/templates/pretixcontrol/organizers/properties.html:45 msgid "Show filter option to customers" msgstr "" -#: pretix/base/models/event.py:1783 +#: pretix/base/models/event.py:1779 msgid "" "This field will be shown to filter events in the public event list and " "calendar." msgstr "" -#: pretix/base/models/event.py:1786 pretix/control/forms/organizer.py:269 +#: pretix/base/models/event.py:1782 pretix/control/forms/organizer.py:269 #: pretix/control/forms/organizer.py:273 msgid "Public name" msgstr "" -#: pretix/base/models/event.py:1790 +#: pretix/base/models/event.py:1786 #: pretix/control/templates/pretixcontrol/organizers/properties.html:40 msgid "Can be used for filtering" msgstr "" -#: pretix/base/models/event.py:1791 +#: pretix/base/models/event.py:1787 msgid "" "This field will be shown to filter events or reports in the backend, and it " "can also be used for hidden filter parameters in the frontend (e.g. using " "the widget)." msgstr "" -#: pretix/base/models/event.py:1801 +#: pretix/base/models/event.py:1797 msgid "A property can either be required or have a default value, not both." msgstr "" -#: pretix/base/models/event.py:1881 pretix/base/models/organizer.py:582 +#: pretix/base/models/event.py:1877 pretix/base/models/organizer.py:582 msgid "Link text" msgstr "" -#: pretix/base/models/event.py:1884 pretix/base/models/organizer.py:585 +#: pretix/base/models/event.py:1880 pretix/base/models/organizer.py:585 msgid "Link URL" msgstr "" @@ -4803,7 +4827,7 @@ msgid "Additional recipients" msgstr "" #: pretix/base/models/exports.py:61 pretix/base/models/exports.py:66 -#: pretix/base/models/exports.py:71 pretix/control/forms/event.py:988 +#: pretix/base/models/exports.py:71 pretix/control/forms/event.py:989 #: pretix/control/forms/organizer.py:586 msgid "You can specify multiple recipients separated by commas." msgstr "" @@ -4816,9 +4840,9 @@ msgstr "" msgid "Additional recipients (Bcc)" msgstr "" -#: pretix/base/models/exports.py:74 pretix/control/forms/event.py:1094 -#: pretix/control/forms/event.py:1168 pretix/control/forms/event.py:1178 -#: pretix/control/forms/event.py:1188 pretix/control/forms/event.py:1203 +#: pretix/base/models/exports.py:74 pretix/control/forms/event.py:1095 +#: pretix/control/forms/event.py:1169 pretix/control/forms/event.py:1179 +#: pretix/control/forms/event.py:1189 pretix/control/forms/event.py:1204 #: pretix/control/forms/orders.py:730 pretix/control/forms/orders.py:952 #: pretix/control/forms/orders.py:979 pretix/control/forms/organizer.py:607 #: pretix/control/forms/organizer.py:617 pretix/control/forms/organizer.py:627 @@ -4852,52 +4876,56 @@ msgstr "" msgid "Owned by ticket holder" msgstr "" -#: pretix/base/models/giftcards.py:93 +#: pretix/base/models/giftcards.py:88 +msgid "Owned by customer account" +msgstr "" + +#: pretix/base/models/giftcards.py:100 msgid "The gift card code may only contain letters, numbers, dots and dashes." msgstr "" -#: pretix/base/models/giftcards.py:105 +#: pretix/base/models/giftcards.py:112 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:39 msgctxt "giftcard" msgid "Special terms and conditions" msgstr "" -#: pretix/base/models/giftcards.py:219 pretix/base/models/giftcards.py:223 +#: pretix/base/models/giftcards.py:227 pretix/base/models/giftcards.py:231 msgid "Manual transaction" msgstr "" -#: pretix/base/models/invoices.py:121 +#: pretix/base/models/invoices.py:122 msgid "pending transmission" msgstr "" -#: pretix/base/models/invoices.py:122 +#: pretix/base/models/invoices.py:123 msgid "currently being transmitted" msgstr "" -#: pretix/base/models/invoices.py:123 +#: pretix/base/models/invoices.py:124 msgid "transmitted" msgstr "" -#: pretix/base/models/invoices.py:124 pretix/plugins/sendmail/models.py:52 +#: pretix/base/models/invoices.py:125 pretix/plugins/sendmail/models.py:52 msgid "failed" msgstr "" -#: pretix/base/models/invoices.py:125 +#: pretix/base/models/invoices.py:126 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:56 msgid "unknown" msgstr "" -#: pretix/base/models/invoices.py:126 +#: pretix/base/models/invoices.py:127 msgid "not transmitted due to test mode" msgstr "" -#: pretix/base/models/invoices.py:218 +#: pretix/base/models/invoices.py:220 #, python-format msgctxt "invoice" msgid "Tax ID: %s" msgstr "" -#: pretix/base/models/invoices.py:224 pretix/base/services/invoices.py:148 +#: pretix/base/models/invoices.py:226 pretix/base/services/invoices.py:154 #, python-format msgctxt "invoice" msgid "VAT-ID: %s" @@ -5091,8 +5119,8 @@ msgstr "" msgid "This will only work if waiting lists are enabled for this event." msgstr "" -#: pretix/base/models/items.py:548 pretix/base/settings.py:1398 -#: pretix/control/forms/event.py:1690 +#: pretix/base/models/items.py:548 pretix/base/settings.py:1427 +#: pretix/control/forms/event.py:1691 msgid "Show number of tickets left" msgstr "" @@ -5716,7 +5744,7 @@ msgstr "" msgid "Question options" msgstr "" -#: pretix/base/models/items.py:2074 pretix/control/forms/event.py:1724 +#: pretix/base/models/items.py:2074 pretix/control/forms/event.py:1725 #: pretix/control/templates/pretixcontrol/items/quotas.html:56 msgid "Total capacity" msgstr "" @@ -5726,7 +5754,7 @@ msgid "Leave empty for an unlimited number of tickets." msgstr "" #: pretix/base/models/items.py:2080 pretix/base/models/orders.py:1489 -#: pretix/base/models/orders.py:2997 +#: pretix/base/models/orders.py:3011 #: pretix/control/templates/pretixcontrol/checkin/index.html:97 msgid "Item" msgstr "" @@ -5854,7 +5882,7 @@ msgid "Canceled" msgstr "" #: pretix/base/models/memberships.py:134 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:116 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:117 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:28 msgid "Membership type" msgstr "" @@ -5863,8 +5891,8 @@ msgstr "" msgid "pending" msgstr "" -#: pretix/base/models/orders.py:203 pretix/base/payment.py:568 -#: pretix/base/services/invoices.py:486 +#: pretix/base/models/orders.py:203 pretix/base/payment.py:570 +#: pretix/base/services/invoices.py:572 msgid "paid" msgstr "" @@ -5874,7 +5902,7 @@ msgid "expired" msgstr "" #: pretix/base/models/orders.py:254 pretix/control/forms/filter.py:592 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:64 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:65 msgid "Locale" msgstr "" @@ -6003,99 +6031,99 @@ msgctxt "payment_state" msgid "refunded" msgstr "" -#: pretix/base/models/orders.py:1756 pretix/base/models/orders.py:2181 +#: pretix/base/models/orders.py:1756 pretix/base/models/orders.py:2195 #: pretix/base/shredder.py:633 msgid "Payment information" msgstr "" -#: pretix/base/models/orders.py:2122 +#: pretix/base/models/orders.py:2136 msgctxt "refund_state" msgid "started externally" msgstr "" -#: pretix/base/models/orders.py:2123 +#: pretix/base/models/orders.py:2137 msgctxt "refund_state" msgid "created" msgstr "" -#: pretix/base/models/orders.py:2124 +#: pretix/base/models/orders.py:2138 msgctxt "refund_state" msgid "in transit" msgstr "" -#: pretix/base/models/orders.py:2125 +#: pretix/base/models/orders.py:2139 msgctxt "refund_state" msgid "done" msgstr "" -#: pretix/base/models/orders.py:2126 +#: pretix/base/models/orders.py:2140 msgctxt "refund_state" msgid "failed" msgstr "" -#: pretix/base/models/orders.py:2128 +#: pretix/base/models/orders.py:2142 msgctxt "refund_state" msgid "canceled" msgstr "" -#: pretix/base/models/orders.py:2136 +#: pretix/base/models/orders.py:2150 msgctxt "refund_source" msgid "Organizer" msgstr "" -#: pretix/base/models/orders.py:2137 +#: pretix/base/models/orders.py:2151 msgctxt "refund_source" msgid "Customer" msgstr "" -#: pretix/base/models/orders.py:2138 +#: pretix/base/models/orders.py:2152 msgctxt "refund_source" msgid "External" msgstr "" -#: pretix/base/models/orders.py:2176 +#: pretix/base/models/orders.py:2190 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:198 msgid "Refund reason" msgstr "" -#: pretix/base/models/orders.py:2177 +#: pretix/base/models/orders.py:2191 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:199 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:201 msgid "" "May be shown to the end user or used e.g. as part of a payment reference." msgstr "" -#: pretix/base/models/orders.py:2297 +#: pretix/base/models/orders.py:2311 msgid "Service fee" msgstr "" -#: pretix/base/models/orders.py:2298 +#: pretix/base/models/orders.py:2312 msgid "Payment fee" msgstr "" -#: pretix/base/models/orders.py:2299 +#: pretix/base/models/orders.py:2313 msgid "Shipping fee" msgstr "" -#: pretix/base/models/orders.py:2300 +#: pretix/base/models/orders.py:2314 #: pretix/control/templates/pretixcontrol/order/index.html:157 msgid "Cancellation fee" msgstr "" -#: pretix/base/models/orders.py:2301 +#: pretix/base/models/orders.py:2315 msgid "Insurance fee" msgstr "" -#: pretix/base/models/orders.py:2302 +#: pretix/base/models/orders.py:2316 msgid "Late fee" msgstr "" -#: pretix/base/models/orders.py:2303 +#: pretix/base/models/orders.py:2317 msgid "Other fees" msgstr "" -#: pretix/base/models/orders.py:2304 pretix/base/payment.py:1372 -#: pretix/base/payment.py:1419 pretix/base/settings.py:992 +#: pretix/base/models/orders.py:2318 pretix/base/payment.py:1374 +#: pretix/base/payment.py:1450 pretix/base/settings.py:992 #: pretix/control/templates/pretixcontrol/items/index.html:107 #: pretix/control/templates/pretixcontrol/order/index.html:152 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:383 @@ -6104,62 +6132,62 @@ msgstr "" msgid "Gift card" msgstr "" -#: pretix/base/models/orders.py:2309 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:74 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:115 +#: pretix/base/models/orders.py:2323 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:82 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:123 #: pretix/control/views/vouchers.py:120 #: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:8 msgid "Value" msgstr "" -#: pretix/base/models/orders.py:2557 +#: pretix/base/models/orders.py:2571 msgid "Order position" msgstr "" -#: pretix/base/models/orders.py:3102 +#: pretix/base/models/orders.py:3116 msgid "Cart ID (e.g. session key)" msgstr "" -#: pretix/base/models/orders.py:3113 +#: pretix/base/models/orders.py:3127 msgid "Limit for extending expiration date" msgstr "" -#: pretix/base/models/orders.py:3142 +#: pretix/base/models/orders.py:3156 msgid "Cart position" msgstr "" -#: pretix/base/models/orders.py:3143 +#: pretix/base/models/orders.py:3157 msgid "Cart positions" msgstr "" -#: pretix/base/models/orders.py:3279 +#: pretix/base/models/orders.py:3293 msgid "Business customer" msgstr "" -#: pretix/base/models/orders.py:3295 +#: pretix/base/models/orders.py:3309 msgid "This reference will be printed on your invoice for your convenience." msgstr "" -#: pretix/base/models/orders.py:3422 +#: pretix/base/models/orders.py:3436 msgid "Transmission type" msgstr "" -#: pretix/base/models/orders.py:3520 +#: pretix/base/models/orders.py:3534 #: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9 msgid "Badge" msgstr "" -#: pretix/base/models/orders.py:3521 pretix/base/pdf.py:1124 +#: pretix/base/models/orders.py:3535 pretix/base/pdf.py:1124 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:66 -#: pretix/plugins/ticketoutputpdf/ticketoutput.py:113 +#: pretix/plugins/ticketoutputpdf/ticketoutput.py:114 msgid "Ticket" msgstr "" -#: pretix/base/models/orders.py:3522 +#: pretix/base/models/orders.py:3536 msgid "Certificate" msgstr "" -#: pretix/base/models/orders.py:3523 pretix/control/views/event.py:393 +#: pretix/base/models/orders.py:3537 pretix/control/views/event.py:393 #: pretix/control/views/event.py:398 pretix/control/views/organizer.py:649 #: pretix/control/views/organizer.py:654 msgid "Other" @@ -6475,7 +6503,7 @@ msgstr "" msgid "Should be short, e.g. \"VAT\"" msgstr "" -#: pretix/base/models/tax.py:330 pretix/control/forms/event.py:1522 +#: pretix/base/models/tax.py:330 pretix/control/forms/event.py:1523 #: pretix/control/templates/pretixcontrol/order/transactions.html:22 msgid "Tax code" msgstr "" @@ -6535,12 +6563,12 @@ msgstr "" msgid "You need to set your home country to use the reverse charge feature." msgstr "" -#: pretix/base/models/tax.py:427 pretix/control/forms/event.py:1569 +#: pretix/base/models/tax.py:427 pretix/control/forms/event.py:1570 msgid "" "A combination of this tax code with a non-zero tax rate does not make sense." msgstr "" -#: pretix/base/models/tax.py:432 pretix/control/forms/event.py:1573 +#: pretix/base/models/tax.py:432 pretix/control/forms/event.py:1574 msgid "" "A combination of this tax code with a zero tax rate does not make sense." msgstr "" @@ -6821,7 +6849,7 @@ msgstr "" #: pretix/base/notifications.py:223 pretix/base/services/placeholders.py:384 #: pretix/base/services/placeholders.py:393 -#: pretix/base/templates/pretixbase/email/order_details.html:147 +#: pretix/base/templates/pretixbase/email/order_details.html:151 msgid "View order details" msgstr "" @@ -6893,119 +6921,119 @@ msgstr "" msgid "You have been requested to issue a refund for {order.code}." msgstr "" -#: pretix/base/payment.py:85 +#: pretix/base/payment.py:86 msgctxt "payment" msgid "Apple Pay" msgstr "" -#: pretix/base/payment.py:86 +#: pretix/base/payment.py:87 msgctxt "payment" msgid "Google Pay" msgstr "" -#: pretix/base/payment.py:117 pretix/base/payment.py:1579 +#: pretix/base/payment.py:119 pretix/base/payment.py:1610 msgid "You cannot pay with gift cards when buying a gift card." msgstr "" -#: pretix/base/payment.py:126 pretix/base/payment.py:1589 -#: pretix/base/payment.py:1591 +#: pretix/base/payment.py:128 pretix/base/payment.py:1620 +#: pretix/base/payment.py:1622 msgid "This gift card does not support this currency." msgstr "" -#: pretix/base/payment.py:128 pretix/base/payment.py:1597 +#: pretix/base/payment.py:130 pretix/base/payment.py:1628 msgid "This gift card can only be used in test mode." msgstr "" -#: pretix/base/payment.py:130 pretix/base/payment.py:1599 +#: pretix/base/payment.py:132 pretix/base/payment.py:1630 msgid "Only test gift cards can be used in test mode." msgstr "" -#: pretix/base/payment.py:132 pretix/base/payment.py:1601 +#: pretix/base/payment.py:134 pretix/base/payment.py:1632 msgid "This gift card is no longer valid." msgstr "" -#: pretix/base/payment.py:134 +#: pretix/base/payment.py:136 msgid "All credit on this gift card has been used." msgstr "" -#: pretix/base/payment.py:141 +#: pretix/base/payment.py:143 msgid "This gift card is already used for your payment." msgstr "" -#: pretix/base/payment.py:145 +#: pretix/base/payment.py:147 msgid "" "You entered a voucher instead of a gift card. Vouchers can only be entered " "on the first page of the shop below the product selection." msgstr "" -#: pretix/base/payment.py:149 +#: pretix/base/payment.py:151 msgid "This gift card is not known." msgstr "" -#: pretix/base/payment.py:152 +#: pretix/base/payment.py:154 msgid "" "This gift card can not be redeemed since its code is not unique. Please " "contact the organizer of this event." msgstr "" -#: pretix/base/payment.py:313 +#: pretix/base/payment.py:315 #: pretix/presale/templates/pretixpresale/event/order.html:116 msgid "Pay now" msgstr "" -#: pretix/base/payment.py:387 +#: pretix/base/payment.py:389 msgid "Enable payment method" msgstr "" -#: pretix/base/payment.py:393 +#: pretix/base/payment.py:395 msgid "" "Users will not be able to choose this payment provider before the given date." msgstr "" -#: pretix/base/payment.py:399 +#: pretix/base/payment.py:401 msgid "" "Users will not be able to choose this payment provider after the given date." msgstr "" -#: pretix/base/payment.py:404 +#: pretix/base/payment.py:406 msgid "Minimum order total" msgstr "" -#: pretix/base/payment.py:405 +#: pretix/base/payment.py:407 msgid "" "This payment will be available only if the order total is equal to or " "exceeds the given value. The order total for this purpose may be computed " "without taking the fees imposed by this payment method into account." msgstr "" -#: pretix/base/payment.py:415 +#: pretix/base/payment.py:417 msgid "Maximum order total" msgstr "" -#: pretix/base/payment.py:416 +#: pretix/base/payment.py:418 msgid "" "This payment will be available only if the order total is equal to or below " "the given value. The order total for this purpose may be computed without " "taking the fees imposed by this payment method into account." msgstr "" -#: pretix/base/payment.py:426 pretix/base/payment.py:435 +#: pretix/base/payment.py:428 pretix/base/payment.py:437 msgid "Additional fee" msgstr "" -#: pretix/base/payment.py:427 +#: pretix/base/payment.py:429 msgid "Absolute value" msgstr "" -#: pretix/base/payment.py:436 +#: pretix/base/payment.py:438 msgid "Percentage of the order total." msgstr "" -#: pretix/base/payment.py:442 +#: pretix/base/payment.py:444 msgid "Calculate the fee from the total value including the fee." msgstr "" -#: pretix/base/payment.py:443 +#: pretix/base/payment.py:445 #, python-brace-format msgid "" "We recommend to enable this if you want your users to pay the payment fees " @@ -7014,11 +7042,11 @@ msgid "" "Don't forget to set the correct fees above!" msgstr "" -#: pretix/base/payment.py:451 +#: pretix/base/payment.py:453 msgid "Text on invoices" msgstr "" -#: pretix/base/payment.py:452 +#: pretix/base/payment.py:454 msgid "" "Will be printed just below the payment figures and above the closing text on " "invoices. This will only be used if the invoice is generated before the " @@ -7026,111 +7054,111 @@ msgid "" "stating that it has already been paid." msgstr "" -#: pretix/base/payment.py:461 +#: pretix/base/payment.py:463 msgid "Restrict to countries" msgstr "" -#: pretix/base/payment.py:463 +#: pretix/base/payment.py:465 msgid "" "Only allow choosing this payment provider for invoice addresses in the " "selected countries. If you don't select any country, all countries are " "allowed. This is only enabled if the invoice address is required." msgstr "" -#: pretix/base/payment.py:482 +#: pretix/base/payment.py:484 msgid "" "Only allow the usage of this payment provider in the selected sales channels." msgstr "" -#: pretix/base/payment.py:486 +#: pretix/base/payment.py:488 msgid "Hide payment method" msgstr "" -#: pretix/base/payment.py:489 +#: pretix/base/payment.py:491 msgid "" "The payment method will not be shown by default but only to people who enter " "the shop through a special link." msgstr "" -#: pretix/base/payment.py:495 +#: pretix/base/payment.py:497 msgid "Link to enable payment method" msgstr "" -#: pretix/base/payment.py:504 +#: pretix/base/payment.py:506 msgid "Share this link with customers who should use this payment method." msgstr "" -#: pretix/base/payment.py:509 +#: pretix/base/payment.py:511 msgid "Do not send a payment reminder mail" msgstr "" -#: pretix/base/payment.py:510 +#: pretix/base/payment.py:512 msgid "" "Users will not receive a reminder mail to pay for their order before it " "expires if they have chosen this payment method." msgstr "" -#: pretix/base/payment.py:557 +#: pretix/base/payment.py:559 msgctxt "invoice" msgid "The payment for this invoice has already been received." msgstr "" -#: pretix/base/payment.py:1022 +#: pretix/base/payment.py:1024 msgid "" "This payment is already being processed and can not be canceled any more." msgstr "" -#: pretix/base/payment.py:1036 +#: pretix/base/payment.py:1038 msgid "Automatic refunds are not supported by this payment provider." msgstr "" -#: pretix/base/payment.py:1127 +#: pretix/base/payment.py:1129 msgid "" "No payment is required as this order only includes products which are free " "of charge." msgstr "" -#: pretix/base/payment.py:1134 +#: pretix/base/payment.py:1136 msgid "Free of charge" msgstr "" -#: pretix/base/payment.py:1166 +#: pretix/base/payment.py:1168 msgid "Box office" msgstr "" -#: pretix/base/payment.py:1214 pretix/base/payment.py:1233 +#: pretix/base/payment.py:1216 pretix/base/payment.py:1235 #: pretix/plugins/manualpayment/apps.py:30 #: pretix/plugins/manualpayment/apps.py:33 #: pretix/plugins/manualpayment/apps.py:39 msgid "Manual payment" msgstr "" -#: pretix/base/payment.py:1219 pretix/plugins/banktransfer/payment.py:195 +#: pretix/base/payment.py:1221 pretix/plugins/banktransfer/payment.py:195 msgid "" "In test mode, you can just manually mark this order as paid in the backend " "after it has been created." msgstr "" -#: pretix/base/payment.py:1240 pretix/base/payment.py:1427 +#: pretix/base/payment.py:1242 pretix/base/payment.py:1458 #: pretix/plugins/banktransfer/payment.py:149 msgid "Payment method name" msgstr "" -#: pretix/base/payment.py:1244 +#: pretix/base/payment.py:1246 msgid "Payment process description during checkout" msgstr "" -#: pretix/base/payment.py:1245 +#: pretix/base/payment.py:1247 msgid "" "This text will be shown during checkout when the user selects this payment " "method. It should give a short explanation on this payment method." msgstr "" -#: pretix/base/payment.py:1250 +#: pretix/base/payment.py:1252 msgid "Payment process description in order confirmation emails" msgstr "" -#: pretix/base/payment.py:1251 +#: pretix/base/payment.py:1253 #, python-brace-format msgid "" "This text will be included for the {payment_info} placeholder in order " @@ -7139,11 +7167,11 @@ msgid "" "{amount_with_currency}." msgstr "" -#: pretix/base/payment.py:1258 +#: pretix/base/payment.py:1260 msgid "Payment process description for pending orders" msgstr "" -#: pretix/base/payment.py:1259 +#: pretix/base/payment.py:1261 #, python-brace-format msgid "" "This text will be shown on the order confirmation page for pending orders. " @@ -7151,38 +7179,38 @@ msgid "" "the placeholders {order}, {amount}, {currency} and {amount_with_currency}." msgstr "" -#: pretix/base/payment.py:1267 pretix/plugins/banktransfer/payment.py:144 +#: pretix/base/payment.py:1269 pretix/plugins/banktransfer/payment.py:144 msgid "" "Create an invoice for orders using bank transfer immediately if the event is " "otherwise configured to create invoices after payment is completed." msgstr "" -#: pretix/base/payment.py:1318 +#: pretix/base/payment.py:1320 msgid "Offsetting" msgstr "" -#: pretix/base/payment.py:1332 pretix/control/views/orders.py:1255 +#: pretix/base/payment.py:1334 pretix/control/views/orders.py:1256 msgid "You entered an order that could not be found." msgstr "" -#: pretix/base/payment.py:1361 +#: pretix/base/payment.py:1363 #, python-format msgid "Balanced against orders: %s" msgstr "" -#: pretix/base/payment.py:1433 +#: pretix/base/payment.py:1464 msgid "Payment method description" msgstr "" -#: pretix/base/payment.py:1463 +#: pretix/base/payment.py:1494 msgid "In test mode, only test cards will work." msgstr "" -#: pretix/base/payment.py:1593 +#: pretix/base/payment.py:1624 msgid "This gift card is not accepted by this event organizer." msgstr "" -#: pretix/base/payment.py:1595 +#: pretix/base/payment.py:1626 msgid "This gift card was used in the meantime. Please try again." msgstr "" @@ -7194,7 +7222,7 @@ msgstr "" msgid "Order position number" msgstr "" -#: pretix/base/pdf.py:123 pretix/control/forms/event.py:1777 +#: pretix/base/pdf.py:123 pretix/control/forms/event.py:1778 #: pretix/control/templates/pretixcontrol/items/index.html:38 msgid "Product name" msgstr "" @@ -7254,7 +7282,7 @@ msgid "Price including add-ons and bundled products" msgstr "" #: pretix/base/pdf.py:184 pretix/base/pdf.py:342 -#: pretix/base/services/invoices.py:487 +#: pretix/base/services/invoices.py:573 #: pretix/base/services/placeholders.py:571 #: pretix/base/services/placeholders.py:653 #: pretix/base/services/placeholders.py:669 @@ -7395,7 +7423,7 @@ msgstr "" msgid "Event location" msgstr "" -#: pretix/base/pdf.py:327 pretix/base/settings.py:1172 +#: pretix/base/pdf.py:327 pretix/base/settings.py:1201 msgid "Random City" msgstr "" @@ -7407,7 +7435,7 @@ msgstr "" msgid "12345" msgstr "" -#: pretix/base/pdf.py:362 pretix/base/services/invoices.py:490 +#: pretix/base/pdf.py:362 pretix/base/services/invoices.py:576 msgid "Sample city" msgstr "" @@ -7573,7 +7601,7 @@ msgstr "" #: pretix/base/pdf.py:666 pretix/base/pdf.py:673 #: pretix/plugins/badges/exporters.py:501 #: pretix/plugins/checkinlists/exporters.py:125 -#: pretix/plugins/checkinlists/exporters.py:498 +#: pretix/plugins/checkinlists/exporters.py:499 #: pretix/plugins/ticketoutputpdf/exporters.py:99 #, python-brace-format msgid "Attendee name: {part}" @@ -7593,24 +7621,24 @@ msgstr "" msgid "Your layout file is not a valid layout. Error message: {}" msgstr "" -#: pretix/base/plugins.py:136 +#: pretix/base/plugins.py:138 #: pretix/control/templates/pretixcontrol/event/quick_setup.html:132 msgid "Features" msgstr "" -#: pretix/base/plugins.py:138 +#: pretix/base/plugins.py:140 msgid "Integrations" msgstr "" -#: pretix/base/plugins.py:139 +#: pretix/base/plugins.py:141 msgid "Customizations" msgstr "" -#: pretix/base/plugins.py:140 +#: pretix/base/plugins.py:142 msgid "Output and export formats" msgstr "" -#: pretix/base/plugins.py:141 +#: pretix/base/plugins.py:143 msgid "API features" msgstr "" @@ -7673,7 +7701,7 @@ msgstr "" msgid "Event canceled" msgstr "" -#: pretix/base/services/cart.py:102 pretix/base/services/modelimport.py:235 +#: pretix/base/services/cart.py:102 pretix/base/services/modelimport.py:247 #: pretix/base/services/orders.py:155 msgid "" "We were not able to process your request completely as the server was too " @@ -7731,7 +7759,7 @@ msgid_plural "You cannot select more than %s items per order." msgstr[0] "" msgstr[1] "" -#: pretix/base/services/cart.py:131 pretix/base/services/orders.py:1598 +#: pretix/base/services/cart.py:131 pretix/base/services/orders.py:1628 #, python-format msgid "You cannot select more than %(max)s item of the product %(product)s." msgid_plural "" @@ -7739,7 +7767,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: pretix/base/services/cart.py:136 pretix/base/services/orders.py:1603 +#: pretix/base/services/cart.py:136 pretix/base/services/orders.py:1633 #, python-format msgid "You need to select at least %(min)s item of the product %(product)s." msgid_plural "" @@ -8139,34 +8167,34 @@ msgstr "" msgid "Czech National Bank" msgstr "" -#: pretix/base/services/export.py:86 pretix/base/services/export.py:157 -#: pretix/base/services/export.py:215 +#: pretix/base/services/export.py:91 pretix/base/services/export.py:166 +#: pretix/base/services/export.py:228 msgid "Your export did not contain any data." msgstr "" -#: pretix/base/services/export.py:151 +#: pretix/base/services/export.py:156 msgid "You do not have sufficient permission to perform this export." msgstr "" -#: pretix/base/services/export.py:189 +#: pretix/base/services/export.py:198 msgid "Export failed" msgstr "" -#: pretix/base/services/export.py:206 +#: pretix/base/services/export.py:215 msgid "Permission denied." msgstr "" -#: pretix/base/services/export.py:221 +#: pretix/base/services/export.py:234 msgid "Your exported data exceeded the size limit for scheduled exports." msgstr "" -#: pretix/base/services/invoices.py:109 +#: pretix/base/services/invoices.py:115 #, python-brace-format msgctxt "invoice" msgid "Please complete your payment before {expire_date}." msgstr "" -#: pretix/base/services/invoices.py:121 +#: pretix/base/services/invoices.py:127 #, python-brace-format msgctxt "invoice" msgid "" @@ -8177,51 +8205,51 @@ msgid "" "{country}" msgstr "" -#: pretix/base/services/invoices.py:229 pretix/base/services/invoices.py:266 +#: pretix/base/services/invoices.py:237 pretix/base/services/invoices.py:274 #, python-brace-format msgctxt "invoice" msgid "Event location: {location}" msgstr "" -#: pretix/base/services/invoices.py:245 +#: pretix/base/services/invoices.py:253 #, python-brace-format msgctxt "invoice" msgid "Attendee: {name}" msgstr "" -#: pretix/base/services/invoices.py:263 pretix/plugins/reports/exporters.py:309 +#: pretix/base/services/invoices.py:271 pretix/plugins/reports/exporters.py:309 #, python-brace-format msgctxt "subevent" msgid "Date: {}" msgstr "" -#: pretix/base/services/invoices.py:480 +#: pretix/base/services/invoices.py:566 msgid "A payment provider specific text might appear here." msgstr "" -#: pretix/base/services/invoices.py:488 +#: pretix/base/services/invoices.py:574 msgid "214th Example Street" msgstr "" -#: pretix/base/services/invoices.py:489 +#: pretix/base/services/invoices.py:575 msgid "012345" msgstr "" -#: pretix/base/services/invoices.py:506 +#: pretix/base/services/invoices.py:592 #, python-brace-format msgid "Sample product {}" msgstr "" -#: pretix/base/services/invoices.py:516 +#: pretix/base/services/invoices.py:602 msgid "Sample product A" msgstr "" -#: pretix/base/services/invoices.py:576 +#: pretix/base/services/invoices.py:662 #, python-brace-format msgid "New invoice: {number}" msgstr "" -#: pretix/base/services/invoices.py:578 +#: pretix/base/services/invoices.py:664 #, python-brace-format msgid "" "Hello,\n" @@ -8255,7 +8283,7 @@ msgstr "" msgid "You are receiving this email because you placed an order for {event}." msgstr "" -#: pretix/base/services/mail.py:492 +#: pretix/base/services/mail.py:494 msgctxt "attachment_filename" msgid "Calendar invite" msgstr "" @@ -8349,45 +8377,45 @@ msgid "" "different ticket at the same time." msgstr "" -#: pretix/base/services/modelimport.py:53 +#: pretix/base/services/modelimport.py:56 #, python-brace-format msgid "Error decoding special characters in your file: {message}" msgstr "" -#: pretix/base/services/modelimport.py:71 +#: pretix/base/services/modelimport.py:74 #, python-brace-format msgid "" "Error while importing value \"{value}\" for column \"{column}\" in line " "\"{line}\": {message}" msgstr "" -#: pretix/base/services/modelimport.py:89 -#: pretix/base/services/modelimport.py:137 pretix/base/services/orders.py:1607 +#: pretix/base/services/modelimport.py:92 +#: pretix/base/services/modelimport.py:140 pretix/base/services/orders.py:1637 #, python-format msgid "Orders cannot have more than %(max)s positions." msgstr "" -#: pretix/base/services/modelimport.py:113 +#: pretix/base/services/modelimport.py:116 #, python-format msgid "" "The grouping \"%(value)s\" occurs on non-consecutive lines (seen again on " "line %(row)s)." msgstr "" -#: pretix/base/services/modelimport.py:151 +#: pretix/base/services/modelimport.py:154 #, python-brace-format msgid "" "Inconsistent data in row {row}: Column {col} contains value \"{val_line}\", " "but for this order, the value has already been set to \"{val_order}\"." msgstr "" -#: pretix/base/services/modelimport.py:165 -#: pretix/base/services/modelimport.py:277 +#: pretix/base/services/modelimport.py:168 +#: pretix/base/services/modelimport.py:289 #, python-brace-format msgid "Invalid data in row {row}: {message}" msgstr "" -#: pretix/base/services/modelimport.py:258 +#: pretix/base/services/modelimport.py:270 msgid "A voucher cannot be created without a code." msgstr "" @@ -8506,121 +8534,121 @@ msgstr "" msgid "The order was not canceled." msgstr "" -#: pretix/base/services/orders.py:277 pretix/control/forms/orders.py:126 +#: pretix/base/services/orders.py:283 pretix/control/forms/orders.py:126 msgid "The new expiry date needs to be in the future." msgstr "" -#: pretix/base/services/orders.py:371 pretix/base/services/orders.py:463 +#: pretix/base/services/orders.py:383 pretix/base/services/orders.py:481 msgid "This order is not pending approval." msgstr "" -#: pretix/base/services/orders.py:525 pretix/presale/views/order.py:930 -#: pretix/presale/views/order.py:984 +#: pretix/base/services/orders.py:543 pretix/presale/views/order.py:953 +#: pretix/presale/views/order.py:1007 msgid "You cannot cancel this order." msgstr "" -#: pretix/base/services/orders.py:537 +#: pretix/base/services/orders.py:555 #, python-brace-format msgid "" "This order can not be canceled since the gift card {card} purchased in this " "order has already been redeemed." msgstr "" -#: pretix/base/services/orders.py:600 pretix/control/forms/orders.py:219 +#: pretix/base/services/orders.py:618 pretix/control/forms/orders.py:219 msgid "" "The cancellation fee cannot be higher than the total amount of this order." msgstr "" -#: pretix/base/services/orders.py:1000 +#: pretix/base/services/orders.py:1024 msgid "The selected payment methods do not cover the total balance." msgstr "" -#: pretix/base/services/orders.py:1068 +#: pretix/base/services/orders.py:1092 msgid "" "While trying to place your order, we noticed that the order total has " "changed. Either one of the prices changed just now, or a gift card you used " "has been used in the meantime. Please check the prices below and try again." msgstr "" -#: pretix/base/services/orders.py:1577 +#: pretix/base/services/orders.py:1607 msgid "You need to select a variation of the product." msgstr "" -#: pretix/base/services/orders.py:1578 +#: pretix/base/services/orders.py:1608 #, python-brace-format msgid "" "The quota {name} does not have enough capacity left to perform the operation." msgstr "" -#: pretix/base/services/orders.py:1579 +#: pretix/base/services/orders.py:1609 msgid "There is no quota defined that allows this operation." msgstr "" -#: pretix/base/services/orders.py:1580 +#: pretix/base/services/orders.py:1610 msgid "The selected product is not active or has no price set." msgstr "" -#: pretix/base/services/orders.py:1581 +#: pretix/base/services/orders.py:1611 msgid "" "This operation would leave the order empty. Please cancel the order itself " "instead." msgstr "" -#: pretix/base/services/orders.py:1583 +#: pretix/base/services/orders.py:1613 msgid "" "This operation would make the order free and therefore immediately paid, " "however no quota is available." msgstr "" -#: pretix/base/services/orders.py:1586 +#: pretix/base/services/orders.py:1616 msgid "" "This is an add-on product, please select the base position it should be " "added to." msgstr "" -#: pretix/base/services/orders.py:1587 +#: pretix/base/services/orders.py:1617 msgid "" "The selected base position does not allow you to add this product as an add-" "on." msgstr "" -#: pretix/base/services/orders.py:1588 +#: pretix/base/services/orders.py:1618 msgid "You need to choose a subevent for the new position." msgstr "" -#: pretix/base/services/orders.py:1591 +#: pretix/base/services/orders.py:1621 #, python-brace-format msgid "" "You selected seat \"{seat}\" for a date that does not match the selected " "ticket date. Please choose a seat again." msgstr "" -#: pretix/base/services/orders.py:1593 +#: pretix/base/services/orders.py:1623 msgid "The selected product requires you to select a seat." msgstr "" -#: pretix/base/services/orders.py:1594 +#: pretix/base/services/orders.py:1624 msgid "The selected product does not allow to select a seat." msgstr "" -#: pretix/base/services/orders.py:1595 +#: pretix/base/services/orders.py:1625 msgid "The selected country is blocked by your tax rule." msgstr "" -#: pretix/base/services/orders.py:1596 +#: pretix/base/services/orders.py:1626 msgid "" "You cannot change the price of a position that has been used to issue a gift " "card." msgstr "" -#: pretix/base/services/orders.py:2421 pretix/base/services/orders.py:2438 +#: pretix/base/services/orders.py:2451 pretix/base/services/orders.py:2468 #, python-brace-format msgid "" "A position can not be canceled since the gift card {card} purchased in this " "order has already been redeemed." msgstr "" -#: pretix/base/services/orders.py:3133 +#: pretix/base/services/orders.py:3182 msgid "" "There was an error while trying to send the money back to you. Please " "contact the event organizer for further information." @@ -8756,7 +8784,7 @@ msgstr "" msgid "Plugin: %s" msgstr "" -#: pretix/base/services/vouchers.py:56 pretix/control/logdisplay.py:579 +#: pretix/base/services/vouchers.py:56 pretix/control/logdisplay.py:580 #, python-brace-format msgid "The voucher has been sent to {recipient}." msgstr "" @@ -9129,7 +9157,7 @@ msgstr "" msgid "Only respected by some invoice renderers." msgstr "" -#: pretix/base/settings.py:744 pretix/base/settings.py:2959 +#: pretix/base/settings.py:744 pretix/base/settings.py:2988 #: pretix/control/templates/pretixcontrol/pdf/index.html:436 msgid "Font" msgstr "" @@ -9362,95 +9390,119 @@ msgstr "" msgid "Invoices will never be automatically generated for free orders." msgstr "" -#: pretix/base/settings.py:1107 +#: pretix/base/settings.py:1108 pretix/base/settings.py:1119 +msgid "" +"Automatic based on ticket-specific validity, membership validity, event " +"series date, or event date" +msgstr "" + +#: pretix/base/settings.py:1109 pretix/base/settings.py:1120 +msgid "Automatic, but prefer invoice date over event date" +msgstr "" + +#: pretix/base/settings.py:1112 pretix/base/settings.py:1123 +msgid "Invoice date" +msgstr "" + +#: pretix/base/settings.py:1116 +msgid "Date of service" +msgstr "" + +#: pretix/base/settings.py:1125 +msgid "" +"This controls what dates are shown on the invoice, but is especially " +"important for electronic invoicing." +msgstr "" + +#: pretix/base/settings.py:1136 msgid "Automatically cancel and reissue invoice on address changes" msgstr "" -#: pretix/base/settings.py:1108 +#: pretix/base/settings.py:1137 msgid "" "If customers change their invoice address on an existing order, the invoice " "will automatically be canceled and a new invoice will be issued. This " "setting does not affect changes made through the backend." msgstr "" -#: pretix/base/settings.py:1119 +#: pretix/base/settings.py:1148 msgid "Allow to update existing invoices" msgstr "" -#: pretix/base/settings.py:1120 +#: pretix/base/settings.py:1149 msgid "" "By default, invoices can never again be changed once they are issued. In " "most countries, we recommend to leave this option turned off and always " "issue a new invoice if a change needs to be made." msgstr "" -#: pretix/base/settings.py:1135 +#: pretix/base/settings.py:1164 msgid "Address line" msgstr "" -#: pretix/base/settings.py:1139 +#: pretix/base/settings.py:1168 msgid "Albert Einstein Road 52" msgstr "" -#: pretix/base/settings.py:1191 +#: pretix/base/settings.py:1220 msgid "Domestic tax ID" msgstr "" -#: pretix/base/settings.py:1192 +#: pretix/base/settings.py:1221 msgid "e.g. tax number in Germany, ABN in Australia, …" msgstr "" -#: pretix/base/settings.py:1201 +#: pretix/base/settings.py:1230 msgid "EU VAT ID" msgstr "" -#: pretix/base/settings.py:1214 +#: pretix/base/settings.py:1243 msgid "e.g. With this document, we sent you the invoice for your ticket order." msgstr "" -#: pretix/base/settings.py:1217 +#: pretix/base/settings.py:1246 msgid "Introductory text" msgstr "" -#: pretix/base/settings.py:1218 +#: pretix/base/settings.py:1247 msgid "Will be printed on every invoice above the invoice rows." msgstr "" -#: pretix/base/settings.py:1231 +#: pretix/base/settings.py:1260 msgid "" "e.g. Thank you for your purchase! You can find more information on the event " "at ..." msgstr "" -#: pretix/base/settings.py:1234 +#: pretix/base/settings.py:1263 msgid "Additional text" msgstr "" -#: pretix/base/settings.py:1235 +#: pretix/base/settings.py:1264 msgid "Will be printed on every invoice below the invoice total." msgstr "" -#: pretix/base/settings.py:1248 +#: pretix/base/settings.py:1277 msgid "" "e.g. your bank details, legal details like your VAT ID, registration " "numbers, etc." msgstr "" -#: pretix/base/settings.py:1251 +#: pretix/base/settings.py:1280 msgid "Footer" msgstr "" -#: pretix/base/settings.py:1252 +#: pretix/base/settings.py:1281 msgid "" "Will be printed centered and in a smaller font at the end of every invoice " "page." msgstr "" -#: pretix/base/settings.py:1265 +#: pretix/base/settings.py:1294 msgid "Attach invoices to emails" msgstr "" -#: pretix/base/settings.py:1266 +#: pretix/base/settings.py:1295 msgid "" "If invoices are automatically generated for all orders, they will be " "attached to the order confirmation mail. If they are automatically generated " @@ -9458,39 +9510,39 @@ msgid "" "are not automatically generated, they will not be attached to emails." msgstr "" -#: pretix/base/settings.py:1278 +#: pretix/base/settings.py:1307 msgid "Email address to receive a copy of each invoice" msgstr "" -#: pretix/base/settings.py:1279 +#: pretix/base/settings.py:1308 msgid "" "Each newly created invoice will be sent to this email address shortly after " "creation. You can use this for an automated import of invoices to your " "accounting system. The invoice will be the only attachment of the email." msgstr "" -#: pretix/base/settings.py:1294 +#: pretix/base/settings.py:1323 msgid "Show items outside presale period" msgstr "" -#: pretix/base/settings.py:1295 +#: pretix/base/settings.py:1324 msgid "" "Show item details before presale has started and after presale has ended" msgstr "" -#: pretix/base/settings.py:1315 +#: pretix/base/settings.py:1344 msgid "Available languages" msgstr "" -#: pretix/base/settings.py:1331 pretix/control/forms/event.py:139 +#: pretix/base/settings.py:1360 pretix/control/forms/event.py:139 msgid "Default language" msgstr "" -#: pretix/base/settings.py:1341 +#: pretix/base/settings.py:1370 msgid "Region" msgstr "" -#: pretix/base/settings.py:1342 +#: pretix/base/settings.py:1371 msgid "" "Will be used to determine date and time formatting as well as default " "country for customer addresses and phone numbers. For formatting, this takes " @@ -9498,11 +9550,11 @@ msgid "" "languages used in different regions globally (like English)." msgstr "" -#: pretix/base/settings.py:1354 +#: pretix/base/settings.py:1383 msgid "This shop represents an event" msgstr "" -#: pretix/base/settings.py:1356 +#: pretix/base/settings.py:1385 msgid "" "Uncheck this box if you are only selling something that has no specific " "date, such as gift cards or a ticket that can be used any time. The system " @@ -9511,45 +9563,45 @@ msgid "" "may still show up in other places." msgstr "" -#: pretix/base/settings.py:1369 +#: pretix/base/settings.py:1398 msgid "Show event end date" msgstr "" -#: pretix/base/settings.py:1370 +#: pretix/base/settings.py:1399 msgid "If disabled, only event's start date will be displayed to the public." msgstr "" -#: pretix/base/settings.py:1379 +#: pretix/base/settings.py:1408 msgid "Show dates with time" msgstr "" -#: pretix/base/settings.py:1380 +#: pretix/base/settings.py:1409 msgid "" "If disabled, the event's start and end date will be displayed without the " "time of day." msgstr "" -#: pretix/base/settings.py:1389 +#: pretix/base/settings.py:1418 msgid "Hide all products that are sold out" msgstr "" -#: pretix/base/settings.py:1399 pretix/control/forms/event.py:1691 +#: pretix/base/settings.py:1428 pretix/control/forms/event.py:1692 msgid "Publicly show how many tickets of a certain type are still available." msgstr "" -#: pretix/base/settings.py:1408 +#: pretix/base/settings.py:1437 msgid "Ask search engines not to index the ticket shop" msgstr "" -#: pretix/base/settings.py:1417 +#: pretix/base/settings.py:1446 msgid "Show variations of a product expanded by default" msgstr "" -#: pretix/base/settings.py:1426 +#: pretix/base/settings.py:1455 msgid "Enable waiting list" msgstr "" -#: pretix/base/settings.py:1427 pretix/control/forms/event.py:1696 +#: pretix/base/settings.py:1456 pretix/control/forms/event.py:1697 msgid "" "Once a ticket is sold out, people can add themselves to a waiting list. As " "soon as a ticket becomes available again, it will be reserved for the first " @@ -9557,11 +9609,11 @@ msgid "" "notification with a voucher that can be used to buy a ticket." msgstr "" -#: pretix/base/settings.py:1438 +#: pretix/base/settings.py:1467 msgid "Automatic waiting list assignments" msgstr "" -#: pretix/base/settings.py:1439 +#: pretix/base/settings.py:1468 msgid "" "If ticket capacity becomes free, automatically create a voucher and send it " "to the first person on the waiting list for that product. If this is not " @@ -9570,22 +9622,22 @@ msgid "" "enabled, tickets will still be sent out." msgstr "" -#: pretix/base/settings.py:1455 +#: pretix/base/settings.py:1484 msgid "Waiting list response time" msgstr "" -#: pretix/base/settings.py:1458 +#: pretix/base/settings.py:1487 msgid "" "If a ticket voucher is sent to a person on the waiting list, it has to be " "redeemed within this number of hours until it expires and can be re-assigned " "to the next person on the list." msgstr "" -#: pretix/base/settings.py:1469 +#: pretix/base/settings.py:1498 msgid "Disable waiting list" msgstr "" -#: pretix/base/settings.py:1470 +#: pretix/base/settings.py:1499 msgid "" "The waiting list will be fully disabled after this date. This means that " "nobody can add themselves to the waiting list any more, but also that " @@ -9594,53 +9646,53 @@ msgid "" "remain active." msgstr "" -#: pretix/base/settings.py:1482 +#: pretix/base/settings.py:1511 msgid "Ask for a name" msgstr "" -#: pretix/base/settings.py:1483 +#: pretix/base/settings.py:1512 msgid "Ask for a name when signing up to the waiting list." msgstr "" -#: pretix/base/settings.py:1492 +#: pretix/base/settings.py:1521 msgid "Require name" msgstr "" -#: pretix/base/settings.py:1493 +#: pretix/base/settings.py:1522 msgid "Require a name when signing up to the waiting list.." msgstr "" -#: pretix/base/settings.py:1503 +#: pretix/base/settings.py:1532 msgid "Ask for a phone number" msgstr "" -#: pretix/base/settings.py:1504 +#: pretix/base/settings.py:1533 msgid "Ask for a phone number when signing up to the waiting list." msgstr "" -#: pretix/base/settings.py:1513 +#: pretix/base/settings.py:1542 msgid "Require phone number" msgstr "" -#: pretix/base/settings.py:1514 +#: pretix/base/settings.py:1543 msgid "Require a phone number when signing up to the waiting list.." msgstr "" -#: pretix/base/settings.py:1524 +#: pretix/base/settings.py:1553 msgid "Phone number explanation" msgstr "" -#: pretix/base/settings.py:1527 +#: pretix/base/settings.py:1556 msgid "" "If you ask for a phone number, explain why you do so and what you will use " "the phone number for." msgstr "" -#: pretix/base/settings.py:1539 +#: pretix/base/settings.py:1568 msgid "Maximum number of entries per email address for the same product" msgstr "" -#: pretix/base/settings.py:1543 +#: pretix/base/settings.py:1572 msgid "" "With an increased limit, a customer may request more than one ticket for a " "specific product using the same, unique email address. However, regardless " @@ -9649,11 +9701,11 @@ msgid "" "ticket at a time." msgstr "" -#: pretix/base/settings.py:1555 +#: pretix/base/settings.py:1584 msgid "Show number of check-ins to customer" msgstr "" -#: pretix/base/settings.py:1556 +#: pretix/base/settings.py:1585 msgid "" "With this option enabled, your customers will be able to see how many times " "they entered the event. This is usually not necessary, but might be useful " @@ -9663,62 +9715,62 @@ msgid "" "check-in lists." msgstr "" -#: pretix/base/settings.py:1569 +#: pretix/base/settings.py:1598 msgid "Allow users to download tickets" msgstr "" -#: pretix/base/settings.py:1570 +#: pretix/base/settings.py:1599 msgid "If this is off, nobody can download a ticket." msgstr "" -#: pretix/base/settings.py:1579 +#: pretix/base/settings.py:1608 msgid "Download date" msgstr "" -#: pretix/base/settings.py:1580 +#: pretix/base/settings.py:1609 msgid "" "Ticket download will be offered after this date. If you use the event series " "feature and an order contains tickets for multiple event dates, download of " "all tickets will be available if at least one of the event dates allows it." msgstr "" -#: pretix/base/settings.py:1591 +#: pretix/base/settings.py:1620 msgid "Generate tickets for add-on products and bundled products" msgstr "" -#: pretix/base/settings.py:1592 +#: pretix/base/settings.py:1621 msgid "" "By default, tickets are only issued for products selected individually, not " "for add-on products or bundled products. With this option, a separate ticket " "is issued for every add-on product or bundled product as well." msgstr "" -#: pretix/base/settings.py:1605 +#: pretix/base/settings.py:1634 msgid "Generate tickets for all products" msgstr "" -#: pretix/base/settings.py:1606 +#: pretix/base/settings.py:1635 msgid "" "If turned off, tickets are only issued for products that are marked as an " "\"admission ticket\"in the product settings. You can also turn off ticket " "issuing in every product separately." msgstr "" -#: pretix/base/settings.py:1618 +#: pretix/base/settings.py:1647 msgid "Generate tickets for pending orders" msgstr "" -#: pretix/base/settings.py:1619 +#: pretix/base/settings.py:1648 msgid "" "If turned off, ticket downloads are only possible after an order has been " "marked as paid." msgstr "" -#: pretix/base/settings.py:1630 +#: pretix/base/settings.py:1659 msgid "Do not issue ticket before email address is validated" msgstr "" -#: pretix/base/settings.py:1631 +#: pretix/base/settings.py:1660 msgid "" "If turned on, tickets will not be offered for download directly after " "purchase. They will be attached to the payment confirmation email (if the " @@ -9727,11 +9779,11 @@ msgid "" "orders performed through other sales channels." msgstr "" -#: pretix/base/settings.py:1647 +#: pretix/base/settings.py:1676 msgid "Low availability threshold" msgstr "" -#: pretix/base/settings.py:1648 +#: pretix/base/settings.py:1677 msgid "" "If the availability of tickets falls below this percentage, the event (or a " "date, if it is an event series) will be highlighted to have low availability " @@ -9739,95 +9791,95 @@ msgid "" "availability will not be shown publicly." msgstr "" -#: pretix/base/settings.py:1662 +#: pretix/base/settings.py:1691 msgid "Show availability in event overviews" msgstr "" -#: pretix/base/settings.py:1663 +#: pretix/base/settings.py:1692 msgid "" "If checked, the list of events will show if events are sold out. This might " "make for longer page loading times if you have lots of events and the shown " "status might be out of date for up to two minutes." msgstr "" -#: pretix/base/settings.py:1676 pretix/base/settings.py:1684 +#: pretix/base/settings.py:1705 pretix/base/settings.py:1713 #: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:8 msgid "List" msgstr "" -#: pretix/base/settings.py:1677 pretix/base/settings.py:1685 +#: pretix/base/settings.py:1706 pretix/base/settings.py:1714 msgid "Week calendar" msgstr "" -#: pretix/base/settings.py:1678 pretix/base/settings.py:1686 +#: pretix/base/settings.py:1707 pretix/base/settings.py:1715 msgid "Month calendar" msgstr "" -#: pretix/base/settings.py:1682 +#: pretix/base/settings.py:1711 msgid "Default overview style" msgstr "" -#: pretix/base/settings.py:1688 +#: pretix/base/settings.py:1717 msgid "" "If your event series has more than 50 dates in the future, only the month or " "week calendar can be used." msgstr "" -#: pretix/base/settings.py:1697 +#: pretix/base/settings.py:1726 msgid "Show filter options for calendar or list view" msgstr "" -#: pretix/base/settings.py:1698 +#: pretix/base/settings.py:1727 msgid "" "You can set up possible filters as meta properties in your organizer " "settings." msgstr "" -#: pretix/base/settings.py:1707 +#: pretix/base/settings.py:1736 msgid "Hide all unavailable dates from calendar or list views" msgstr "" -#: pretix/base/settings.py:1708 pretix/base/settings.py:1719 +#: pretix/base/settings.py:1737 pretix/base/settings.py:1748 msgid "" "This option currently only affects the calendar of this event series, not " "the organizer-wide calendar." msgstr "" -#: pretix/base/settings.py:1718 +#: pretix/base/settings.py:1747 msgid "Hide all past dates from calendar" msgstr "" -#: pretix/base/settings.py:1730 pretix/base/settings.py:1739 +#: pretix/base/settings.py:1759 pretix/base/settings.py:1768 msgid "No modifications after order was submitted" msgstr "" -#: pretix/base/settings.py:1731 pretix/base/settings.py:1740 +#: pretix/base/settings.py:1760 pretix/base/settings.py:1769 msgid "Only the person who ordered can make changes" msgstr "" -#: pretix/base/settings.py:1732 pretix/base/settings.py:1741 +#: pretix/base/settings.py:1761 pretix/base/settings.py:1770 msgid "Both the attendee and the person who ordered can make changes" msgstr "" -#: pretix/base/settings.py:1736 +#: pretix/base/settings.py:1765 msgid "Allow customers to modify their information" msgstr "" -#: pretix/base/settings.py:1751 +#: pretix/base/settings.py:1780 msgid "Allow customers to modify their information after they checked in." msgstr "" -#: pretix/base/settings.py:1752 +#: pretix/base/settings.py:1781 msgid "" "By default, no more modifications are possible for an order as soon as one " "of the tickets in the order has been checked in." msgstr "" -#: pretix/base/settings.py:1762 +#: pretix/base/settings.py:1791 msgid "Last date of modifications" msgstr "" -#: pretix/base/settings.py:1763 +#: pretix/base/settings.py:1792 msgid "" "The last date users can modify details of their orders, such as attendee " "names or answers to questions. If you use the event series feature and an " @@ -9835,53 +9887,53 @@ msgid "" "used." msgstr "" -#: pretix/base/settings.py:1774 +#: pretix/base/settings.py:1803 msgid "Customers can change the variation of the products they purchased" msgstr "" -#: pretix/base/settings.py:1783 +#: pretix/base/settings.py:1812 msgid "Customers can change their selected add-on products" msgstr "" -#: pretix/base/settings.py:1793 pretix/base/settings.py:1804 +#: pretix/base/settings.py:1822 pretix/base/settings.py:1833 msgid "" "Only allow changes if the resulting price is higher or equal than the " "previous price." msgstr "" -#: pretix/base/settings.py:1794 pretix/base/settings.py:1805 +#: pretix/base/settings.py:1823 pretix/base/settings.py:1834 msgid "" "Only allow changes if the resulting price is higher than the previous price." msgstr "" -#: pretix/base/settings.py:1795 pretix/base/settings.py:1806 +#: pretix/base/settings.py:1824 pretix/base/settings.py:1835 msgid "" "Only allow changes if the resulting price is equal to the previous price." msgstr "" -#: pretix/base/settings.py:1796 pretix/base/settings.py:1807 +#: pretix/base/settings.py:1825 pretix/base/settings.py:1836 msgid "" "Allow changes regardless of price, as long as no refund is required (i.e. " "the resulting price is not lower than what has already been paid)." msgstr "" -#: pretix/base/settings.py:1798 pretix/base/settings.py:1809 +#: pretix/base/settings.py:1827 pretix/base/settings.py:1838 msgid "Allow changes regardless of price, even if this results in a refund." msgstr "" -#: pretix/base/settings.py:1802 +#: pretix/base/settings.py:1831 msgid "Requirement for changed prices" msgstr "" -#: pretix/base/settings.py:1820 +#: pretix/base/settings.py:1849 msgid "Do not allow changes after" msgstr "" -#: pretix/base/settings.py:1829 +#: pretix/base/settings.py:1858 msgid "Allow change even though the ticket has already been checked in" msgstr "" -#: pretix/base/settings.py:1830 +#: pretix/base/settings.py:1859 msgid "" "By default, order changes are disabled after any ticket in the order has " "been checked in. If you check this box, this requirement is lifted. It is " @@ -9890,11 +9942,11 @@ msgid "" "limitation on price changes above." msgstr "" -#: pretix/base/settings.py:1842 +#: pretix/base/settings.py:1871 msgid "Allow individual attendees to change their ticket" msgstr "" -#: pretix/base/settings.py:1843 +#: pretix/base/settings.py:1872 msgid "" "By default, only the person who ordered the tickets can make any changes. If " "you check this box, individual attendees can also make changes. However, " @@ -9903,77 +9955,77 @@ msgid "" "customer." msgstr "" -#: pretix/base/settings.py:1855 +#: pretix/base/settings.py:1884 msgid "Customers can cancel their unpaid orders" msgstr "" -#: pretix/base/settings.py:1867 +#: pretix/base/settings.py:1896 msgid "Charge a fixed cancellation fee" msgstr "" -#: pretix/base/settings.py:1868 pretix/base/settings.py:1879 -#: pretix/base/settings.py:1893 +#: pretix/base/settings.py:1897 pretix/base/settings.py:1908 +#: pretix/base/settings.py:1922 msgid "" "Only affects orders pending payments, a cancellation fee for free orders is " "never charged. Note that it will be your responsibility to claim the " "cancellation fee from the user." msgstr "" -#: pretix/base/settings.py:1878 +#: pretix/base/settings.py:1907 msgid "Charge payment, shipping and service fees" msgstr "" -#: pretix/base/settings.py:1892 +#: pretix/base/settings.py:1921 msgid "Charge a percentual cancellation fee" msgstr "" -#: pretix/base/settings.py:1903 pretix/base/settings.py:2042 +#: pretix/base/settings.py:1932 pretix/base/settings.py:2071 msgid "Do not allow cancellations after" msgstr "" -#: pretix/base/settings.py:1912 +#: pretix/base/settings.py:1941 msgid "Customers can cancel their paid orders" msgstr "" -#: pretix/base/settings.py:1913 +#: pretix/base/settings.py:1942 msgid "" "Paid money will be automatically paid back if the payment method allows it. " "Otherwise, a manual refund will be created for you to process manually." msgstr "" -#: pretix/base/settings.py:1926 pretix/control/forms/orders.py:909 +#: pretix/base/settings.py:1955 pretix/control/forms/orders.py:909 msgid "Keep a fixed cancellation fee" msgstr "" -#: pretix/base/settings.py:1935 +#: pretix/base/settings.py:1964 msgid "Keep payment, shipping and service fees" msgstr "" -#: pretix/base/settings.py:1947 pretix/control/forms/orders.py:920 +#: pretix/base/settings.py:1976 pretix/control/forms/orders.py:920 msgid "Keep a percentual cancellation fee" msgstr "" -#: pretix/base/settings.py:1956 +#: pretix/base/settings.py:1985 msgid "Allow customers to voluntarily choose a lower refund" msgstr "" -#: pretix/base/settings.py:1957 +#: pretix/base/settings.py:1986 msgid "" "With this option enabled, your customers can choose to get a smaller refund " "to support you." msgstr "" -#: pretix/base/settings.py:1962 +#: pretix/base/settings.py:1991 msgid "" "However, if you want us to help keep the lights on here, please consider " "using the slider below to request a smaller refund. Thank you!" msgstr "" -#: pretix/base/settings.py:1969 +#: pretix/base/settings.py:1998 msgid "Voluntary lower refund explanation" msgstr "" -#: pretix/base/settings.py:1972 +#: pretix/base/settings.py:2001 msgid "" "This text will be shown in between the explanation of how the refunds work " "and the slider which your customers can use to choose the amount they would " @@ -9981,107 +10033,107 @@ msgid "" "help your organization." msgstr "" -#: pretix/base/settings.py:1987 +#: pretix/base/settings.py:2016 msgid "Step size for reduction amount" msgstr "" -#: pretix/base/settings.py:1988 +#: pretix/base/settings.py:2017 msgid "" "By default, customers can choose an arbitrary amount for you to keep. If you " "set this to e.g. 10, they will only be able to choose values in increments " "of 10." msgstr "" -#: pretix/base/settings.py:1998 +#: pretix/base/settings.py:2027 msgid "" "Customers can only request a cancellation that needs to be approved by the " "event organizer before the order is canceled and a refund is issued." msgstr "" -#: pretix/base/settings.py:2008 +#: pretix/base/settings.py:2037 msgid "" "Do not show the cancellation fee to users when they request cancellation." msgstr "" -#: pretix/base/settings.py:2017 pretix/base/settings.py:2027 +#: pretix/base/settings.py:2046 pretix/base/settings.py:2056 msgid "All refunds are issued to the original payment method" msgstr "" -#: pretix/base/settings.py:2018 pretix/base/settings.py:2028 +#: pretix/base/settings.py:2047 pretix/base/settings.py:2057 msgid "" "Customers can choose between a gift card and a refund to their payment method" msgstr "" -#: pretix/base/settings.py:2019 pretix/base/settings.py:2029 +#: pretix/base/settings.py:2048 pretix/base/settings.py:2058 msgid "All refunds are issued as gift cards" msgstr "" -#: pretix/base/settings.py:2020 pretix/base/settings.py:2030 +#: pretix/base/settings.py:2049 pretix/base/settings.py:2059 msgid "Do not handle refunds automatically at all" msgstr "" -#: pretix/base/settings.py:2025 +#: pretix/base/settings.py:2054 #: pretix/control/templates/pretixcontrol/order/index.html:149 msgid "Refund method" msgstr "" -#: pretix/base/settings.py:2051 pretix/base/settings.py:2064 +#: pretix/base/settings.py:2080 pretix/base/settings.py:2093 msgid "Terms of cancellation" msgstr "" -#: pretix/base/settings.py:2054 +#: pretix/base/settings.py:2083 msgid "" "This text will be shown when cancellation is allowed for a paid order. Leave " "empty if you want pretix to automatically generate the terms of cancellation " "based on your settings." msgstr "" -#: pretix/base/settings.py:2067 +#: pretix/base/settings.py:2096 msgid "" "This text will be shown when cancellation is allowed for an unpaid or free " "order. Leave empty if you want pretix to automatically generate the terms of " "cancellation based on your settings." msgstr "" -#: pretix/base/settings.py:2077 pretix/control/forms/event.py:1719 +#: pretix/base/settings.py:2106 pretix/control/forms/event.py:1720 msgid "Contact address" msgstr "" -#: pretix/base/settings.py:2078 pretix/control/forms/event.py:1721 +#: pretix/base/settings.py:2107 pretix/control/forms/event.py:1722 msgid "We'll show this publicly to allow attendees to contact you." msgstr "" -#: pretix/base/settings.py:2086 pretix/control/forms/event.py:1713 +#: pretix/base/settings.py:2115 pretix/control/forms/event.py:1714 msgid "Imprint URL" msgstr "" -#: pretix/base/settings.py:2087 pretix/control/forms/event.py:1714 +#: pretix/base/settings.py:2116 pretix/control/forms/event.py:1715 msgid "" "This should point e.g. to a part of your website that has your contact " "details and legal information." msgstr "" -#: pretix/base/settings.py:2097 +#: pretix/base/settings.py:2126 msgid "Privacy Policy URL" msgstr "" -#: pretix/base/settings.py:2098 +#: pretix/base/settings.py:2127 msgid "" "This should point e.g. to a part of your website that explains how you use " "data gathered in your ticket shop." msgstr "" -#: pretix/base/settings.py:2109 +#: pretix/base/settings.py:2138 msgid "Accessibility information URL" msgstr "" -#: pretix/base/settings.py:2110 +#: pretix/base/settings.py:2139 msgid "" "This should point e.g. to a part of your website that explains how your " "ticket shop complies with accessibility regulation." msgstr "" -#: pretix/base/settings.py:2117 +#: pretix/base/settings.py:2146 #: pretix/presale/templates/pretixpresale/event/base.html:228 #: pretix/presale/templates/pretixpresale/event/base.html:233 #: pretix/presale/templates/pretixpresale/organizers/accessibility.html:6 @@ -10090,52 +10142,52 @@ msgstr "" msgid "Accessibility information" msgstr "" -#: pretix/base/settings.py:2121 +#: pretix/base/settings.py:2150 msgid "Accessibility information title" msgstr "" -#: pretix/base/settings.py:2131 +#: pretix/base/settings.py:2160 msgid "Accessibility information text" msgstr "" -#: pretix/base/settings.py:2152 +#: pretix/base/settings.py:2181 msgid "Attach ticket files" msgstr "" -#: pretix/base/settings.py:2154 +#: pretix/base/settings.py:2183 #, python-brace-format msgid "" "Tickets will never be attached if they're larger than {size} to avoid email " "delivery problems." msgstr "" -#: pretix/base/settings.py:2165 pretix/plugins/sendmail/forms.py:201 +#: pretix/base/settings.py:2194 pretix/plugins/sendmail/forms.py:201 #: pretix/plugins/sendmail/models.py:270 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:66 msgid "Attach calendar files" msgstr "" -#: pretix/base/settings.py:2166 +#: pretix/base/settings.py:2195 msgid "" "If enabled, we will attach an .ics calendar file to order confirmation " "emails." msgstr "" -#: pretix/base/settings.py:2175 +#: pretix/base/settings.py:2204 msgid "Attach calendar files only after order has been paid" msgstr "" -#: pretix/base/settings.py:2176 +#: pretix/base/settings.py:2205 msgid "" "Use this if you e.g. put a private access link into the calendar file to " "make sure people only receive it after their payment was confirmed." msgstr "" -#: pretix/base/settings.py:2185 +#: pretix/base/settings.py:2214 msgid "Event description" msgstr "" -#: pretix/base/settings.py:2188 +#: pretix/base/settings.py:2217 msgid "" "You can use this to share information with your attendees, such as travel " "information or the link to a digital event. If you keep it empty, we will " @@ -10145,52 +10197,52 @@ msgid "" "people." msgstr "" -#: pretix/base/settings.py:2201 +#: pretix/base/settings.py:2230 msgid "Subject prefix" msgstr "" -#: pretix/base/settings.py:2202 +#: pretix/base/settings.py:2231 msgid "" "This will be prepended to the subject of all outgoing emails, formatted as " "[prefix]. Choose, for example, a short form of your event name." msgstr "" -#: pretix/base/settings.py:2216 pretix/control/forms/mailsetup.py:37 +#: pretix/base/settings.py:2245 pretix/control/forms/mailsetup.py:37 #: pretix/control/forms/mailsetup.py:119 #: pretix/control/templates/pretixcontrol/event/mail.html:39 #: pretix/control/templates/pretixcontrol/organizers/mail.html:40 msgid "Sender address" msgstr "" -#: pretix/base/settings.py:2217 pretix/control/forms/mailsetup.py:38 +#: pretix/base/settings.py:2246 pretix/control/forms/mailsetup.py:38 #: pretix/control/forms/mailsetup.py:120 msgid "Sender address for outgoing emails" msgstr "" -#: pretix/base/settings.py:2226 +#: pretix/base/settings.py:2255 msgid "Sender name" msgstr "" -#: pretix/base/settings.py:2227 +#: pretix/base/settings.py:2256 msgid "" "Sender name used in conjunction with the sender address for outgoing emails. " "Defaults to your event name." msgstr "" -#: pretix/base/settings.py:2245 pretix/base/settings.py:2302 -#: pretix/base/settings.py:2319 pretix/base/settings.py:2337 +#: pretix/base/settings.py:2274 pretix/base/settings.py:2331 +#: pretix/base/settings.py:2348 pretix/base/settings.py:2366 #, python-brace-format msgid "Your order: {code}" msgstr "" -#: pretix/base/settings.py:2249 pretix/base/settings.py:2282 -#: pretix/base/settings.py:2387 pretix/base/settings.py:2620 -#: pretix/base/settings.py:2657 +#: pretix/base/settings.py:2278 pretix/base/settings.py:2311 +#: pretix/base/settings.py:2416 pretix/base/settings.py:2649 +#: pretix/base/settings.py:2686 #, python-brace-format msgid "Your event registration: {code}" msgstr "" -#: pretix/base/settings.py:2253 +#: pretix/base/settings.py:2282 #, python-brace-format msgid "" "Hello,\n" @@ -10205,12 +10257,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2266 +#: pretix/base/settings.py:2295 #, python-brace-format msgid "Your orders for {event}" msgstr "" -#: pretix/base/settings.py:2270 +#: pretix/base/settings.py:2299 #, python-brace-format msgid "" "Hello,\n" @@ -10224,7 +10276,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2286 +#: pretix/base/settings.py:2315 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -10238,7 +10290,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2306 +#: pretix/base/settings.py:2335 #, python-brace-format msgid "" "Hello,\n" @@ -10253,7 +10305,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2323 +#: pretix/base/settings.py:2352 #, python-brace-format msgid "" "Hello,\n" @@ -10269,7 +10321,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2341 +#: pretix/base/settings.py:2370 #, python-brace-format msgid "" "Hello,\n" @@ -10287,11 +10339,11 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2359 +#: pretix/base/settings.py:2388 msgid "Attachment for new orders" msgstr "" -#: pretix/base/settings.py:2364 +#: pretix/base/settings.py:2393 #, python-brace-format msgid "" "This file will be attached to the first email that we send for every new " @@ -10303,7 +10355,7 @@ msgid "" "vital email going to spam, you can only upload PDF files of up to {size} MB." msgstr "" -#: pretix/base/settings.py:2391 +#: pretix/base/settings.py:2420 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -10317,12 +10369,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2403 +#: pretix/base/settings.py:2432 #, python-brace-format msgid "Your order has been changed: {code}" msgstr "" -#: pretix/base/settings.py:2407 +#: pretix/base/settings.py:2436 #, python-brace-format msgid "" "Hello,\n" @@ -10336,12 +10388,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2419 +#: pretix/base/settings.py:2448 #, python-brace-format msgid "Payment received for your order: {code}" msgstr "" -#: pretix/base/settings.py:2423 +#: pretix/base/settings.py:2452 #, python-brace-format msgid "" "Hello,\n" @@ -10357,12 +10409,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2441 +#: pretix/base/settings.py:2470 #, python-brace-format msgid "Event registration confirmed: {code}" msgstr "" -#: pretix/base/settings.py:2445 +#: pretix/base/settings.py:2474 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -10376,23 +10428,23 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2462 pretix/control/forms/event.py:1129 -#: pretix/control/forms/event.py:1243 pretix/plugins/sendmail/models.py:275 +#: pretix/base/settings.py:2491 pretix/control/forms/event.py:1130 +#: pretix/control/forms/event.py:1244 pretix/plugins/sendmail/models.py:275 msgid "Number of days" msgstr "" -#: pretix/base/settings.py:2464 pretix/control/forms/event.py:1132 +#: pretix/base/settings.py:2493 pretix/control/forms/event.py:1133 msgid "" "This email will be sent out this many days before the order expires. If the " "value is 0, the mail will never be sent." msgstr "" -#: pretix/base/settings.py:2472 +#: pretix/base/settings.py:2501 #, python-brace-format msgid "Your order is about to expire: {code}" msgstr "" -#: pretix/base/settings.py:2476 +#: pretix/base/settings.py:2505 #, python-brace-format msgid "" "Hello,\n" @@ -10408,12 +10460,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2490 +#: pretix/base/settings.py:2519 #, python-brace-format msgid "Your order is pending payment: {code}" msgstr "" -#: pretix/base/settings.py:2494 +#: pretix/base/settings.py:2523 #, python-brace-format msgid "" "Hello,\n" @@ -10428,12 +10480,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2507 +#: pretix/base/settings.py:2536 #, python-brace-format msgid "Incomplete payment received: {code}" msgstr "" -#: pretix/base/settings.py:2511 +#: pretix/base/settings.py:2540 #, python-brace-format msgid "" "Hello,\n" @@ -10451,12 +10503,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2527 +#: pretix/base/settings.py:2556 #, python-brace-format msgid "Payment failed for your order: {code}" msgstr "" -#: pretix/base/settings.py:2531 +#: pretix/base/settings.py:2560 #, python-brace-format msgid "" "Hello,\n" @@ -10474,12 +10526,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2545 +#: pretix/base/settings.py:2574 #, python-brace-format msgid "You have been selected from the waitinglist for {event}" msgstr "" -#: pretix/base/settings.py:2549 +#: pretix/base/settings.py:2578 #, python-brace-format msgid "" "Hello,\n" @@ -10510,12 +10562,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2578 +#: pretix/base/settings.py:2607 #, python-brace-format msgid "Order canceled: {code}" msgstr "" -#: pretix/base/settings.py:2582 +#: pretix/base/settings.py:2611 #, python-brace-format msgid "" "Hello,\n" @@ -10531,12 +10583,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2596 +#: pretix/base/settings.py:2625 #, python-brace-format msgid "Order approved and awaiting payment: {code}" msgstr "" -#: pretix/base/settings.py:2600 +#: pretix/base/settings.py:2629 #, python-brace-format msgid "" "Hello,\n" @@ -10554,7 +10606,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2624 pretix/base/settings.py:2661 +#: pretix/base/settings.py:2653 pretix/base/settings.py:2690 #, python-brace-format msgid "" "Hello,\n" @@ -10568,12 +10620,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2636 +#: pretix/base/settings.py:2665 #, python-brace-format msgid "Order approved and confirmed: {code}" msgstr "" -#: pretix/base/settings.py:2640 +#: pretix/base/settings.py:2669 #, python-brace-format msgid "" "Hello,\n" @@ -10588,12 +10640,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2673 +#: pretix/base/settings.py:2702 #, python-brace-format msgid "Order denied: {code}" msgstr "" -#: pretix/base/settings.py:2677 +#: pretix/base/settings.py:2706 #, python-brace-format msgid "" "Hello,\n" @@ -10610,7 +10662,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2692 +#: pretix/base/settings.py:2721 #, python-brace-format msgid "" "Hello,\n" @@ -10622,12 +10674,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2702 +#: pretix/base/settings.py:2731 #, python-brace-format msgid "Invoice {invoice_number}" msgstr "" -#: pretix/base/settings.py:2706 +#: pretix/base/settings.py:2735 #, python-brace-format msgid "" "Hello,\n" @@ -10640,12 +10692,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2724 pretix/base/settings.py:2740 +#: pretix/base/settings.py:2753 pretix/base/settings.py:2769 #, python-brace-format msgid "Your ticket is ready for download: {code}" msgstr "" -#: pretix/base/settings.py:2728 +#: pretix/base/settings.py:2757 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -10659,7 +10711,7 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2744 +#: pretix/base/settings.py:2773 #, python-brace-format msgid "" "Hello,\n" @@ -10673,12 +10725,12 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/base/settings.py:2756 +#: pretix/base/settings.py:2785 #, python-brace-format msgid "Activate your account at {organizer}" msgstr "" -#: pretix/base/settings.py:2760 +#: pretix/base/settings.py:2789 #, python-brace-format msgid "" "Hello {name},\n" @@ -10698,12 +10750,12 @@ msgid "" "Your {organizer} team" msgstr "" -#: pretix/base/settings.py:2778 +#: pretix/base/settings.py:2807 #, python-brace-format msgid "Confirm email address for your account at {organizer}" msgstr "" -#: pretix/base/settings.py:2782 +#: pretix/base/settings.py:2811 #, python-brace-format msgid "" "Hello {name},\n" @@ -10723,12 +10775,12 @@ msgid "" "Your {organizer} team" msgstr "" -#: pretix/base/settings.py:2800 +#: pretix/base/settings.py:2829 #, python-brace-format msgid "Set a new password for your account at {organizer}" msgstr "" -#: pretix/base/settings.py:2804 +#: pretix/base/settings.py:2833 #, python-brace-format msgid "" "Hello {name},\n" @@ -10748,57 +10800,57 @@ msgid "" "Your {organizer} team" msgstr "" -#: pretix/base/settings.py:2856 pretix/base/settings.py:2863 -#: pretix/base/settings.py:2877 pretix/base/settings.py:2885 -#: pretix/base/settings.py:2899 pretix/base/settings.py:2907 -#: pretix/base/settings.py:2921 pretix/base/settings.py:2928 +#: pretix/base/settings.py:2885 pretix/base/settings.py:2892 +#: pretix/base/settings.py:2906 pretix/base/settings.py:2914 +#: pretix/base/settings.py:2928 pretix/base/settings.py:2936 +#: pretix/base/settings.py:2950 pretix/base/settings.py:2957 msgid "Please enter the hexadecimal code of a color, e.g. #990000." msgstr "" -#: pretix/base/settings.py:2860 +#: pretix/base/settings.py:2889 msgid "Primary color" msgstr "" -#: pretix/base/settings.py:2881 +#: pretix/base/settings.py:2910 msgid "Accent color for success" msgstr "" -#: pretix/base/settings.py:2882 +#: pretix/base/settings.py:2911 msgid "We strongly suggest to use a shade of green." msgstr "" -#: pretix/base/settings.py:2903 +#: pretix/base/settings.py:2932 msgid "Accent color for errors" msgstr "" -#: pretix/base/settings.py:2904 +#: pretix/base/settings.py:2933 msgid "We strongly suggest to use a shade of red." msgstr "" -#: pretix/base/settings.py:2925 +#: pretix/base/settings.py:2954 msgid "Page background color" msgstr "" -#: pretix/base/settings.py:2940 +#: pretix/base/settings.py:2969 msgid "Use round edges" msgstr "" -#: pretix/base/settings.py:2949 +#: pretix/base/settings.py:2978 msgid "" "Use native spinners in the widget instead of custom ones for numeric inputs " "such as quantity." msgstr "" -#: pretix/base/settings.py:2960 +#: pretix/base/settings.py:2989 msgid "Only respected by modern browsers." msgstr "" -#: pretix/base/settings.py:2971 pretix/base/settings.py:3015 +#: pretix/base/settings.py:3000 pretix/base/settings.py:3044 #: pretix/control/forms/organizer.py:523 msgid "Header image" msgstr "" -#: pretix/base/settings.py:2974 +#: pretix/base/settings.py:3003 msgid "" "If you provide a logo image, we will by default not show your event name and " "date in the page header. If you use a white background, we show your logo " @@ -10807,26 +10859,26 @@ msgid "" "using small details on the picture as it will be resized on smaller screens." msgstr "" -#: pretix/base/settings.py:2995 pretix/base/settings.py:3038 +#: pretix/base/settings.py:3024 pretix/base/settings.py:3067 msgid "Use header image in its full size" msgstr "" -#: pretix/base/settings.py:2996 pretix/base/settings.py:3039 +#: pretix/base/settings.py:3025 pretix/base/settings.py:3068 msgid "We recommend to upload a picture at least 1170 pixels wide." msgstr "" -#: pretix/base/settings.py:3005 +#: pretix/base/settings.py:3034 msgid "Show event title even if a header image is present" msgstr "" -#: pretix/base/settings.py:3006 +#: pretix/base/settings.py:3035 msgid "" "The title will only be shown on the event front page. If no header image is " "uploaded for the event, but the header image from the organizer profile is " "used, this option will be ignored and the event title will always be shown." msgstr "" -#: pretix/base/settings.py:3018 pretix/control/forms/organizer.py:527 +#: pretix/base/settings.py:3047 pretix/control/forms/organizer.py:527 msgid "" "If you provide a logo image, we will by default not show your organization " "name in the page header. If you use a white background, we show your logo " @@ -10835,25 +10887,25 @@ msgid "" "using small details on the picture as it will be resized on smaller screens." msgstr "" -#: pretix/base/settings.py:3048 +#: pretix/base/settings.py:3077 msgid "Use header image also for events without an individually uploaded logo" msgstr "" -#: pretix/base/settings.py:3056 +#: pretix/base/settings.py:3085 msgid "Favicon" msgstr "" -#: pretix/base/settings.py:3059 +#: pretix/base/settings.py:3088 msgid "" "If you provide a favicon, we will show it instead of the default pretix " "icon. We recommend a size of at least 200x200px to accommodate most devices." msgstr "" -#: pretix/base/settings.py:3075 +#: pretix/base/settings.py:3104 msgid "Social media image" msgstr "" -#: pretix/base/settings.py:3078 +#: pretix/base/settings.py:3107 msgid "" "This picture will be used as a preview if you post links to your ticket shop " "on social media. Facebook advises to use a picture size of 1200 x 630 " @@ -10862,93 +10914,93 @@ msgid "" "square is shown. If you do not fill this, we will use the logo given above." msgstr "" -#: pretix/base/settings.py:3096 +#: pretix/base/settings.py:3125 msgid "Logo image" msgstr "" -#: pretix/base/settings.py:3100 +#: pretix/base/settings.py:3129 msgid "We will show your logo with a maximal height and width of 2.5 cm." msgstr "" -#: pretix/base/settings.py:3126 pretix/base/settings.py:3232 +#: pretix/base/settings.py:3155 pretix/base/settings.py:3261 msgid "Info text" msgstr "" -#: pretix/base/settings.py:3129 pretix/base/settings.py:3234 +#: pretix/base/settings.py:3158 pretix/base/settings.py:3263 msgid "" "Not displayed anywhere by default, but if you want to, you can use this e.g. " "in ticket templates." msgstr "" -#: pretix/base/settings.py:3138 +#: pretix/base/settings.py:3167 msgid "Banner text (top)" msgstr "" -#: pretix/base/settings.py:3141 +#: pretix/base/settings.py:3170 msgid "" "This text will be shown above every page of your shop. Please only use this " "for very important messages." msgstr "" -#: pretix/base/settings.py:3151 +#: pretix/base/settings.py:3180 msgid "Banner text (bottom)" msgstr "" -#: pretix/base/settings.py:3154 +#: pretix/base/settings.py:3183 msgid "" "This text will be shown below every page of your shop. Please only use this " "for very important messages." msgstr "" -#: pretix/base/settings.py:3164 +#: pretix/base/settings.py:3193 msgid "Voucher explanation" msgstr "" -#: pretix/base/settings.py:3167 +#: pretix/base/settings.py:3196 msgid "" "This text will be shown next to the input for a voucher code. You can use it " "e.g. to explain how to obtain a voucher code." msgstr "" -#: pretix/base/settings.py:3177 +#: pretix/base/settings.py:3206 msgid "Attendee data explanation" msgstr "" -#: pretix/base/settings.py:3180 +#: pretix/base/settings.py:3209 msgid "" "This text will be shown above the questions asked for every personalized " "product. You can use it e.g. to explain why you need information from them." msgstr "" -#: pretix/base/settings.py:3190 +#: pretix/base/settings.py:3219 msgid "Additional success message" msgstr "" -#: pretix/base/settings.py:3191 +#: pretix/base/settings.py:3220 msgid "" "This message will be shown after an order has been created successfully. It " "will be shown in additional to the default text." msgstr "" -#: pretix/base/settings.py:3203 +#: pretix/base/settings.py:3232 msgid "Help text of the phone number field" msgstr "" -#: pretix/base/settings.py:3210 +#: pretix/base/settings.py:3239 msgid "" "Make sure to enter a valid email address. We will send you an order " "confirmation including a link that you need to access your order later." msgstr "" -#: pretix/base/settings.py:3217 +#: pretix/base/settings.py:3246 msgid "Help text of the email field" msgstr "" -#: pretix/base/settings.py:3243 +#: pretix/base/settings.py:3272 msgid "Allow creating a new team during event creation" msgstr "" -#: pretix/base/settings.py:3244 +#: pretix/base/settings.py:3273 msgid "" "Users that do not have access to all events under this organizer, must " "select one of their teams to have access to the created event. This setting " @@ -10956,68 +11008,68 @@ msgid "" "not have \"Can change teams and permissions\" permission." msgstr "" -#: pretix/base/settings.py:3316 pretix/base/settings.py:3326 +#: pretix/base/settings.py:3345 pretix/base/settings.py:3355 msgid "Event start time (descending)" msgstr "" -#: pretix/base/settings.py:3318 pretix/base/settings.py:3328 +#: pretix/base/settings.py:3347 pretix/base/settings.py:3357 msgid "Name (descending)" msgstr "" -#: pretix/base/settings.py:3323 +#: pretix/base/settings.py:3352 msgctxt "subevent" msgid "Date ordering" msgstr "" -#: pretix/base/settings.py:3339 +#: pretix/base/settings.py:3368 msgid "Link back to organizer overview on all event pages" msgstr "" -#: pretix/base/settings.py:3348 +#: pretix/base/settings.py:3377 msgid "Homepage text" msgstr "" -#: pretix/base/settings.py:3350 +#: pretix/base/settings.py:3379 msgid "This will be displayed on the organizer homepage." msgstr "" -#: pretix/base/settings.py:3365 +#: pretix/base/settings.py:3394 msgid "Length of gift card codes" msgstr "" -#: pretix/base/settings.py:3366 +#: pretix/base/settings.py:3395 #, python-brace-format msgid "" "The system generates by default {}-character long gift card codes. However, " "if a different length is required, it can be set here." msgstr "" -#: pretix/base/settings.py:3382 +#: pretix/base/settings.py:3411 msgid "Validity of gift card codes in years" msgstr "" -#: pretix/base/settings.py:3383 +#: pretix/base/settings.py:3412 msgid "" "If you set a number here, gift cards will by default expire at the end of " "the year after this many years. If you keep it empty, gift cards do not have " "an explicit expiry date." msgstr "" -#: pretix/base/settings.py:3394 +#: pretix/base/settings.py:3423 msgid "Enable cookie consent management features" msgstr "" -#: pretix/base/settings.py:3400 +#: pretix/base/settings.py:3429 msgid "" "By clicking \"Accept all cookies\", you agree to the storing of cookies and " "use of similar technologies on your device." msgstr "" -#: pretix/base/settings.py:3407 +#: pretix/base/settings.py:3436 msgid "Dialog text" msgstr "" -#: pretix/base/settings.py:3414 +#: pretix/base/settings.py:3443 msgid "" "We use cookies and similar technologies to gather data that allows us to " "improve this website and our offerings. If you do not agree, we will only " @@ -11025,192 +11077,192 @@ msgid "" "offers." msgstr "" -#: pretix/base/settings.py:3422 +#: pretix/base/settings.py:3451 msgid "Secondary dialog text" msgstr "" -#: pretix/base/settings.py:3428 +#: pretix/base/settings.py:3457 msgid "Privacy settings" msgstr "" -#: pretix/base/settings.py:3433 +#: pretix/base/settings.py:3462 msgid "Dialog title" msgstr "" -#: pretix/base/settings.py:3439 +#: pretix/base/settings.py:3468 msgid "Accept all cookies" msgstr "" -#: pretix/base/settings.py:3444 +#: pretix/base/settings.py:3473 msgid "\"Accept\" button description" msgstr "" -#: pretix/base/settings.py:3450 +#: pretix/base/settings.py:3479 msgid "Required cookies only" msgstr "" -#: pretix/base/settings.py:3455 +#: pretix/base/settings.py:3484 msgid "\"Reject\" button description" msgstr "" -#: pretix/base/settings.py:3465 +#: pretix/base/settings.py:3494 msgid "Customers can choose their own seats" msgstr "" -#: pretix/base/settings.py:3466 +#: pretix/base/settings.py:3495 msgid "" "If disabled, you will need to manually assign seats in the backend. Note " "that this can mean people will not know their seat after their purchase and " "it might not be written on their ticket." msgstr "" -#: pretix/base/settings.py:3492 +#: pretix/base/settings.py:3521 msgid "Show button to copy user input from other products" msgstr "" -#: pretix/base/settings.py:3502 +#: pretix/base/settings.py:3531 msgid "Most common English titles" msgstr "" -#: pretix/base/settings.py:3512 +#: pretix/base/settings.py:3541 msgid "Most common German titles" msgstr "" -#: pretix/base/settings.py:3525 +#: pretix/base/settings.py:3554 msgctxt "person_name_salutation" msgid "Ms" msgstr "" -#: pretix/base/settings.py:3526 +#: pretix/base/settings.py:3555 msgctxt "person_name_salutation" msgid "Mr" msgstr "" -#: pretix/base/settings.py:3527 +#: pretix/base/settings.py:3556 msgctxt "person_name_salutation" msgid "Mx" msgstr "" -#: pretix/base/settings.py:3564 pretix/base/settings.py:3580 -#: pretix/base/settings.py:3596 pretix/base/settings.py:3611 -#: pretix/base/settings.py:3629 pretix/base/settings.py:3644 -#: pretix/base/settings.py:3674 pretix/base/settings.py:3698 -#: pretix/base/settings.py:3730 pretix/base/settings.py:3752 -#: pretix/base/settings.py:3783 +#: pretix/base/settings.py:3593 pretix/base/settings.py:3609 +#: pretix/base/settings.py:3625 pretix/base/settings.py:3640 +#: pretix/base/settings.py:3658 pretix/base/settings.py:3673 +#: pretix/base/settings.py:3703 pretix/base/settings.py:3727 +#: pretix/base/settings.py:3759 pretix/base/settings.py:3781 +#: pretix/base/settings.py:3812 msgctxt "person_name_sample" msgid "John" msgstr "" -#: pretix/base/settings.py:3565 pretix/base/settings.py:3581 -#: pretix/base/settings.py:3597 pretix/base/settings.py:3613 -#: pretix/base/settings.py:3631 pretix/base/settings.py:3645 -#: pretix/base/settings.py:3675 pretix/base/settings.py:3731 -#: pretix/base/settings.py:3753 pretix/base/settings.py:3784 +#: pretix/base/settings.py:3594 pretix/base/settings.py:3610 +#: pretix/base/settings.py:3626 pretix/base/settings.py:3642 +#: pretix/base/settings.py:3660 pretix/base/settings.py:3674 +#: pretix/base/settings.py:3704 pretix/base/settings.py:3760 +#: pretix/base/settings.py:3782 pretix/base/settings.py:3813 msgctxt "person_name_sample" msgid "Doe" msgstr "" -#: pretix/base/settings.py:3571 pretix/base/settings.py:3587 -#: pretix/base/settings.py:3619 pretix/base/settings.py:3738 -#: pretix/base/settings.py:3760 +#: pretix/base/settings.py:3600 pretix/base/settings.py:3616 +#: pretix/base/settings.py:3648 pretix/base/settings.py:3767 +#: pretix/base/settings.py:3789 msgctxt "person_name" msgid "Title" msgstr "" -#: pretix/base/settings.py:3579 pretix/base/settings.py:3595 -#: pretix/base/settings.py:3628 pretix/base/settings.py:3751 -#: pretix/base/settings.py:3782 +#: pretix/base/settings.py:3608 pretix/base/settings.py:3624 +#: pretix/base/settings.py:3657 pretix/base/settings.py:3780 +#: pretix/base/settings.py:3811 msgctxt "person_name_sample" msgid "Dr" msgstr "" -#: pretix/base/settings.py:3603 pretix/base/settings.py:3620 +#: pretix/base/settings.py:3632 pretix/base/settings.py:3649 msgid "First name" msgstr "" -#: pretix/base/settings.py:3604 pretix/base/settings.py:3621 +#: pretix/base/settings.py:3633 pretix/base/settings.py:3650 msgid "Middle name" msgstr "" -#: pretix/base/settings.py:3685 pretix/base/settings.py:3697 +#: pretix/base/settings.py:3714 pretix/base/settings.py:3726 #: pretix/control/forms/organizer.py:658 msgctxt "person_name_sample" msgid "John Doe" msgstr "" -#: pretix/base/settings.py:3691 +#: pretix/base/settings.py:3720 msgid "Calling name" msgstr "" -#: pretix/base/settings.py:3705 +#: pretix/base/settings.py:3734 msgid "Latin transcription" msgstr "" -#: pretix/base/settings.py:3717 pretix/base/settings.py:3737 -#: pretix/base/settings.py:3759 +#: pretix/base/settings.py:3746 pretix/base/settings.py:3766 +#: pretix/base/settings.py:3788 msgctxt "person_name" msgid "Salutation" msgstr "" -#: pretix/base/settings.py:3729 pretix/base/settings.py:3750 -#: pretix/base/settings.py:3781 +#: pretix/base/settings.py:3758 pretix/base/settings.py:3779 +#: pretix/base/settings.py:3810 msgctxt "person_name_sample" msgid "Mr" msgstr "" -#: pretix/base/settings.py:3763 +#: pretix/base/settings.py:3792 msgctxt "person_name" msgid "Degree (after name)" msgstr "" -#: pretix/base/settings.py:3785 +#: pretix/base/settings.py:3814 msgctxt "person_name_sample" msgid "MA" msgstr "" -#: pretix/base/settings.py:3811 pretix/base/settings.py:3813 +#: pretix/base/settings.py:3840 pretix/base/settings.py:3842 msgctxt "address" msgid "Province" msgstr "" -#: pretix/base/settings.py:3812 +#: pretix/base/settings.py:3841 msgctxt "address" msgid "Prefecture" msgstr "" -#: pretix/base/settings.py:3901 pretix/control/forms/event.py:228 +#: pretix/base/settings.py:3930 pretix/control/forms/event.py:228 msgid "" "Your default locale must also be enabled for your event (see box above)." msgstr "" -#: pretix/base/settings.py:3905 +#: pretix/base/settings.py:3934 msgid "" "You cannot require specifying attendee names if you do not ask for them." msgstr "" -#: pretix/base/settings.py:3909 +#: pretix/base/settings.py:3938 msgid "You have to ask for attendee emails if you want to make them required." msgstr "" -#: pretix/base/settings.py:3913 +#: pretix/base/settings.py:3942 msgid "" "You have to ask for invoice addresses if you want to make them required." msgstr "" -#: pretix/base/settings.py:3917 +#: pretix/base/settings.py:3946 msgid "You have to require invoice addresses to require for company names." msgstr "" -#: pretix/base/settings.py:3924 +#: pretix/base/settings.py:3953 msgid "The last payment date cannot be before the end of presale." msgstr "" -#: pretix/base/settings.py:3932 +#: pretix/base/settings.py:3961 #, python-brace-format msgid "The value \"{identifier}\" is not a valid sales channel." msgstr "" -#: pretix/base/settings.py:3947 +#: pretix/base/settings.py:3976 msgid "This needs to be disabled if other NFC-based types are active." msgstr "" @@ -11476,12 +11528,10 @@ msgid "" msgstr "" #: pretix/base/templates/pretixbase/email/order_details.html:12 -#: pretix/base/templates/pretixbase/email/order_details.html:59 msgid "Event:" msgstr "" #: pretix/base/templates/pretixbase/email/order_details.html:23 -#: pretix/base/templates/pretixbase/email/order_details.html:80 msgid "Order code:" msgstr "" @@ -11490,18 +11540,36 @@ msgid "created by" msgstr "" #: pretix/base/templates/pretixbase/email/order_details.html:34 -#: pretix/base/templates/pretixbase/email/order_details.html:132 msgid "Contact:" msgstr "" #: pretix/base/templates/pretixbase/email/order_details.html:54 +#, python-format msgid "" -"You are receiving this email because you placed an order for the following " -"event:" +"You are receiving this email because you placed an order for " +"%(event)s." msgstr "" -#: pretix/base/templates/pretixbase/email/order_details.html:89 -msgid "Details:" +#: pretix/base/templates/pretixbase/email/order_details.html:93 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:23 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:320 +#: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:15 +#: pretix/control/templates/pretixcontrol/organizers/customers.html:90 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:23 +#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:95 +#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:102 +#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:21 +#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:390 +#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:114 +#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:95 +#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:66 +msgid "Details" +msgstr "" + +#: pretix/base/templates/pretixbase/email/order_details.html:136 +#: pretix/presale/templates/pretixpresale/event/base.html:222 +#: pretix/presale/templates/pretixpresale/organizers/base.html:100 +msgid "Contact" msgstr "" #: pretix/base/templates/pretixbase/email/shred_completed.txt:2 @@ -12088,7 +12156,7 @@ msgid "Do not copy" msgstr "" #: pretix/control/forms/event.py:336 pretix/control/forms/item.py:1301 -#: pretix/control/forms/subevents.py:410 +#: pretix/control/forms/subevents.py:411 #, python-brace-format msgid "Default ({value})" msgstr "" @@ -12166,318 +12234,318 @@ msgid "" "card is issued in." msgstr "" -#: pretix/control/forms/event.py:887 +#: pretix/control/forms/event.py:888 msgid "Generate invoices for Sales channels" msgstr "" -#: pretix/control/forms/event.py:890 +#: pretix/control/forms/event.py:891 msgid "" "If you have enabled invoice generation in the previous setting, you can " "limit it here to specific sales channels." msgstr "" -#: pretix/control/forms/event.py:894 +#: pretix/control/forms/event.py:895 msgid "Invoice style" msgstr "" -#: pretix/control/forms/event.py:900 +#: pretix/control/forms/event.py:901 msgid "Invoice language" msgstr "" -#: pretix/control/forms/event.py:901 pretix/control/forms/event.py:916 +#: pretix/control/forms/event.py:902 pretix/control/forms/event.py:917 msgid "The user's language" msgstr "" -#: pretix/control/forms/event.py:924 +#: pretix/control/forms/event.py:925 #, python-brace-format msgid "" "An invoice will be issued before payment if the customer selects one of the " "following payment methods: {list}" msgstr "" -#: pretix/control/forms/event.py:928 +#: pretix/control/forms/event.py:929 msgid "" "None of the currently configured payment methods will cause an invoice to be " "issued before payment." msgstr "" -#: pretix/control/forms/event.py:937 +#: pretix/control/forms/event.py:938 msgid "Recommended" msgstr "" -#: pretix/control/forms/event.py:949 +#: pretix/control/forms/event.py:950 msgid "The online shop must be selected to receive these emails." msgstr "" -#: pretix/control/forms/event.py:965 +#: pretix/control/forms/event.py:966 msgid "Sales channels for checkout emails" msgstr "" -#: pretix/control/forms/event.py:966 +#: pretix/control/forms/event.py:967 msgid "" "The order placed and paid emails will only be send to orders from these " "sales channels. The online shop must be enabled." msgstr "" -#: pretix/control/forms/event.py:977 +#: pretix/control/forms/event.py:978 msgid "" "This email will only be send to orders from these sales channels. The online " "shop must be enabled." msgstr "" -#: pretix/control/forms/event.py:985 pretix/control/forms/organizer.py:583 +#: pretix/control/forms/event.py:986 pretix/control/forms/organizer.py:583 msgid "Bcc address" msgstr "" -#: pretix/control/forms/event.py:987 pretix/control/forms/organizer.py:585 +#: pretix/control/forms/event.py:988 pretix/control/forms/organizer.py:585 msgid "All emails will be sent to this address as a Bcc copy." msgstr "" -#: pretix/control/forms/event.py:995 pretix/control/forms/organizer.py:593 +#: pretix/control/forms/event.py:996 pretix/control/forms/organizer.py:593 msgid "Signature" msgstr "" -#: pretix/control/forms/event.py:998 +#: pretix/control/forms/event.py:999 #, python-brace-format msgid "This will be attached to every email. Available placeholders: {event}" msgstr "" -#: pretix/control/forms/event.py:1003 pretix/control/forms/organizer.py:601 +#: pretix/control/forms/event.py:1004 pretix/control/forms/organizer.py:601 msgid "e.g. your contact details" msgstr "" -#: pretix/control/forms/event.py:1008 +#: pretix/control/forms/event.py:1009 msgid "HTML mail renderer" msgstr "" -#: pretix/control/forms/event.py:1013 pretix/control/forms/event.py:1040 -#: pretix/control/forms/event.py:1067 pretix/control/forms/event.py:1217 +#: pretix/control/forms/event.py:1014 pretix/control/forms/event.py:1041 +#: pretix/control/forms/event.py:1068 pretix/control/forms/event.py:1218 msgid "Subject sent to order contact address" msgstr "" -#: pretix/control/forms/event.py:1018 pretix/control/forms/event.py:1045 -#: pretix/control/forms/event.py:1072 pretix/control/forms/event.py:1222 +#: pretix/control/forms/event.py:1019 pretix/control/forms/event.py:1046 +#: pretix/control/forms/event.py:1073 pretix/control/forms/event.py:1223 msgid "Text sent to order contact address" msgstr "" -#: pretix/control/forms/event.py:1023 pretix/control/forms/event.py:1050 -#: pretix/control/forms/event.py:1077 pretix/control/forms/event.py:1227 -#: pretix/control/forms/event.py:1272 pretix/control/forms/event.py:1302 -msgid "Send an email to attendees" -msgstr "" - #: pretix/control/forms/event.py:1024 pretix/control/forms/event.py:1051 #: pretix/control/forms/event.py:1078 pretix/control/forms/event.py:1228 #: pretix/control/forms/event.py:1273 pretix/control/forms/event.py:1303 +msgid "Send an email to attendees" +msgstr "" + +#: pretix/control/forms/event.py:1025 pretix/control/forms/event.py:1052 +#: pretix/control/forms/event.py:1079 pretix/control/forms/event.py:1229 +#: pretix/control/forms/event.py:1274 pretix/control/forms/event.py:1304 msgid "" "If the order contains attendees with email addresses different from the " "person who orders the tickets, the following email will be sent out to the " "attendees." msgstr "" -#: pretix/control/forms/event.py:1029 pretix/control/forms/event.py:1056 -#: pretix/control/forms/event.py:1083 pretix/control/forms/event.py:1233 -#: pretix/control/forms/event.py:1278 pretix/control/forms/event.py:1308 +#: pretix/control/forms/event.py:1030 pretix/control/forms/event.py:1057 +#: pretix/control/forms/event.py:1084 pretix/control/forms/event.py:1234 +#: pretix/control/forms/event.py:1279 pretix/control/forms/event.py:1309 msgid "Subject sent to attendees" msgstr "" -#: pretix/control/forms/event.py:1034 pretix/control/forms/event.py:1061 -#: pretix/control/forms/event.py:1088 pretix/control/forms/event.py:1238 -#: pretix/control/forms/event.py:1283 pretix/control/forms/event.py:1313 +#: pretix/control/forms/event.py:1035 pretix/control/forms/event.py:1062 +#: pretix/control/forms/event.py:1089 pretix/control/forms/event.py:1239 +#: pretix/control/forms/event.py:1284 pretix/control/forms/event.py:1314 msgid "Text sent to attendees" msgstr "" -#: pretix/control/forms/event.py:1099 pretix/control/forms/event.py:1173 -#: pretix/control/forms/event.py:1183 pretix/control/forms/event.py:1193 -#: pretix/control/forms/event.py:1198 pretix/control/forms/event.py:1210 +#: pretix/control/forms/event.py:1100 pretix/control/forms/event.py:1174 +#: pretix/control/forms/event.py:1184 pretix/control/forms/event.py:1194 +#: pretix/control/forms/event.py:1199 pretix/control/forms/event.py:1211 #: pretix/control/forms/organizer.py:612 pretix/control/forms/organizer.py:622 #: pretix/control/forms/organizer.py:632 #: pretix/control/templates/pretixcontrol/event/mail.html:88 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:111 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:119 msgid "Text" msgstr "" -#: pretix/control/forms/event.py:1104 +#: pretix/control/forms/event.py:1105 msgid "Subject (sent by admin)" msgstr "" -#: pretix/control/forms/event.py:1109 +#: pretix/control/forms/event.py:1110 msgid "Subject (sent by admin to attendee)" msgstr "" -#: pretix/control/forms/event.py:1114 +#: pretix/control/forms/event.py:1115 msgid "Text (sent by admin)" msgstr "" -#: pretix/control/forms/event.py:1119 +#: pretix/control/forms/event.py:1120 msgid "Subject (requested by user)" msgstr "" -#: pretix/control/forms/event.py:1124 +#: pretix/control/forms/event.py:1125 msgid "Text (requested by user)" msgstr "" -#: pretix/control/forms/event.py:1136 +#: pretix/control/forms/event.py:1137 msgid "Text (if order will expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1141 +#: pretix/control/forms/event.py:1142 msgid "Subject (if order will expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1146 +#: pretix/control/forms/event.py:1147 msgid "Text (if order will not expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1151 +#: pretix/control/forms/event.py:1152 msgid "Subject (if order will not expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1156 +#: pretix/control/forms/event.py:1157 msgid "Subject (if an incomplete payment was received)" msgstr "" -#: pretix/control/forms/event.py:1161 +#: pretix/control/forms/event.py:1162 msgid "Text (if an incomplete payment was received)" msgstr "" -#: pretix/control/forms/event.py:1164 +#: pretix/control/forms/event.py:1165 msgid "" "This email only applies to payment methods that can receive incomplete " "payments, such as bank transfer." msgstr "" -#: pretix/control/forms/event.py:1206 pretix/control/forms/event.py:1213 +#: pretix/control/forms/event.py:1207 pretix/control/forms/event.py:1214 msgid "" "This will only be used if the invoice is sent to a different email address " "or at a different time than the order confirmation." msgstr "" -#: pretix/control/forms/event.py:1246 +#: pretix/control/forms/event.py:1247 msgid "" "This email will be sent out this many days before the order event starts. If " "the field is empty, the mail will never be sent." msgstr "" -#: pretix/control/forms/event.py:1250 +#: pretix/control/forms/event.py:1251 msgid "Subject for received order" msgstr "" -#: pretix/control/forms/event.py:1255 +#: pretix/control/forms/event.py:1256 msgid "Text for received order" msgstr "" -#: pretix/control/forms/event.py:1260 +#: pretix/control/forms/event.py:1261 msgid "Subject for approved order" msgstr "" -#: pretix/control/forms/event.py:1265 +#: pretix/control/forms/event.py:1266 msgid "Text for approved order" msgstr "" -#: pretix/control/forms/event.py:1268 pretix/control/forms/event.py:1286 +#: pretix/control/forms/event.py:1269 pretix/control/forms/event.py:1287 msgid "" "This will only be sent out for non-free orders. Free orders will receive the " "free order template from below instead." msgstr "" -#: pretix/control/forms/event.py:1290 +#: pretix/control/forms/event.py:1291 msgid "Subject for approved free order" msgstr "" -#: pretix/control/forms/event.py:1295 +#: pretix/control/forms/event.py:1296 msgid "Text for approved free order" msgstr "" -#: pretix/control/forms/event.py:1298 pretix/control/forms/event.py:1316 +#: pretix/control/forms/event.py:1299 pretix/control/forms/event.py:1317 msgid "" "This will only be sent out for free orders. Non-free orders will receive the " "non-free order template from above instead." msgstr "" -#: pretix/control/forms/event.py:1320 +#: pretix/control/forms/event.py:1321 msgid "Subject for denied order" msgstr "" -#: pretix/control/forms/event.py:1325 +#: pretix/control/forms/event.py:1326 msgid "Text for denied order" msgstr "" -#: pretix/control/forms/event.py:1420 +#: pretix/control/forms/event.py:1421 msgid "Ticket code generator" msgstr "" -#: pretix/control/forms/event.py:1421 +#: pretix/control/forms/event.py:1422 msgid "For advanced users, usually does not need to be changed." msgstr "" -#: pretix/control/forms/event.py:1478 +#: pretix/control/forms/event.py:1479 msgid "Any country" msgstr "" -#: pretix/control/forms/event.py:1479 +#: pretix/control/forms/event.py:1480 msgid "European Union" msgstr "" -#: pretix/control/forms/event.py:1505 +#: pretix/control/forms/event.py:1506 msgid "Any customer" msgstr "" -#: pretix/control/forms/event.py:1506 +#: pretix/control/forms/event.py:1507 msgid "Individual" msgstr "" -#: pretix/control/forms/event.py:1507 +#: pretix/control/forms/event.py:1508 msgid "Business" msgstr "" -#: pretix/control/forms/event.py:1508 +#: pretix/control/forms/event.py:1509 msgid "Business with valid VAT ID" msgstr "" -#: pretix/control/forms/event.py:1514 +#: pretix/control/forms/event.py:1515 msgid "Charge VAT" msgstr "" -#: pretix/control/forms/event.py:1516 +#: pretix/control/forms/event.py:1517 msgid "No VAT" msgstr "" -#: pretix/control/forms/event.py:1517 +#: pretix/control/forms/event.py:1518 msgid "Sale not allowed" msgstr "" -#: pretix/control/forms/event.py:1518 +#: pretix/control/forms/event.py:1519 msgid "Order requires approval" msgstr "" -#: pretix/control/forms/event.py:1523 +#: pretix/control/forms/event.py:1524 msgid "Default tax code" msgstr "" -#: pretix/control/forms/event.py:1527 +#: pretix/control/forms/event.py:1528 msgid "Deviating tax rate" msgstr "" -#: pretix/control/forms/event.py:1532 pretix/control/forms/event.py:1536 +#: pretix/control/forms/event.py:1533 pretix/control/forms/event.py:1537 msgid "Text on invoice" msgstr "" -#: pretix/control/forms/event.py:1556 +#: pretix/control/forms/event.py:1557 msgid "" "A combination of this calculation mode with a non-zero tax rate does not " "make sense." msgstr "" -#: pretix/control/forms/event.py:1561 pretix/control/forms/event.py:1565 +#: pretix/control/forms/event.py:1562 pretix/control/forms/event.py:1566 msgid "This combination of calculation mode and tax code does not make sense." msgstr "" -#: pretix/control/forms/event.py:1630 +#: pretix/control/forms/event.py:1631 msgid "Pre-selected voucher" msgstr "" -#: pretix/control/forms/event.py:1632 +#: pretix/control/forms/event.py:1633 msgid "" "If set, the widget will show products as if this voucher has been entered " "and when a product is bought via the widget, this voucher will be used. This " @@ -12485,48 +12553,48 @@ msgid "" "secret products." msgstr "" -#: pretix/control/forms/event.py:1637 +#: pretix/control/forms/event.py:1638 msgid "Compatibility mode" msgstr "" -#: pretix/control/forms/event.py:1639 +#: pretix/control/forms/event.py:1640 msgid "" "Our regular widget doesn't work in all website builders. If you run into " "trouble, try using this compatibility mode." msgstr "" -#: pretix/control/forms/event.py:1660 +#: pretix/control/forms/event.py:1661 msgid "The given voucher code does not exist." msgstr "" -#: pretix/control/forms/event.py:1667 pretix/control/forms/organizer.py:112 +#: pretix/control/forms/event.py:1668 pretix/control/forms/organizer.py:112 #: pretix/control/views/shredder.py:179 msgid "The slug you entered was not correct." msgstr "" -#: pretix/control/forms/event.py:1702 +#: pretix/control/forms/event.py:1703 msgid "Ticket downloads" msgstr "" -#: pretix/control/forms/event.py:1703 +#: pretix/control/forms/event.py:1704 msgid "Your customers will be able to download their tickets in PDF format." msgstr "" -#: pretix/control/forms/event.py:1707 +#: pretix/control/forms/event.py:1708 msgid "Require all attendees to fill in their names" msgstr "" -#: pretix/control/forms/event.py:1708 +#: pretix/control/forms/event.py:1709 msgid "" "By default, we will ask for names but not require them. You can turn this " "off completely in the settings." msgstr "" -#: pretix/control/forms/event.py:1734 +#: pretix/control/forms/event.py:1735 msgid "Payment via Stripe" msgstr "" -#: pretix/control/forms/event.py:1735 +#: pretix/control/forms/event.py:1736 msgid "" "Stripe is an online payments processor supporting credit cards and lots of " "other payment options. To accept payments via Stripe, you will need to set " @@ -12534,27 +12602,27 @@ msgid "" "simple interface." msgstr "" -#: pretix/control/forms/event.py:1741 +#: pretix/control/forms/event.py:1742 msgid "Payment by bank transfer" msgstr "" -#: pretix/control/forms/event.py:1742 +#: pretix/control/forms/event.py:1743 msgid "" "Your customers will be instructed to wire the money to your account. You can " "then import your bank statements to process the payments within pretix, or " "mark them as paid manually." msgstr "" -#: pretix/control/forms/event.py:1781 +#: pretix/control/forms/event.py:1782 #: pretix/control/templates/pretixcontrol/event/quick_setup.html:45 msgid "Price (optional)" msgstr "" -#: pretix/control/forms/event.py:1786 +#: pretix/control/forms/event.py:1787 msgid "Free" msgstr "" -#: pretix/control/forms/event.py:1791 +#: pretix/control/forms/event.py:1792 msgid "Quantity available" msgstr "" @@ -12828,7 +12896,7 @@ msgid "Search query" msgstr "" #: pretix/control/forms/filter.py:1528 pretix/control/forms/filter.py:1600 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:46 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:47 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:47 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:54 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:126 @@ -12838,12 +12906,12 @@ msgid "active" msgstr "" #: pretix/control/forms/filter.py:1530 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:44 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:45 msgid "not yet activated" msgstr "" #: pretix/control/forms/filter.py:1534 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:110 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:111 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:6 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:12 #: pretix/presale/views/customer.py:366 @@ -12896,7 +12964,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/checkin/index.html:183 #: pretix/control/templates/pretixcontrol/checkin/lists.html:103 #: pretix/plugins/checkinlists/exporters.py:109 -#: pretix/plugins/checkinlists/exporters.py:500 +#: pretix/plugins/checkinlists/exporters.py:501 msgid "Checked in" msgstr "" @@ -12938,6 +13006,7 @@ msgid "No administrator" msgstr "" #: pretix/control/forms/filter.py:2117 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:51 msgid "Valid" msgstr "" @@ -12992,15 +13061,15 @@ msgstr "" msgid "All refunds" msgstr "" -#: pretix/control/forms/filter.py:2353 pretix/plugins/reports/exporters.py:699 +#: pretix/control/forms/filter.py:2353 pretix/plugins/reports/exporters.py:700 msgid "Date filter" msgstr "" -#: pretix/control/forms/filter.py:2355 pretix/plugins/reports/exporters.py:701 +#: pretix/control/forms/filter.py:2355 pretix/plugins/reports/exporters.py:702 msgid "Filter by…" msgstr "" -#: pretix/control/forms/filter.py:2357 pretix/plugins/reports/exporters.py:703 +#: pretix/control/forms/filter.py:2357 pretix/plugins/reports/exporters.py:704 msgid "Date of last successful payment" msgstr "" @@ -13018,7 +13087,7 @@ msgstr "" #: pretix/control/forms/filter.py:2404 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:64 -#: pretix/plugins/checkinlists/exporters.py:756 +#: pretix/plugins/checkinlists/exporters.py:759 msgid "Scan type" msgstr "" @@ -13028,7 +13097,7 @@ msgstr "" #: pretix/control/forms/filter.py:2415 pretix/control/forms/filter.py:2455 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:67 -#: pretix/plugins/checkinlists/exporters.py:762 +#: pretix/plugins/checkinlists/exporters.py:765 msgid "Device" msgstr "" @@ -13048,7 +13117,7 @@ msgid "End date" msgstr "" #: pretix/control/forms/filter.py:2478 -#: pretix/plugins/checkinlists/exporters.py:880 +#: pretix/plugins/checkinlists/exporters.py:883 msgid "All check-in lists" msgstr "" @@ -13062,8 +13131,8 @@ msgstr "" #: pretix/plugins/checkinlists/exporters.py:81 #: pretix/plugins/checkinlists/exporters.py:154 #: pretix/plugins/checkinlists/exporters.py:475 -#: pretix/plugins/checkinlists/exporters.py:755 -#: pretix/plugins/checkinlists/exporters.py:843 +#: pretix/plugins/checkinlists/exporters.py:758 +#: pretix/plugins/checkinlists/exporters.py:846 msgid "Check-in list" msgstr "" @@ -13580,45 +13649,49 @@ msgstr "" msgid "pretix field" msgstr "" -#: pretix/control/forms/modelimport.py:50 +#: pretix/control/forms/modelimport.py:52 #, python-brace-format msgid "CSV column: \"{name}\"" msgstr "" -#: pretix/control/forms/modelimport.py:76 +#: pretix/control/forms/modelimport.py:81 msgid "Import mode" msgstr "" -#: pretix/control/forms/modelimport.py:78 +#: pretix/control/forms/modelimport.py:83 msgid "Create a separate order for each line" msgstr "" -#: pretix/control/forms/modelimport.py:79 +#: pretix/control/forms/modelimport.py:84 msgid "Create one order with one position per line" msgstr "" -#: pretix/control/forms/modelimport.py:80 +#: pretix/control/forms/modelimport.py:85 msgid "" "Group multiple lines together into the same order based on a grouping column" msgstr "" -#: pretix/control/forms/modelimport.py:87 +#: pretix/control/forms/modelimport.py:92 msgid "Create orders as fully paid" msgstr "" -#: pretix/control/forms/modelimport.py:88 +#: pretix/control/forms/modelimport.py:93 msgid "Create orders as pending and still require payment" msgstr "" -#: pretix/control/forms/modelimport.py:93 +#: pretix/control/forms/modelimport.py:98 msgid "Create orders as test mode orders" msgstr "" -#: pretix/control/forms/modelimport.py:112 +#: pretix/control/forms/modelimport.py:102 +msgid "Orders not created in test mode cannot be deleted again after import." +msgstr "" + +#: pretix/control/forms/modelimport.py:123 msgid "A grouping cannot be specified for this import mode." msgstr "" -#: pretix/control/forms/modelimport.py:114 +#: pretix/control/forms/modelimport.py:125 msgid "A grouping needs to be specified for this import mode." msgstr "" @@ -13718,8 +13791,8 @@ msgstr "" #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:24 #: pretix/plugins/reports/exporters.py:510 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:692 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:693 +#: pretix/plugins/reports/exporters.py:898 msgid "Payment date" msgstr "" @@ -14106,63 +14179,63 @@ msgstr "" msgid "Gift card value" msgstr "" -#: pretix/control/forms/organizer.py:794 +#: pretix/control/forms/organizer.py:826 msgid "An medium with this type and identifier is already registered." msgstr "" -#: pretix/control/forms/organizer.py:892 +#: pretix/control/forms/organizer.py:924 msgid "An account with this customer ID is already registered." msgstr "" -#: pretix/control/forms/organizer.py:909 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:61 +#: pretix/control/forms/organizer.py:941 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:62 #: pretix/presale/forms/customer.py:169 pretix/presale/forms/customer.py:493 msgid "Phone" msgstr "" -#: pretix/control/forms/organizer.py:1016 +#: pretix/control/forms/organizer.py:1048 msgctxt "sso_oidc" msgid "Base URL" msgstr "" -#: pretix/control/forms/organizer.py:1020 +#: pretix/control/forms/organizer.py:1052 msgctxt "sso_oidc" msgid "Client ID" msgstr "" -#: pretix/control/forms/organizer.py:1024 +#: pretix/control/forms/organizer.py:1056 msgctxt "sso_oidc" msgid "Client secret" msgstr "" -#: pretix/control/forms/organizer.py:1028 +#: pretix/control/forms/organizer.py:1060 msgctxt "sso_oidc" msgid "Scope" msgstr "" -#: pretix/control/forms/organizer.py:1029 +#: pretix/control/forms/organizer.py:1061 msgctxt "sso_oidc" msgid "Multiple scopes separated with spaces." msgstr "" -#: pretix/control/forms/organizer.py:1033 +#: pretix/control/forms/organizer.py:1065 msgctxt "sso_oidc" msgid "User ID field" msgstr "" -#: pretix/control/forms/organizer.py:1034 +#: pretix/control/forms/organizer.py:1066 msgctxt "sso_oidc" msgid "" "We will assume that the contents of the user ID fields are unique and can " "never change for a user." msgstr "" -#: pretix/control/forms/organizer.py:1040 +#: pretix/control/forms/organizer.py:1072 msgctxt "sso_oidc" msgid "Email field" msgstr "" -#: pretix/control/forms/organizer.py:1041 +#: pretix/control/forms/organizer.py:1073 msgctxt "sso_oidc" msgid "" "We will assume that all email addresses received from the SSO provider are " @@ -14170,17 +14243,17 @@ msgid "" "security issues might arise." msgstr "" -#: pretix/control/forms/organizer.py:1048 +#: pretix/control/forms/organizer.py:1080 msgctxt "sso_oidc" msgid "Phone field" msgstr "" -#: pretix/control/forms/organizer.py:1052 +#: pretix/control/forms/organizer.py:1084 msgctxt "sso_oidc" msgid "Query parameters" msgstr "" -#: pretix/control/forms/organizer.py:1053 +#: pretix/control/forms/organizer.py:1085 #, python-brace-format msgctxt "sso_oidc" msgid "" @@ -14188,19 +14261,19 @@ msgid "" "endpoint. Enter as: {example}" msgstr "" -#: pretix/control/forms/organizer.py:1114 +#: pretix/control/forms/organizer.py:1146 msgid "Invalidate old client secret and generate a new one" msgstr "" -#: pretix/control/forms/organizer.py:1147 +#: pretix/control/forms/organizer.py:1179 msgid "Organizer short name" msgstr "" -#: pretix/control/forms/organizer.py:1151 +#: pretix/control/forms/organizer.py:1183 msgid "Allow access to reusable media" msgstr "" -#: pretix/control/forms/organizer.py:1152 +#: pretix/control/forms/organizer.py:1184 msgid "" "This is required if you want the other organizer to participate in a shared " "system with e.g. NFC payment chips. You should only use this option for " @@ -14209,19 +14282,19 @@ msgid "" "to interact with the media type." msgstr "" -#: pretix/control/forms/organizer.py:1168 +#: pretix/control/forms/organizer.py:1200 msgid "The selected organizer does not exist or cannot be invited." msgstr "" -#: pretix/control/forms/organizer.py:1170 +#: pretix/control/forms/organizer.py:1202 msgid "The selected organizer has already been invited." msgstr "" -#: pretix/control/forms/organizer.py:1205 +#: pretix/control/forms/organizer.py:1237 msgid "A sales channel with the same identifier already exists." msgstr "" -#: pretix/control/forms/organizer.py:1217 +#: pretix/control/forms/organizer.py:1249 msgid "Events with active plugin" msgstr "" @@ -14313,7 +14386,7 @@ msgstr "" msgid "Available_until" msgstr "" -#: pretix/control/forms/subevents.py:469 +#: pretix/control/forms/subevents.py:470 msgid "Exclude these dates instead of adding them." msgstr "" @@ -14653,7 +14726,7 @@ msgid "The check-in of position #{posid} on list \"{list}\" has been reverted." msgstr "" #: pretix/control/logdisplay.py:353 pretix/control/logdisplay.py:355 -#: pretix/control/logdisplay.py:970 pretix/control/logdisplay.py:972 +#: pretix/control/logdisplay.py:971 pretix/control/logdisplay.py:973 msgid "(unknown)" msgstr "" @@ -14703,8 +14776,8 @@ msgstr "" msgid "The order has been canceled (comment: \"{comment}\")." msgstr "" -#: pretix/control/logdisplay.py:416 pretix/control/views/orders.py:1565 -#: pretix/presale/views/order.py:1049 +#: pretix/control/logdisplay.py:416 pretix/control/views/orders.py:1566 +#: pretix/presale/views/order.py:1072 msgid "The order has been canceled." msgstr "" @@ -14742,11 +14815,11 @@ msgstr "" msgid "Internal error while transferring data to {provider_display_name}." msgstr "" -#: pretix/control/logdisplay.py:483 pretix/control/logdisplay.py:820 +#: pretix/control/logdisplay.py:483 pretix/control/logdisplay.py:821 msgid "The settings of a payment provider have been changed." msgstr "" -#: pretix/control/logdisplay.py:486 pretix/control/logdisplay.py:819 +#: pretix/control/logdisplay.py:486 pretix/control/logdisplay.py:820 msgid "The settings of a ticket output provider have been changed." msgstr "" @@ -14787,11 +14860,11 @@ msgstr "" msgid "The order has been set to require payment before use." msgstr "" -#: pretix/control/logdisplay.py:505 pretix/control/views/orders.py:1570 +#: pretix/control/logdisplay.py:505 pretix/control/views/orders.py:1571 msgid "The order has been marked as expired." msgstr "" -#: pretix/control/logdisplay.py:506 pretix/control/views/orders.py:1469 +#: pretix/control/logdisplay.py:506 pretix/control/views/orders.py:1470 msgid "The order has been marked as paid." msgstr "" @@ -14803,7 +14876,7 @@ msgstr "" msgid "The order has been refunded." msgstr "" -#: pretix/control/logdisplay.py:509 pretix/control/views/orders.py:1886 +#: pretix/control/logdisplay.py:509 pretix/control/views/orders.py:1887 msgid "The order has been reactivated." msgstr "" @@ -14850,957 +14923,961 @@ msgstr "" msgid "The order locale has been changed." msgstr "" -#: pretix/control/logdisplay.py:524 pretix/control/views/orders.py:1609 -#: pretix/presale/views/order.py:741 pretix/presale/views/order.py:814 +#: pretix/control/logdisplay.py:524 pretix/control/views/orders.py:1610 +#: pretix/presale/views/order.py:745 pretix/presale/views/order.py:825 msgid "The invoice has been generated." msgstr "" -#: pretix/control/logdisplay.py:525 pretix/control/views/orders.py:1682 +#: pretix/control/logdisplay.py:525 +msgid "The invoice could not be generated." +msgstr "" + +#: pretix/control/logdisplay.py:526 pretix/control/views/orders.py:1683 msgid "The invoice has been regenerated." msgstr "" -#: pretix/control/logdisplay.py:526 pretix/control/views/orders.py:1744 -#: pretix/presale/views/order.py:827 +#: pretix/control/logdisplay.py:527 pretix/control/views/orders.py:1745 +#: pretix/presale/views/order.py:845 msgid "The invoice has been reissued." msgstr "" -#: pretix/control/logdisplay.py:527 -#, python-brace-format -msgid "The invoice {full_invoice_no} has been sent." -msgstr "" - #: pretix/control/logdisplay.py:528 #, python-brace-format -msgid "The transmission of invoice {full_invoice_no} has failed." +msgid "The invoice {full_invoice_no} has been sent." msgstr "" #: pretix/control/logdisplay.py:529 #, python-brace-format +msgid "The transmission of invoice {full_invoice_no} has failed." +msgstr "" + +#: pretix/control/logdisplay.py:530 +#, python-brace-format msgid "" "Invoice {full_invoice_no} has not been transmitted because the transmission " "provider does not support test mode invoices." msgstr "" -#: pretix/control/logdisplay.py:531 +#: pretix/control/logdisplay.py:532 #, python-brace-format msgid "The invoice {full_invoice_no} has been scheduled for retransmission." msgstr "" -#: pretix/control/logdisplay.py:532 +#: pretix/control/logdisplay.py:533 msgid "The order's internal comment has been updated." msgstr "" -#: pretix/control/logdisplay.py:533 +#: pretix/control/logdisplay.py:534 msgid "The order's follow-up date has been updated." msgstr "" -#: pretix/control/logdisplay.py:534 +#: pretix/control/logdisplay.py:535 msgid "The order's flag to require attention at check-in has been toggled." msgstr "" -#: pretix/control/logdisplay.py:536 +#: pretix/control/logdisplay.py:537 msgid "The order's check-in text has been changed." msgstr "" -#: pretix/control/logdisplay.py:537 +#: pretix/control/logdisplay.py:538 msgid "" "The order's flag to be considered valid even if unpaid has been toggled." msgstr "" -#: pretix/control/logdisplay.py:539 +#: pretix/control/logdisplay.py:540 #, python-brace-format msgid "A new payment {local_id} has been started instead of the previous one." msgstr "" -#: pretix/control/logdisplay.py:540 +#: pretix/control/logdisplay.py:541 msgid "An unidentified type email has been sent." msgstr "" -#: pretix/control/logdisplay.py:541 pretix/control/logdisplay.py:722 -#: pretix/control/logdisplay.py:728 pretix/control/logdisplay.py:756 +#: pretix/control/logdisplay.py:542 pretix/control/logdisplay.py:723 +#: pretix/control/logdisplay.py:729 pretix/control/logdisplay.py:757 msgid "Sending of an email has failed." msgstr "" -#: pretix/control/logdisplay.py:542 +#: pretix/control/logdisplay.py:543 msgid "" "The email has been sent without attached tickets since they would have been " "too large to be likely to arrive." msgstr "" -#: pretix/control/logdisplay.py:544 +#: pretix/control/logdisplay.py:545 msgid "An invoice email has been sent." msgstr "" -#: pretix/control/logdisplay.py:545 +#: pretix/control/logdisplay.py:546 msgid "A custom email has been sent." msgstr "" -#: pretix/control/logdisplay.py:546 +#: pretix/control/logdisplay.py:547 msgid "A custom email has been sent to an attendee." msgstr "" -#: pretix/control/logdisplay.py:547 +#: pretix/control/logdisplay.py:548 msgid "" "An email has been sent with a reminder that the ticket is available for " "download." msgstr "" -#: pretix/control/logdisplay.py:549 +#: pretix/control/logdisplay.py:550 msgid "" "An email has been sent with a warning that the order is about to expire." msgstr "" -#: pretix/control/logdisplay.py:552 +#: pretix/control/logdisplay.py:553 msgid "" "An email has been sent to notify the user that the order has been canceled." msgstr "" -#: pretix/control/logdisplay.py:553 +#: pretix/control/logdisplay.py:554 msgid "" "An email has been sent to notify the user that the event has been canceled." msgstr "" -#: pretix/control/logdisplay.py:556 +#: pretix/control/logdisplay.py:557 msgid "" "An email has been sent to notify the user that the order has been changed." msgstr "" -#: pretix/control/logdisplay.py:558 +#: pretix/control/logdisplay.py:559 msgid "" "An email has been sent to notify the user that the order has been received." msgstr "" -#: pretix/control/logdisplay.py:560 +#: pretix/control/logdisplay.py:561 msgid "" "An email has been sent to notify the user that payment has been received." msgstr "" -#: pretix/control/logdisplay.py:562 +#: pretix/control/logdisplay.py:563 msgid "" "An email has been sent to notify the user that the order has been denied." msgstr "" -#: pretix/control/logdisplay.py:563 +#: pretix/control/logdisplay.py:564 msgid "" "An email has been sent to notify the user that the order has been approved." msgstr "" -#: pretix/control/logdisplay.py:566 -msgid "" -"An email has been sent to notify the user that the order has been received " -"and requires payment." -msgstr "" - #: pretix/control/logdisplay.py:567 msgid "" "An email has been sent to notify the user that the order has been received " +"and requires payment." +msgstr "" + +#: pretix/control/logdisplay.py:568 +msgid "" +"An email has been sent to notify the user that the order has been received " "and requires approval." msgstr "" -#: pretix/control/logdisplay.py:570 +#: pretix/control/logdisplay.py:571 msgid "" "An email with a link to the order detail page has been resent to the user." msgstr "" -#: pretix/control/logdisplay.py:571 +#: pretix/control/logdisplay.py:572 msgid "An email has been sent to notify the user that the payment failed." msgstr "" -#: pretix/control/logdisplay.py:578 +#: pretix/control/logdisplay.py:579 msgid "The voucher has been created." msgstr "" -#: pretix/control/logdisplay.py:581 +#: pretix/control/logdisplay.py:582 msgid "" "The voucher has been set to expire because the recipient removed themselves " "from the waiting list." msgstr "" -#: pretix/control/logdisplay.py:582 +#: pretix/control/logdisplay.py:583 msgid "The voucher has been changed." msgstr "" -#: pretix/control/logdisplay.py:583 +#: pretix/control/logdisplay.py:584 msgid "The voucher has been deleted." msgstr "" -#: pretix/control/logdisplay.py:584 +#: pretix/control/logdisplay.py:585 #, python-brace-format msgid "The voucher has been assigned to {email} through the waiting list." msgstr "" -#: pretix/control/logdisplay.py:593 +#: pretix/control/logdisplay.py:594 #, python-brace-format msgid "The voucher has been redeemed in order {order_code}." msgstr "" -#: pretix/control/logdisplay.py:608 +#: pretix/control/logdisplay.py:609 msgid "The category has been added." msgstr "" -#: pretix/control/logdisplay.py:609 +#: pretix/control/logdisplay.py:610 msgid "The category has been deleted." msgstr "" -#: pretix/control/logdisplay.py:610 +#: pretix/control/logdisplay.py:611 msgid "The category has been changed." msgstr "" -#: pretix/control/logdisplay.py:611 +#: pretix/control/logdisplay.py:612 msgid "The category has been reordered." msgstr "" -#: pretix/control/logdisplay.py:618 +#: pretix/control/logdisplay.py:619 msgid "The tax rule has been added." msgstr "" -#: pretix/control/logdisplay.py:619 +#: pretix/control/logdisplay.py:620 msgid "The tax rule has been deleted." msgstr "" -#: pretix/control/logdisplay.py:620 +#: pretix/control/logdisplay.py:621 msgid "The tax rule has been changed." msgstr "" -#: pretix/control/logdisplay.py:632 -#, python-brace-format -msgid "{user} has been added to the team." -msgstr "" - #: pretix/control/logdisplay.py:633 #, python-brace-format -msgid "{user} has been removed from the team." +msgid "{user} has been added to the team." msgstr "" #: pretix/control/logdisplay.py:634 #, python-brace-format -msgid "{user} has been invited to the team." +msgid "{user} has been removed from the team." msgstr "" #: pretix/control/logdisplay.py:635 #, python-brace-format +msgid "{user} has been invited to the team." +msgstr "" + +#: pretix/control/logdisplay.py:636 +#, python-brace-format msgid "Invite for {user} has been resent." msgstr "" -#: pretix/control/logdisplay.py:646 +#: pretix/control/logdisplay.py:647 #, python-brace-format msgid "{user} has joined the team using the invite sent to {email}." msgstr "" -#: pretix/control/logdisplay.py:656 +#: pretix/control/logdisplay.py:657 msgid "Your account settings have been changed." msgstr "" -#: pretix/control/logdisplay.py:659 pretix/control/views/user.py:253 +#: pretix/control/logdisplay.py:660 pretix/control/views/user.py:253 #, python-brace-format msgid "Your email address has been changed to {email}." msgstr "" -#: pretix/control/logdisplay.py:661 pretix/control/views/user.py:250 +#: pretix/control/logdisplay.py:662 pretix/control/views/user.py:250 msgid "Your password has been changed." msgstr "" -#: pretix/control/logdisplay.py:663 +#: pretix/control/logdisplay.py:664 msgid "Your account has been enabled." msgstr "" -#: pretix/control/logdisplay.py:665 +#: pretix/control/logdisplay.py:666 msgid "Your account has been disabled." msgstr "" -#: pretix/control/logdisplay.py:675 -#, python-brace-format -msgid "You impersonated {}." -msgstr "" - #: pretix/control/logdisplay.py:676 #, python-brace-format +msgid "You impersonated {}." +msgstr "" + +#: pretix/control/logdisplay.py:677 +#, python-brace-format msgid "You stopped impersonating {}." msgstr "" -#: pretix/control/logdisplay.py:683 +#: pretix/control/logdisplay.py:684 msgid "This object has been created by cloning." msgstr "" -#: pretix/control/logdisplay.py:684 +#: pretix/control/logdisplay.py:685 msgid "The organizer has been changed." msgstr "" -#: pretix/control/logdisplay.py:685 +#: pretix/control/logdisplay.py:686 msgid "The organizer settings have been changed." msgstr "" -#: pretix/control/logdisplay.py:686 pretix/control/logdisplay.py:827 +#: pretix/control/logdisplay.py:687 pretix/control/logdisplay.py:828 msgid "The footer links have been changed." msgstr "" -#: pretix/control/logdisplay.py:687 pretix/control/logdisplay.py:734 +#: pretix/control/logdisplay.py:688 pretix/control/logdisplay.py:735 msgid "A scheduled export has been added." msgstr "" -#: pretix/control/logdisplay.py:688 pretix/control/logdisplay.py:735 +#: pretix/control/logdisplay.py:689 pretix/control/logdisplay.py:736 msgid "A scheduled export has been changed." msgstr "" -#: pretix/control/logdisplay.py:689 pretix/control/logdisplay.py:736 +#: pretix/control/logdisplay.py:690 pretix/control/logdisplay.py:737 msgid "A scheduled export has been deleted." msgstr "" -#: pretix/control/logdisplay.py:690 pretix/control/logdisplay.py:737 +#: pretix/control/logdisplay.py:691 pretix/control/logdisplay.py:738 msgid "A scheduled export has been executed." msgstr "" -#: pretix/control/logdisplay.py:691 pretix/control/logdisplay.py:738 +#: pretix/control/logdisplay.py:692 pretix/control/logdisplay.py:739 #, python-brace-format msgid "A scheduled export has failed: {reason}." msgstr "" -#: pretix/control/logdisplay.py:692 +#: pretix/control/logdisplay.py:693 msgid "Gift card acceptance for another organizer has been added." msgstr "" -#: pretix/control/logdisplay.py:693 +#: pretix/control/logdisplay.py:694 msgid "Gift card acceptance for another organizer has been removed." msgstr "" -#: pretix/control/logdisplay.py:694 +#: pretix/control/logdisplay.py:695 msgid "A new gift card acceptor has been invited." msgstr "" -#: pretix/control/logdisplay.py:695 +#: pretix/control/logdisplay.py:696 msgid "A gift card acceptor has been removed." msgstr "" -#: pretix/control/logdisplay.py:696 +#: pretix/control/logdisplay.py:697 msgid "A gift card issuer has been removed or declined." msgstr "" -#: pretix/control/logdisplay.py:697 +#: pretix/control/logdisplay.py:698 msgid "A new gift card issuer has been accepted." msgstr "" -#: pretix/control/logdisplay.py:698 +#: pretix/control/logdisplay.py:699 msgid "The webhook has been created." msgstr "" -#: pretix/control/logdisplay.py:699 +#: pretix/control/logdisplay.py:700 msgid "The webhook has been changed." msgstr "" -#: pretix/control/logdisplay.py:700 +#: pretix/control/logdisplay.py:701 msgid "The webhook call retry jobs have been manually expedited." msgstr "" -#: pretix/control/logdisplay.py:701 +#: pretix/control/logdisplay.py:702 msgid "The webhook call retry jobs have been dropped." msgstr "" -#: pretix/control/logdisplay.py:702 +#: pretix/control/logdisplay.py:703 msgid "The SSO provider has been created." msgstr "" -#: pretix/control/logdisplay.py:703 +#: pretix/control/logdisplay.py:704 msgid "The SSO provider has been changed." msgstr "" -#: pretix/control/logdisplay.py:704 +#: pretix/control/logdisplay.py:705 msgid "The SSO provider has been deleted." msgstr "" -#: pretix/control/logdisplay.py:705 +#: pretix/control/logdisplay.py:706 msgid "The SSO client has been created." msgstr "" -#: pretix/control/logdisplay.py:706 +#: pretix/control/logdisplay.py:707 msgid "The SSO client has been changed." msgstr "" -#: pretix/control/logdisplay.py:707 +#: pretix/control/logdisplay.py:708 msgid "The SSO client has been deleted." msgstr "" -#: pretix/control/logdisplay.py:708 pretix/control/views/organizer.py:2632 +#: pretix/control/logdisplay.py:709 pretix/control/views/organizer.py:2632 msgid "The membership type has been created." msgstr "" -#: pretix/control/logdisplay.py:709 +#: pretix/control/logdisplay.py:710 msgid "The membership type has been changed." msgstr "" -#: pretix/control/logdisplay.py:710 +#: pretix/control/logdisplay.py:711 msgid "The membership type has been deleted." msgstr "" -#: pretix/control/logdisplay.py:711 pretix/control/views/organizer.py:3470 +#: pretix/control/logdisplay.py:712 pretix/control/views/organizer.py:3472 msgid "The sales channel has been created." msgstr "" -#: pretix/control/logdisplay.py:712 +#: pretix/control/logdisplay.py:713 msgid "The sales channel has been changed." msgstr "" -#: pretix/control/logdisplay.py:713 +#: pretix/control/logdisplay.py:714 msgid "The sales channel has been deleted." msgstr "" -#: pretix/control/logdisplay.py:714 +#: pretix/control/logdisplay.py:715 msgid "The account has been created." msgstr "" -#: pretix/control/logdisplay.py:715 +#: pretix/control/logdisplay.py:716 msgid "The account has been changed." msgstr "" -#: pretix/control/logdisplay.py:716 +#: pretix/control/logdisplay.py:717 msgid "A membership for this account has been added." msgstr "" -#: pretix/control/logdisplay.py:717 +#: pretix/control/logdisplay.py:718 msgid "A membership of this account has been changed." msgstr "" -#: pretix/control/logdisplay.py:718 +#: pretix/control/logdisplay.py:719 msgid "A membership of this account has been deleted." msgstr "" -#: pretix/control/logdisplay.py:719 +#: pretix/control/logdisplay.py:720 msgid "The account has been disabled and anonymized." msgstr "" -#: pretix/control/logdisplay.py:720 +#: pretix/control/logdisplay.py:721 msgid "A new password has been requested." msgstr "" -#: pretix/control/logdisplay.py:721 +#: pretix/control/logdisplay.py:722 msgid "A new password has been set." msgstr "" -#: pretix/control/logdisplay.py:723 +#: pretix/control/logdisplay.py:724 msgid "The reusable medium has been created." msgstr "" -#: pretix/control/logdisplay.py:724 +#: pretix/control/logdisplay.py:725 msgid "The reusable medium has been created automatically." msgstr "" -#: pretix/control/logdisplay.py:725 +#: pretix/control/logdisplay.py:726 msgid "The reusable medium has been changed." msgstr "" -#: pretix/control/logdisplay.py:726 +#: pretix/control/logdisplay.py:727 msgid "The medium has been connected to a new ticket." msgstr "" -#: pretix/control/logdisplay.py:727 +#: pretix/control/logdisplay.py:728 msgid "The medium has been connected to a new gift card." msgstr "" -#: pretix/control/logdisplay.py:729 +#: pretix/control/logdisplay.py:730 msgid "The event's internal comment has been updated." msgstr "" -#: pretix/control/logdisplay.py:730 +#: pretix/control/logdisplay.py:731 msgid "The event has been canceled." msgstr "" -#: pretix/control/logdisplay.py:731 +#: pretix/control/logdisplay.py:732 msgid "An event has been deleted." msgstr "" -#: pretix/control/logdisplay.py:732 +#: pretix/control/logdisplay.py:733 msgid "A removal process for personal data has been started." msgstr "" -#: pretix/control/logdisplay.py:733 +#: pretix/control/logdisplay.py:734 msgid "A removal process for personal data has been completed." msgstr "" -#: pretix/control/logdisplay.py:739 +#: pretix/control/logdisplay.py:740 msgid "The user has been created." msgstr "" -#: pretix/control/logdisplay.py:740 +#: pretix/control/logdisplay.py:741 #, python-brace-format msgid "" "A first login using {agent_type} on {os_type} from {country} has been " "detected." msgstr "" -#: pretix/control/logdisplay.py:742 pretix/control/views/user.py:490 +#: pretix/control/logdisplay.py:743 pretix/control/views/user.py:490 #: pretix/control/views/user.py:550 pretix/control/views/user.py:609 msgid "Two-factor authentication has been enabled." msgstr "" -#: pretix/control/logdisplay.py:743 pretix/control/views/user.py:393 +#: pretix/control/logdisplay.py:744 pretix/control/views/user.py:393 #: pretix/control/views/user.py:625 msgid "Two-factor authentication has been disabled." msgstr "" -#: pretix/control/logdisplay.py:744 pretix/control/views/user.py:642 +#: pretix/control/logdisplay.py:745 pretix/control/views/user.py:642 msgid "Your two-factor emergency codes have been regenerated." msgstr "" -#: pretix/control/logdisplay.py:745 +#: pretix/control/logdisplay.py:746 msgid "A two-factor emergency code has been generated." msgstr "" -#: pretix/control/logdisplay.py:746 +#: pretix/control/logdisplay.py:747 #, python-brace-format msgid "" "A new two-factor authentication device \"{name}\" has been added to your " "account." msgstr "" -#: pretix/control/logdisplay.py:748 +#: pretix/control/logdisplay.py:749 #, python-brace-format msgid "" "The two-factor authentication device \"{name}\" has been removed from your " "account." msgstr "" -#: pretix/control/logdisplay.py:750 +#: pretix/control/logdisplay.py:751 msgid "Notifications have been enabled." msgstr "" -#: pretix/control/logdisplay.py:751 +#: pretix/control/logdisplay.py:752 msgid "Notifications have been disabled." msgstr "" -#: pretix/control/logdisplay.py:752 +#: pretix/control/logdisplay.py:753 msgid "Your notification settings have been changed." msgstr "" -#: pretix/control/logdisplay.py:753 +#: pretix/control/logdisplay.py:754 msgid "This user has been anonymized." msgstr "" -#: pretix/control/logdisplay.py:757 +#: pretix/control/logdisplay.py:758 msgid "Password reset mail sent." msgstr "" -#: pretix/control/logdisplay.py:758 +#: pretix/control/logdisplay.py:759 msgid "The password has been reset." msgstr "" -#: pretix/control/logdisplay.py:759 +#: pretix/control/logdisplay.py:760 msgid "" "A repeated password reset has been denied, as the last request was less than " "24 hours ago." msgstr "" -#: pretix/control/logdisplay.py:761 +#: pretix/control/logdisplay.py:762 #, python-brace-format msgid "The organizer \"{name}\" has been deleted." msgstr "" -#: pretix/control/logdisplay.py:762 pretix/control/logdisplay.py:988 +#: pretix/control/logdisplay.py:763 pretix/control/logdisplay.py:989 msgid "A voucher has been sent to a person on the waiting list." msgstr "" -#: pretix/control/logdisplay.py:763 +#: pretix/control/logdisplay.py:764 msgid "An entry has been transferred to another waiting list." msgstr "" -#: pretix/control/logdisplay.py:764 +#: pretix/control/logdisplay.py:765 msgid "The team has been created." msgstr "" -#: pretix/control/logdisplay.py:765 +#: pretix/control/logdisplay.py:766 msgid "The team settings have been changed." msgstr "" -#: pretix/control/logdisplay.py:766 +#: pretix/control/logdisplay.py:767 msgid "The team has been deleted." msgstr "" -#: pretix/control/logdisplay.py:767 pretix/control/views/organizer.py:2298 +#: pretix/control/logdisplay.py:768 pretix/control/views/organizer.py:2298 msgid "The gate has been created." msgstr "" -#: pretix/control/logdisplay.py:768 +#: pretix/control/logdisplay.py:769 msgid "The gate has been changed." msgstr "" -#: pretix/control/logdisplay.py:769 -msgid "The gate has been deleted." -msgstr "" - #: pretix/control/logdisplay.py:770 -msgctxt "subevent" -msgid "The event date has been deleted." +msgid "The gate has been deleted." msgstr "" #: pretix/control/logdisplay.py:771 msgctxt "subevent" -msgid "The event date has been canceled." +msgid "The event date has been deleted." msgstr "" #: pretix/control/logdisplay.py:772 msgctxt "subevent" -msgid "The event date has been changed." +msgid "The event date has been canceled." msgstr "" #: pretix/control/logdisplay.py:773 msgctxt "subevent" -msgid "The event date has been created." +msgid "The event date has been changed." msgstr "" #: pretix/control/logdisplay.py:774 msgctxt "subevent" -msgid "A quota has been added to the event date." +msgid "The event date has been created." msgstr "" #: pretix/control/logdisplay.py:775 msgctxt "subevent" -msgid "A quota has been changed on the event date." +msgid "A quota has been added to the event date." msgstr "" #: pretix/control/logdisplay.py:776 msgctxt "subevent" -msgid "A quota has been removed from the event date." +msgid "A quota has been changed on the event date." msgstr "" #: pretix/control/logdisplay.py:777 -msgid "The device has been created." +msgctxt "subevent" +msgid "A quota has been removed from the event date." msgstr "" #: pretix/control/logdisplay.py:778 -msgid "The device has been changed." +msgid "The device has been created." msgstr "" #: pretix/control/logdisplay.py:779 -msgid "Access of the device has been revoked." +msgid "The device has been changed." msgstr "" #: pretix/control/logdisplay.py:780 -msgid "The device has been initialized." +msgid "Access of the device has been revoked." msgstr "" #: pretix/control/logdisplay.py:781 -msgid "The access token of the device has been regenerated." +msgid "The device has been initialized." msgstr "" #: pretix/control/logdisplay.py:782 -msgid "The device has notified the server of an hardware or software update." +msgid "The access token of the device has been regenerated." msgstr "" #: pretix/control/logdisplay.py:783 +msgid "The device has notified the server of an hardware or software update." +msgstr "" + +#: pretix/control/logdisplay.py:784 msgid "The gift card has been created." msgstr "" -#: pretix/control/logdisplay.py:784 pretix/control/views/organizer.py:1925 +#: pretix/control/logdisplay.py:785 pretix/control/views/organizer.py:1925 msgid "The gift card has been changed." msgstr "" -#: pretix/control/logdisplay.py:785 -msgid "A manual transaction has been performed." -msgstr "" - #: pretix/control/logdisplay.py:786 -#, python-brace-format -msgid "The token \"{name}\" has been created." +msgid "A manual transaction has been performed." msgstr "" #: pretix/control/logdisplay.py:787 #, python-brace-format -msgid "The token \"{name}\" has been revoked." +msgid "The token \"{name}\" has been created." msgstr "" #: pretix/control/logdisplay.py:788 +#, python-brace-format +msgid "The token \"{name}\" has been revoked." +msgstr "" + +#: pretix/control/logdisplay.py:789 msgid "The check-in and print log state has been reset." msgstr "" -#: pretix/control/logdisplay.py:795 pretix/control/logdisplay.py:854 +#: pretix/control/logdisplay.py:796 pretix/control/logdisplay.py:855 msgid "The plugin has been enabled." msgstr "" -#: pretix/control/logdisplay.py:796 pretix/control/logdisplay.py:855 +#: pretix/control/logdisplay.py:797 pretix/control/logdisplay.py:856 #: pretix/control/views/event.py:490 pretix/control/views/organizer.py:753 msgid "The plugin has been disabled." msgstr "" -#: pretix/control/logdisplay.py:799 pretix/control/logdisplay.py:858 +#: pretix/control/logdisplay.py:800 pretix/control/logdisplay.py:859 #, python-brace-format msgid "Plugin {val}" msgstr "" -#: pretix/control/logdisplay.py:814 +#: pretix/control/logdisplay.py:815 msgid "A meta property has been added to this event." msgstr "" -#: pretix/control/logdisplay.py:815 +#: pretix/control/logdisplay.py:816 msgid "A meta property has been removed from this event." msgstr "" -#: pretix/control/logdisplay.py:816 +#: pretix/control/logdisplay.py:817 msgid "A meta property has been changed on this event." msgstr "" -#: pretix/control/logdisplay.py:817 +#: pretix/control/logdisplay.py:818 msgid "The event settings have been changed." msgstr "" -#: pretix/control/logdisplay.py:818 +#: pretix/control/logdisplay.py:819 msgid "The ticket download settings have been changed." msgstr "" -#: pretix/control/logdisplay.py:821 +#: pretix/control/logdisplay.py:822 msgid "The shop has been taken live." msgstr "" -#: pretix/control/logdisplay.py:822 +#: pretix/control/logdisplay.py:823 msgid "The shop has been taken offline." msgstr "" -#: pretix/control/logdisplay.py:823 +#: pretix/control/logdisplay.py:824 msgid "The shop has been taken into test mode." msgstr "" -#: pretix/control/logdisplay.py:824 +#: pretix/control/logdisplay.py:825 msgid "The test mode has been disabled." msgstr "" -#: pretix/control/logdisplay.py:825 +#: pretix/control/logdisplay.py:826 msgid "The event has been created." msgstr "" -#: pretix/control/logdisplay.py:826 +#: pretix/control/logdisplay.py:827 msgid "The event details have been changed." msgstr "" -#: pretix/control/logdisplay.py:828 +#: pretix/control/logdisplay.py:829 msgid "An answer option has been added to the question." msgstr "" -#: pretix/control/logdisplay.py:829 +#: pretix/control/logdisplay.py:830 msgid "An answer option has been removed from the question." msgstr "" -#: pretix/control/logdisplay.py:830 +#: pretix/control/logdisplay.py:831 msgid "An answer option has been changed." msgstr "" -#: pretix/control/logdisplay.py:831 +#: pretix/control/logdisplay.py:832 msgid "A user has been added to the event team." msgstr "" -#: pretix/control/logdisplay.py:832 +#: pretix/control/logdisplay.py:833 msgid "A user has been invited to the event team." msgstr "" -#: pretix/control/logdisplay.py:833 +#: pretix/control/logdisplay.py:834 msgid "A user's permissions have been changed." msgstr "" -#: pretix/control/logdisplay.py:834 +#: pretix/control/logdisplay.py:835 msgid "A user has been removed from the event team." msgstr "" -#: pretix/control/logdisplay.py:841 +#: pretix/control/logdisplay.py:842 msgid "The check-in list has been added." msgstr "" -#: pretix/control/logdisplay.py:842 pretix/control/logdisplay.py:843 +#: pretix/control/logdisplay.py:843 pretix/control/logdisplay.py:844 msgid "The check-in list has been deleted." msgstr "" -#: pretix/control/logdisplay.py:844 +#: pretix/control/logdisplay.py:845 msgid "The check-in list has been changed." msgstr "" -#: pretix/control/logdisplay.py:847 +#: pretix/control/logdisplay.py:848 #, python-brace-format msgid "Check-in list {val}" msgstr "" -#: pretix/control/logdisplay.py:874 +#: pretix/control/logdisplay.py:875 msgid "The product has been created." msgstr "" -#: pretix/control/logdisplay.py:875 +#: pretix/control/logdisplay.py:876 msgid "The product has been changed." msgstr "" -#: pretix/control/logdisplay.py:876 +#: pretix/control/logdisplay.py:877 msgid "The product has been reordered." msgstr "" -#: pretix/control/logdisplay.py:877 +#: pretix/control/logdisplay.py:878 msgid "The product has been deleted." msgstr "" -#: pretix/control/logdisplay.py:878 +#: pretix/control/logdisplay.py:879 msgid "An add-on has been added to this product." msgstr "" -#: pretix/control/logdisplay.py:879 +#: pretix/control/logdisplay.py:880 msgid "An add-on has been removed from this product." msgstr "" -#: pretix/control/logdisplay.py:880 +#: pretix/control/logdisplay.py:881 msgid "An add-on has been changed on this product." msgstr "" -#: pretix/control/logdisplay.py:881 +#: pretix/control/logdisplay.py:882 msgid "A bundled item has been added to this product." msgstr "" -#: pretix/control/logdisplay.py:882 +#: pretix/control/logdisplay.py:883 msgid "A bundled item has been removed from this product." msgstr "" -#: pretix/control/logdisplay.py:883 +#: pretix/control/logdisplay.py:884 msgid "A bundled item has been changed on this product." msgstr "" -#: pretix/control/logdisplay.py:890 -#, python-brace-format -msgid "The variation \"{value}\" has been created." -msgstr "" - #: pretix/control/logdisplay.py:891 #, python-brace-format -msgid "The variation \"{value}\" has been deleted." +msgid "The variation \"{value}\" has been created." msgstr "" #: pretix/control/logdisplay.py:892 #, python-brace-format -msgid "The variation \"{value}\" has been changed." +msgid "The variation \"{value}\" has been deleted." msgstr "" -#: pretix/control/logdisplay.py:909 +#: pretix/control/logdisplay.py:893 #, python-brace-format -msgid "Payment {local_id} has been confirmed." +msgid "The variation \"{value}\" has been changed." msgstr "" #: pretix/control/logdisplay.py:910 #, python-brace-format -msgid "Payment {local_id} has been canceled." +msgid "Payment {local_id} has been confirmed." msgstr "" #: pretix/control/logdisplay.py:911 #, python-brace-format -msgid "Canceling payment {local_id} has failed." +msgid "Payment {local_id} has been canceled." msgstr "" #: pretix/control/logdisplay.py:912 #, python-brace-format -msgid "Payment {local_id} has been started." +msgid "Canceling payment {local_id} has failed." msgstr "" #: pretix/control/logdisplay.py:913 #, python-brace-format -msgid "Payment {local_id} has failed." +msgid "Payment {local_id} has been started." msgstr "" #: pretix/control/logdisplay.py:914 #, python-brace-format -msgid "The order could not be marked as paid: {message}" +msgid "Payment {local_id} has failed." msgstr "" #: pretix/control/logdisplay.py:915 -msgid "The order has been overpaid." +#, python-brace-format +msgid "The order could not be marked as paid: {message}" msgstr "" #: pretix/control/logdisplay.py:916 -#, python-brace-format -msgid "Refund {local_id} has been created." +msgid "The order has been overpaid." msgstr "" #: pretix/control/logdisplay.py:917 #, python-brace-format -msgid "Refund {local_id} has been created by an external entity." +msgid "Refund {local_id} has been created." msgstr "" #: pretix/control/logdisplay.py:918 -msgid "The customer requested you to issue a refund." +#, python-brace-format +msgid "Refund {local_id} has been created by an external entity." msgstr "" #: pretix/control/logdisplay.py:919 -#, python-brace-format -msgid "Refund {local_id} has been completed." +msgid "The customer requested you to issue a refund." msgstr "" #: pretix/control/logdisplay.py:920 #, python-brace-format -msgid "Refund {local_id} has been canceled." +msgid "Refund {local_id} has been completed." msgstr "" #: pretix/control/logdisplay.py:921 #, python-brace-format +msgid "Refund {local_id} has been canceled." +msgstr "" + +#: pretix/control/logdisplay.py:922 +#, python-brace-format msgid "Refund {local_id} has failed." msgstr "" -#: pretix/control/logdisplay.py:928 +#: pretix/control/logdisplay.py:929 msgid "The quota has been added." msgstr "" -#: pretix/control/logdisplay.py:929 +#: pretix/control/logdisplay.py:930 msgid "The quota has been deleted." msgstr "" -#: pretix/control/logdisplay.py:930 +#: pretix/control/logdisplay.py:931 msgid "The quota has been changed." msgstr "" -#: pretix/control/logdisplay.py:931 +#: pretix/control/logdisplay.py:932 msgid "The quota has closed." msgstr "" -#: pretix/control/logdisplay.py:932 pretix/control/views/item.py:1081 +#: pretix/control/logdisplay.py:933 pretix/control/views/item.py:1081 msgid "The quota has been re-opened." msgstr "" -#: pretix/control/logdisplay.py:939 +#: pretix/control/logdisplay.py:940 msgid "The question has been added." msgstr "" -#: pretix/control/logdisplay.py:940 +#: pretix/control/logdisplay.py:941 msgid "The question has been deleted." msgstr "" -#: pretix/control/logdisplay.py:941 +#: pretix/control/logdisplay.py:942 msgid "The question has been changed." msgstr "" -#: pretix/control/logdisplay.py:942 +#: pretix/control/logdisplay.py:943 msgid "The question has been reordered." msgstr "" -#: pretix/control/logdisplay.py:949 +#: pretix/control/logdisplay.py:950 msgid "The discount has been added." msgstr "" -#: pretix/control/logdisplay.py:950 +#: pretix/control/logdisplay.py:951 msgid "The discount has been deleted." msgstr "" -#: pretix/control/logdisplay.py:951 +#: pretix/control/logdisplay.py:952 msgid "The discount has been changed." msgstr "" -#: pretix/control/logdisplay.py:975 +#: pretix/control/logdisplay.py:976 #, python-brace-format msgid "" "Position #{posid} has been checked in manually at {datetime} on list \"{list}" "\"." msgstr "" -#: pretix/control/logdisplay.py:980 +#: pretix/control/logdisplay.py:981 #, python-brace-format msgid "" "Position #{posid} has been checked in again at {datetime} on list \"{list}\"." msgstr "" -#: pretix/control/logdisplay.py:989 +#: pretix/control/logdisplay.py:990 msgid "An entry has been removed from the waiting list." msgstr "" -#: pretix/control/logdisplay.py:990 +#: pretix/control/logdisplay.py:991 msgid "An entry has been changed on the waiting list." msgstr "" -#: pretix/control/logdisplay.py:991 +#: pretix/control/logdisplay.py:992 msgid "An entry has been added to the waiting list." msgstr "" @@ -15884,7 +15961,7 @@ msgstr "" #: pretix/control/navigation.py:126 pretix/control/navigation.py:435 #: pretix/control/navigation.py:485 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:138 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:151 #: pretix/control/templates/pretixcontrol/event/payment.html:47 #: pretix/control/templates/pretixcontrol/event/plugins.html:117 #: pretix/control/templates/pretixcontrol/organizers/plugins.html:137 @@ -16146,12 +16223,12 @@ msgstr "" #: pretix/presale/templates/pretixpresale/event/checkout_addons.html:90 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:126 #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:80 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:131 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:168 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:194 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:53 #: pretix/presale/templates/pretixpresale/event/order_change.html:27 #: pretix/presale/templates/pretixpresale/event/order_pay.html:28 -#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:66 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:75 #: pretix/presale/templates/pretixpresale/event/position_change.html:29 msgid "Continue" msgstr "" @@ -16200,7 +16277,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:82 #: pretix/control/templates/pretixcontrol/email_setup_smtp.html:38 #: pretix/control/templates/pretixcontrol/event/cancel.html:91 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:162 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:175 #: pretix/control/templates/pretixcontrol/event/mail.html:135 #: pretix/control/templates/pretixcontrol/event/payment.html:88 #: pretix/control/templates/pretixcontrol/event/payment_provider.html:36 @@ -16233,8 +16310,8 @@ msgstr "" #: pretix/control/templates/pretixcontrol/organizers/export_form.html:46 #: pretix/control/templates/pretixcontrol/organizers/gate_edit.html:15 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_invite.html:15 -#: pretix/control/templates/pretixcontrol/organizers/giftcard_create.html:17 -#: pretix/control/templates/pretixcontrol/organizers/giftcard_edit.html:21 +#: pretix/control/templates/pretixcontrol/organizers/giftcard_create.html:20 +#: pretix/control/templates/pretixcontrol/organizers/giftcard_edit.html:24 #: pretix/control/templates/pretixcontrol/organizers/mail.html:73 #: pretix/control/templates/pretixcontrol/organizers/membershiptype_edit.html:15 #: pretix/control/templates/pretixcontrol/organizers/plugin_events.html:41 @@ -16245,9 +16322,9 @@ msgstr "" #: pretix/control/templates/pretixcontrol/organizers/team_edit.html:47 #: pretix/control/templates/pretixcontrol/organizers/webhook_edit.html:21 #: pretix/control/templates/pretixcontrol/pdf/index.html:46 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:630 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:632 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:368 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:287 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:289 #: pretix/control/templates/pretixcontrol/user/notifications.html:85 #: pretix/control/templates/pretixcontrol/user/settings.html:81 #: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:13 @@ -16623,7 +16700,7 @@ msgstr[1] "" #: pretix/presale/templates/pretixpresale/event/order_change.html:22 #: pretix/presale/templates/pretixpresale/event/order_modify.html:80 #: pretix/presale/templates/pretixpresale/event/order_pay.html:23 -#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:60 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:69 #: pretix/presale/templates/pretixpresale/event/order_pay_confirm.html:40 #: pretix/presale/templates/pretixpresale/event/position_change.html:24 #: pretix/presale/templates/pretixpresale/event/position_modify.html:44 @@ -16644,7 +16721,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/orders/export.html:77 #: pretix/control/templates/pretixcontrol/orders/export_delete.html:15 #: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:28 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:173 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:174 #: pretix/control/templates/pretixcontrol/organizers/customer_membership_delete.html:26 #: pretix/control/templates/pretixcontrol/organizers/delete.html:30 #: pretix/control/templates/pretixcontrol/organizers/export.html:77 @@ -16740,7 +16817,7 @@ msgstr "" #: pretix/control/templates/pretixcontrol/checkin/checkins.html:65 #: pretix/control/templates/pretixcontrol/checkin/simulator.html:49 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:14 -#: pretix/plugins/checkinlists/exporters.py:767 +#: pretix/plugins/checkinlists/exporters.py:770 msgid "Result" msgstr "" @@ -16937,8 +17014,8 @@ msgstr "" #: pretix/control/templates/pretixcontrol/items/index.html:164 #: pretix/control/templates/pretixcontrol/orders/export.html:73 #: pretix/control/templates/pretixcontrol/orders/index.html:40 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:98 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:166 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:99 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:167 #: pretix/control/templates/pretixcontrol/organizers/export.html:73 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:15 #: pretix/control/templates/pretixcontrol/organizers/mail.html:34 @@ -17764,23 +17841,30 @@ msgstr "" msgid "Invoice generation" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:27 -msgid "Address form" +#: pretix/control/templates/pretixcontrol/event/invoicing.html:23 +msgid "" +"You configured that your shop is not an event and the event date should not " +"be shown. Therefore, we recommend that you set the date of service to a " +"different option." msgstr "" #: pretix/control/templates/pretixcontrol/event/invoicing.html:40 +msgid "Address form" +msgstr "" + +#: pretix/control/templates/pretixcontrol/event/invoicing.html:53 msgid "Issuer details" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:50 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:63 msgid "Invoice customization" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:64 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:77 msgid "Invoice transmission" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:66 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:79 msgid "" "pretix can transmit invoices using different transmission methods. Different " "transmission methods might be required depending on country and industry. By " @@ -17788,47 +17872,47 @@ msgid "" "types of transmission can be added by plugins." msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:73 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:86 msgid "" "Whether a transmission method listed here is actually selectable for " "customers may depend on the country of the customer or whether the customer " "is entering a business address." msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:82 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:95 msgid "Transmission method" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:98 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:125 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:111 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:138 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:109 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:111 msgid "Available" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:100 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:113 msgid "" "When this type is available for an invoice address, no other type can be " "selected." msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:101 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:114 msgid "(exclusive)" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:108 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:121 msgid "Unavailable" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:130 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:143 msgid "Not configured" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:152 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:165 msgid "Enable additional invoice transmission plugins" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:159 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:172 msgid "Save and show preview" msgstr "" @@ -18152,19 +18236,19 @@ msgstr "" #: pretix/control/views/organizer.py:2672 #: pretix/control/views/organizer.py:2788 #: pretix/control/views/organizer.py:2917 -#: pretix/control/views/organizer.py:3111 -#: pretix/control/views/organizer.py:3140 -#: pretix/control/views/organizer.py:3180 -#: pretix/control/views/organizer.py:3257 -#: pretix/control/views/organizer.py:3354 -#: pretix/control/views/organizer.py:3383 -#: pretix/control/views/organizer.py:3521 pretix/control/views/subevents.py:542 +#: pretix/control/views/organizer.py:3113 +#: pretix/control/views/organizer.py:3142 +#: pretix/control/views/organizer.py:3182 +#: pretix/control/views/organizer.py:3259 +#: pretix/control/views/organizer.py:3356 +#: pretix/control/views/organizer.py:3385 +#: pretix/control/views/organizer.py:3523 pretix/control/views/subevents.py:542 #: pretix/control/views/subevents.py:1614 pretix/control/views/user.py:236 #: pretix/control/views/users.py:114 pretix/control/views/vouchers.py:305 #: pretix/plugins/autocheckin/views.py:164 pretix/plugins/badges/views.py:157 #: pretix/plugins/sendmail/views.py:645 pretix/plugins/stripe/views.py:679 #: pretix/plugins/ticketoutputpdf/views.py:172 -#: pretix/presale/views/customer.py:527 pretix/presale/views/customer.py:579 +#: pretix/presale/views/customer.py:542 pretix/presale/views/customer.py:594 msgid "Your changes have been saved." msgstr "" @@ -18905,6 +18989,29 @@ msgstr "" msgid "Currently available: %(num)s" msgstr "" +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:9 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:81 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:14 +#: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:7 +msgid "Information" +msgstr "" + +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:10 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:15 +msgid "The following gift cards are available in your customer account:" +msgstr "" + +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:25 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:29 +msgid "Use gift card" +msgstr "" + +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:27 +#: pretix/control/templates/pretixcontrol/pdf/index.html:156 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:32 +msgid "Apply" +msgstr "" + #: pretix/control/templates/pretixcontrol/giftcards/checkout_confirm.html:4 #, python-format msgid "Your gift card %(card)s will be used to pay for this order." @@ -19424,8 +19531,8 @@ msgid "" msgstr "" #: pretix/control/templates/pretixcontrol/item/index.html:254 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:617 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:260 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:619 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:262 msgid "Additional settings" msgstr "" @@ -19729,8 +19836,8 @@ msgstr "" #: pretix/control/templates/pretixcontrol/items/question.html:26 #: pretix/control/templates/pretixcontrol/orders/fragment_order_status.html:31 #: pretix/control/templates/pretixcontrol/orders/overview.html:88 -#: pretix/plugins/checkinlists/exporters.py:503 -#: pretix/plugins/checkinlists/exporters.py:697 +#: pretix/plugins/checkinlists/exporters.py:504 +#: pretix/plugins/checkinlists/exporters.py:699 #: pretix/plugins/reports/exporters.py:397 #: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:23 msgid "Paid" @@ -20666,7 +20773,7 @@ msgstr "" #: pretix/plugins/reports/exporters.py:397 #: pretix/plugins/reports/exporters.py:446 #: pretix/plugins/reports/exporters.py:638 -#: pretix/plugins/reports/exporters.py:968 +#: pretix/plugins/reports/exporters.py:969 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:465 msgid "Total" msgstr "" @@ -21427,7 +21534,7 @@ msgid "Remove filter" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:145 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:207 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:208 msgid "Order paid / total" msgstr "" @@ -21449,40 +21556,40 @@ msgid "TODO %(date)s" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:215 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:246 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:247 #: pretix/control/templates/pretixcontrol/search/orders.html:95 msgid "CANCELLATION REQUESTED" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:218 #: pretix/control/templates/pretixcontrol/orders/index.html:220 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:249 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:251 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:250 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:252 #: pretix/control/templates/pretixcontrol/search/orders.html:98 #: pretix/control/templates/pretixcontrol/search/orders.html:100 msgid "REFUND PENDING" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:223 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:254 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:255 #: pretix/control/templates/pretixcontrol/search/orders.html:103 msgid "OVERPAID" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:225 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:256 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:257 #: pretix/control/templates/pretixcontrol/search/orders.html:105 msgid "UNDERPAID" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:227 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:258 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:259 #: pretix/control/templates/pretixcontrol/search/orders.html:107 msgid "FULLY PAID" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:239 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:270 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:271 msgid "INVOICE NOT CANCELED" msgstr "" @@ -21621,62 +21728,53 @@ msgstr "" msgid "Channel" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:7 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:13 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:8 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:14 #: pretix/control/templates/pretixcontrol/organizers/customer_edit.html:8 #: pretix/control/templates/pretixcontrol/organizers/customer_edit.html:18 #, python-format msgid "Customer #%(id)s" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:22 -#: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:15 -#: pretix/control/templates/pretixcontrol/organizers/customers.html:90 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:23 -#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:95 -#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:102 -#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:21 -#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:390 -#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:114 -#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:95 -#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:66 -msgid "Details" -msgstr "" - -#: pretix/control/templates/pretixcontrol/organizers/customer.html:54 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:55 msgid "Send password reset link" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:79 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:80 msgid "This includes all paid orders by this customer across all your events." msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:80 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:81 msgid "Lifetime spending" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:102 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:103 #: pretix/control/templates/pretixcontrol/organizers/customer_anonymize.html:39 #: pretix/control/templates/pretixcontrol/users/form.html:24 msgid "Anonymize" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:121 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:122 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:35 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:60 msgid "Usages" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:188 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:189 msgid "Add membership" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:240 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:241 #: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:29 msgid "Matched to the account based on the email address." msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:286 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:294 +#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:65 +msgid "Last transaction" +msgstr "" + +#: pretix/control/templates/pretixcontrol/organizers/customer.html:334 msgid "Customer history" msgstr "" @@ -22087,26 +22185,21 @@ msgstr "" msgid "Issued through sale" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:63 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:71 msgid "Transactions" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:73 -#: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:7 -msgid "Information" -msgstr "" - -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:86 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:94 msgid "" "Create a payment on the respective order that cancels out with this " "transaction. The order will then likely be overpaid." msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:88 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:96 msgid "Revert" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:131 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:139 msgid "Gift card history" msgstr "" @@ -22203,10 +22296,6 @@ msgstr "" msgid "Manually issue a gift card" msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:65 -msgid "Last transaction" -msgstr "" - #: pretix/control/templates/pretixcontrol/organizers/index.html:9 msgid "" "The list below shows all organizer accounts you have administrative access " @@ -22748,10 +22837,6 @@ msgid "" "it to copy and share ticket designs, not to modify the design source code." msgstr "" -#: pretix/control/templates/pretixcontrol/pdf/index.html:156 -msgid "Apply" -msgstr "" - #: pretix/control/templates/pretixcontrol/pdf/index.html:164 msgid "Uploading new PDF background…" msgstr "" @@ -23171,8 +23256,8 @@ msgid "" "from the product settings will be used." msgstr "" -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:521 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:164 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:523 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:166 msgid "" "You can choose to either add one or more check-in lists for every date in " "your series individually, or use just one check-in list for all your dates " @@ -23184,9 +23269,9 @@ msgid "" "will be easier." msgstr "" -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:600 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:602 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:359 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:243 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:245 msgid "Add a new check-in list" msgstr "" @@ -23267,7 +23352,7 @@ msgctxt "subevent" msgid "Create date" msgstr "" -#: pretix/control/templates/pretixcontrol/subevents/detail.html:277 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:279 msgctxt "subevent" msgid "Date history" msgstr "" @@ -24401,8 +24486,8 @@ msgid_plural "{num} orders" msgstr[0] "" msgstr[1] "" -#: pretix/control/views/datasync.py:82 -msgid "The sync job has been enqueued and will run in the next minutes." +#: pretix/control/views/datasync.py:82 pretix/control/views/datasync.py:113 +msgid "The sync job has been set to run as soon as possible." msgstr "" #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 @@ -24418,10 +24503,6 @@ msgstr "" msgid "The sync job has been canceled." msgstr "" -#: pretix/control/views/datasync.py:113 -msgid "The sync job has been set to run as soon as possible." -msgstr "" - #: pretix/control/views/datasync.py:144 msgid "The selected jobs have been set to run as soon as possible." msgstr "" @@ -24454,7 +24535,7 @@ msgstr "" #: pretix/control/views/discounts.py:260 pretix/control/views/item.py:190 #: pretix/control/views/item.py:402 pretix/control/views/item.py:536 #: pretix/control/views/organizer.py:2558 -#: pretix/control/views/organizer.py:3616 +#: pretix/control/views/organizer.py:3618 msgid "Some of the provided object ids are invalid." msgstr "" @@ -24498,7 +24579,7 @@ msgid "Unknown email renderer." msgstr "" #: pretix/control/views/event.py:920 pretix/control/views/orders.py:678 -#: pretix/presale/views/order.py:1088 pretix/presale/views/order.py:1095 +#: pretix/presale/views/order.py:1111 pretix/presale/views/order.py:1118 msgid "You requested an invalid ticket output type." msgstr "" @@ -24695,7 +24776,7 @@ msgstr "" #: pretix/control/views/item.py:405 pretix/control/views/item.py:539 #: pretix/control/views/organizer.py:2561 -#: pretix/control/views/organizer.py:3619 +#: pretix/control/views/organizer.py:3621 msgid "Not all objects have been selected." msgstr "" @@ -24895,19 +24976,19 @@ msgid "" "Successfully executed the action \"{label}\" on {success} of {total} orders." msgstr "" -#: pretix/control/views/orders.py:680 pretix/presale/views/order.py:158 -#: pretix/presale/views/order.py:240 pretix/presale/views/order.py:334 -#: pretix/presale/views/order.py:361 pretix/presale/views/order.py:429 -#: pretix/presale/views/order.py:496 pretix/presale/views/order.py:542 -#: pretix/presale/views/order.py:728 pretix/presale/views/order.py:841 -#: pretix/presale/views/order.py:913 pretix/presale/views/order.py:928 -#: pretix/presale/views/order.py:977 pretix/presale/views/order.py:982 -#: pretix/presale/views/order.py:1097 pretix/presale/views/order.py:1274 -#: pretix/presale/views/order.py:1666 pretix/presale/views/order.py:1697 +#: pretix/control/views/orders.py:680 pretix/presale/views/order.py:161 +#: pretix/presale/views/order.py:243 pretix/presale/views/order.py:337 +#: pretix/presale/views/order.py:364 pretix/presale/views/order.py:432 +#: pretix/presale/views/order.py:499 pretix/presale/views/order.py:545 +#: pretix/presale/views/order.py:731 pretix/presale/views/order.py:864 +#: pretix/presale/views/order.py:936 pretix/presale/views/order.py:951 +#: pretix/presale/views/order.py:1000 pretix/presale/views/order.py:1005 +#: pretix/presale/views/order.py:1120 pretix/presale/views/order.py:1297 +#: pretix/presale/views/order.py:1689 pretix/presale/views/order.py:1720 msgid "Unknown order code or not authorized to access this order." msgstr "" -#: pretix/control/views/orders.py:682 pretix/presale/views/order.py:1102 +#: pretix/control/views/orders.py:682 pretix/presale/views/order.py:1125 msgid "Ticket download is not enabled for this product." msgstr "" @@ -24997,51 +25078,51 @@ msgid "" "still necessary." msgstr "" -#: pretix/control/views/orders.py:1259 +#: pretix/control/views/orders.py:1260 msgid "You entered an order in an event with a different currency." msgstr "" -#: pretix/control/views/orders.py:1310 +#: pretix/control/views/orders.py:1311 msgid "" "You can not refund more than the amount of a payment that is not yet " "refunded." msgstr "" -#: pretix/control/views/orders.py:1315 +#: pretix/control/views/orders.py:1316 msgid "" "You selected a partial refund for a payment method that only supports full " "refunds." msgstr "" -#: pretix/control/views/orders.py:1345 +#: pretix/control/views/orders.py:1346 #, python-brace-format msgid "" "One of the refunds failed to be processed. You should retry to refund in a " "different way. The error message was: {}" msgstr "" -#: pretix/control/views/orders.py:1351 +#: pretix/control/views/orders.py:1352 #, python-brace-format msgid "A refund of {} has been processed." msgstr "" -#: pretix/control/views/orders.py:1355 +#: pretix/control/views/orders.py:1356 #, python-brace-format msgid "" "A refund of {} has been saved, but not yet fully executed. You can mark it " "as complete below." msgstr "" -#: pretix/control/views/orders.py:1384 +#: pretix/control/views/orders.py:1385 msgid "" "A new gift card was created. You can now send the user their gift card code." msgstr "" -#: pretix/control/views/orders.py:1392 +#: pretix/control/views/orders.py:1393 msgid "Your gift card code" msgstr "" -#: pretix/control/views/orders.py:1394 +#: pretix/control/views/orders.py:1395 #, python-brace-format msgid "" "Hello,\n" @@ -25054,201 +25135,201 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/control/views/orders.py:1405 +#: pretix/control/views/orders.py:1406 msgid "The refunds you selected do not match the selected total refund amount." msgstr "" -#: pretix/control/views/orders.py:1535 +#: pretix/control/views/orders.py:1536 msgid "" "The order has been marked as paid, but we were unable to send a confirmation " "mail." msgstr "" -#: pretix/control/views/orders.py:1538 +#: pretix/control/views/orders.py:1539 msgid "The payment has been created successfully." msgstr "" -#: pretix/control/views/orders.py:1552 +#: pretix/control/views/orders.py:1553 msgid "" "The order has been canceled. You can now select how you want to transfer the " "money back to the user." msgstr "" -#: pretix/control/views/orders.py:1623 pretix/control/views/orders.py:1627 +#: pretix/control/views/orders.py:1624 pretix/control/views/orders.py:1628 msgid "No VAT ID specified." msgstr "" -#: pretix/control/views/orders.py:1631 +#: pretix/control/views/orders.py:1632 msgid "No country specified." msgstr "" -#: pretix/control/views/orders.py:1635 +#: pretix/control/views/orders.py:1636 msgid "VAT ID could not be checked since this country is not supported." msgstr "" -#: pretix/control/views/orders.py:1646 +#: pretix/control/views/orders.py:1647 msgid "" "The VAT ID could not be checked, as the VAT checking service of the country " "is currently not available." msgstr "" -#: pretix/control/views/orders.py:1649 +#: pretix/control/views/orders.py:1650 msgid "This VAT ID is valid." msgstr "" -#: pretix/control/views/orders.py:1663 pretix/control/views/orders.py:1697 -#: pretix/control/views/orders.py:1729 +#: pretix/control/views/orders.py:1664 pretix/control/views/orders.py:1698 +#: pretix/control/views/orders.py:1730 msgid "Unknown invoice." msgstr "" -#: pretix/control/views/orders.py:1666 +#: pretix/control/views/orders.py:1667 msgid "Invoices may not be changed after they are created." msgstr "" -#: pretix/control/views/orders.py:1668 +#: pretix/control/views/orders.py:1669 msgid "Invoices may not be changed after they are transmitted." msgstr "" -#: pretix/control/views/orders.py:1670 pretix/control/views/orders.py:1732 +#: pretix/control/views/orders.py:1671 pretix/control/views/orders.py:1733 msgid "The invoice has already been canceled." msgstr "" -#: pretix/control/views/orders.py:1672 +#: pretix/control/views/orders.py:1673 msgid "The invoice file has already been exported." msgstr "" -#: pretix/control/views/orders.py:1674 +#: pretix/control/views/orders.py:1675 msgid "The invoice file is too old to be regenerated." msgstr "" -#: pretix/control/views/orders.py:1676 pretix/control/views/orders.py:1734 +#: pretix/control/views/orders.py:1677 pretix/control/views/orders.py:1735 msgid "The invoice has been cleaned of personal data." msgstr "" -#: pretix/control/views/orders.py:1701 +#: pretix/control/views/orders.py:1702 msgid "" "The invoice is currently being transmitted. You can start a new attempt " "after the current one has been completed." msgstr "" -#: pretix/control/views/orders.py:1708 +#: pretix/control/views/orders.py:1709 msgid "The invoice has been scheduled for retransmission." msgstr "" -#: pretix/control/views/orders.py:1765 +#: pretix/control/views/orders.py:1766 msgid "The email has been queued to be sent." msgstr "" -#: pretix/control/views/orders.py:1789 pretix/presale/views/order.py:1283 +#: pretix/control/views/orders.py:1790 pretix/presale/views/order.py:1306 msgid "This invoice has not been found" msgstr "" -#: pretix/control/views/orders.py:1796 pretix/presale/views/order.py:1290 +#: pretix/control/views/orders.py:1797 pretix/presale/views/order.py:1313 msgid "The invoice file is no longer stored on the server." msgstr "" -#: pretix/control/views/orders.py:1801 pretix/presale/views/order.py:1295 +#: pretix/control/views/orders.py:1802 pretix/presale/views/order.py:1318 msgid "" "The invoice file has not yet been generated, we will generate it for you " "now. Please try again in a few seconds." msgstr "" -#: pretix/control/views/orders.py:1829 +#: pretix/control/views/orders.py:1830 msgid "The payment term has been changed." msgstr "" -#: pretix/control/views/orders.py:1834 pretix/control/views/orders.py:1891 +#: pretix/control/views/orders.py:1835 pretix/control/views/orders.py:1892 msgid "" "We were not able to process the request completely as the server was too " "busy." msgstr "" -#: pretix/control/views/orders.py:1842 +#: pretix/control/views/orders.py:1843 msgid "This action is only allowed for pending orders." msgstr "" -#: pretix/control/views/orders.py:1897 +#: pretix/control/views/orders.py:1898 msgid "This action is only allowed for canceled orders." msgstr "" -#: pretix/control/views/orders.py:2154 pretix/presale/views/order.py:1569 +#: pretix/control/views/orders.py:2155 pretix/presale/views/order.py:1592 msgid "An error occurred. Please see the details below." msgstr "" -#: pretix/control/views/orders.py:2162 +#: pretix/control/views/orders.py:2163 msgid "The order has been changed and the user has been notified." msgstr "" -#: pretix/control/views/orders.py:2164 pretix/control/views/orders.py:2300 -#: pretix/control/views/orders.py:2337 pretix/presale/views/order.py:1604 +#: pretix/control/views/orders.py:2165 pretix/control/views/orders.py:2301 +#: pretix/control/views/orders.py:2338 pretix/presale/views/order.py:1627 msgid "The order has been changed." msgstr "" -#: pretix/control/views/orders.py:2191 pretix/presale/checkoutflow.py:945 -#: pretix/presale/views/order.py:783 pretix/presale/views/order.py:888 +#: pretix/control/views/orders.py:2192 pretix/presale/checkoutflow.py:945 +#: pretix/presale/views/order.py:793 pretix/presale/views/order.py:911 msgid "" "We had difficulties processing your input. Please review the errors below." msgstr "" -#: pretix/control/views/orders.py:2302 +#: pretix/control/views/orders.py:2303 msgid "Nothing about the order had to be changed." msgstr "" -#: pretix/control/views/orders.py:2383 pretix/plugins/sendmail/views.py:176 +#: pretix/control/views/orders.py:2384 pretix/plugins/sendmail/views.py:176 msgid "We could not send the email. See below for details." msgstr "" -#: pretix/control/views/orders.py:2399 pretix/control/views/orders.py:2469 +#: pretix/control/views/orders.py:2400 pretix/control/views/orders.py:2470 #: pretix/plugins/sendmail/views.py:204 pretix/plugins/sendmail/views.py:671 #, python-brace-format msgid "Subject: {subject}" msgstr "" -#: pretix/control/views/orders.py:2418 pretix/control/views/orders.py:2489 +#: pretix/control/views/orders.py:2419 pretix/control/views/orders.py:2490 #, python-brace-format msgid "Your message has been queued and will be sent to {}." msgstr "" -#: pretix/control/views/orders.py:2422 pretix/control/views/orders.py:2492 +#: pretix/control/views/orders.py:2423 pretix/control/views/orders.py:2493 #, python-brace-format msgid "Failed to send mail to the following user: {}" msgstr "" -#: pretix/control/views/orders.py:2545 pretix/presale/views/order.py:1062 +#: pretix/control/views/orders.py:2546 pretix/presale/views/order.py:1085 msgid "" "This link is no longer valid. Please go back, refresh the page, and try " "again." msgstr "" -#: pretix/control/views/orders.py:2626 +#: pretix/control/views/orders.py:2627 msgid "There is no order with the given order code." msgstr "" -#: pretix/control/views/orders.py:2732 pretix/control/views/organizer.py:2074 +#: pretix/control/views/orders.py:2733 pretix/control/views/organizer.py:2074 msgid "The selected exporter was not found." msgstr "" -#: pretix/control/views/orders.py:2742 pretix/control/views/organizer.py:2084 +#: pretix/control/views/orders.py:2743 pretix/control/views/organizer.py:2084 msgid "There was a problem processing your input. See below for error details." msgstr "" -#: pretix/control/views/orders.py:2777 pretix/control/views/organizer.py:2127 +#: pretix/control/views/orders.py:2778 pretix/control/views/organizer.py:2127 #, python-brace-format msgid "" "Your export schedule has been saved. The next export will start around " "{datetime}." msgstr "" -#: pretix/control/views/orders.py:2782 pretix/control/views/organizer.py:2132 +#: pretix/control/views/orders.py:2783 pretix/control/views/organizer.py:2132 msgid "Your export schedule has been saved, but no next export is planned." msgstr "" -#: pretix/control/views/orders.py:2821 pretix/control/views/organizer.py:2172 +#: pretix/control/views/orders.py:2822 pretix/control/views/organizer.py:2172 #, python-brace-format msgid "Export: {title}" msgstr "" -#: pretix/control/views/orders.py:2822 pretix/control/views/organizer.py:2174 +#: pretix/control/views/orders.py:2823 pretix/control/views/organizer.py:2174 #, python-brace-format msgid "" "Hello,\n" @@ -25256,31 +25337,31 @@ msgid "" "attached to this email, you can find a new scheduled report for {name}." msgstr "" -#: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 +#: pretix/control/views/orders.py:2850 pretix/control/views/organizer.py:2207 msgid "" "Your user account does not have sufficient permission to run this report, " "therefore you cannot schedule it." msgstr "" -#: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 +#: pretix/control/views/orders.py:2903 pretix/control/views/organizer.py:2259 msgid "" "Your export is queued to start soon. The results will be send via email. " "Depending on system load and type and size of export, this may take a few " "minutes." msgstr "" -#: pretix/control/views/orders.py:2981 +#: pretix/control/views/orders.py:2982 msgid "All orders have been canceled." msgstr "" -#: pretix/control/views/orders.py:2983 +#: pretix/control/views/orders.py:2984 #, python-brace-format msgid "" "The orders have been canceled. An error occurred with {count} orders, please " "check all uncanceled orders." msgstr "" -#: pretix/control/views/orders.py:3004 +#: pretix/control/views/orders.py:3005 msgid "Your input was not valid." msgstr "" @@ -25349,8 +25430,8 @@ msgstr "" #: pretix/control/views/organizer.py:2792 #: pretix/control/views/organizer.py:2872 #: pretix/control/views/organizer.py:2922 -#: pretix/control/views/organizer.py:3481 -#: pretix/control/views/organizer.py:3525 +#: pretix/control/views/organizer.py:3483 +#: pretix/control/views/organizer.py:3527 msgid "Your changes could not be saved." msgstr "" @@ -25512,7 +25593,7 @@ msgstr "" #: pretix/control/views/organizer.py:2706 #: pretix/control/views/organizer.py:2822 #: pretix/control/views/organizer.py:2952 -#: pretix/control/views/organizer.py:3218 +#: pretix/control/views/organizer.py:3220 msgid "The selected object has been deleted." msgstr "" @@ -25540,25 +25621,25 @@ msgid "" "password." msgstr "" -#: pretix/control/views/organizer.py:3283 +#: pretix/control/views/organizer.py:3285 msgid "The customer account has been anonymized." msgstr "" -#: pretix/control/views/organizer.py:3553 +#: pretix/control/views/organizer.py:3555 msgid "This channel can not be deleted." msgstr "" -#: pretix/control/views/organizer.py:3558 +#: pretix/control/views/organizer.py:3560 msgid "The selected sales channel has been deleted." msgstr "" -#: pretix/control/views/organizer.py:3560 +#: pretix/control/views/organizer.py:3562 msgid "" "The channel could not be deleted as some constraints (e.g. data created by " "plug-ins) did not allow it." msgstr "" -#: pretix/control/views/organizer.py:3585 +#: pretix/control/views/organizer.py:3587 msgid "The order of sales channels has been updated." msgstr "" @@ -26159,7 +26240,7 @@ msgstr "" #: pretix/plugins/badges/exporters.py:493 #: pretix/plugins/checkinlists/exporters.py:118 #: pretix/plugins/reports/exporters.py:506 -#: pretix/plugins/reports/exporters.py:688 +#: pretix/plugins/reports/exporters.py:689 #: pretix/plugins/ticketoutputpdf/exporters.py:92 msgid "Sort by" msgstr "" @@ -27014,8 +27095,8 @@ msgstr "" #: pretix/plugins/checkinlists/exporters.py:305 #: pretix/plugins/checkinlists/exporters.py:476 -#: pretix/plugins/checkinlists/exporters.py:673 -#: pretix/plugins/checkinlists/exporters.py:743 +#: pretix/plugins/checkinlists/exporters.py:674 +#: pretix/plugins/checkinlists/exporters.py:745 msgctxt "export_category" msgid "Check-in" msgstr "" @@ -27038,71 +27119,71 @@ msgid "" "list." msgstr "" -#: pretix/plugins/checkinlists/exporters.py:500 +#: pretix/plugins/checkinlists/exporters.py:501 msgid "Checked out" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:500 -#: pretix/plugins/checkinlists/exporters.py:765 +#: pretix/plugins/checkinlists/exporters.py:501 +#: pretix/plugins/checkinlists/exporters.py:768 msgid "Automatically checked in" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:506 -#: pretix/plugins/checkinlists/exporters.py:694 -#: pretix/plugins/checkinlists/exporters.py:759 +#: pretix/plugins/checkinlists/exporters.py:507 +#: pretix/plugins/checkinlists/exporters.py:696 +#: pretix/plugins/checkinlists/exporters.py:762 #: pretix/plugins/paypal/payment.py:124 pretix/plugins/paypal2/payment.py:121 msgid "Secret" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:672 +#: pretix/plugins/checkinlists/exporters.py:673 msgid "Valid check-in codes" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:674 +#: pretix/plugins/checkinlists/exporters.py:675 msgid "" "Download a spreadsheet with all valid check-in barcodes e.g. for import into " "a different system. Does not included blocked codes or personal data." msgstr "" -#: pretix/plugins/checkinlists/exporters.py:742 +#: pretix/plugins/checkinlists/exporters.py:744 msgid "Check-in log (all scans)" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:744 +#: pretix/plugins/checkinlists/exporters.py:746 msgid "" "Download a spreadsheet with one line for every scan that happened at your " "check-in stations." msgstr "" -#: pretix/plugins/checkinlists/exporters.py:763 +#: pretix/plugins/checkinlists/exporters.py:766 msgid "Offline" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:764 +#: pretix/plugins/checkinlists/exporters.py:767 msgid "Offline override" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:768 +#: pretix/plugins/checkinlists/exporters.py:771 #: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:83 msgid "Error message" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:769 +#: pretix/plugins/checkinlists/exporters.py:772 msgid "Upload date" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:770 +#: pretix/plugins/checkinlists/exporters.py:773 msgid "Upload time" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:827 +#: pretix/plugins/checkinlists/exporters.py:830 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:519 #: pretix/presale/templates/pretixpresale/fragment_modals.html:52 #: pretix/presale/templates/pretixpresale/fragment_modals.html:148 msgid "OK" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:859 +#: pretix/plugins/checkinlists/exporters.py:862 msgid "Successful scans only" msgstr "" @@ -27583,7 +27664,7 @@ msgid "Please turn on JavaScript." msgstr "" #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:29 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:57 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:85 msgid "Please select how you want to pay." msgstr "" @@ -27769,16 +27850,16 @@ msgid "Orders by tax rate ({currency})" msgstr "" #: pretix/plugins/reports/exporters.py:576 -#: pretix/plugins/reports/exporters.py:805 -#: pretix/plugins/reports/exporters.py:857 -#: pretix/plugins/reports/exporters.py:898 +#: pretix/plugins/reports/exporters.py:806 +#: pretix/plugins/reports/exporters.py:858 +#: pretix/plugins/reports/exporters.py:899 msgid "Gross" msgstr "" #: pretix/plugins/reports/exporters.py:576 -#: pretix/plugins/reports/exporters.py:806 -#: pretix/plugins/reports/exporters.py:858 -#: pretix/plugins/reports/exporters.py:898 +#: pretix/plugins/reports/exporters.py:807 +#: pretix/plugins/reports/exporters.py:859 +#: pretix/plugins/reports/exporters.py:899 msgid "Tax" msgstr "" @@ -27790,16 +27871,16 @@ msgstr "" msgid "Download a spreadsheet with the tax amounts included in each order." msgstr "" -#: pretix/plugins/reports/exporters.py:669 +#: pretix/plugins/reports/exporters.py:670 msgid "Taxes by country" msgstr "" -#: pretix/plugins/reports/exporters.py:670 +#: pretix/plugins/reports/exporters.py:671 msgid "Business customers" msgstr "" -#: pretix/plugins/reports/exporters.py:802 -#: pretix/plugins/reports/exporters.py:847 +#: pretix/plugins/reports/exporters.py:803 +#: pretix/plugins/reports/exporters.py:848 msgid "Country code" msgstr "" @@ -29423,7 +29504,7 @@ msgstr "" #: pretix/presale/checkoutflow.py:678 pretix/presale/checkoutflow.py:686 #: pretix/presale/views/cart.py:195 pretix/presale/views/cart.py:200 #: pretix/presale/views/cart.py:218 pretix/presale/views/cart.py:231 -#: pretix/presale/views/order.py:1491 pretix/presale/views/order.py:1499 +#: pretix/presale/views/order.py:1514 pretix/presale/views/order.py:1522 msgid "Please enter numbers only." msgstr "" @@ -29475,7 +29556,7 @@ msgid "" "select a payment method for the remainder." msgstr "" -#: pretix/presale/checkoutflow.py:1397 pretix/presale/views/order.py:676 +#: pretix/presale/checkoutflow.py:1397 pretix/presale/views/order.py:679 msgid "Please select a payment method." msgstr "" @@ -29484,8 +29565,8 @@ msgstr "" msgid "Please select a payment method to proceed." msgstr "" -#: pretix/presale/checkoutflow.py:1454 pretix/presale/views/order.py:435 -#: pretix/presale/views/order.py:502 +#: pretix/presale/checkoutflow.py:1454 pretix/presale/views/order.py:438 +#: pretix/presale/views/order.py:505 msgid "The payment information you entered was incomplete." msgstr "" @@ -29774,11 +29855,6 @@ msgctxt "alert-messages" msgid "Information" msgstr "" -#: pretix/presale/templates/pretixpresale/event/base.html:222 -#: pretix/presale/templates/pretixpresale/organizers/base.html:100 -msgid "Contact" -msgstr "" - #: pretix/presale/templates/pretixpresale/event/base.html:225 #: pretix/presale/templates/pretixpresale/fragment_modals.html:118 #: pretix/presale/templates/pretixpresale/fragment_modals.html:137 @@ -29828,7 +29904,7 @@ msgstr "" #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:209 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:121 #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:75 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:126 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:163 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:189 #: pretix/presale/templates/pretixpresale/organizers/customer_address_delete.html:28 #: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:28 @@ -30002,48 +30078,56 @@ msgid "" "product." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:13 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:41 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:30 msgid "You already selected the following payment methods:" msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:30 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:58 msgid "Remove payment" msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:40 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:68 msgid "Remaining balance" msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:41 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:69 msgid "Please select a payment method below." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:54 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:82 msgid "Please select how you want to pay the remaining balance:" msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:92 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:110 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:45 +#, python-format +msgid "(%(count)s available)" +msgid_plural "(%(count)s available)" +msgstr[0] "" +msgstr[1] "" + +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:129 msgid "This sales channel does not provide support for test mode." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:94 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:131 msgid "If you continue, you might pay an actual order with non-existing money!" msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:102 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:139 msgid "This payment provider does not provide support for test mode." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:104 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:141 msgid "If you continue, actual money might be transferred." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:115 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:152 msgid "There are no payment providers enabled." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:117 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:154 msgid "" "Please go to the payment settings and activate one or more payment providers." msgstr "" @@ -31301,7 +31385,7 @@ msgid "" "by the amount displayed to the right of each method." msgstr "" -#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:52 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:61 msgid "There are no alternative payment providers available for this order." msgstr "" @@ -31756,7 +31840,7 @@ msgstr "" #: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:5 #: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:11 -#: pretix/presale/views/customer.py:372 +#: pretix/presale/views/customer.py:378 msgid "Addresses" msgstr "" @@ -31781,6 +31865,35 @@ msgstr "" msgid "customer account information" msgstr "" +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:28 +#, python-format +msgid "Issued on %(date)s" +msgstr "" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:38 +#, python-format +msgid "Expired since %(date)s" +msgstr "" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:46 +#, python-format +msgid "Valid until %(date)s" +msgstr "" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:66 +msgid "Remaining value:" +msgstr "" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:76 +msgid "You don’t have any gift cards in your account currently." +msgstr "" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:77 +msgid "" +"Currently, only gift cards resulting from refunds show up here, any " +"purchased gift cards show up under the orders tab." +msgstr "" + #: pretix/presale/templates/pretixpresale/organizers/customer_info.html:6 msgid "Account information" msgstr "" @@ -31859,7 +31972,7 @@ msgstr "" #: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:5 #: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:11 -#: pretix/presale/views/customer.py:378 +#: pretix/presale/views/customer.py:384 msgid "Attendee profiles" msgstr "" @@ -32009,7 +32122,7 @@ msgid "" msgstr "" #: pretix/presale/views/customer.py:268 pretix/presale/views/customer.py:271 -#: pretix/presale/views/customer.py:607 pretix/presale/views/customer.py:613 +#: pretix/presale/views/customer.py:622 pretix/presale/views/customer.py:628 msgid "You clicked an invalid link." msgstr "" @@ -32022,24 +32135,24 @@ msgid "" "We've sent you an email with further instructions on resetting your password." msgstr "" -#: pretix/presale/views/customer.py:575 +#: pretix/presale/views/customer.py:590 msgid "" "Your changes have been saved. We've sent you an email with a link to update " "your email address. The email address of your account will be changed as " "soon as you click that link." msgstr "" -#: pretix/presale/views/customer.py:624 +#: pretix/presale/views/customer.py:639 msgid "" "Your email address has not been updated since the address is already in use " "for another customer account." msgstr "" -#: pretix/presale/views/customer.py:627 +#: pretix/presale/views/customer.py:642 msgid "Your email address has been updated." msgstr "" -#: pretix/presale/views/customer.py:844 pretix/presale/views/customer.py:855 +#: pretix/presale/views/customer.py:859 pretix/presale/views/customer.py:870 #, python-brace-format msgid "" "We were unable to use your login since the email address {email} is already " @@ -32081,94 +32194,98 @@ msgstr "" msgid "Time machine disabled!" msgstr "" -#: pretix/presale/views/order.py:366 pretix/presale/views/order.py:431 -#: pretix/presale/views/order.py:498 +#: pretix/presale/views/order.py:369 pretix/presale/views/order.py:434 +#: pretix/presale/views/order.py:501 msgid "The payment for this order cannot be continued." msgstr "" -#: pretix/presale/views/order.py:371 pretix/presale/views/order.py:440 -#: pretix/presale/views/order.py:507 pretix/presale/views/order.py:549 +#: pretix/presale/views/order.py:374 pretix/presale/views/order.py:443 +#: pretix/presale/views/order.py:510 pretix/presale/views/order.py:552 msgid "The payment is too late to be accepted." msgstr "" -#: pretix/presale/views/order.py:544 +#: pretix/presale/views/order.py:547 msgid "The payment method for this order cannot be changed." msgstr "" -#: pretix/presale/views/order.py:555 +#: pretix/presale/views/order.py:558 msgid "A payment is currently pending for this order." msgstr "" -#: pretix/presale/views/order.py:667 +#: pretix/presale/views/order.py:670 msgid "An invoice has been generated." msgstr "" -#: pretix/presale/views/order.py:843 pretix/presale/views/order.py:915 +#: pretix/presale/views/order.py:751 pretix/presale/views/order.py:831 +msgid "Invoice generation has failed, please reach out to the organizer." +msgstr "" + +#: pretix/presale/views/order.py:866 pretix/presale/views/order.py:938 msgid "You cannot modify this order" msgstr "" -#: pretix/presale/views/order.py:1010 pretix/presale/views/order.py:1015 -#: pretix/presale/views/order.py:1020 +#: pretix/presale/views/order.py:1033 pretix/presale/views/order.py:1038 +#: pretix/presale/views/order.py:1043 msgid "You chose an invalid cancellation fee." msgstr "" -#: pretix/presale/views/order.py:1036 +#: pretix/presale/views/order.py:1059 msgid "Canceled by customer" msgstr "" -#: pretix/presale/views/order.py:1047 +#: pretix/presale/views/order.py:1070 msgid "The cancellation has been requested." msgstr "" -#: pretix/presale/views/order.py:1100 +#: pretix/presale/views/order.py:1123 msgid "Ticket download is not (yet) enabled for this order." msgstr "" -#: pretix/presale/views/order.py:1109 +#: pretix/presale/views/order.py:1132 msgid "Please click the link we sent you via email to download your tickets." msgstr "" -#: pretix/presale/views/order.py:1596 +#: pretix/presale/views/order.py:1619 #, python-brace-format msgid "" "The order has been changed. You can now proceed by paying the open amount of " "{amount}." msgstr "" -#: pretix/presale/views/order.py:1608 +#: pretix/presale/views/order.py:1631 msgid "You did not make any changes." msgstr "" -#: pretix/presale/views/order.py:1632 +#: pretix/presale/views/order.py:1655 msgid "You may not change your order in a way that reduces the total price." msgstr "" -#: pretix/presale/views/order.py:1634 +#: pretix/presale/views/order.py:1657 msgid "You may only change your order in a way that increases the total price." msgstr "" -#: pretix/presale/views/order.py:1636 +#: pretix/presale/views/order.py:1659 msgid "You may not change your order in a way that changes the total price." msgstr "" -#: pretix/presale/views/order.py:1638 +#: pretix/presale/views/order.py:1661 msgid "You may not change your order in a way that would require a refund." msgstr "" -#: pretix/presale/views/order.py:1646 +#: pretix/presale/views/order.py:1669 msgid "" "You may not change your order in a way that increases the total price since " "payments are no longer being accepted for this event." msgstr "" -#: pretix/presale/views/order.py:1652 +#: pretix/presale/views/order.py:1675 msgid "" "You may not change your order in a way that requires additional payment " "while we are processing your current payment. Please check back after your " "current payment has been accepted." msgstr "" -#: pretix/presale/views/order.py:1668 pretix/presale/views/order.py:1699 +#: pretix/presale/views/order.py:1691 pretix/presale/views/order.py:1722 msgid "You cannot change this order." msgstr "" diff --git a/src/pretix/locale/ang/LC_MESSAGES/djangojs.po b/src/pretix/locale/ang/LC_MESSAGES/djangojs.po index 426356efb..250d7614a 100644 --- a/src/pretix/locale/ang/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/ang/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-26 11:16+0000\n" +"POT-Creation-Date: 2025-10-21 07:27+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -330,13 +330,13 @@ msgstr "" #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:71 #: pretix/static/pretixcontrol/js/ui/question.js:136 -#: pretix/static/pretixpresale/js/ui/questions.js:270 +#: pretix/static/pretixpresale/js/ui/questions.js:271 msgid "Yes" msgstr "" #: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:72 #: pretix/static/pretixcontrol/js/ui/question.js:137 -#: pretix/static/pretixpresale/js/ui/questions.js:270 +#: pretix/static/pretixpresale/js/ui/questions.js:271 msgid "No" msgstr "" @@ -345,7 +345,7 @@ msgid "close" msgstr "" #: pretix/static/pretixbase/js/addressform.js:90 -#: pretix/static/pretixpresale/js/ui/main.js:519 +#: pretix/static/pretixpresale/js/ui/main.js:525 msgid "required" msgstr "" @@ -549,6 +549,14 @@ msgctxt "entry_status" msgid "absent" msgstr "" +#: pretix/static/pretixcontrol/js/ui/checkinrules.js:289 +msgid "Error: Product not found!" +msgstr "" + +#: pretix/static/pretixcontrol/js/ui/checkinrules.js:296 +msgid "Error: Variation not found!" +msgstr "" + #: pretix/static/pretixcontrol/js/ui/editor.js:171 msgid "Check-in QR" msgstr "" @@ -647,23 +655,23 @@ msgstr "" msgid "Selected only" msgstr "" -#: pretix/static/pretixcontrol/js/ui/main.js:812 +#: pretix/static/pretixcontrol/js/ui/main.js:813 msgid "Enter page number between 1 and %(max)s." msgstr "" -#: pretix/static/pretixcontrol/js/ui/main.js:815 +#: pretix/static/pretixcontrol/js/ui/main.js:816 msgid "Invalid page number." msgstr "" -#: pretix/static/pretixcontrol/js/ui/main.js:973 +#: pretix/static/pretixcontrol/js/ui/main.js:974 msgid "Use a different name internally" msgstr "" -#: pretix/static/pretixcontrol/js/ui/main.js:1013 +#: pretix/static/pretixcontrol/js/ui/main.js:1014 msgid "Click to close" msgstr "" -#: pretix/static/pretixcontrol/js/ui/main.js:1094 +#: pretix/static/pretixcontrol/js/ui/main.js:1095 msgid "You have unsaved changes!" msgstr "" @@ -683,7 +691,7 @@ msgstr "" msgid "Count" msgstr "" -#: pretix/static/pretixcontrol/js/ui/subevent.js:111 +#: pretix/static/pretixcontrol/js/ui/subevent.js:112 msgid "(one more date)" msgid_plural "({num} more dates)" msgstr[0] "" @@ -740,7 +748,7 @@ msgstr "" msgid "Please enter the amount the organizer can keep." msgstr "" -#: pretix/static/pretixpresale/js/ui/main.js:564 +#: pretix/static/pretixpresale/js/ui/main.js:570 msgid "Your local time:" msgstr "" diff --git a/src/pretix/locale/ar/LC_MESSAGES/django.po b/src/pretix/locale/ar/LC_MESSAGES/django.po index 40c669784..ada136ed1 100644 --- a/src/pretix/locale/ar/LC_MESSAGES/django.po +++ b/src/pretix/locale/ar/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-26 11:16+0000\n" +"POT-Creation-Date: 2025-10-21 07:26+0000\n" "PO-Revision-Date: 2025-04-08 18:00+0000\n" "Last-Translator: Menaouer Chaabi " "<98581961+DerJimno@users.noreply.github.com>\n" @@ -177,15 +177,15 @@ msgstr "pretixSCAN (وضع kiosk، لا مزامنة للطلبات ولا بح msgid "pretixSCAN (online only, no order sync)" msgstr "pretixSCAN (وضع kiosk، لا مزامنة للطلبات)" -#: pretix/api/models.py:39 pretix/base/models/customers.py:402 +#: pretix/api/models.py:39 pretix/base/models/customers.py:422 msgid "Application name" msgstr "اسم التطبيق" -#: pretix/api/models.py:42 pretix/base/models/customers.py:425 +#: pretix/api/models.py:42 pretix/base/models/customers.py:445 msgid "Redirection URIs" msgstr "روابط إعادة التوجيه" -#: pretix/api/models.py:43 pretix/base/models/customers.py:426 +#: pretix/api/models.py:43 pretix/base/models/customers.py:446 msgid "Allowed URIs list, space separated" msgstr "قائمة العناوين المسموح بها, مفصولة بمسافة" @@ -193,7 +193,7 @@ msgstr "قائمة العناوين المسموح بها, مفصولة بمسا msgid "Allowed Post Logout URIs list, space separated" msgstr "قائمة العناوين المسموح بها بعد تسجيل الخروج، مفصولة بمسافة" -#: pretix/api/models.py:51 pretix/base/models/customers.py:406 +#: pretix/api/models.py:51 pretix/base/models/customers.py:426 #: pretix/plugins/paypal/payment.py:114 pretix/plugins/paypal2/payment.py:111 msgid "Client ID" msgstr "هوية العميل" @@ -221,8 +221,8 @@ msgstr "كل الفعاليات (بما في ذلك تلك التي تم إنش msgid "Limit to events" msgstr "حد على الفعاليات" -#: pretix/api/models.py:120 pretix/base/exporters/orderlist.py:285 -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/api/models.py:120 pretix/base/exporters/orderlist.py:286 +#: pretix/base/exporters/orderlist.py:1098 #: pretix/base/modelimport_vouchers.py:326 pretix/base/models/orders.py:272 #: pretix/base/models/vouchers.py:295 pretix/control/forms/filter.py:588 #: pretix/control/templates/pretixcontrol/order/index.html:950 @@ -230,7 +230,7 @@ msgstr "حد على الفعاليات" #: pretix/control/templates/pretixcontrol/user/staff_session_list.html:21 #: pretix/control/views/vouchers.py:121 #: pretix/plugins/banktransfer/refund_export.py:46 -#: pretix/plugins/checkinlists/exporters.py:524 +#: pretix/plugins/checkinlists/exporters.py:525 msgid "Comment" msgstr "تعليق" @@ -239,7 +239,7 @@ msgstr "تعليق" msgid "The product \"{}\" is not assigned to a quota." msgstr "لم يتم تعيين حصة للمنتج \"{}\"." -#: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1722 +#: pretix/api/serializers/checkin.py:65 pretix/base/models/event.py:1718 #: pretix/base/models/items.py:1917 pretix/base/models/items.py:2203 msgid "One or more items do not belong to this event." msgstr "هناك عنصر أو أكثر لا ينتمي إلى هذه الفعالية." @@ -352,7 +352,7 @@ msgid "\"{input}\" is not a valid choice." msgstr "\"{input}\" ادخال غير صالحة، يرجى المحاولة مرة أخرى." #: pretix/api/serializers/order.py:1427 pretix/api/views/cart.py:224 -#: pretix/base/services/orders.py:1589 +#: pretix/base/services/orders.py:1619 #, python-brace-format msgid "The selected seat \"{seat}\" is not available." msgstr "المقعد المحدد \"{seat}\" غير متوفر." @@ -369,12 +369,12 @@ msgid "" msgstr "لا توجد حصة كافية متاحة في الحصة \"{}\" لإجراء العملية." #: pretix/api/serializers/organizer.py:145 -#: pretix/control/forms/organizer.py:893 pretix/presale/forms/customer.py:458 +#: pretix/control/forms/organizer.py:925 pretix/presale/forms/customer.py:458 msgid "An account with this email address is already registered." msgstr "هناك حساب مرتبط بهذا البريد الإلكتروني مسبقا." #: pretix/api/serializers/organizer.py:278 -#: pretix/control/forms/organizer.py:746 +#: pretix/control/forms/organizer.py:761 msgid "" "A gift card with the same secret already exists in your or an affiliated " "organizer account." @@ -404,30 +404,30 @@ msgstr "تم استخدام رمز كود الخصم هذا سابقا لأقص msgid "Medium connected to other event" msgstr "الوسيط متصل بحدث آخر" -#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:754 +#: pretix/api/views/oauth.py:107 pretix/control/logdisplay.py:755 #, python-brace-format msgid "" "The application \"{application_name}\" has been authorized to access your " "account." msgstr "تم تفويض التطبيق \"{application_name}\" للوصول إلى حسابك." -#: pretix/api/views/order.py:608 pretix/control/views/orders.py:1601 -#: pretix/presale/views/order.py:733 pretix/presale/views/order.py:806 +#: pretix/api/views/order.py:608 pretix/control/views/orders.py:1602 +#: pretix/presale/views/order.py:736 pretix/presale/views/order.py:816 msgid "You cannot generate an invoice for this order." msgstr "لا يمكن انشاء فاتورة لهذا الطلب." -#: pretix/api/views/order.py:613 pretix/control/views/orders.py:1603 -#: pretix/presale/views/order.py:735 pretix/presale/views/order.py:808 +#: pretix/api/views/order.py:613 pretix/control/views/orders.py:1604 +#: pretix/presale/views/order.py:738 pretix/presale/views/order.py:818 msgid "An invoice for this order already exists." msgstr "توجد فاتورة مصدرة لهذا الطلب مسبقاً." -#: pretix/api/views/order.py:639 pretix/control/views/orders.py:1762 +#: pretix/api/views/order.py:639 pretix/control/views/orders.py:1763 #: pretix/control/views/users.py:145 msgid "There was an error sending the mail. Please try again later." msgstr "حدث خطأ اثناء ارسال البريد الاكتروني. الرجاء المحاولة مرة أخرى لاحقاً." #: pretix/api/views/order.py:719 pretix/base/services/cart.py:216 -#: pretix/base/services/orders.py:191 pretix/presale/views/order.py:790 +#: pretix/base/services/orders.py:191 pretix/presale/views/order.py:800 msgid "One of the selected products is not available in the selected country." msgstr "أحد المنتجات المختارة غير متوفر في البلد المحدد." @@ -446,7 +446,7 @@ msgstr "تم تمييز الطلب على أنه مدفوع" #: pretix/api/webhooks.py:274 pretix/base/models/checkin.py:355 #: pretix/base/notifications.py:251 #: pretix/control/templates/pretixcontrol/event/mail.html:114 -#: pretix/control/views/orders.py:1562 +#: pretix/control/views/orders.py:1563 msgid "Order canceled" msgstr "تم إلغاء الطلب" @@ -669,11 +669,11 @@ msgid "Customer account anonymized" msgstr "تم طمس هويتها لهذا المستخدم." #: pretix/base/addressvalidation.py:100 pretix/base/addressvalidation.py:103 -#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:1046 -#: pretix/base/forms/questions.py:1077 pretix/base/forms/questions.py:1329 -#: pretix/base/payment.py:96 pretix/control/forms/event.py:792 +#: pretix/base/addressvalidation.py:108 pretix/base/forms/questions.py:1048 +#: pretix/base/forms/questions.py:1079 pretix/base/forms/questions.py:1333 +#: pretix/base/payment.py:97 pretix/control/forms/event.py:792 #: pretix/control/forms/event.py:798 pretix/control/forms/event.py:838 -#: pretix/control/forms/event.py:1454 pretix/control/forms/mailsetup.py:87 +#: pretix/control/forms/event.py:1455 pretix/control/forms/mailsetup.py:87 #: pretix/control/forms/mailsetup.py:129 pretix/control/forms/subevents.py:181 #: pretix/plugins/banktransfer/payment.py:506 #: pretix/plugins/banktransfer/payment.py:512 @@ -695,21 +695,21 @@ msgid "{system} User" msgstr "{system} اسم المستخدم" #: pretix/base/auth.py:155 pretix/base/exporters/customers.py:67 -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:453 -#: pretix/base/exporters/orderlist.py:586 -#: pretix/base/exporters/waitinglist.py:109 pretix/base/forms/auth.py:257 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:454 +#: pretix/base/exporters/orderlist.py:587 +#: pretix/base/exporters/waitinglist.py:110 pretix/base/forms/auth.py:257 #: pretix/base/invoicing/email.py:43 pretix/base/models/auth.py:244 -#: pretix/base/models/customers.py:94 pretix/base/models/notifications.py:46 +#: pretix/base/models/customers.py:101 pretix/base/models/notifications.py:46 #: pretix/base/models/orders.py:246 pretix/base/pdf.py:336 #: pretix/control/navigation.py:81 pretix/control/navigation.py:513 #: pretix/control/templates/pretixcontrol/checkin/index.html:107 #: pretix/control/templates/pretixcontrol/event/settings.html:71 #: pretix/control/templates/pretixcontrol/orders/fragment_export_schedule_form.html:108 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:49 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:50 #: pretix/control/templates/pretixcontrol/organizers/customers.html:59 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:161 -#: pretix/plugins/checkinlists/exporters.py:508 +#: pretix/plugins/checkinlists/exporters.py:509 #: pretix/presale/checkoutflow.py:1542 pretix/presale/forms/checkout.py:57 #: pretix/presale/forms/customer.py:57 pretix/presale/forms/customer.py:142 #: pretix/presale/forms/customer.py:298 pretix/presale/forms/customer.py:344 @@ -721,7 +721,7 @@ msgstr "البريد الإلكتروني" #: pretix/base/auth.py:157 pretix/base/forms/auth.py:164 #: pretix/base/forms/auth.py:218 pretix/base/models/auth.py:675 -#: pretix/base/models/customers.py:96 pretix/control/forms/mailsetup.py:57 +#: pretix/base/models/customers.py:103 pretix/control/forms/mailsetup.py:57 #: pretix/presale/forms/customer.py:61 pretix/presale/forms/customer.py:302 msgid "Password" msgstr "كلمة المرور" @@ -818,9 +818,9 @@ msgstr "" #: pretix/base/customersso/oidc.py:223 pretix/base/customersso/oidc.py:231 #: pretix/base/customersso/oidc.py:254 pretix/base/customersso/oidc.py:271 -#: pretix/base/customersso/oidc.py:278 pretix/presale/views/customer.py:743 -#: pretix/presale/views/customer.py:753 pretix/presale/views/customer.py:792 -#: pretix/presale/views/customer.py:866 +#: pretix/base/customersso/oidc.py:278 pretix/presale/views/customer.py:758 +#: pretix/presale/views/customer.py:768 pretix/presale/views/customer.py:807 +#: pretix/presale/views/customer.py:881 #, python-brace-format msgid "Login was not successful. Error message: \"{error}\"." msgstr "" @@ -831,21 +831,21 @@ msgid "" "the email address in your customer account." msgstr "" -#: pretix/base/datasync/datasync.py:255 +#: pretix/base/datasync/datasync.py:263 #, python-brace-format msgid "" "Field \"{field_name}\" does not exist. Please check your {provider_name} " "settings." msgstr "" -#: pretix/base/datasync/datasync.py:262 +#: pretix/base/datasync/datasync.py:270 #, python-brace-format msgid "" "Field \"{field_name}\" requires {required_input}, but only got " "{available_inputs}. Please check your {provider_name} settings." msgstr "" -#: pretix/base/datasync/datasync.py:273 +#: pretix/base/datasync/datasync.py:281 #, python-brace-format msgid "" "Please update value mapping for field \"{field_name}\" - option \"{val}\" " @@ -913,16 +913,16 @@ msgid "Event or date information" msgstr "إرسال معلومات الاسترداد" #: pretix/base/datasync/sourcefields.py:175 -#: pretix/base/exporters/orderlist.py:604 -#: pretix/base/exporters/orderlist.py:609 pretix/base/forms/questions.py:679 -#: pretix/base/modelimport_orders.py:347 pretix/base/models/customers.py:300 +#: pretix/base/exporters/orderlist.py:605 +#: pretix/base/exporters/orderlist.py:610 pretix/base/forms/questions.py:681 +#: pretix/base/modelimport_orders.py:347 pretix/base/models/customers.py:320 #: pretix/base/models/orders.py:1504 pretix/base/pdf.py:183 -#: pretix/control/forms/filter.py:679 pretix/control/forms/organizer.py:987 +#: pretix/control/forms/filter.py:679 pretix/control/forms/organizer.py:1019 #: pretix/control/templates/pretixcontrol/order/index.html:566 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:120 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:121 #: pretix/control/views/item.py:442 pretix/plugins/badges/exporters.py:495 #: pretix/plugins/checkinlists/exporters.py:121 -#: pretix/plugins/checkinlists/exporters.py:494 +#: pretix/plugins/checkinlists/exporters.py:495 #: pretix/plugins/ticketoutputpdf/exporters.py:94 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:162 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:165 @@ -941,8 +941,8 @@ msgid "Attendee" msgstr "اسم الحاضر" #: pretix/base/datasync/sourcefields.py:207 -#: pretix/base/exporters/orderlist.py:611 pretix/base/forms/questions.py:685 -#: pretix/base/models/customers.py:307 pretix/base/models/orders.py:1512 +#: pretix/base/exporters/orderlist.py:612 pretix/base/forms/questions.py:687 +#: pretix/base/models/customers.py:327 pretix/base/models/orders.py:1512 #: pretix/base/pdf.py:225 #: pretix/control/templates/pretixcontrol/order/index.html:571 #: pretix/control/views/item.py:454 @@ -995,30 +995,30 @@ msgid "Invoice address company" msgstr "شركة عنوان الفاتورة" #: pretix/base/datasync/sourcefields.py:288 -#: pretix/base/exporters/orderlist.py:464 -#: pretix/base/exporters/orderlist.py:469 -#: pretix/base/exporters/orderlist.py:653 -#: pretix/base/exporters/orderlist.py:657 pretix/base/pdf.py:341 +#: pretix/base/exporters/orderlist.py:465 +#: pretix/base/exporters/orderlist.py:470 +#: pretix/base/exporters/orderlist.py:654 +#: pretix/base/exporters/orderlist.py:658 pretix/base/pdf.py:341 msgid "Invoice address name" msgstr "اسم عنوان الفاتورة" #: pretix/base/datasync/sourcefields.py:317 -#: pretix/base/exporters/orderlist.py:659 pretix/base/pdf.py:351 +#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:351 msgid "Invoice address street" msgstr "شارع عنوان الفاتورة" #: pretix/base/datasync/sourcefields.py:326 -#: pretix/base/exporters/orderlist.py:659 pretix/base/pdf.py:356 +#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:356 msgid "Invoice address ZIP code" msgstr "الرمز البريدي لعنوان الفاتورة" #: pretix/base/datasync/sourcefields.py:335 -#: pretix/base/exporters/orderlist.py:659 pretix/base/pdf.py:361 +#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:361 msgid "Invoice address city" msgstr "مدينة عنوان الفاتورة" #: pretix/base/datasync/sourcefields.py:344 -#: pretix/base/exporters/orderlist.py:660 pretix/base/pdf.py:371 +#: pretix/base/exporters/orderlist.py:661 pretix/base/pdf.py:371 msgid "Invoice address country" msgstr "بلد عنوان الفاتورة" @@ -1035,29 +1035,30 @@ msgid "Order email domain" msgstr "اسم المنظم" #: pretix/base/datasync/sourcefields.py:371 -#: pretix/base/exporters/invoices.py:201 pretix/base/exporters/invoices.py:328 -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:451 -#: pretix/base/exporters/orderlist.py:583 -#: pretix/base/exporters/orderlist.py:897 pretix/base/models/orders.py:210 +#: pretix/base/exporters/invoices.py:203 pretix/base/exporters/invoices.py:330 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:452 +#: pretix/base/exporters/orderlist.py:584 +#: pretix/base/exporters/orderlist.py:899 pretix/base/models/orders.py:210 #: pretix/base/notifications.py:199 pretix/base/pdf.py:105 +#: pretix/base/templates/pretixbase/email/order_details.html:61 #: pretix/control/templates/pretixcontrol/checkin/index.html:95 #: pretix/control/templates/pretixcontrol/order/index.html:181 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:116 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:22 #: pretix/control/templates/pretixcontrol/orders/index.html:47 #: pretix/control/templates/pretixcontrol/orders/index.html:131 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:204 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:205 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:41 #: pretix/control/templates/pretixcontrol/search/orders.html:48 #: pretix/plugins/badges/exporters.py:497 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:29 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:41 #: pretix/plugins/checkinlists/exporters.py:122 -#: pretix/plugins/checkinlists/exporters.py:493 -#: pretix/plugins/checkinlists/exporters.py:757 +#: pretix/plugins/checkinlists/exporters.py:494 +#: pretix/plugins/checkinlists/exporters.py:760 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:895 +#: pretix/plugins/reports/exporters.py:896 #: pretix/plugins/ticketoutputpdf/exporters.py:96 msgid "Order code" msgstr "رمز الطلب" @@ -1069,11 +1070,11 @@ msgid "Event and order code" msgstr "تاريخ الطلب" #: pretix/base/datasync/sourcefields.py:389 -#: pretix/base/exporters/orderlist.py:262 pretix/base/notifications.py:201 +#: pretix/base/exporters/orderlist.py:263 pretix/base/notifications.py:201 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:25 #: pretix/control/templates/pretixcontrol/search/orders.html:60 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:898 msgid "Order total" msgstr "إجمالي الطلب" @@ -1084,9 +1085,9 @@ msgid "Product and variation name" msgstr "اسم المنتج ونوعه" #: pretix/base/datasync/sourcefields.py:410 pretix/base/exporters/items.py:57 -#: pretix/base/exporters/orderlist.py:597 -#: pretix/base/exporters/orderlist.py:908 -#: pretix/base/exporters/waitinglist.py:112 +#: pretix/base/exporters/orderlist.py:598 +#: pretix/base/exporters/orderlist.py:910 +#: pretix/base/exporters/waitinglist.py:113 #, fuzzy #| msgid "Product" msgid "Product ID" @@ -1105,10 +1106,10 @@ msgid "Event short form" msgstr "اسم الحدث" #: pretix/base/datasync/sourcefields.py:437 pretix/base/exporters/events.py:57 -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:450 -#: pretix/base/exporters/orderlist.py:582 -#: pretix/base/exporters/waitinglist.py:116 pretix/base/models/event.py:595 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:451 +#: pretix/base/exporters/orderlist.py:583 +#: pretix/base/exporters/waitinglist.py:117 pretix/base/models/event.py:595 #: pretix/base/pdf.py:235 pretix/control/forms/filter.py:1279 #: pretix/control/forms/filter.py:1724 #: pretix/control/templates/pretixcontrol/events/index.html:68 @@ -1117,22 +1118,22 @@ msgid "Event name" msgstr "اسم الفعالية" #: pretix/base/datasync/sourcefields.py:446 -#: pretix/base/exporters/invoices.py:326 +#: pretix/base/exporters/invoices.py:328 msgid "Event start date" msgstr "تاريخ بدء الفعالية" #: pretix/base/datasync/sourcefields.py:455 -#: pretix/base/exporters/invoices.py:350 pretix/base/pdf.py:289 +#: pretix/base/exporters/invoices.py:352 pretix/base/pdf.py:289 msgid "Event end date" msgstr "تاريخ إنتهاء الفعالية" #: pretix/base/datasync/sourcefields.py:464 -#: pretix/base/exporters/waitinglist.py:123 +#: pretix/base/exporters/waitinglist.py:124 #: pretix/base/modelimport_vouchers.py:39 pretix/base/models/vouchers.py:193 #: pretix/control/templates/pretixcontrol/vouchers/index.html:18 #: pretix/control/templates/pretixcontrol/vouchers/index.html:114 #: pretix/control/views/vouchers.py:119 pretix/control/views/waitinglist.py:314 -#: pretix/plugins/checkinlists/exporters.py:520 +#: pretix/plugins/checkinlists/exporters.py:521 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:74 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:76 #: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:12 @@ -1153,7 +1154,7 @@ msgid "Ticket price" msgstr "كلمة سر الزبون" #: pretix/base/datasync/sourcefields.py:491 pretix/base/notifications.py:204 -#: pretix/control/forms/filter.py:216 pretix/control/forms/modelimport.py:85 +#: pretix/control/forms/filter.py:216 pretix/control/forms/modelimport.py:90 msgid "Order status" msgstr "حالة الطلب" @@ -1176,8 +1177,8 @@ msgid "Payment date and time" msgstr "تاريخ ووقت الطباعة" #: pretix/base/datasync/sourcefields.py:527 -#: pretix/base/exporters/orderlist.py:271 -#: pretix/base/exporters/orderlist.py:666 pretix/base/modelimport_orders.py:508 +#: pretix/base/exporters/orderlist.py:272 +#: pretix/base/exporters/orderlist.py:667 pretix/base/modelimport_orders.py:508 #: pretix/control/templates/pretixcontrol/order/index.html:193 #: pretix/control/templates/pretixcontrol/pdf/index.html:249 msgid "Order locale" @@ -1190,7 +1191,7 @@ msgid "Order position ID" msgstr "حالة الطلب" #: pretix/base/datasync/sourcefields.py:545 -#: pretix/base/exporters/orderlist.py:291 +#: pretix/base/exporters/orderlist.py:292 #, fuzzy #| msgid "Order time" msgid "Order link" @@ -1215,21 +1216,21 @@ msgid "Question: {name}" msgstr "سؤال: %(name)s" #: pretix/base/datasync/sourcefields.py:604 -#: pretix/base/datasync/sourcefields.py:614 pretix/base/settings.py:3559 -#: pretix/base/settings.py:3572 pretix/base/settings.py:3588 -#: pretix/base/settings.py:3638 pretix/base/settings.py:3651 -#: pretix/base/settings.py:3665 pretix/base/settings.py:3718 -#: pretix/base/settings.py:3739 pretix/base/settings.py:3761 +#: pretix/base/datasync/sourcefields.py:614 pretix/base/settings.py:3588 +#: pretix/base/settings.py:3601 pretix/base/settings.py:3617 +#: pretix/base/settings.py:3667 pretix/base/settings.py:3680 +#: pretix/base/settings.py:3694 pretix/base/settings.py:3747 +#: pretix/base/settings.py:3768 pretix/base/settings.py:3790 msgid "Given name" msgstr "الاسم الاول" #: pretix/base/datasync/sourcefields.py:628 -#: pretix/base/datasync/sourcefields.py:638 pretix/base/settings.py:3560 -#: pretix/base/settings.py:3573 pretix/base/settings.py:3589 -#: pretix/base/settings.py:3605 pretix/base/settings.py:3622 -#: pretix/base/settings.py:3637 pretix/base/settings.py:3652 -#: pretix/base/settings.py:3666 pretix/base/settings.py:3719 -#: pretix/base/settings.py:3740 pretix/base/settings.py:3762 +#: pretix/base/datasync/sourcefields.py:638 pretix/base/settings.py:3589 +#: pretix/base/settings.py:3602 pretix/base/settings.py:3618 +#: pretix/base/settings.py:3634 pretix/base/settings.py:3651 +#: pretix/base/settings.py:3666 pretix/base/settings.py:3681 +#: pretix/base/settings.py:3695 pretix/base/settings.py:3748 +#: pretix/base/settings.py:3769 pretix/base/settings.py:3791 msgid "Family name" msgstr "اسم العائلة" @@ -1251,27 +1252,27 @@ msgstr "افتراضي" msgid "Simple with logo" msgstr "بسيط مع الشعار" -#: pretix/base/exporter.py:187 pretix/base/exporter.py:320 +#: pretix/base/exporter.py:199 pretix/base/exporter.py:332 msgid "Export format" msgstr "طريقة التصدير" -#: pretix/base/exporter.py:189 +#: pretix/base/exporter.py:201 msgid "Excel (.xlsx)" msgstr "إكسل (.xlsx)" -#: pretix/base/exporter.py:190 pretix/base/exporter.py:312 +#: pretix/base/exporter.py:202 pretix/base/exporter.py:324 msgid "CSV (with commas)" msgstr "CSV (مع فواصل)" -#: pretix/base/exporter.py:191 pretix/base/exporter.py:313 +#: pretix/base/exporter.py:203 pretix/base/exporter.py:325 msgid "CSV (Excel-style)" msgstr "CSV (نمط إكسل)" -#: pretix/base/exporter.py:192 pretix/base/exporter.py:314 +#: pretix/base/exporter.py:204 pretix/base/exporter.py:326 msgid "CSV (with semicolons)" msgstr "CSV (مع فواصل منقوطة)" -#: pretix/base/exporter.py:308 +#: pretix/base/exporter.py:320 msgid "Combined Excel (.xlsx)" msgstr "إكسل مجمع (.xlsx)" @@ -1283,9 +1284,9 @@ msgstr "إجابات السؤال" #: pretix/base/exporters/answers.py:55 pretix/base/exporters/json.py:52 #: pretix/base/exporters/mail.py:53 pretix/base/exporters/orderlist.py:88 -#: pretix/base/exporters/orderlist.py:841 -#: pretix/base/exporters/orderlist.py:1020 -#: pretix/base/exporters/orderlist.py:1259 +#: pretix/base/exporters/orderlist.py:842 +#: pretix/base/exporters/orderlist.py:1022 +#: pretix/base/exporters/orderlist.py:1263 #: pretix/plugins/reports/exporters.py:489 #: pretix/plugins/reports/exporters.py:662 #, fuzzy @@ -1300,12 +1301,12 @@ msgid "" "customers while creating an order." msgstr "" -#: pretix/base/exporters/answers.py:76 pretix/base/exporters/orderlist.py:592 -#: pretix/base/exporters/orderlist.py:916 -#: pretix/base/exporters/orderlist.py:1156 pretix/base/models/checkin.py:58 +#: pretix/base/exporters/answers.py:76 pretix/base/exporters/orderlist.py:593 +#: pretix/base/exporters/orderlist.py:918 +#: pretix/base/exporters/orderlist.py:1159 pretix/base/models/checkin.py:58 #: pretix/base/models/items.py:2067 pretix/base/models/orders.py:1485 -#: pretix/base/models/orders.py:3010 pretix/base/models/vouchers.py:190 -#: pretix/base/models/waitinglist.py:61 pretix/control/forms/event.py:1619 +#: pretix/base/models/orders.py:3024 pretix/base/models/vouchers.py:190 +#: pretix/base/models/waitinglist.py:61 pretix/control/forms/event.py:1620 #: pretix/control/forms/filter.py:441 pretix/control/forms/filter.py:1928 #: pretix/control/forms/filter.py:2150 pretix/control/forms/filter.py:2265 #: pretix/control/forms/filter.py:2347 pretix/control/forms/filter.py:2564 @@ -1320,8 +1321,8 @@ msgstr "" #: pretix/control/templates/pretixcontrol/vouchers/index.html:140 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:167 #: pretix/control/views/waitinglist.py:318 -#: pretix/plugins/checkinlists/exporters.py:512 -#: pretix/plugins/checkinlists/exporters.py:701 +#: pretix/plugins/checkinlists/exporters.py:513 +#: pretix/plugins/checkinlists/exporters.py:703 #: pretix/plugins/sendmail/forms.py:137 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:32 #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:48 @@ -1332,7 +1333,7 @@ msgid "Date" msgstr "تاريخ" #: pretix/base/exporters/answers.py:79 pretix/base/exporters/answers.py:88 -#: pretix/control/forms/checkin.py:83 pretix/control/forms/event.py:1620 +#: pretix/control/forms/checkin.py:83 pretix/control/forms/event.py:1621 #: pretix/control/forms/filter.py:444 pretix/control/forms/filter.py:471 #: pretix/control/forms/filter.py:1931 pretix/control/forms/filter.py:1964 #: pretix/control/forms/filter.py:2153 pretix/control/forms/filter.py:2173 @@ -1365,8 +1366,8 @@ msgstr "حسابات العملاء" msgid "Download a spreadsheet of all currently registered customer accounts." msgstr "" -#: pretix/base/exporters/customers.py:64 pretix/base/models/customers.py:82 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:29 +#: pretix/base/exporters/customers.py:64 pretix/base/models/customers.py:89 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:30 #: pretix/control/templates/pretixcontrol/organizers/customers.html:54 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:37 #: pretix/presale/templates/pretixpresale/organizers/customer_base.html:37 @@ -1377,14 +1378,14 @@ msgid "Customer ID" msgstr "معرف ضريبة القيمة المضافة للعميل" #: pretix/base/exporters/customers.py:65 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:32 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:33 #, fuzzy #| msgid "Payment provider" msgid "SSO provider" msgstr "مقدم خدمة السداد" -#: pretix/base/exporters/customers.py:66 pretix/base/models/customers.py:108 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:36 +#: pretix/base/exporters/customers.py:66 pretix/base/models/customers.py:115 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:37 #: pretix/control/templates/pretixcontrol/organizers/customers.html:65 #: pretix/control/templates/pretixcontrol/users/form.html:49 #, fuzzy @@ -1392,18 +1393,18 @@ msgstr "مقدم خدمة السداد" msgid "External identifier" msgstr "معرف داخلي" -#: pretix/base/exporters/customers.py:68 pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:454 -#: pretix/base/exporters/orderlist.py:587 -#: pretix/base/exporters/waitinglist.py:110 -#: pretix/base/modelimport_orders.py:87 pretix/base/models/customers.py:95 -#: pretix/base/models/customers.py:396 pretix/base/models/items.py:1659 +#: pretix/base/exporters/customers.py:68 pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:455 +#: pretix/base/exporters/orderlist.py:588 +#: pretix/base/exporters/waitinglist.py:111 +#: pretix/base/modelimport_orders.py:87 pretix/base/models/customers.py:102 +#: pretix/base/models/customers.py:416 pretix/base/models/items.py:1659 #: pretix/base/models/orders.py:250 pretix/base/models/waitinglist.py:80 #: pretix/base/pdf.py:331 #: pretix/control/templates/pretixcontrol/order/index.html:257 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:163 #: pretix/control/views/waitinglist.py:314 -#: pretix/plugins/checkinlists/exporters.py:509 +#: pretix/plugins/checkinlists/exporters.py:510 #: pretix/presale/checkoutflow.py:1548 pretix/presale/forms/checkout.py:84 #: pretix/presale/forms/waitinglist.py:80 #: pretix/presale/templates/pretixpresale/event/order.html:304 @@ -1411,32 +1412,32 @@ msgid "Phone number" msgstr "رقم الجوال" #: pretix/base/exporters/customers.py:69 pretix/base/models/auth.py:246 -#: pretix/base/models/customers.py:97 pretix/base/models/orders.py:3281 -#: pretix/base/settings.py:3692 pretix/base/settings.py:3704 +#: pretix/base/models/customers.py:104 pretix/base/models/orders.py:3295 +#: pretix/base/settings.py:3721 pretix/base/settings.py:3733 #: pretix/control/templates/pretixcontrol/users/index.html:47 msgid "Full name" msgstr "الاسم الكامل" -#: pretix/base/exporters/customers.py:74 pretix/base/exporters/invoices.py:206 -#: pretix/base/exporters/invoices.py:214 pretix/base/exporters/invoices.py:332 -#: pretix/base/exporters/invoices.py:340 pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/waitinglist.py:108 pretix/base/forms/questions.py:1244 +#: pretix/base/exporters/customers.py:74 pretix/base/exporters/invoices.py:208 +#: pretix/base/exporters/invoices.py:216 pretix/base/exporters/invoices.py:334 +#: pretix/base/exporters/invoices.py:342 pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/waitinglist.py:109 pretix/base/forms/questions.py:1248 #: pretix/base/models/devices.py:65 pretix/base/models/devices.py:127 -#: pretix/base/models/event.py:1524 pretix/base/models/event.py:1766 +#: pretix/base/models/event.py:1524 pretix/base/models/event.py:1762 #: pretix/base/models/items.py:2071 pretix/base/models/items.py:2244 #: pretix/base/models/memberships.py:41 pretix/base/models/organizer.py:77 #: pretix/base/models/organizer.py:601 pretix/base/models/seating.py:85 -#: pretix/base/models/waitinglist.py:69 pretix/base/settings.py:3317 -#: pretix/base/settings.py:3327 pretix/base/settings.py:3681 +#: pretix/base/models/waitinglist.py:69 pretix/base/settings.py:3346 +#: pretix/base/settings.py:3356 pretix/base/settings.py:3710 #: pretix/control/forms/filter.py:656 pretix/control/forms/item.py:446 -#: pretix/control/forms/organizer.py:918 +#: pretix/control/forms/organizer.py:950 #: pretix/control/templates/pretixcontrol/checkin/index.html:109 #: pretix/control/templates/pretixcontrol/checkin/lists.html:99 #: pretix/control/templates/pretixcontrol/event/tax_index.html:26 #: pretix/control/templates/pretixcontrol/oauth/app_list.html:12 #: pretix/control/templates/pretixcontrol/oauth/authorized.html:17 #: pretix/control/templates/pretixcontrol/order/index.html:999 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:58 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:59 #: pretix/control/templates/pretixcontrol/organizers/customers.html:62 #: pretix/control/templates/pretixcontrol/organizers/devices.html:77 #: pretix/control/templates/pretixcontrol/organizers/membershiptypes.html:26 @@ -1448,8 +1449,8 @@ msgstr "الاسم الكامل" #: pretix/control/views/waitinglist.py:314 pretix/plugins/badges/models.py:53 #: pretix/plugins/badges/templates/pretixplugins/badges/index.html:34 #: pretix/plugins/checkinlists/exporters.py:376 -#: pretix/plugins/checkinlists/exporters.py:761 -#: pretix/plugins/reports/exporters.py:896 +#: pretix/plugins/checkinlists/exporters.py:764 +#: pretix/plugins/reports/exporters.py:897 #: pretix/plugins/ticketoutputpdf/models.py:333 #: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/index.html:32 #: pretix/presale/forms/customer.py:179 pretix/presale/forms/customer.py:483 @@ -1461,43 +1462,43 @@ msgstr "الاسم الكامل" msgid "Name" msgstr "اسم" -#: pretix/base/exporters/customers.py:77 pretix/base/models/customers.py:99 +#: pretix/base/exporters/customers.py:77 pretix/base/models/customers.py:106 msgid "Account active" msgstr "حساب نشط" -#: pretix/base/exporters/customers.py:78 pretix/base/models/customers.py:100 +#: pretix/base/exporters/customers.py:78 pretix/base/models/customers.py:107 msgid "Verified email address" msgstr "تم التحقق من عنوان البريد الإلكتروني" -#: pretix/base/exporters/customers.py:79 pretix/base/models/customers.py:101 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:68 +#: pretix/base/exporters/customers.py:79 pretix/base/models/customers.py:108 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:69 msgid "Last login" msgstr "آخر تسجيل دخول" -#: pretix/base/exporters/customers.py:80 pretix/base/models/customers.py:102 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:66 +#: pretix/base/exporters/customers.py:80 pretix/base/models/customers.py:109 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:67 msgid "Registration date" msgstr "تاريخ التسجيل" -#: pretix/base/exporters/customers.py:81 pretix/base/exporters/invoices.py:205 -#: pretix/base/exporters/waitinglist.py:120 pretix/base/models/auth.py:258 -#: pretix/base/models/customers.py:106 pretix/base/models/exports.py:54 -#: pretix/control/forms/event.py:1625 pretix/control/forms/exports.py:49 +#: pretix/base/exporters/customers.py:81 pretix/base/exporters/invoices.py:207 +#: pretix/base/exporters/waitinglist.py:121 pretix/base/models/auth.py:258 +#: pretix/base/models/customers.py:113 pretix/base/models/exports.py:54 +#: pretix/control/forms/event.py:1626 pretix/control/forms/exports.py:49 #: pretix/control/forms/exports.py:88 pretix/control/views/waitinglist.py:315 msgid "Language" msgstr "اللغة" #: pretix/base/exporters/customers.py:82 -#: pretix/base/exporters/reusablemedia.py:53 -#: pretix/base/models/customers.py:109 pretix/base/models/media.py:110 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:72 +#: pretix/base/exporters/reusablemedia.py:54 +#: pretix/base/models/customers.py:116 pretix/base/models/media.py:110 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:73 #: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:68 msgid "Notes" msgstr "" #: pretix/base/exporters/customers.py:100 #: pretix/base/exporters/customers.py:101 pretix/base/exporters/events.py:83 -#: pretix/base/exporters/invoices.py:305 pretix/base/exporters/items.py:150 +#: pretix/base/exporters/invoices.py:307 pretix/base/exporters/items.py:150 #: pretix/base/exporters/items.py:153 pretix/base/exporters/items.py:155 #: pretix/base/exporters/items.py:156 pretix/base/exporters/items.py:157 #: pretix/base/exporters/items.py:158 pretix/base/exporters/items.py:163 @@ -1512,51 +1513,51 @@ msgstr "" #: pretix/base/exporters/items.py:213 pretix/base/exporters/items.py:214 #: pretix/base/exporters/items.py:215 pretix/base/exporters/items.py:218 #: pretix/base/exporters/items.py:221 pretix/base/exporters/items.py:222 -#: pretix/base/exporters/items.py:223 pretix/base/exporters/orderlist.py:395 -#: pretix/base/exporters/orderlist.py:400 -#: pretix/base/exporters/orderlist.py:752 -#: pretix/base/exporters/orderlist.py:775 -#: pretix/base/exporters/orderlist.py:807 -#: pretix/base/exporters/orderlist.py:1399 -#: pretix/base/exporters/reusablemedia.py:63 pretix/base/modelimport.py:194 +#: pretix/base/exporters/items.py:223 pretix/base/exporters/orderlist.py:396 +#: pretix/base/exporters/orderlist.py:401 +#: pretix/base/exporters/orderlist.py:753 +#: pretix/base/exporters/orderlist.py:776 +#: pretix/base/exporters/orderlist.py:808 +#: pretix/base/exporters/orderlist.py:1404 +#: pretix/base/exporters/reusablemedia.py:64 pretix/base/modelimport.py:194 #: pretix/base/modelimport.py:201 pretix/base/models/orders.py:1401 -#: pretix/base/models/orders.py:3427 pretix/control/forms/filter.py:177 +#: pretix/base/models/orders.py:3441 pretix/control/forms/filter.py:177 #: pretix/control/forms/filter.py:551 pretix/control/forms/filter.py:738 #: pretix/control/forms/item.py:615 pretix/control/forms/subevents.py:119 #: pretix/control/views/item.py:733 pretix/control/views/vouchers.py:139 #: pretix/control/views/vouchers.py:140 -#: pretix/plugins/checkinlists/exporters.py:601 -#: pretix/plugins/checkinlists/exporters.py:604 -#: pretix/plugins/checkinlists/exporters.py:631 -#: pretix/plugins/checkinlists/exporters.py:647 -#: pretix/plugins/checkinlists/exporters.py:716 -#: pretix/plugins/checkinlists/exporters.py:823 -#: pretix/plugins/checkinlists/exporters.py:824 -#: pretix/plugins/checkinlists/exporters.py:825 +#: pretix/plugins/checkinlists/exporters.py:602 +#: pretix/plugins/checkinlists/exporters.py:605 +#: pretix/plugins/checkinlists/exporters.py:632 +#: pretix/plugins/checkinlists/exporters.py:648 +#: pretix/plugins/checkinlists/exporters.py:718 +#: pretix/plugins/checkinlists/exporters.py:826 +#: pretix/plugins/checkinlists/exporters.py:827 +#: pretix/plugins/checkinlists/exporters.py:828 msgid "Yes" msgstr "نعم" #: pretix/base/exporters/customers.py:100 #: pretix/base/exporters/customers.py:101 pretix/base/exporters/events.py:83 -#: pretix/base/exporters/invoices.py:305 pretix/base/exporters/orderlist.py:395 -#: pretix/base/exporters/orderlist.py:400 -#: pretix/base/exporters/orderlist.py:775 -#: pretix/base/exporters/orderlist.py:807 -#: pretix/base/exporters/orderlist.py:1399 -#: pretix/base/exporters/reusablemedia.py:63 pretix/base/modelimport.py:193 +#: pretix/base/exporters/invoices.py:307 pretix/base/exporters/orderlist.py:396 +#: pretix/base/exporters/orderlist.py:401 +#: pretix/base/exporters/orderlist.py:776 +#: pretix/base/exporters/orderlist.py:808 +#: pretix/base/exporters/orderlist.py:1404 +#: pretix/base/exporters/reusablemedia.py:64 pretix/base/modelimport.py:193 #: pretix/base/modelimport.py:203 pretix/base/models/orders.py:1403 -#: pretix/base/models/orders.py:3429 pretix/control/forms/filter.py:177 +#: pretix/base/models/orders.py:3443 pretix/control/forms/filter.py:177 #: pretix/control/forms/filter.py:552 pretix/control/forms/filter.py:739 #: pretix/control/forms/item.py:616 pretix/control/forms/subevents.py:120 #: pretix/control/views/item.py:733 pretix/control/views/vouchers.py:139 #: pretix/control/views/vouchers.py:140 -#: pretix/plugins/checkinlists/exporters.py:601 -#: pretix/plugins/checkinlists/exporters.py:604 -#: pretix/plugins/checkinlists/exporters.py:631 -#: pretix/plugins/checkinlists/exporters.py:716 -#: pretix/plugins/checkinlists/exporters.py:823 -#: pretix/plugins/checkinlists/exporters.py:824 -#: pretix/plugins/checkinlists/exporters.py:825 +#: pretix/plugins/checkinlists/exporters.py:602 +#: pretix/plugins/checkinlists/exporters.py:605 +#: pretix/plugins/checkinlists/exporters.py:632 +#: pretix/plugins/checkinlists/exporters.py:718 +#: pretix/plugins/checkinlists/exporters.py:826 +#: pretix/plugins/checkinlists/exporters.py:827 +#: pretix/plugins/checkinlists/exporters.py:828 msgid "No" msgstr "لا" @@ -1579,14 +1580,14 @@ msgid "Event ticket {event}-{code}" msgstr "تذكرة الفعالية {event}-{code}" #: pretix/base/exporters/dekodi.py:234 pretix/base/exporters/invoices.py:74 -#: pretix/base/exporters/orderlist.py:129 -#: pretix/base/exporters/orderlist.py:855 -#: pretix/base/exporters/orderlist.py:1209 +#: pretix/base/exporters/orderlist.py:130 +#: pretix/base/exporters/orderlist.py:857 +#: pretix/base/exporters/orderlist.py:1213 #: pretix/plugins/checkinlists/exporters.py:89 -#: pretix/plugins/checkinlists/exporters.py:865 +#: pretix/plugins/checkinlists/exporters.py:868 #: pretix/plugins/reports/accountingreport.py:75 #: pretix/plugins/reports/exporters.py:472 -#: pretix/plugins/reports/exporters.py:709 +#: pretix/plugins/reports/exporters.py:710 #: pretix/plugins/ticketoutputpdf/exporters.py:85 #, fuzzy #| msgid "Date and time" @@ -1644,21 +1645,21 @@ msgid "Timezone" msgstr "المنطقة الزمنية" #: pretix/base/exporters/events.py:62 pretix/base/models/event.py:618 -#: pretix/base/models/event.py:1526 pretix/base/settings.py:3315 -#: pretix/base/settings.py:3325 pretix/control/forms/subevents.py:483 +#: pretix/base/models/event.py:1526 pretix/base/settings.py:3344 +#: pretix/base/settings.py:3354 pretix/control/forms/subevents.py:484 #: pretix/control/templates/pretixcontrol/subevents/bulk.html:268 msgid "Event start time" msgstr "وقت بداية الفعالية" #: pretix/base/exporters/events.py:63 pretix/base/models/event.py:620 #: pretix/base/models/event.py:1528 pretix/base/pdf.py:297 -#: pretix/control/forms/subevents.py:488 +#: pretix/control/forms/subevents.py:489 #: pretix/control/templates/pretixcontrol/subevents/bulk.html:270 msgid "Event end time" msgstr "وقت نهاية الفعالية" #: pretix/base/exporters/events.py:64 pretix/base/models/event.py:622 -#: pretix/base/models/event.py:1530 pretix/control/forms/subevents.py:493 +#: pretix/base/models/event.py:1530 pretix/control/forms/subevents.py:494 #: pretix/control/templates/pretixcontrol/subevents/bulk.html:274 msgid "Admission time" msgstr "وقت قبول التسجيل" @@ -1673,8 +1674,9 @@ msgstr "بداية عرض ما قبل البيع" msgid "End of presale" msgstr "نهاية عرض ما قبل البيع" -#: pretix/base/exporters/events.py:67 pretix/base/exporters/invoices.py:351 +#: pretix/base/exporters/events.py:67 pretix/base/exporters/invoices.py:353 #: pretix/base/models/event.py:640 pretix/base/models/event.py:1545 +#: pretix/base/templates/pretixbase/email/order_details.html:83 msgid "Location" msgstr "الموقع" @@ -1700,7 +1702,7 @@ msgid "Internal comment" msgstr "ملاحظة داخلية" #: pretix/base/exporters/invoices.py:82 pretix/base/models/orders.py:1753 -#: pretix/base/models/orders.py:2173 pretix/control/forms/filter.py:209 +#: pretix/base/models/orders.py:2187 pretix/control/forms/filter.py:209 #: pretix/control/forms/filter.py:1055 pretix/control/forms/filter.py:2305 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:9 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:14 @@ -1738,18 +1740,18 @@ msgstr "جميع الفواتير" msgid "Download all invoices created by the system as a ZIP file of PDF files." msgstr "" -#: pretix/base/exporters/invoices.py:178 +#: pretix/base/exporters/invoices.py:179 msgid "Invoice data" msgstr "بيانات الفاتورة" -#: pretix/base/exporters/invoices.py:179 +#: pretix/base/exporters/invoices.py:180 msgid "" "Download a spreadsheet with the data of all invoices created by the system. " "The spreadsheet includes two sheets, one with a line for every invoice, and " "one with a line for every position of every invoice." msgstr "" -#: pretix/base/exporters/invoices.py:191 pretix/base/shredder.py:579 +#: pretix/base/exporters/invoices.py:193 pretix/base/shredder.py:579 #: pretix/control/templates/pretixcontrol/order/index.html:268 #: pretix/control/templates/pretixcontrol/order/index.html:381 #: pretix/control/templates/pretixcontrol/organizers/edit.html:312 @@ -1758,244 +1760,245 @@ msgstr "" msgid "Invoices" msgstr "فواتير" -#: pretix/base/exporters/invoices.py:192 +#: pretix/base/exporters/invoices.py:194 msgid "Invoice lines" msgstr "أسطر الفاتورة" -#: pretix/base/exporters/invoices.py:199 pretix/base/exporters/invoices.py:318 +#: pretix/base/exporters/invoices.py:201 pretix/base/exporters/invoices.py:320 msgid "Invoice number" msgstr "رقم الفاتورة" -#: pretix/base/exporters/invoices.py:200 pretix/base/exporters/invoices.py:327 -#: pretix/base/exporters/orderlist.py:1232 -#: pretix/base/exporters/orderlist.py:1277 -#: pretix/base/exporters/waitinglist.py:107 pretix/base/forms/widgets.py:213 +#: pretix/base/exporters/invoices.py:202 pretix/base/exporters/invoices.py:329 +#: pretix/base/exporters/orderlist.py:1236 +#: pretix/base/exporters/orderlist.py:1282 +#: pretix/base/exporters/waitinglist.py:108 pretix/base/forms/widgets.py:213 #: pretix/base/models/items.py:1655 pretix/base/models/orders.py:259 -#: pretix/base/models/orders.py:2985 pretix/base/models/orders.py:3105 +#: pretix/base/models/orders.py:2999 pretix/base/models/orders.py:3119 +#: pretix/base/templates/pretixbase/email/order_details.html:70 #: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html:25 #: pretix/control/templates/pretixcontrol/order/transactions.html:19 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:72 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:80 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_assign.html:17 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:11 -#: pretix/plugins/checkinlists/exporters.py:753 +#: pretix/plugins/checkinlists/exporters.py:756 #: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:6 #: pretix/presale/templates/pretixpresale/organizers/calendar_day.html:58 msgid "Date" msgstr "التاريخ" -#: pretix/base/exporters/invoices.py:202 pretix/base/exporters/invoices.py:329 +#: pretix/base/exporters/invoices.py:204 pretix/base/exporters/invoices.py:331 #: pretix/base/forms/auth.py:160 pretix/base/modelimport_orders.py:59 -#: pretix/base/models/customers.py:395 pretix/base/models/waitinglist.py:76 +#: pretix/base/models/customers.py:415 pretix/base/models/waitinglist.py:76 #: pretix/control/forms/filter.py:584 #: pretix/control/templates/pretixcontrol/users/index.html:42 #: pretix/control/views/waitinglist.py:314 msgid "Email address" msgstr "عنوان البريد الإلكتروني" -#: pretix/base/exporters/invoices.py:203 pretix/base/exporters/invoices.py:330 +#: pretix/base/exporters/invoices.py:205 pretix/base/exporters/invoices.py:332 msgid "Invoice type" msgstr "نوع الفاتورة" -#: pretix/base/exporters/invoices.py:204 pretix/base/exporters/invoices.py:331 +#: pretix/base/exporters/invoices.py:206 pretix/base/exporters/invoices.py:333 msgid "Cancellation of" msgstr "إلغاء ل" -#: pretix/base/exporters/invoices.py:206 pretix/base/exporters/invoices.py:207 #: pretix/base/exporters/invoices.py:208 pretix/base/exporters/invoices.py:209 #: pretix/base/exporters/invoices.py:210 pretix/base/exporters/invoices.py:211 -#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:332 -#: pretix/base/exporters/invoices.py:333 pretix/base/exporters/invoices.py:334 +#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:213 +#: pretix/base/exporters/invoices.py:214 pretix/base/exporters/invoices.py:334 #: pretix/base/exporters/invoices.py:335 pretix/base/exporters/invoices.py:336 #: pretix/base/exporters/invoices.py:337 pretix/base/exporters/invoices.py:338 +#: pretix/base/exporters/invoices.py:339 pretix/base/exporters/invoices.py:340 msgid "Invoice sender:" msgstr "مرسل الفاتورة:" -#: pretix/base/exporters/invoices.py:207 pretix/base/exporters/invoices.py:333 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:613 pretix/base/forms/questions.py:704 +#: pretix/base/exporters/invoices.py:209 pretix/base/exporters/invoices.py:335 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:614 pretix/base/forms/questions.py:706 #: pretix/base/modelimport_orders.py:232 pretix/base/modelimport_orders.py:386 -#: pretix/base/models/customers.py:311 pretix/base/models/orders.py:1539 -#: pretix/base/models/orders.py:3283 pretix/control/forms/filter.py:660 +#: pretix/base/models/customers.py:331 pretix/base/models/orders.py:1539 +#: pretix/base/models/orders.py:3297 pretix/control/forms/filter.py:660 #: pretix/control/forms/filter.py:691 #: pretix/control/templates/pretixcontrol/order/index.html:1001 -#: pretix/plugins/checkinlists/exporters.py:535 -#: pretix/plugins/reports/exporters.py:851 +#: pretix/plugins/checkinlists/exporters.py:536 +#: pretix/plugins/reports/exporters.py:852 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:88 #: pretix/presale/templates/pretixpresale/event/order.html:316 msgid "Address" msgstr "العنوان" -#: pretix/base/exporters/invoices.py:208 pretix/base/exporters/invoices.py:216 -#: pretix/base/exporters/invoices.py:334 pretix/base/exporters/invoices.py:342 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:614 pretix/base/forms/questions.py:715 +#: pretix/base/exporters/invoices.py:210 pretix/base/exporters/invoices.py:218 +#: pretix/base/exporters/invoices.py:336 pretix/base/exporters/invoices.py:344 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:615 pretix/base/forms/questions.py:717 #: pretix/base/modelimport_orders.py:244 pretix/base/modelimport_orders.py:397 -#: pretix/base/models/customers.py:312 pretix/base/models/orders.py:1540 -#: pretix/base/models/orders.py:3284 pretix/base/settings.py:1162 +#: pretix/base/models/customers.py:332 pretix/base/models/orders.py:1540 +#: pretix/base/models/orders.py:3298 pretix/base/settings.py:1191 #: pretix/control/forms/filter.py:664 pretix/control/forms/filter.py:695 #: pretix/control/views/item.py:488 -#: pretix/plugins/checkinlists/exporters.py:536 -#: pretix/plugins/reports/exporters.py:852 +#: pretix/plugins/checkinlists/exporters.py:537 +#: pretix/plugins/reports/exporters.py:853 msgid "ZIP code" msgstr "الرمز البريدي" -#: pretix/base/exporters/invoices.py:209 pretix/base/exporters/invoices.py:217 -#: pretix/base/exporters/invoices.py:335 pretix/base/exporters/invoices.py:343 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:615 pretix/base/forms/questions.py:723 +#: pretix/base/exporters/invoices.py:211 pretix/base/exporters/invoices.py:219 +#: pretix/base/exporters/invoices.py:337 pretix/base/exporters/invoices.py:345 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:616 pretix/base/forms/questions.py:725 #: pretix/base/modelimport_orders.py:256 pretix/base/modelimport_orders.py:408 -#: pretix/base/models/customers.py:313 pretix/base/models/orders.py:1541 -#: pretix/base/models/orders.py:3285 pretix/base/settings.py:1174 +#: pretix/base/models/customers.py:333 pretix/base/models/orders.py:1541 +#: pretix/base/models/orders.py:3299 pretix/base/settings.py:1203 #: pretix/control/forms/filter.py:669 pretix/control/forms/filter.py:700 #: pretix/control/views/item.py:498 -#: pretix/plugins/checkinlists/exporters.py:537 -#: pretix/plugins/reports/exporters.py:853 +#: pretix/plugins/checkinlists/exporters.py:538 +#: pretix/plugins/reports/exporters.py:854 msgid "City" msgstr "المدينة" -#: pretix/base/exporters/invoices.py:210 pretix/base/exporters/invoices.py:218 -#: pretix/base/exporters/invoices.py:336 pretix/base/exporters/invoices.py:344 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:616 pretix/base/forms/questions.py:735 +#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:220 +#: pretix/base/exporters/invoices.py:338 pretix/base/exporters/invoices.py:346 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:617 pretix/base/forms/questions.py:737 #: pretix/base/modelimport_orders.py:274 pretix/base/modelimport_orders.py:425 -#: pretix/base/models/customers.py:314 pretix/base/models/orders.py:1542 -#: pretix/base/models/orders.py:3286 pretix/base/models/orders.py:3287 -#: pretix/base/settings.py:1183 pretix/control/forms/filter.py:674 +#: pretix/base/models/customers.py:334 pretix/base/models/orders.py:1542 +#: pretix/base/models/orders.py:3300 pretix/base/models/orders.py:3301 +#: pretix/base/settings.py:1212 pretix/control/forms/filter.py:674 #: pretix/control/forms/filter.py:705 #: pretix/control/templates/pretixcontrol/order/index.html:1005 #: pretix/control/views/item.py:508 -#: pretix/plugins/checkinlists/exporters.py:538 -#: pretix/plugins/reports/exporters.py:803 -#: pretix/plugins/reports/exporters.py:848 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/checkinlists/exporters.py:539 +#: pretix/plugins/reports/exporters.py:804 +#: pretix/plugins/reports/exporters.py:849 +#: pretix/plugins/reports/exporters.py:898 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:92 #: pretix/presale/templates/pretixpresale/event/order.html:320 msgid "Country" msgstr "الدولة" -#: pretix/base/exporters/invoices.py:211 pretix/base/exporters/invoices.py:337 +#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:339 msgid "Tax ID" msgstr "الرقم الضريبي" -#: pretix/base/exporters/invoices.py:212 pretix/base/exporters/invoices.py:220 -#: pretix/base/exporters/invoices.py:338 pretix/base/exporters/invoices.py:346 -#: pretix/base/exporters/orderlist.py:271 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:662 pretix/base/modelimport_orders.py:321 -#: pretix/base/models/orders.py:3290 +#: pretix/base/exporters/invoices.py:214 pretix/base/exporters/invoices.py:222 +#: pretix/base/exporters/invoices.py:340 pretix/base/exporters/invoices.py:348 +#: pretix/base/exporters/orderlist.py:272 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:663 pretix/base/modelimport_orders.py:321 +#: pretix/base/models/orders.py:3304 #: pretix/control/templates/pretixcontrol/order/index.html:1012 -#: pretix/plugins/reports/exporters.py:855 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:856 +#: pretix/plugins/reports/exporters.py:898 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:99 #: pretix/presale/templates/pretixpresale/event/order.html:327 msgid "VAT ID" msgstr "رقم تعريف ضريبة القيمة المضافة" -#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:214 #: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:216 #: pretix/base/exporters/invoices.py:217 pretix/base/exporters/invoices.py:218 #: pretix/base/exporters/invoices.py:219 pretix/base/exporters/invoices.py:220 #: pretix/base/exporters/invoices.py:221 pretix/base/exporters/invoices.py:222 -#: pretix/base/exporters/invoices.py:339 pretix/base/exporters/invoices.py:340 +#: pretix/base/exporters/invoices.py:223 pretix/base/exporters/invoices.py:224 #: pretix/base/exporters/invoices.py:341 pretix/base/exporters/invoices.py:342 #: pretix/base/exporters/invoices.py:343 pretix/base/exporters/invoices.py:344 #: pretix/base/exporters/invoices.py:345 pretix/base/exporters/invoices.py:346 #: pretix/base/exporters/invoices.py:347 pretix/base/exporters/invoices.py:348 +#: pretix/base/exporters/invoices.py:349 pretix/base/exporters/invoices.py:350 msgid "Invoice recipient:" msgstr "مستلم الفاتورة:" -#: pretix/base/exporters/invoices.py:213 pretix/base/exporters/invoices.py:339 -#: pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:463 -#: pretix/base/exporters/orderlist.py:612 -#: pretix/base/exporters/orderlist.py:652 pretix/base/forms/questions.py:696 +#: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:341 +#: pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:464 +#: pretix/base/exporters/orderlist.py:613 +#: pretix/base/exporters/orderlist.py:653 pretix/base/forms/questions.py:698 #: pretix/base/modelimport_orders.py:199 pretix/base/modelimport_orders.py:375 #: pretix/control/forms/filter.py:652 pretix/control/forms/filter.py:687 #: pretix/control/templates/pretixcontrol/order/index.html:997 #: pretix/control/views/item.py:466 -#: pretix/plugins/checkinlists/exporters.py:519 -#: pretix/plugins/reports/exporters.py:850 -#: pretix/plugins/reports/exporters.py:896 +#: pretix/plugins/checkinlists/exporters.py:520 +#: pretix/plugins/reports/exporters.py:851 +#: pretix/plugins/reports/exporters.py:897 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:83 #: pretix/presale/templates/pretixpresale/event/order.html:308 msgid "Company" msgstr "الشركة" -#: pretix/base/exporters/invoices.py:215 pretix/base/exporters/invoices.py:341 +#: pretix/base/exporters/invoices.py:217 pretix/base/exporters/invoices.py:343 msgid "Street address" msgstr "عنوان الشارع" -#: pretix/base/exporters/invoices.py:219 pretix/base/exporters/invoices.py:345 -#: pretix/base/exporters/orderlist.py:270 -#: pretix/base/exporters/orderlist.py:471 -#: pretix/base/exporters/orderlist.py:617 pretix/base/forms/questions.py:760 -#: pretix/base/forms/questions.py:1194 pretix/base/modelimport_orders.py:295 -#: pretix/base/models/customers.py:315 pretix/base/models/orders.py:1543 -#: pretix/base/models/orders.py:3289 pretix/base/views/js_helpers.py:48 +#: pretix/base/exporters/invoices.py:221 pretix/base/exporters/invoices.py:347 +#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:472 +#: pretix/base/exporters/orderlist.py:618 pretix/base/forms/questions.py:762 +#: pretix/base/forms/questions.py:1198 pretix/base/modelimport_orders.py:295 +#: pretix/base/models/customers.py:335 pretix/base/models/orders.py:1543 +#: pretix/base/models/orders.py:3303 pretix/base/views/js_helpers.py:48 #: pretix/control/templates/pretixcontrol/order/index.html:1008 -#: pretix/plugins/checkinlists/exporters.py:539 -#: pretix/plugins/reports/exporters.py:854 +#: pretix/plugins/checkinlists/exporters.py:540 +#: pretix/plugins/reports/exporters.py:855 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:95 #: pretix/presale/templates/pretixpresale/event/order.html:323 msgctxt "address" msgid "State" msgstr "المنطقة" -#: pretix/base/exporters/invoices.py:221 pretix/base/exporters/invoices.py:347 -#: pretix/base/models/orders.py:3299 pretix/base/models/orders.py:3355 +#: pretix/base/exporters/invoices.py:223 pretix/base/exporters/invoices.py:349 +#: pretix/base/models/orders.py:3313 pretix/base/models/orders.py:3369 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:103 msgid "Beneficiary" msgstr "المستفيد" -#: pretix/base/exporters/invoices.py:222 pretix/base/exporters/invoices.py:348 -#: pretix/base/modelimport_orders.py:333 pretix/base/models/orders.py:3294 +#: pretix/base/exporters/invoices.py:224 pretix/base/exporters/invoices.py:350 +#: pretix/base/modelimport_orders.py:333 pretix/base/models/orders.py:3308 #: pretix/control/templates/pretixcontrol/order/index.html:1033 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:111 msgid "Internal reference" msgstr "المرجع الداخلي" -#: pretix/base/exporters/invoices.py:223 pretix/base/models/tax.py:162 -#: pretix/control/forms/event.py:1515 +#: pretix/base/exporters/invoices.py:225 pretix/base/models/tax.py:162 +#: pretix/control/forms/event.py:1516 msgid "Reverse charge" msgstr "التكلفة العكسية" -#: pretix/base/exporters/invoices.py:224 +#: pretix/base/exporters/invoices.py:226 msgid "Shown foreign currency" msgstr "العملات الأجنبية المعروضة" -#: pretix/base/exporters/invoices.py:225 +#: pretix/base/exporters/invoices.py:227 msgid "Foreign currency rate" msgstr "أسعار العملات الأجنبية" -#: pretix/base/exporters/invoices.py:226 +#: pretix/base/exporters/invoices.py:228 msgid "Total value (with taxes)" msgstr "القيمة الإجمالية (مع الضرائب)" -#: pretix/base/exporters/invoices.py:227 +#: pretix/base/exporters/invoices.py:229 msgid "Total value (without taxes)" msgstr "القيمة الإجمالية (بدون الضرائب)" -#: pretix/base/exporters/invoices.py:228 +#: pretix/base/exporters/invoices.py:230 msgid "Payment matching IDs" msgstr "معرفات مطابقة الدفع" -#: pretix/base/exporters/invoices.py:229 pretix/base/exporters/invoices.py:349 -#: pretix/base/exporters/orderlist.py:290 -#: pretix/base/exporters/orderlist.py:475 -#: pretix/base/exporters/orderlist.py:670 pretix/base/plugins.py:137 +#: pretix/base/exporters/invoices.py:231 pretix/base/exporters/invoices.py:351 +#: pretix/base/exporters/orderlist.py:291 +#: pretix/base/exporters/orderlist.py:476 +#: pretix/base/exporters/orderlist.py:671 pretix/base/plugins.py:139 #: pretix/control/templates/pretixcontrol/event/payment.html:11 msgid "Payment providers" msgstr "مزودي خدمات الدفع" -#: pretix/base/exporters/invoices.py:285 pretix/base/exporters/invoices.py:388 +#: pretix/base/exporters/invoices.py:287 pretix/base/exporters/invoices.py:390 msgid "Cancellation" msgstr "إلغاء" -#: pretix/base/exporters/invoices.py:285 pretix/base/exporters/invoices.py:388 +#: pretix/base/exporters/invoices.py:287 pretix/base/exporters/invoices.py:390 #: pretix/control/templates/pretixcontrol/event/mail.html:120 #: pretix/control/templates/pretixcontrol/order/index.html:272 #: pretix/control/templates/pretixcontrol/order/mail_history.html:70 @@ -2003,44 +2006,44 @@ msgstr "إلغاء" msgid "Invoice" msgstr "فاتورة" -#: pretix/base/exporters/invoices.py:319 +#: pretix/base/exporters/invoices.py:321 msgid "Line number" msgstr "رقم السطر" -#: pretix/base/exporters/invoices.py:320 pretix/base/exporters/orderlist.py:458 +#: pretix/base/exporters/invoices.py:322 pretix/base/exporters/orderlist.py:459 #: pretix/base/models/items.py:492 pretix/base/models/items.py:1155 #: pretix/control/templates/pretixcontrol/pdf/placeholders.html:32 msgid "Description" msgstr "الوصف" -#: pretix/base/exporters/invoices.py:321 pretix/control/forms/orders.py:355 +#: pretix/base/exporters/invoices.py:323 pretix/control/forms/orders.py:355 msgid "Gross price" msgstr "السعر الإجمالي" -#: pretix/base/exporters/invoices.py:322 +#: pretix/base/exporters/invoices.py:324 msgid "Net price" msgstr "السعر الصافي" -#: pretix/base/exporters/invoices.py:323 pretix/base/exporters/orderlist.py:462 -#: pretix/base/exporters/orderlist.py:603 -#: pretix/base/exporters/orderlist.py:922 pretix/base/models/orders.py:2337 -#: pretix/base/models/orders.py:2509 pretix/base/models/orders.py:3031 +#: pretix/base/exporters/invoices.py:325 pretix/base/exporters/orderlist.py:463 +#: pretix/base/exporters/orderlist.py:604 +#: pretix/base/exporters/orderlist.py:924 pretix/base/models/orders.py:2351 +#: pretix/base/models/orders.py:2523 pretix/base/models/orders.py:3045 msgid "Tax value" msgstr "قيمة الضريبة" -#: pretix/base/exporters/invoices.py:324 pretix/base/exporters/orderlist.py:460 -#: pretix/base/exporters/orderlist.py:601 -#: pretix/base/exporters/orderlist.py:919 pretix/base/models/orders.py:2324 -#: pretix/base/models/orders.py:2496 pretix/base/models/orders.py:3018 -#: pretix/base/models/orders.py:3118 pretix/base/models/tax.py:348 +#: pretix/base/exporters/invoices.py:326 pretix/base/exporters/orderlist.py:461 +#: pretix/base/exporters/orderlist.py:602 +#: pretix/base/exporters/orderlist.py:921 pretix/base/models/orders.py:2338 +#: pretix/base/models/orders.py:2510 pretix/base/models/orders.py:3032 +#: pretix/base/models/orders.py:3132 pretix/base/models/tax.py:348 #: pretix/control/templates/pretixcontrol/order/transactions.html:21 #: pretix/plugins/reports/accountingreport.py:316 -#: pretix/plugins/reports/exporters.py:804 -#: pretix/plugins/reports/exporters.py:849 +#: pretix/plugins/reports/exporters.py:805 +#: pretix/plugins/reports/exporters.py:850 msgid "Tax rate" msgstr "معدل الضريبة" -#: pretix/base/exporters/invoices.py:325 +#: pretix/base/exporters/invoices.py:327 msgid "Tax name" msgstr "الاسم الضريبي" @@ -2050,7 +2053,7 @@ msgstr "الاسم الضريبي" msgid "Product data" msgstr "اسم المنتج" -#: pretix/base/exporters/items.py:50 pretix/base/exporters/orderlist.py:1146 +#: pretix/base/exporters/items.py:50 pretix/base/exporters/orderlist.py:1149 #, fuzzy #| msgid "Product name" msgctxt "export_category" @@ -2061,9 +2064,9 @@ msgstr "اسم المنتج" msgid "Download a spreadsheet with details about all products and variations." msgstr "" -#: pretix/base/exporters/items.py:58 pretix/base/exporters/orderlist.py:599 -#: pretix/base/exporters/orderlist.py:910 -#: pretix/base/exporters/waitinglist.py:114 +#: pretix/base/exporters/items.py:58 pretix/base/exporters/orderlist.py:600 +#: pretix/base/exporters/orderlist.py:912 +#: pretix/base/exporters/waitinglist.py:115 #, fuzzy #| msgid "Variation" msgid "Variation ID" @@ -2087,16 +2090,16 @@ msgstr "الاسم الداخلي" msgid "Item name" msgstr "اسم العنصر" -#: pretix/base/exporters/items.py:68 pretix/base/exporters/orderlist.py:598 -#: pretix/base/exporters/orderlist.py:911 -#: pretix/base/exporters/waitinglist.py:113 pretix/base/models/items.py:1148 -#: pretix/base/models/orders.py:1495 pretix/base/models/orders.py:3003 -#: pretix/plugins/checkinlists/exporters.py:696 +#: pretix/base/exporters/items.py:68 pretix/base/exporters/orderlist.py:599 +#: pretix/base/exporters/orderlist.py:913 +#: pretix/base/exporters/waitinglist.py:114 pretix/base/models/items.py:1148 +#: pretix/base/models/orders.py:1495 pretix/base/models/orders.py:3017 +#: pretix/plugins/checkinlists/exporters.py:698 msgid "Variation" msgstr "النوع" -#: pretix/base/exporters/items.py:71 pretix/base/exporters/reusablemedia.py:48 -#: pretix/base/models/customers.py:57 pretix/base/models/customers.py:403 +#: pretix/base/exporters/items.py:71 pretix/base/exporters/reusablemedia.py:49 +#: pretix/base/models/customers.py:64 pretix/base/models/customers.py:423 #: pretix/base/models/discount.py:60 pretix/base/models/event.py:1515 #: pretix/base/models/items.py:489 pretix/base/models/items.py:1152 #: pretix/base/models/media.py:77 pretix/base/settings.py:204 @@ -2111,7 +2114,7 @@ msgid "Active" msgstr "نشط" #: pretix/base/exporters/items.py:72 pretix/base/models/discount.py:77 -#: pretix/control/forms/event.py:976 pretix/control/navigation.py:520 +#: pretix/control/forms/event.py:977 pretix/control/navigation.py:520 #: pretix/control/templates/pretixcontrol/organizers/channels.html:6 #: pretix/plugins/autocheckin/models.py:64 #: pretix/plugins/autocheckin/templates/pretixplugins/autocheckin/index.html:30 @@ -2149,9 +2152,9 @@ msgstr "إنشاء التذاكر" msgid "Generate tickets" msgstr "إنشاء التذاكر" -#: pretix/base/exporters/items.py:79 pretix/base/exporters/orderlist.py:1153 +#: pretix/base/exporters/items.py:79 pretix/base/exporters/orderlist.py:1156 #: pretix/base/exporters/waitinglist.py:41 pretix/base/shredder.py:367 -#: pretix/control/forms/event.py:1695 pretix/control/navigation.py:237 +#: pretix/control/forms/event.py:1696 pretix/control/navigation.py:237 #: pretix/control/templates/pretixcontrol/event/settings.html:363 #: pretix/control/templates/pretixcontrol/orders/cancel.html:62 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:6 @@ -2175,21 +2178,21 @@ msgstr "قائمة الانتظار" #: pretix/base/exporters/items.py:80 pretix/base/models/discount.py:82 #: pretix/base/models/items.py:224 pretix/base/models/items.py:280 #: pretix/base/models/items.py:562 pretix/base/models/items.py:1205 -#: pretix/base/payment.py:392 pretix/control/forms/subevents.py:323 +#: pretix/base/payment.py:394 pretix/control/forms/subevents.py:323 #: pretix/control/forms/subevents.py:345 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:506 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:507 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:172 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:149 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:150 msgid "Available from" msgstr "متاح من" #: pretix/base/exporters/items.py:81 pretix/base/models/discount.py:87 #: pretix/base/models/items.py:229 pretix/base/models/items.py:285 #: pretix/base/models/items.py:572 pretix/base/models/items.py:1215 -#: pretix/base/payment.py:398 pretix/control/forms/subevents.py:328 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:511 +#: pretix/base/payment.py:400 pretix/control/forms/subevents.py:328 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:512 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:177 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:154 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:155 msgid "Available until" msgstr "متاح حتى" @@ -2223,17 +2226,17 @@ msgstr "الحد الأدنى للمبلغ حسب كل طلب" msgid "Maximum amount per order" msgstr "الحد الأقصى حسب كل طلب" -#: pretix/base/exporters/items.py:89 pretix/base/exporters/orderlist.py:283 +#: pretix/base/exporters/items.py:89 pretix/base/exporters/orderlist.py:284 #: pretix/base/modelimport_orders.py:652 pretix/base/models/items.py:656 #: pretix/base/models/items.py:1242 pretix/base/models/orders.py:282 -#: pretix/plugins/checkinlists/exporters.py:523 +#: pretix/plugins/checkinlists/exporters.py:524 msgid "Requires special attention" msgstr "يتطلب اهتماما خاصا" -#: pretix/base/exporters/items.py:90 pretix/base/exporters/orderlist.py:284 +#: pretix/base/exporters/items.py:90 pretix/base/exporters/orderlist.py:285 #: pretix/base/modelimport_orders.py:661 pretix/base/models/items.py:663 #: pretix/base/models/items.py:1249 pretix/base/models/orders.py:289 -#: pretix/plugins/checkinlists/exporters.py:525 +#: pretix/plugins/checkinlists/exporters.py:526 #, fuzzy #| msgid "Check-in list" msgid "Check-in text" @@ -2283,7 +2286,7 @@ msgid "" msgstr "" #: pretix/base/exporters/mail.py:76 pretix/plugins/reports/exporters.py:498 -#: pretix/plugins/reports/exporters.py:680 +#: pretix/plugins/reports/exporters.py:681 msgid "Filter by status" msgstr "تصنيف حسب الحالة" @@ -2294,56 +2297,57 @@ msgid "" "position, and one with a line for every additional fee charged in an order." msgstr "" -#: pretix/base/exporters/orderlist.py:101 pretix/base/models/orders.py:332 +#: pretix/base/exporters/orderlist.py:102 pretix/base/models/orders.py:332 #: pretix/control/navigation.py:255 pretix/control/navigation.py:362 #: pretix/control/templates/pretixcontrol/orders/index.html:8 #: pretix/control/templates/pretixcontrol/orders/index.html:10 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:198 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:199 #: pretix/plugins/reports/accountingreport.py:671 #: pretix/plugins/reports/accountingreport.py:863 -#: pretix/plugins/reports/exporters.py:668 pretix/plugins/statistics/apps.py:39 +#: pretix/plugins/reports/exporters.py:669 pretix/plugins/statistics/apps.py:39 #: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:13 #: pretix/presale/views/customer.py:360 msgid "Orders" msgstr "طلبات" -#: pretix/base/exporters/orderlist.py:102 pretix/base/models/orders.py:2558 +#: pretix/base/exporters/orderlist.py:103 pretix/base/models/orders.py:2572 #: pretix/base/notifications.py:205 msgid "Order positions" msgstr "حالات الطلب" -#: pretix/base/exporters/orderlist.py:103 +#: pretix/base/exporters/orderlist.py:104 msgid "Order fees" msgstr "رسوم الطلب" -#: pretix/base/exporters/orderlist.py:111 +#: pretix/base/exporters/orderlist.py:112 msgid "Only paid orders" msgstr "الطلبات المدفوعة فقط" -#: pretix/base/exporters/orderlist.py:117 +#: pretix/base/exporters/orderlist.py:118 msgid "Include payment amounts" msgstr "تضمين مبالغ الدفع" -#: pretix/base/exporters/orderlist.py:123 +#: pretix/base/exporters/orderlist.py:124 msgid "Show multiple choice answers grouped in one column" msgstr "أظهر إجابات متعددة الخيار، مجمعة في عمود واحد" -#: pretix/base/exporters/orderlist.py:132 -#: pretix/plugins/reports/exporters.py:712 +#: pretix/base/exporters/orderlist.py:133 +#: pretix/plugins/reports/exporters.py:713 #, fuzzy #| msgid "Only include orders created on or after this date." msgid "Only include orders created within this date range." msgstr "قم بتضمين الطلبات التي تم إنشاؤها في هذا التاريخ أو بعده فقط." -#: pretix/base/exporters/orderlist.py:136 pretix/base/notifications.py:194 -#: pretix/base/pdf.py:245 pretix/plugins/badges/exporters.py:499 +#: pretix/base/exporters/orderlist.py:137 pretix/base/notifications.py:194 +#: pretix/base/pdf.py:245 pretix/base/settings.py:1110 +#: pretix/base/settings.py:1121 pretix/plugins/badges/exporters.py:499 #: pretix/plugins/reports/exporters.py:316 #: pretix/plugins/reports/exporters.py:465 #: pretix/plugins/ticketoutputpdf/exporters.py:97 msgid "Event date" msgstr "تاريخ الفعالية" -#: pretix/base/exporters/orderlist.py:139 +#: pretix/base/exporters/orderlist.py:140 #, fuzzy #| msgid "" #| "Only include orders including at least one ticket for a date on or after " @@ -2355,24 +2359,24 @@ msgstr "" "قم بتضمين الطلبات التي تشمل تذكرة واحدة على الأقل في هذا التاريخ أو بعده. " "سيشمل أيضا تواريخ أخرى في حالة الطلبات المختلطة!" -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:449 -#: pretix/base/exporters/orderlist.py:581 -#: pretix/base/exporters/orderlist.py:894 -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1277 -#: pretix/base/exporters/waitinglist.py:115 pretix/control/forms/event.py:1671 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:450 +#: pretix/base/exporters/orderlist.py:582 +#: pretix/base/exporters/orderlist.py:896 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1282 +#: pretix/base/exporters/waitinglist.py:116 pretix/control/forms/event.py:1672 #: pretix/control/forms/organizer.py:116 msgid "Event slug" msgstr "رابط الفعالية" -#: pretix/base/exporters/orderlist.py:262 -#: pretix/base/exporters/orderlist.py:452 -#: pretix/base/exporters/orderlist.py:585 -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1330 -#: pretix/base/exporters/waitinglist.py:122 -#: pretix/base/exporters/waitinglist.py:172 pretix/base/models/orders.py:216 +#: pretix/base/exporters/orderlist.py:263 +#: pretix/base/exporters/orderlist.py:453 +#: pretix/base/exporters/orderlist.py:586 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1335 +#: pretix/base/exporters/waitinglist.py:123 +#: pretix/base/exporters/waitinglist.py:173 pretix/base/models/orders.py:216 #: pretix/control/forms/filter.py:1050 pretix/control/forms/filter.py:1229 #: pretix/control/forms/filter.py:1455 pretix/control/forms/filter.py:1524 #: pretix/control/forms/filter.py:1596 pretix/control/forms/filter.py:1696 @@ -2380,15 +2384,15 @@ msgstr "رابط الفعالية" #: pretix/control/forms/filter.py:2395 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:52 #: pretix/control/templates/pretixcontrol/checkin/index.html:112 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:83 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:96 #: pretix/control/templates/pretixcontrol/events/index.html:90 #: pretix/control/templates/pretixcontrol/order/index.html:795 #: pretix/control/templates/pretixcontrol/order/index.html:891 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:26 #: pretix/control/templates/pretixcontrol/orders/index.html:151 #: pretix/control/templates/pretixcontrol/orders/refunds.html:65 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:39 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:209 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:40 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:210 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:46 #: pretix/control/templates/pretixcontrol/organizers/detail.html:70 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:34 @@ -2401,82 +2405,83 @@ msgstr "رابط الفعالية" #: pretix/control/views/waitinglist.py:314 #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control.html:9 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:898 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_inspect.html:34 #: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:79 msgid "Status" msgstr "حالة" -#: pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:455 -#: pretix/base/exporters/orderlist.py:588 -#: pretix/base/exporters/orderlist.py:898 pretix/base/notifications.py:203 +#: pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:456 +#: pretix/base/exporters/orderlist.py:589 +#: pretix/base/exporters/orderlist.py:900 pretix/base/notifications.py:203 +#: pretix/base/settings.py:1111 pretix/base/settings.py:1122 #: pretix/control/forms/filter.py:2356 #: pretix/control/templates/pretixcontrol/order/index.html:183 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:24 #: pretix/control/templates/pretixcontrol/orders/index.html:140 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:206 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:207 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:45 #: pretix/control/templates/pretixcontrol/search/orders.html:57 #: pretix/plugins/badges/exporters.py:498 #: pretix/plugins/checkinlists/exporters.py:123 -#: pretix/plugins/checkinlists/exporters.py:521 +#: pretix/plugins/checkinlists/exporters.py:522 #: pretix/plugins/reports/exporters.py:509 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:691 -#: pretix/plugins/reports/exporters.py:702 -#: pretix/plugins/reports/exporters.py:895 +#: pretix/plugins/reports/exporters.py:692 +#: pretix/plugins/reports/exporters.py:703 +#: pretix/plugins/reports/exporters.py:896 msgid "Order date" msgstr "تاريخ الطلب" -#: pretix/base/exporters/orderlist.py:263 -#: pretix/base/exporters/orderlist.py:456 -#: pretix/base/exporters/orderlist.py:589 -#: pretix/base/exporters/orderlist.py:899 -#: pretix/plugins/checkinlists/exporters.py:522 +#: pretix/base/exporters/orderlist.py:264 +#: pretix/base/exporters/orderlist.py:457 +#: pretix/base/exporters/orderlist.py:590 +#: pretix/base/exporters/orderlist.py:901 +#: pretix/plugins/checkinlists/exporters.py:523 msgid "Order time" msgstr "توقيت الطلب" -#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:272 msgid "Custom address field" msgstr "حقل العنوان المخصص" -#: pretix/base/exporters/orderlist.py:271 +#: pretix/base/exporters/orderlist.py:272 msgid "Date of last payment" msgstr "تاريخ آخر دفع" -#: pretix/base/exporters/orderlist.py:271 pretix/base/services/stats.py:238 +#: pretix/base/exporters/orderlist.py:272 pretix/base/services/stats.py:238 msgid "Fees" msgstr "الرسوم" -#: pretix/base/exporters/orderlist.py:276 +#: pretix/base/exporters/orderlist.py:277 #, python-brace-format msgid "Gross at {rate} % tax" msgstr "الإجمالي في {rate} % ضريبة" -#: pretix/base/exporters/orderlist.py:277 +#: pretix/base/exporters/orderlist.py:278 #, python-brace-format msgid "Net at {rate} % tax" msgstr "صافي {rate} % ضريبة" -#: pretix/base/exporters/orderlist.py:278 +#: pretix/base/exporters/orderlist.py:279 #, python-brace-format msgid "Tax value at {rate} % tax" msgstr "قيمة الضريبة {rate} % ضريبة" -#: pretix/base/exporters/orderlist.py:281 +#: pretix/base/exporters/orderlist.py:282 msgid "Invoice numbers" msgstr "أرقام الفواتير" -#: pretix/base/exporters/orderlist.py:282 -#: pretix/base/exporters/orderlist.py:665 pretix/base/modelimport_orders.py:578 +#: pretix/base/exporters/orderlist.py:283 +#: pretix/base/exporters/orderlist.py:666 pretix/base/modelimport_orders.py:578 #: pretix/control/forms/filter.py:616 #: pretix/control/templates/pretixcontrol/order/index.html:190 msgid "Sales channel" msgstr "قناة المبيعات" -#: pretix/base/exporters/orderlist.py:286 -#: pretix/base/exporters/orderlist.py:630 pretix/base/models/orders.py:277 +#: pretix/base/exporters/orderlist.py:287 +#: pretix/base/exporters/orderlist.py:631 pretix/base/models/orders.py:277 #: pretix/control/forms/filter.py:246 #, fuzzy #| msgctxt "subevent" @@ -2484,78 +2489,78 @@ msgstr "قناة المبيعات" msgid "Follow-up date" msgstr "كل التواريخ" -#: pretix/base/exporters/orderlist.py:287 +#: pretix/base/exporters/orderlist.py:288 #: pretix/control/templates/pretixcontrol/orders/index.html:150 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:208 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:209 msgid "Positions" msgstr "الحالات" -#: pretix/base/exporters/orderlist.py:288 -#: pretix/base/exporters/orderlist.py:667 pretix/base/models/orders.py:321 +#: pretix/base/exporters/orderlist.py:289 +#: pretix/base/exporters/orderlist.py:668 pretix/base/models/orders.py:321 #: pretix/control/forms/filter.py:598 msgid "Email address verified" msgstr "تم التحقق من عنوان البريد الإلكتروني" -#: pretix/base/exporters/orderlist.py:289 -#: pretix/base/exporters/orderlist.py:474 -#: pretix/base/exporters/orderlist.py:668 +#: pretix/base/exporters/orderlist.py:290 +#: pretix/base/exporters/orderlist.py:475 +#: pretix/base/exporters/orderlist.py:669 #, fuzzy #| msgctxt "invoice" #| msgid "Customer VAT ID" msgid "External customer ID" msgstr "معرف ضريبة القيمة المضافة للعميل" -#: pretix/base/exporters/orderlist.py:295 +#: pretix/base/exporters/orderlist.py:296 #, python-brace-format msgid "Paid by {method}" msgstr "تم السداد بواسطة {method}" -#: pretix/base/exporters/orderlist.py:457 -#: pretix/base/exporters/orderlist.py:912 +#: pretix/base/exporters/orderlist.py:458 +#: pretix/base/exporters/orderlist.py:914 msgid "Fee type" msgstr "نوع الرسوم" -#: pretix/base/exporters/orderlist.py:459 -#: pretix/base/exporters/orderlist.py:600 -#: pretix/base/exporters/orderlist.py:918 pretix/base/modelimport_orders.py:467 -#: pretix/base/models/orders.py:1500 pretix/base/models/orders.py:3014 +#: pretix/base/exporters/orderlist.py:460 +#: pretix/base/exporters/orderlist.py:601 +#: pretix/base/exporters/orderlist.py:920 pretix/base/modelimport_orders.py:467 +#: pretix/base/models/orders.py:1500 pretix/base/models/orders.py:3028 #: pretix/base/pdf.py:160 pretix/control/forms/orders.py:638 #: pretix/control/templates/pretixcontrol/item/index.html:146 #: pretix/control/templates/pretixcontrol/order/change.html:194 #: pretix/control/templates/pretixcontrol/order/change.html:418 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:496 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:497 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:162 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:139 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:140 #: pretix/plugins/checkinlists/exporters.py:377 -#: pretix/plugins/checkinlists/exporters.py:500 +#: pretix/plugins/checkinlists/exporters.py:501 #: pretix/plugins/reports/accountingreport.py:315 msgid "Price" msgstr "السعر" -#: pretix/base/exporters/orderlist.py:461 -#: pretix/base/exporters/orderlist.py:602 -#: pretix/base/exporters/orderlist.py:921 +#: pretix/base/exporters/orderlist.py:462 +#: pretix/base/exporters/orderlist.py:603 +#: pretix/base/exporters/orderlist.py:923 #: pretix/control/templates/pretixcontrol/event/tax_edit.html:9 #: pretix/control/templates/pretixcontrol/event/tax_edit.html:16 #: pretix/control/templates/pretixcontrol/order/change.html:165 msgid "Tax rule" msgstr "قاعدة الضريبة" -#: pretix/base/exporters/orderlist.py:489 -#: pretix/base/exporters/orderlist.py:693 pretix/base/models/orders.py:205 +#: pretix/base/exporters/orderlist.py:490 +#: pretix/base/exporters/orderlist.py:694 pretix/base/models/orders.py:205 msgid "canceled" msgstr "ملغى" -#: pretix/base/exporters/orderlist.py:584 -#: pretix/base/exporters/orderlist.py:905 -#: pretix/plugins/checkinlists/exporters.py:758 +#: pretix/base/exporters/orderlist.py:585 +#: pretix/base/exporters/orderlist.py:907 +#: pretix/plugins/checkinlists/exporters.py:761 msgid "Position ID" msgstr "معرف الحالة" -#: pretix/base/exporters/orderlist.py:593 -#: pretix/base/exporters/orderlist.py:1157 -#: pretix/base/exporters/waitinglist.py:118 pretix/base/forms/questions.py:650 -#: pretix/base/forms/questions.py:659 pretix/base/models/memberships.py:145 +#: pretix/base/exporters/orderlist.py:594 +#: pretix/base/exporters/orderlist.py:1160 +#: pretix/base/exporters/waitinglist.py:119 pretix/base/forms/questions.py:652 +#: pretix/base/forms/questions.py:661 pretix/base/models/memberships.py:145 #: pretix/control/forms/rrule.py:49 #: pretix/control/templates/pretixcontrol/events/index.html:78 #: pretix/control/templates/pretixcontrol/order/index.html:792 @@ -2565,27 +2570,27 @@ msgstr "معرف الحالة" #: pretix/control/templates/pretixcontrol/search/payments.html:83 #: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:19 #: pretix/control/templates/pretixcontrol/user/staff_session_list.html:18 -#: pretix/plugins/checkinlists/exporters.py:513 -#: pretix/plugins/checkinlists/exporters.py:702 +#: pretix/plugins/checkinlists/exporters.py:514 +#: pretix/plugins/checkinlists/exporters.py:704 msgid "Start date" msgstr "تاريخ البداية" -#: pretix/base/exporters/orderlist.py:594 -#: pretix/base/exporters/orderlist.py:1158 -#: pretix/base/exporters/waitinglist.py:119 +#: pretix/base/exporters/orderlist.py:595 +#: pretix/base/exporters/orderlist.py:1161 +#: pretix/base/exporters/waitinglist.py:120 #: pretix/base/models/memberships.py:148 #: pretix/control/templates/pretixcontrol/events/index.html:82 #: pretix/control/templates/pretixcontrol/organizers/detail.html:68 #: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:21 #: pretix/control/templates/pretixcontrol/user/staff_session_list.html:20 -#: pretix/plugins/checkinlists/exporters.py:514 -#: pretix/plugins/checkinlists/exporters.py:703 +#: pretix/plugins/checkinlists/exporters.py:515 +#: pretix/plugins/checkinlists/exporters.py:705 msgid "End date" msgstr "تاريخ الإنتهاء" -#: pretix/base/exporters/orderlist.py:596 -#: pretix/base/exporters/orderlist.py:909 -#: pretix/base/exporters/waitinglist.py:111 +#: pretix/base/exporters/orderlist.py:597 +#: pretix/base/exporters/orderlist.py:911 +#: pretix/base/exporters/waitinglist.py:112 #: pretix/base/modelimport_orders.py:129 #: pretix/base/modelimport_vouchers.py:174 pretix/base/models/items.py:794 #: pretix/base/models/vouchers.py:253 pretix/base/models/waitinglist.py:91 @@ -2601,9 +2606,9 @@ msgstr "تاريخ الإنتهاء" #: pretix/control/templates/pretixcontrol/waitinglist/index.html:165 #: pretix/control/views/vouchers.py:119 pretix/control/views/waitinglist.py:314 #: pretix/plugins/checkinlists/exporters.py:377 -#: pretix/plugins/checkinlists/exporters.py:500 -#: pretix/plugins/checkinlists/exporters.py:695 -#: pretix/plugins/checkinlists/exporters.py:760 +#: pretix/plugins/checkinlists/exporters.py:501 +#: pretix/plugins/checkinlists/exporters.py:697 +#: pretix/plugins/checkinlists/exporters.py:763 #: pretix/plugins/reports/accountingreport.py:271 #: pretix/plugins/reports/exporters.py:386 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:100 @@ -2613,7 +2618,7 @@ msgstr "تاريخ الإنتهاء" msgid "Product" msgstr "منتج" -#: pretix/base/exporters/orderlist.py:618 pretix/base/models/vouchers.py:315 +#: pretix/base/exporters/orderlist.py:619 pretix/base/models/vouchers.py:315 #: pretix/control/templates/pretixcontrol/vouchers/bulk.html:5 #: pretix/control/templates/pretixcontrol/vouchers/detail.html:6 #: pretix/control/templates/pretixcontrol/vouchers/detail.html:8 @@ -2621,132 +2626,132 @@ msgstr "منتج" msgid "Voucher" msgstr "كود الخصم" -#: pretix/base/exporters/orderlist.py:619 +#: pretix/base/exporters/orderlist.py:620 msgid "Pseudonymization ID" msgstr "معرف الاسم المستعار" -#: pretix/base/exporters/orderlist.py:620 pretix/control/forms/filter.py:709 +#: pretix/base/exporters/orderlist.py:621 pretix/control/forms/filter.py:709 #: pretix/control/templates/pretixcontrol/order/change.html:280 #, fuzzy #| msgid "Client secret" msgid "Ticket secret" msgstr "كلمة سر التذكرة" -#: pretix/base/exporters/orderlist.py:621 pretix/base/modelimport_orders.py:610 +#: pretix/base/exporters/orderlist.py:622 pretix/base/modelimport_orders.py:610 #: pretix/base/modelimport_vouchers.py:272 -#: pretix/plugins/checkinlists/exporters.py:526 +#: pretix/plugins/checkinlists/exporters.py:527 msgid "Seat ID" msgstr "رقم المقعد" -#: pretix/base/exporters/orderlist.py:622 -#: pretix/plugins/checkinlists/exporters.py:527 +#: pretix/base/exporters/orderlist.py:623 +#: pretix/plugins/checkinlists/exporters.py:528 msgid "Seat name" msgstr "اسم المقعد" -#: pretix/base/exporters/orderlist.py:623 -#: pretix/plugins/checkinlists/exporters.py:528 +#: pretix/base/exporters/orderlist.py:624 +#: pretix/plugins/checkinlists/exporters.py:529 msgid "Seat zone" msgstr "منطقة المقعد" -#: pretix/base/exporters/orderlist.py:624 -#: pretix/plugins/checkinlists/exporters.py:529 +#: pretix/base/exporters/orderlist.py:625 +#: pretix/plugins/checkinlists/exporters.py:530 msgid "Seat row" msgstr "صف المقعد" -#: pretix/base/exporters/orderlist.py:625 -#: pretix/plugins/checkinlists/exporters.py:530 +#: pretix/base/exporters/orderlist.py:626 +#: pretix/plugins/checkinlists/exporters.py:531 msgid "Seat number" msgstr "رقم المقعد" -#: pretix/base/exporters/orderlist.py:626 +#: pretix/base/exporters/orderlist.py:627 #: pretix/control/templates/pretixcontrol/order/change.html:224 #: pretix/plugins/checkinlists/exporters.py:429 -#: pretix/plugins/checkinlists/exporters.py:531 +#: pretix/plugins/checkinlists/exporters.py:532 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:108 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:110 msgid "Blocked" msgstr "محجوب" -#: pretix/base/exporters/orderlist.py:627 pretix/base/modelimport_orders.py:537 -#: pretix/base/models/orders.py:2525 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:117 -#: pretix/plugins/checkinlists/exporters.py:532 -#: pretix/plugins/checkinlists/exporters.py:705 +#: pretix/base/exporters/orderlist.py:628 pretix/base/modelimport_orders.py:537 +#: pretix/base/models/orders.py:2539 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:118 +#: pretix/plugins/checkinlists/exporters.py:533 +#: pretix/plugins/checkinlists/exporters.py:707 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:46 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:54 msgid "Valid from" msgstr "من تاريخ" -#: pretix/base/exporters/orderlist.py:628 pretix/base/modelimport_orders.py:545 -#: pretix/base/modelimport_vouchers.py:111 pretix/base/models/orders.py:2530 +#: pretix/base/exporters/orderlist.py:629 pretix/base/modelimport_orders.py:545 +#: pretix/base/modelimport_vouchers.py:111 pretix/base/models/orders.py:2544 #: pretix/base/models/vouchers.py:224 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:118 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:119 #: pretix/control/views/vouchers.py:119 -#: pretix/plugins/checkinlists/exporters.py:533 -#: pretix/plugins/checkinlists/exporters.py:706 +#: pretix/plugins/checkinlists/exporters.py:534 +#: pretix/plugins/checkinlists/exporters.py:708 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:48 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:60 msgid "Valid until" msgstr "حتى تاريخ" -#: pretix/base/exporters/orderlist.py:629 pretix/base/modelimport_orders.py:643 +#: pretix/base/exporters/orderlist.py:630 pretix/base/modelimport_orders.py:643 msgid "Order comment" msgstr "ملاحظات الطلب" -#: pretix/base/exporters/orderlist.py:631 +#: pretix/base/exporters/orderlist.py:632 #, fuzzy #| msgid "Add-On to position #%(posid)s" msgid "Add-on to position ID" msgstr "إضافة على #%(posid)s" -#: pretix/base/exporters/orderlist.py:661 +#: pretix/base/exporters/orderlist.py:662 #, fuzzy #| msgid "Invoice address state" msgctxt "address" msgid "Invoice address state" msgstr "منطقة عنوان الفاتورة" -#: pretix/base/exporters/orderlist.py:669 pretix/control/navigation.py:305 +#: pretix/base/exporters/orderlist.py:670 pretix/control/navigation.py:305 #: pretix/control/templates/pretixcontrol/checkin/lists.html:6 #: pretix/control/templates/pretixcontrol/checkin/lists.html:8 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:519 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:521 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:274 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:162 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:164 #: pretix/plugins/checkinlists/apps.py:44 msgid "Check-in lists" msgstr "تحقق في القوائم" -#: pretix/base/exporters/orderlist.py:671 +#: pretix/base/exporters/orderlist.py:672 #, fuzzy #| msgid "Resend order link" msgid "Position order link" msgstr "إعادة إرسال روابط الطلب" -#: pretix/base/exporters/orderlist.py:840 +#: pretix/base/exporters/orderlist.py:841 #, fuzzy #| msgid "Transaction Code" msgid "Order transaction data" msgstr "رمز معاملة الخادم" -#: pretix/base/exporters/orderlist.py:842 +#: pretix/base/exporters/orderlist.py:843 msgid "" "Download a spreadsheet of all substantial changes to orders, i.e. all " "changes to products, prices or tax rates. The information is only accurate " "for changes made with pretix versions released after October 2021." msgstr "" -#: pretix/base/exporters/orderlist.py:858 +#: pretix/base/exporters/orderlist.py:860 #, fuzzy #| msgid "Only include orders created on or after this date." msgid "Only include transactions created within this date range." msgstr "قم بتضمين الطلبات التي تم إنشاؤها في هذا التاريخ أو بعده فقط." -#: pretix/base/exporters/orderlist.py:893 pretix/base/models/event.py:695 +#: pretix/base/exporters/orderlist.py:895 pretix/base/models/event.py:695 #: pretix/base/models/items.py:468 pretix/base/models/items.py:2060 -#: pretix/base/models/orders.py:233 pretix/base/models/orders.py:3097 +#: pretix/base/models/orders.py:233 pretix/base/models/orders.py:3111 #: pretix/base/models/vouchers.py:184 pretix/base/models/waitinglist.py:55 #: pretix/base/notifications.py:187 pretix/control/forms/filter.py:1025 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:205 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:206 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:42 #: pretix/control/templates/pretixcontrol/search/orders.html:51 #: pretix/multidomain/models.py:65 @@ -2757,9 +2762,9 @@ msgstr "قم بتضمين الطلبات التي تم إنشاؤها في هذ msgid "Event" msgstr "فعالية" -#: pretix/base/exporters/orderlist.py:895 -#: pretix/base/exporters/orderlist.py:1234 -#: pretix/base/exporters/orderlist.py:1378 +#: pretix/base/exporters/orderlist.py:897 +#: pretix/base/exporters/orderlist.py:1238 +#: pretix/base/exporters/orderlist.py:1383 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:50 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:34 #: pretix/plugins/banktransfer/refund_export.py:46 @@ -2771,25 +2776,25 @@ msgstr "فعالية" msgid "Currency" msgstr "العملة" -#: pretix/base/exporters/orderlist.py:901 +#: pretix/base/exporters/orderlist.py:903 #, fuzzy #| msgid "Transaction Code" msgid "Transaction date" msgstr "كود المعاملة" -#: pretix/base/exporters/orderlist.py:902 +#: pretix/base/exporters/orderlist.py:904 #, fuzzy #| msgid "Transaction Code" msgid "Transaction time" msgstr "كود المعاملة" -#: pretix/base/exporters/orderlist.py:903 +#: pretix/base/exporters/orderlist.py:905 #, fuzzy #| msgid "Order data" msgid "Old data" msgstr "بيانات الطلب" -#: pretix/base/exporters/orderlist.py:906 pretix/base/models/items.py:1555 +#: pretix/base/exporters/orderlist.py:908 pretix/base/models/items.py:1555 #: pretix/control/templates/pretixcontrol/order/transactions.html:23 #: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:207 #: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:353 @@ -2803,26 +2808,26 @@ msgstr "بيانات الطلب" msgid "Quantity" msgstr "كمية" -#: pretix/base/exporters/orderlist.py:913 +#: pretix/base/exporters/orderlist.py:915 #, fuzzy #| msgid "Internal reference" msgid "Internal fee type" msgstr "المرجع الداخلي" -#: pretix/base/exporters/orderlist.py:915 +#: pretix/base/exporters/orderlist.py:917 #, fuzzy #| msgid "Date" msgctxt "subevent" msgid "Date ID" msgstr "التاريخ" -#: pretix/base/exporters/orderlist.py:920 +#: pretix/base/exporters/orderlist.py:922 #, fuzzy #| msgid "Tax rule" msgid "Tax rule ID" msgstr "قاعدة الضريبة" -#: pretix/base/exporters/orderlist.py:923 +#: pretix/base/exporters/orderlist.py:925 #: pretix/plugins/reports/accountingreport.py:320 #, fuzzy #| msgctxt "invoice" @@ -2830,65 +2835,65 @@ msgstr "قاعدة الضريبة" msgid "Gross total" msgstr "القيمة الإجمالية" -#: pretix/base/exporters/orderlist.py:924 +#: pretix/base/exporters/orderlist.py:926 #: pretix/plugins/reports/accountingreport.py:319 #, fuzzy #| msgid "Total" msgid "Tax total" msgstr "المجموع" -#: pretix/base/exporters/orderlist.py:934 +#: pretix/base/exporters/orderlist.py:936 msgid "" "This value is supplied for informational purposes, it is not part of the " "original transaction data and might have changed since the transaction." msgstr "" -#: pretix/base/exporters/orderlist.py:957 +#: pretix/base/exporters/orderlist.py:959 msgid "Converted from legacy version" msgstr "" -#: pretix/base/exporters/orderlist.py:1019 +#: pretix/base/exporters/orderlist.py:1021 #, fuzzy #| msgid "Order payments and refunds" msgid "Payments and refunds" msgstr "مدفوعات الطلب والمبالغ المستردة" -#: pretix/base/exporters/orderlist.py:1021 +#: pretix/base/exporters/orderlist.py:1023 msgid "Download a spreadsheet of all payments or refunds of every order." msgstr "" -#: pretix/base/exporters/orderlist.py:1030 +#: pretix/base/exporters/orderlist.py:1033 #, fuzzy #| msgid "Extend payment term" msgid "Date range (payment date)" msgstr "تمديد فترة السداد" -#: pretix/base/exporters/orderlist.py:1033 +#: pretix/base/exporters/orderlist.py:1036 msgid "" "Note that using this will exclude any non-confirmed payments or non-" "completed refunds." msgstr "" -#: pretix/base/exporters/orderlist.py:1037 +#: pretix/base/exporters/orderlist.py:1040 msgid "Date range (start of transaction)" msgstr "" -#: pretix/base/exporters/orderlist.py:1043 +#: pretix/base/exporters/orderlist.py:1046 msgid "Payment states" msgstr "‪حالات الدفع" -#: pretix/base/exporters/orderlist.py:1051 +#: pretix/base/exporters/orderlist.py:1054 msgid "Refund states" msgstr "حالات استعادة المبلغ" -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1235 -#: pretix/base/exporters/orderlist.py:1277 pretix/base/models/orders.py:331 -#: pretix/base/models/orders.py:1740 pretix/base/models/orders.py:2154 -#: pretix/base/models/orders.py:2313 pretix/base/models/orders.py:2485 -#: pretix/base/models/orders.py:2976 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1239 +#: pretix/base/exporters/orderlist.py:1282 pretix/base/models/orders.py:331 +#: pretix/base/models/orders.py:1740 pretix/base/models/orders.py:2168 +#: pretix/base/models/orders.py:2327 pretix/base/models/orders.py:2499 +#: pretix/base/models/orders.py:2990 #: pretix/control/templates/pretixcontrol/datasync/failed_jobs.html:23 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:119 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:120 #: pretix/control/templates/pretixcontrol/search/payments.html:78 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:15 #: pretix/plugins/checkinlists/exporters.py:375 @@ -2897,34 +2902,35 @@ msgstr "حالات استعادة المبلغ" msgid "Order" msgstr "الطلب" -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1277 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1282 #: pretix/control/templates/pretixcontrol/search/payments.html:75 #: pretix/plugins/paypal/templates/pretixplugins/paypal/control.html:5 #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/control_legacy.html:5 msgid "Payment ID" msgstr "معرف الدفع" -#: pretix/base/exporters/orderlist.py:1094 -#: pretix/base/exporters/orderlist.py:1375 +#: pretix/base/exporters/orderlist.py:1097 +#: pretix/base/exporters/orderlist.py:1380 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:292 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:30 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:59 msgid "Creation date" msgstr "تاريخ الإنشاء" -#: pretix/base/exporters/orderlist.py:1094 +#: pretix/base/exporters/orderlist.py:1097 #: pretix/control/templates/pretixcontrol/order/index.html:887 msgid "Completion date" msgstr "تاريخ الاكتمال" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 msgid "Status code" msgstr "رمز الحالة" -#: pretix/base/exporters/orderlist.py:1095 -#: pretix/base/exporters/orderlist.py:1233 -#: pretix/base/exporters/orderlist.py:1277 pretix/base/models/orders.py:1736 -#: pretix/base/models/orders.py:2150 pretix/control/forms/filter.py:1082 +#: pretix/base/exporters/orderlist.py:1098 +#: pretix/base/exporters/orderlist.py:1237 +#: pretix/base/exporters/orderlist.py:1282 pretix/base/models/orders.py:1736 +#: pretix/base/models/orders.py:2164 pretix/control/forms/filter.py:1082 #: pretix/control/forms/filter.py:1085 #: pretix/control/templates/pretixcontrol/order/index.html:796 #: pretix/control/templates/pretixcontrol/order/index.html:892 @@ -2938,7 +2944,7 @@ msgstr "رمز الحالة" msgid "Amount" msgstr "المبلغ" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:102 #: pretix/control/templates/pretixcontrol/boxoffice/payment.html:115 #: pretix/control/templates/pretixcontrol/order/index.html:794 @@ -2949,111 +2955,112 @@ msgstr "المبلغ" msgid "Payment method" msgstr "طريقة السداد" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 #, fuzzy #| msgid "Payment matching IDs" msgid "Matching ID" msgstr "معرفات مطابقة الدفع" -#: pretix/base/exporters/orderlist.py:1095 +#: pretix/base/exporters/orderlist.py:1098 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:38 #, fuzzy #| msgid "Payment settings" msgid "Payment details" msgstr "إعدادات الدفع" -#: pretix/base/exporters/orderlist.py:1145 +#: pretix/base/exporters/orderlist.py:1148 msgid "Quota availabilities" msgstr "توافر الحصة" -#: pretix/base/exporters/orderlist.py:1147 +#: pretix/base/exporters/orderlist.py:1150 msgid "" "Download a spreadsheet of all quotas including their current availability." msgstr "" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 #: pretix/control/templates/pretixcontrol/items/quotas.html:45 msgid "Quota name" msgstr "اسم الحصة" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 #: pretix/control/templates/pretixcontrol/items/quota.html:56 msgid "Total quota" msgstr "الحصة الإجمالية" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 #: pretix/control/templates/pretixcontrol/event/cancel.html:20 #: pretix/control/views/item.py:970 msgid "Paid orders" msgstr "الطلبات المدفوعة" -#: pretix/base/exporters/orderlist.py:1152 pretix/control/views/item.py:975 +#: pretix/base/exporters/orderlist.py:1155 pretix/control/views/item.py:975 msgid "Pending orders" msgstr "الطلبات المعلقة" -#: pretix/base/exporters/orderlist.py:1152 +#: pretix/base/exporters/orderlist.py:1155 msgid "Blocking vouchers" msgstr "حظر كود الخصم" -#: pretix/base/exporters/orderlist.py:1153 pretix/control/views/item.py:994 +#: pretix/base/exporters/orderlist.py:1156 pretix/control/views/item.py:994 msgid "Current user's carts" msgstr "عربات المستخدم الحالية" -#: pretix/base/exporters/orderlist.py:1153 +#: pretix/base/exporters/orderlist.py:1156 msgid "Exited orders" msgstr "طلبات خارجة" -#: pretix/base/exporters/orderlist.py:1153 +#: pretix/base/exporters/orderlist.py:1156 msgid "Current availability" msgstr "المتوفر حاليا" -#: pretix/base/exporters/orderlist.py:1170 -#: pretix/base/exporters/orderlist.py:1177 +#: pretix/base/exporters/orderlist.py:1173 +#: pretix/base/exporters/orderlist.py:1180 #: pretix/control/templates/pretixcontrol/items/quota.html:58 #: pretix/control/views/item.py:1001 msgid "Infinite" msgstr "غير محدود" -#: pretix/base/exporters/orderlist.py:1199 +#: pretix/base/exporters/orderlist.py:1202 #, fuzzy #| msgid "Gift card redemptions" msgid "Gift card transactions" msgstr "استرداد بطاقة هدية" -#: pretix/base/exporters/orderlist.py:1201 -#: pretix/base/exporters/orderlist.py:1306 +#: pretix/base/exporters/orderlist.py:1204 +#: pretix/base/exporters/orderlist.py:1311 #, fuzzy #| msgid "Gift cards" msgctxt "export_category" msgid "Gift cards" msgstr "بطاقات الهدايا" -#: pretix/base/exporters/orderlist.py:1202 +#: pretix/base/exporters/orderlist.py:1205 msgid "Download a spreadsheet of all gift card transactions." msgstr "" -#: pretix/base/exporters/orderlist.py:1230 -#: pretix/base/exporters/orderlist.py:1277 -#: pretix/base/exporters/orderlist.py:1373 pretix/base/models/giftcards.py:89 -#: pretix/base/payment.py:1454 +#: pretix/base/exporters/orderlist.py:1234 +#: pretix/base/exporters/orderlist.py:1282 +#: pretix/base/exporters/orderlist.py:1378 pretix/base/models/giftcards.py:96 +#: pretix/base/payment.py:1485 #: pretix/control/templates/pretixcontrol/giftcards/payment.html:4 #: pretix/control/templates/pretixcontrol/order/index.html:558 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:291 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:28 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:56 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:152 msgid "Gift card code" msgstr "رمز بطاقة الهدية" -#: pretix/base/exporters/orderlist.py:1231 -#: pretix/base/exporters/orderlist.py:1320 -#: pretix/base/exporters/orderlist.py:1323 +#: pretix/base/exporters/orderlist.py:1235 +#: pretix/base/exporters/orderlist.py:1325 +#: pretix/base/exporters/orderlist.py:1328 #: pretix/base/models/memberships.py:120 pretix/control/forms/filter.py:250 #: pretix/control/forms/filter.py:1446 pretix/control/forms/filter.py:1449 #: pretix/control/templates/pretixcontrol/event/live.html:75 msgid "Test mode" msgstr "وضع الاختبار" -#: pretix/base/exporters/orderlist.py:1236 pretix/base/models/organizer.py:102 +#: pretix/base/exporters/orderlist.py:1240 pretix/base/models/organizer.py:102 #: pretix/control/forms/event.py:110 pretix/control/forms/filter.py:919 #: pretix/control/forms/filter.py:1037 pretix/control/forms/filter.py:1711 #: pretix/control/templates/pretixcontrol/email_setup.html:6 @@ -3068,15 +3075,16 @@ msgstr "وضع الاختبار" msgid "Organizer" msgstr "منظم" -#: pretix/base/exporters/orderlist.py:1243 pretix/base/invoicing/pdf.py:580 +#: pretix/base/exporters/orderlist.py:1247 pretix/base/invoicing/pdf.py:587 #: pretix/control/templates/pretixcontrol/base.html:281 #: pretix/control/templates/pretixcontrol/checkin/index.html:145 #: pretix/control/templates/pretixcontrol/order/index.html:25 #: pretix/control/templates/pretixcontrol/orders/bulk_action.html:38 #: pretix/control/templates/pretixcontrol/orders/index.html:189 #: pretix/control/templates/pretixcontrol/orders/refunds.html:86 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:133 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:222 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:134 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:223 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:306 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:10 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:58 #: pretix/control/templates/pretixcontrol/organizers/customer_membership_delete.html:10 @@ -3089,6 +3097,7 @@ msgstr "منظم" #: pretix/presale/forms/checkout.py:259 #: pretix/presale/templates/pretixpresale/event/order.html:69 #: pretix/presale/templates/pretixpresale/event/position.html:14 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:59 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:20 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:84 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:71 @@ -3096,41 +3105,45 @@ msgstr "منظم" msgid "TEST MODE" msgstr "وضع الاختبار" -#: pretix/base/exporters/orderlist.py:1258 +#: pretix/base/exporters/orderlist.py:1262 msgid "Gift card redemptions" msgstr "استرداد بطاقة هدية" -#: pretix/base/exporters/orderlist.py:1260 +#: pretix/base/exporters/orderlist.py:1264 msgid "" "Download a spreadsheet of all payments or refunds that involve gift cards." msgstr "" -#: pretix/base/exporters/orderlist.py:1277 +#: pretix/base/exporters/orderlist.py:1282 #: pretix/control/templates/pretixcontrol/giftcards/payment.html:16 msgid "Issuer" msgstr "جهة الاصدار" -#: pretix/base/exporters/orderlist.py:1304 pretix/control/navigation.py:550 +#: pretix/base/exporters/orderlist.py:1309 pretix/control/navigation.py:550 #: pretix/control/navigation.py:568 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:285 #: pretix/control/templates/pretixcontrol/organizers/edit.html:156 #: pretix/plugins/reports/accountingreport.py:899 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:7 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:13 +#: pretix/presale/views/customer.py:372 msgid "Gift cards" msgstr "بطاقات الهدايا" -#: pretix/base/exporters/orderlist.py:1307 +#: pretix/base/exporters/orderlist.py:1312 msgid "Download a spreadsheet of all gift cards including their current value." msgstr "" -#: pretix/base/exporters/orderlist.py:1314 +#: pretix/base/exporters/orderlist.py:1319 msgid "Show value at" msgstr "إظهار القيمة عند" -#: pretix/base/exporters/orderlist.py:1317 +#: pretix/base/exporters/orderlist.py:1322 msgid "Defaults to the time of report." msgstr "" -#: pretix/base/exporters/orderlist.py:1322 -#: pretix/base/exporters/orderlist.py:1332 pretix/control/forms/filter.py:550 +#: pretix/base/exporters/orderlist.py:1327 +#: pretix/base/exporters/orderlist.py:1337 pretix/control/forms/filter.py:550 #: pretix/control/forms/filter.py:1231 pretix/control/forms/filter.py:1448 #: pretix/control/forms/filter.py:1457 pretix/control/forms/filter.py:1527 #: pretix/control/forms/filter.py:1537 pretix/control/forms/filter.py:1599 @@ -3153,66 +3166,70 @@ msgstr "" msgid "All" msgstr "الكل" -#: pretix/base/exporters/orderlist.py:1324 pretix/control/forms/filter.py:1450 +#: pretix/base/exporters/orderlist.py:1329 pretix/control/forms/filter.py:1450 msgid "Live" msgstr "مباشر" -#: pretix/base/exporters/orderlist.py:1333 pretix/control/forms/filter.py:1458 +#: pretix/base/exporters/orderlist.py:1338 pretix/control/forms/filter.py:1458 #: pretix/control/templates/pretixcontrol/pdf/index.html:325 msgid "Empty" msgstr "فارغ" -#: pretix/base/exporters/orderlist.py:1334 pretix/control/forms/filter.py:1459 +#: pretix/base/exporters/orderlist.py:1339 pretix/control/forms/filter.py:1459 msgid "Valid and with value" msgstr "صالحة وذات قيمة" -#: pretix/base/exporters/orderlist.py:1335 pretix/control/forms/filter.py:1460 +#: pretix/base/exporters/orderlist.py:1340 pretix/control/forms/filter.py:1460 msgid "Expired and with value" msgstr "منتهية الصلاحية وذات قيمة" -#: pretix/base/exporters/orderlist.py:1336 pretix/control/forms/filter.py:233 +#: pretix/base/exporters/orderlist.py:1341 pretix/control/forms/filter.py:233 #: pretix/control/forms/filter.py:1461 pretix/control/forms/filter.py:2121 #: pretix/control/templates/pretixcontrol/items/question.html:31 #: pretix/control/templates/pretixcontrol/orders/fragment_order_status.html:37 #: pretix/control/templates/pretixcontrol/orders/overview.html:78 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:309 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:84 #: pretix/plugins/reports/exporters.py:389 #: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:26 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:42 msgid "Expired" msgstr "منتهية الصلاحية" -#: pretix/base/exporters/orderlist.py:1374 pretix/base/models/giftcards.py:98 +#: pretix/base/exporters/orderlist.py:1379 pretix/base/models/giftcards.py:105 msgid "Test mode card" msgstr "بطاقة وضع الاختبار" -#: pretix/base/exporters/orderlist.py:1376 -#: pretix/base/modelimport_orders.py:553 pretix/base/models/giftcards.py:102 +#: pretix/base/exporters/orderlist.py:1381 +#: pretix/base/modelimport_orders.py:553 pretix/base/models/giftcards.py:109 #: pretix/control/templates/pretixcontrol/order/index.html:203 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:293 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:62 msgid "Expiry date" msgstr "تاريخ الانتهاء" -#: pretix/base/exporters/orderlist.py:1377 pretix/control/forms/orders.py:902 +#: pretix/base/exporters/orderlist.py:1382 pretix/control/forms/orders.py:902 msgid "Special terms and conditions" msgstr "شروط وأحكام خاصة" -#: pretix/base/exporters/orderlist.py:1379 +#: pretix/base/exporters/orderlist.py:1384 #: pretix/control/templates/pretixcontrol/order/change.html:98 #: pretix/control/templates/pretixcontrol/order/change.html:410 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:295 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:32 #: pretix/control/templates/pretixcontrol/organizers/giftcards.html:68 msgid "Current value" msgstr "القيمة الحالية" -#: pretix/base/exporters/orderlist.py:1380 +#: pretix/base/exporters/orderlist.py:1385 msgid "Created in order" msgstr "تم الإنشاء بالترتيب" -#: pretix/base/exporters/orderlist.py:1381 +#: pretix/base/exporters/orderlist.py:1386 msgid "Last invoice number of order" msgstr "رقم الفاتورة الأخير للطلب" -#: pretix/base/exporters/orderlist.py:1382 +#: pretix/base/exporters/orderlist.py:1387 msgid "Last invoice date of order" msgstr "تاريخ آخر فاتورة للطلب" @@ -3237,29 +3254,30 @@ msgid "" "Download a spread sheet with the data of all reusable medias on your account." msgstr "" -#: pretix/base/exporters/reusablemedia.py:46 pretix/base/models/media.py:67 +#: pretix/base/exporters/reusablemedia.py:47 pretix/base/models/media.py:67 #, fuzzy #| msgid "Fee type" msgctxt "reusable_medium" msgid "Media type" msgstr "نوع الرسوم" -#: pretix/base/exporters/reusablemedia.py:47 pretix/base/models/media.py:73 +#: pretix/base/exporters/reusablemedia.py:48 pretix/base/models/media.py:73 #, fuzzy #| msgid "Internal identifier" msgctxt "reusable_medium" msgid "Identifier" msgstr "معرف داخلي" -#: pretix/base/exporters/reusablemedia.py:49 pretix/base/models/media.py:81 -#: pretix/base/models/orders.py:265 pretix/base/models/orders.py:3109 +#: pretix/base/exporters/reusablemedia.py:50 pretix/base/models/media.py:81 +#: pretix/base/models/orders.py:265 pretix/base/models/orders.py:3123 #: pretix/control/forms/orders.py:78 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:138 msgid "Expiration date" msgstr "تاريخ إنتهاء الصلاحية" -#: pretix/base/exporters/reusablemedia.py:50 pretix/base/models/media.py:90 +#: pretix/base/exporters/reusablemedia.py:51 pretix/base/models/media.py:90 #: pretix/control/templates/pretixcontrol/order/index.html:216 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:58 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:136 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:8 #, fuzzy @@ -3267,13 +3285,13 @@ msgstr "تاريخ إنتهاء الصلاحية" msgid "Customer account" msgstr "إجراءات العملاء" -#: pretix/base/exporters/reusablemedia.py:51 pretix/base/models/media.py:97 +#: pretix/base/exporters/reusablemedia.py:52 pretix/base/models/media.py:97 #, fuzzy #| msgid "Info text" msgid "Linked ticket" msgstr "معلومات النص" -#: pretix/base/exporters/reusablemedia.py:52 pretix/base/models/media.py:104 +#: pretix/base/exporters/reusablemedia.py:53 pretix/base/models/media.py:104 #, fuzzy #| msgid "Issued gift cards" msgid "Linked gift card" @@ -3290,49 +3308,49 @@ msgstr "قائمة الانتظار" msgid "Download a spread sheet with all your waiting list data." msgstr "" -#: pretix/base/exporters/waitinglist.py:49 +#: pretix/base/exporters/waitinglist.py:50 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:102 msgid "All entries" msgstr "جميع المدخلات" -#: pretix/base/exporters/waitinglist.py:54 +#: pretix/base/exporters/waitinglist.py:55 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:105 msgid "Waiting for a voucher" msgstr "في انتظار كود الخصم" -#: pretix/base/exporters/waitinglist.py:59 +#: pretix/base/exporters/waitinglist.py:60 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:107 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:227 #: pretix/control/views/waitinglist.py:333 msgid "Voucher assigned" msgstr "تم تعيين كود الخصم" -#: pretix/base/exporters/waitinglist.py:64 +#: pretix/base/exporters/waitinglist.py:65 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:110 msgid "Waiting for redemption" msgstr "في انتظار الاسترداد" -#: pretix/base/exporters/waitinglist.py:72 +#: pretix/base/exporters/waitinglist.py:73 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:223 #: pretix/control/views/waitinglist.py:329 msgid "Voucher redeemed" msgstr "تم استخدام كود الخصم" -#: pretix/base/exporters/waitinglist.py:80 +#: pretix/base/exporters/waitinglist.py:81 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:116 #: pretix/control/templates/pretixcontrol/waitinglist/index.html:225 #: pretix/control/views/waitinglist.py:331 msgid "Voucher expired" msgstr "كود الخصم منتهية الصلاحية" -#: pretix/base/exporters/waitinglist.py:117 +#: pretix/base/exporters/waitinglist.py:118 #: pretix/base/modelimport_orders.py:111 pretix/base/modelimport_vouchers.py:60 #: pretix/control/templates/pretixcontrol/checkin/index.html:100 msgctxt "subevents" msgid "Date" msgstr "التاريخ" -#: pretix/base/exporters/waitinglist.py:121 +#: pretix/base/exporters/waitinglist.py:122 #: pretix/control/views/waitinglist.py:315 msgid "Priority" msgstr "الأولوية" @@ -3385,45 +3403,45 @@ msgstr "الرجاء إدخال نفس كلمة المرور مرتين" msgid "Repeat password" msgstr "أعد كلمة السر" -#: pretix/base/forms/questions.py:135 pretix/base/forms/questions.py:262 +#: pretix/base/forms/questions.py:137 pretix/base/forms/questions.py:264 #, fuzzy #| msgid "No country specified." msgctxt "name_salutation" msgid "not specified" msgstr "تحديد أي بلد." -#: pretix/base/forms/questions.py:225 +#: pretix/base/forms/questions.py:227 #, fuzzy #| msgid "Please enter a shorter name." msgid "Please do not use special characters in names." msgstr "الرجاء إدخال اسم أقصر." -#: pretix/base/forms/questions.py:287 +#: pretix/base/forms/questions.py:289 msgid "Please enter a shorter name." msgstr "الرجاء إدخال اسم أقصر." -#: pretix/base/forms/questions.py:312 +#: pretix/base/forms/questions.py:314 msgctxt "phonenumber" msgid "International area code" msgstr "مفتاح الاتصال الدولي" -#: pretix/base/forms/questions.py:338 +#: pretix/base/forms/questions.py:340 msgctxt "phonenumber" msgid "Phone number (without international area code)" msgstr "رقم الهاتف (بدون مفتاح الاتصال الدولي)" -#: pretix/base/forms/questions.py:499 +#: pretix/base/forms/questions.py:501 msgid "" "You uploaded an image in landscape orientation. Please upload an image in " "portrait orientation." msgstr "" "قمت بتحميل صورة في الاتجاه الأفقي. الرجاء تحميل صورة في الاتجاه العمودي." -#: pretix/base/forms/questions.py:502 +#: pretix/base/forms/questions.py:504 msgid "Please upload an image where the width is 3/4 of the height." msgstr "يرجى تحميل صورة بحيث يكون العرض 3/4 الارتفاع." -#: pretix/base/forms/questions.py:505 +#: pretix/base/forms/questions.py:507 msgid "" "The file you uploaded has a very large number of pixels, please upload an " "image no larger than 10000 x 10000 pixels." @@ -3431,64 +3449,64 @@ msgstr "" "يحتوي الملف الذي قمت بتحميله على عدد كبير جدا من وحدات البكسل ، يرجى تحميل " "صورة لا يزيد حجمها عن 10000 × 10000 بكسل." -#: pretix/base/forms/questions.py:508 pretix/helpers/images.py:75 +#: pretix/base/forms/questions.py:510 pretix/helpers/images.py:75 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" "قم بتحميل صورة صالحة. الملف الذي قمت بتحميله ليس صورة أو هو صورة تالفة." -#: pretix/base/forms/questions.py:651 pretix/base/forms/questions.py:660 +#: pretix/base/forms/questions.py:653 pretix/base/forms/questions.py:662 msgid "" "If you keep this empty, the ticket will be valid starting at the time of " "purchase." msgstr "" -#: pretix/base/forms/questions.py:707 pretix/base/forms/questions.py:1100 +#: pretix/base/forms/questions.py:709 pretix/base/forms/questions.py:1102 msgid "Street and Number" msgstr "الشارع والرقم" -#: pretix/base/forms/questions.py:1162 +#: pretix/base/forms/questions.py:1166 msgid "" "Optional, but depending on the country you reside in we might need to charge " "you additional taxes if you do not enter it." msgstr "" -#: pretix/base/forms/questions.py:1164 pretix/base/forms/questions.py:1170 +#: pretix/base/forms/questions.py:1168 pretix/base/forms/questions.py:1174 msgid "If you are registered in Switzerland, you can enter your UID instead." msgstr "" -#: pretix/base/forms/questions.py:1168 +#: pretix/base/forms/questions.py:1172 msgid "" "Optional, but it might be required for you to claim tax benefits on your " "invoice depending on your and the seller’s country of residence." msgstr "" -#: pretix/base/forms/questions.py:1177 +#: pretix/base/forms/questions.py:1181 #, fuzzy #| msgid "Cancellation requested" msgid "No invoice requested" msgstr "طلبات الإلغاء" -#: pretix/base/forms/questions.py:1179 +#: pretix/base/forms/questions.py:1183 msgid "Invoice transmission method" msgstr "" -#: pretix/base/forms/questions.py:1325 +#: pretix/base/forms/questions.py:1329 msgid "You need to provide a company name." msgstr "تحتاج إلى تقديم اسم شركة." -#: pretix/base/forms/questions.py:1327 +#: pretix/base/forms/questions.py:1331 msgid "You need to provide your name." msgstr "تحتاج إلى تقديم اسمك." -#: pretix/base/forms/questions.py:1353 +#: pretix/base/forms/questions.py:1357 msgid "" "If you enter an invoice address, you also need to select an invoice " "transmission method." msgstr "" -#: pretix/base/forms/questions.py:1381 +#: pretix/base/forms/questions.py:1385 #, fuzzy #| msgid "The selected product is not active or has no price set." msgid "" @@ -3496,13 +3514,13 @@ msgid "" "type of address." msgstr "المنتج المحدد غير نشط أو ليس له سعر محدد." -#: pretix/base/forms/questions.py:1390 +#: pretix/base/forms/questions.py:1394 msgid "" "The selected type of invoice transmission requires a field that is currently " "not available, please reach out to the organizer." msgstr "" -#: pretix/base/forms/questions.py:1394 +#: pretix/base/forms/questions.py:1398 msgid "This field is required for the selected type of invoice transmission." msgstr "" @@ -3604,7 +3622,7 @@ msgid "Available placeholders: {list}" msgstr "النائبة المتاحة: {list}" #: pretix/base/forms/widgets.py:214 pretix/base/models/items.py:1656 -#: pretix/plugins/checkinlists/exporters.py:754 +#: pretix/plugins/checkinlists/exporters.py:757 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_create.html:40 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_update.html:54 msgid "Time" @@ -3680,68 +3698,68 @@ msgid "" "April 30, 2018, issued by the Director of the Revenue Agency." msgstr "" -#: pretix/base/invoicing/pdf.py:141 +#: pretix/base/invoicing/pdf.py:142 #, python-format msgctxt "invoice" msgid "Page %d of %d" msgstr "صفحة %d من %d" -#: pretix/base/invoicing/pdf.py:382 +#: pretix/base/invoicing/pdf.py:383 msgctxt "invoice" msgid "Classic renderer (pretix 1.0)" msgstr "المقدم الكلاسيكي (pretix 1.0)" -#: pretix/base/invoicing/pdf.py:426 +#: pretix/base/invoicing/pdf.py:427 msgctxt "invoice" msgid "Invoice from" msgstr "فاتورة من طرف" -#: pretix/base/invoicing/pdf.py:432 +#: pretix/base/invoicing/pdf.py:433 msgctxt "invoice" msgid "Invoice to" msgstr "فاتورة إلى" -#: pretix/base/invoicing/pdf.py:469 pretix/base/invoicing/pdf.py:1062 +#: pretix/base/invoicing/pdf.py:470 pretix/base/invoicing/pdf.py:1143 msgctxt "invoice" msgid "Order code" msgstr "رمز الطلب" -#: pretix/base/invoicing/pdf.py:478 pretix/base/invoicing/pdf.py:1075 +#: pretix/base/invoicing/pdf.py:479 pretix/base/invoicing/pdf.py:1156 msgctxt "invoice" msgid "Cancellation number" msgstr "رقم الإلغاء" -#: pretix/base/invoicing/pdf.py:484 pretix/base/invoicing/pdf.py:1077 +#: pretix/base/invoicing/pdf.py:485 pretix/base/invoicing/pdf.py:1158 msgctxt "invoice" msgid "Original invoice" msgstr "فاتورة أصلية" -#: pretix/base/invoicing/pdf.py:489 pretix/base/invoicing/pdf.py:1082 +#: pretix/base/invoicing/pdf.py:490 pretix/base/invoicing/pdf.py:1163 msgctxt "invoice" msgid "Invoice number" msgstr "رقم الفاتورة" -#: pretix/base/invoicing/pdf.py:497 pretix/base/invoicing/pdf.py:1097 +#: pretix/base/invoicing/pdf.py:498 pretix/base/invoicing/pdf.py:1178 msgctxt "invoice" msgid "Cancellation date" msgstr "تاريخ الإلغاء" -#: pretix/base/invoicing/pdf.py:503 +#: pretix/base/invoicing/pdf.py:504 msgctxt "invoice" msgid "Original invoice date" msgstr "تاريخ الفاتورة الأصلي" -#: pretix/base/invoicing/pdf.py:510 pretix/base/invoicing/pdf.py:1099 +#: pretix/base/invoicing/pdf.py:511 pretix/base/invoicing/pdf.py:1180 msgctxt "invoice" msgid "Invoice date" msgstr "تاريخ الفاتورة" -#: pretix/base/invoicing/pdf.py:526 +#: pretix/base/invoicing/pdf.py:527 msgctxt "invoice" msgid "Event" msgstr "الفعالية" -#: pretix/base/invoicing/pdf.py:552 +#: pretix/base/invoicing/pdf.py:561 #, python-brace-format msgctxt "invoice" msgid "" @@ -3751,39 +3769,39 @@ msgstr "" "من {from_date}\n" "حتى {to_date}" -#: pretix/base/invoicing/pdf.py:601 pretix/base/services/mail.py:509 +#: pretix/base/invoicing/pdf.py:608 pretix/base/services/mail.py:511 #, python-brace-format msgctxt "invoice" msgid "Invoice {num}" msgstr "فاتورة {num}" -#: pretix/base/invoicing/pdf.py:653 +#: pretix/base/invoicing/pdf.py:660 #, python-brace-format msgctxt "invoice" msgid "Customer reference: {reference}" msgstr "رقم مرجع العميل: {reference}" -#: pretix/base/invoicing/pdf.py:661 +#: pretix/base/invoicing/pdf.py:668 msgctxt "invoice" msgid "Customer VAT ID" msgstr "معرف ضريبة القيمة المضافة للعميل" -#: pretix/base/invoicing/pdf.py:668 +#: pretix/base/invoicing/pdf.py:675 msgctxt "invoice" msgid "Beneficiary" msgstr "المستفيد" -#: pretix/base/invoicing/pdf.py:694 +#: pretix/base/invoicing/pdf.py:708 msgctxt "invoice" msgid "Tax Invoice" msgstr "فاتورة الضريبة" -#: pretix/base/invoicing/pdf.py:695 +#: pretix/base/invoicing/pdf.py:709 msgctxt "invoice" msgid "Invoice" msgstr "فاتورة" -#: pretix/base/invoicing/pdf.py:696 +#: pretix/base/invoicing/pdf.py:710 #: pretix/control/templates/pretixcontrol/order/index.html:272 #: pretix/control/templates/pretixcontrol/order/mail_history.html:70 #: pretix/presale/templates/pretixpresale/event/order.html:244 @@ -3791,99 +3809,106 @@ msgctxt "invoice" msgid "Cancellation" msgstr "إلغاء" -#: pretix/base/invoicing/pdf.py:718 pretix/base/invoicing/pdf.py:726 +#: pretix/base/invoicing/pdf.py:732 pretix/base/invoicing/pdf.py:740 msgctxt "invoice" msgid "Description" msgstr "وصف" -#: pretix/base/invoicing/pdf.py:719 pretix/base/invoicing/pdf.py:727 +#: pretix/base/invoicing/pdf.py:733 pretix/base/invoicing/pdf.py:741 msgctxt "invoice" msgid "Qty" msgstr "الكمية" -#: pretix/base/invoicing/pdf.py:720 pretix/base/invoicing/pdf.py:879 +#: pretix/base/invoicing/pdf.py:734 pretix/base/invoicing/pdf.py:960 msgctxt "invoice" msgid "Tax rate" msgstr "معدل الضريبة" -#: pretix/base/invoicing/pdf.py:721 +#: pretix/base/invoicing/pdf.py:735 msgctxt "invoice" msgid "Net" msgstr "الصافي" -#: pretix/base/invoicing/pdf.py:722 +#: pretix/base/invoicing/pdf.py:736 msgctxt "invoice" msgid "Gross" msgstr "الإجمالي" -#: pretix/base/invoicing/pdf.py:728 +#: pretix/base/invoicing/pdf.py:742 msgctxt "invoice" msgid "Amount" msgstr "المبلغ" -#: pretix/base/invoicing/pdf.py:744 +#: pretix/base/invoicing/pdf.py:818 #, python-brace-format msgctxt "invoice" msgid "Single price: {net_price} net / {gross_price} gross" msgstr "" -#: pretix/base/invoicing/pdf.py:767 +#: pretix/base/invoicing/pdf.py:842 #, fuzzy, python-brace-format #| msgid "Original price" msgctxt "invoice" msgid "Single price: {price}" msgstr "السعر الأصلي" -#: pretix/base/invoicing/pdf.py:788 pretix/base/invoicing/pdf.py:794 +#: pretix/base/invoicing/pdf.py:863 pretix/base/invoicing/pdf.py:869 msgctxt "invoice" msgid "Invoice total" msgstr "إجمالي الفاتورة" -#: pretix/base/invoicing/pdf.py:804 +#: pretix/base/invoicing/pdf.py:879 msgctxt "invoice" msgid "Received payments" msgstr "المدفوعات المستلمة" -#: pretix/base/invoicing/pdf.py:809 +#: pretix/base/invoicing/pdf.py:884 msgctxt "invoice" msgid "Outstanding payments" msgstr "المدفوعات المتأخرة" -#: pretix/base/invoicing/pdf.py:826 +#: pretix/base/invoicing/pdf.py:901 #, fuzzy #| msgid "Issued gift cards" msgctxt "invoice" msgid "Paid by gift card" msgstr "بطاقات هدية صدر" -#: pretix/base/invoicing/pdf.py:831 +#: pretix/base/invoicing/pdf.py:906 #, fuzzy #| msgid "Pending amount" msgctxt "invoice" msgid "Remaining amount" msgstr "مبالغ متأخرة" -#: pretix/base/invoicing/pdf.py:880 +#: pretix/base/invoicing/pdf.py:930 +#, fuzzy, python-brace-format +#| msgid "Event date range" +msgctxt "invoice" +msgid "Invoice period: {daterange}" +msgstr "نطاق تاريخ الفعالية" + +#: pretix/base/invoicing/pdf.py:961 msgctxt "invoice" msgid "Net value" msgstr "صافي القيمة" -#: pretix/base/invoicing/pdf.py:881 +#: pretix/base/invoicing/pdf.py:962 msgctxt "invoice" msgid "Gross value" msgstr "القيمة الإجمالية" -#: pretix/base/invoicing/pdf.py:882 +#: pretix/base/invoicing/pdf.py:963 msgctxt "invoice" msgid "Tax" msgstr "الضريبة" -#: pretix/base/invoicing/pdf.py:912 +#: pretix/base/invoicing/pdf.py:993 msgctxt "invoice" msgid "Included taxes" msgstr "الضرائب المدرجة" -#: pretix/base/invoicing/pdf.py:940 +#: pretix/base/invoicing/pdf.py:1021 #, fuzzy, python-brace-format #| msgctxt "invoice" #| msgid "" @@ -3897,7 +3922,7 @@ msgstr "" "باستخدام معدل التحويل 1: {rate} كما نشره البنك المركزي الأوروبي بتاريخ " "{date} ، وهذا يعادل:" -#: pretix/base/invoicing/pdf.py:955 +#: pretix/base/invoicing/pdf.py:1036 #, fuzzy, python-brace-format #| msgctxt "invoice" #| msgid "" @@ -3911,22 +3936,22 @@ msgstr "" "باستخدام معدل التحويل 1: {rate} كما نشره البنك المركزي الأوروبي بتاريخ " "{date} ، إجمالي الفاتورة يعادل {total}." -#: pretix/base/invoicing/pdf.py:969 +#: pretix/base/invoicing/pdf.py:1050 msgid "Default invoice renderer (European-style letter)" msgstr "" -#: pretix/base/invoicing/pdf.py:1058 +#: pretix/base/invoicing/pdf.py:1139 #, fuzzy #| msgid "Please enter a valid state." msgctxt "invoice" msgid "(Please quote at all times.)" msgstr "الرجاء اختيار ولاية صحيحة." -#: pretix/base/invoicing/pdf.py:1105 +#: pretix/base/invoicing/pdf.py:1186 msgid "Simplified invoice renderer" msgstr "" -#: pretix/base/invoicing/pdf.py:1124 +#: pretix/base/invoicing/pdf.py:1205 #, fuzzy, python-brace-format #| msgid "Event date range" msgctxt "invoice" @@ -4070,8 +4095,8 @@ msgid "Could not parse {value} as a date and time." msgstr "" #: pretix/base/modelimport.py:239 pretix/control/views/orders.py:1173 -#: pretix/control/views/orders.py:1202 pretix/control/views/orders.py:1246 -#: pretix/control/views/orders.py:1281 pretix/control/views/orders.py:1304 +#: pretix/control/views/orders.py:1202 pretix/control/views/orders.py:1247 +#: pretix/control/views/orders.py:1282 pretix/control/views/orders.py:1305 msgid "You entered an invalid number." msgstr "لقد أدخلت رقما غير صالح." @@ -4250,8 +4275,8 @@ msgstr "لم يتم العثور على مقعد مطابق." #: pretix/base/modelimport_orders.py:631 #: pretix/base/modelimport_vouchers.py:296 pretix/base/services/cart.py:213 -#: pretix/base/services/modelimport.py:175 -#: pretix/base/services/modelimport.py:287 +#: pretix/base/services/modelimport.py:178 +#: pretix/base/services/modelimport.py:299 msgid "" "The seat you selected has already been taken. Please select a different seat." msgstr "المقعد الذي اخترته قد تم شغله مسبقا. الرجاء اختيار مقعد مختلف." @@ -4452,7 +4477,7 @@ msgid "All products (including newly created ones)" msgstr "جميع المنتجات (بما في ذلك تلك التي تم إنشاؤها حديثا)" #: pretix/base/models/checkin.py:56 pretix/plugins/badges/exporters.py:436 -#: pretix/plugins/checkinlists/exporters.py:851 +#: pretix/plugins/checkinlists/exporters.py:854 msgid "Limit to products" msgstr "مقتصر على المنتجات" @@ -4617,23 +4642,23 @@ msgstr "كود الخصم هذا غير صالح لهذا المقعد." msgid "Check-in annulled" msgstr "تحقق ذات المركز" -#: pretix/base/models/customers.py:55 +#: pretix/base/models/customers.py:62 #, fuzzy #| msgid "Product name" msgid "Provider name" msgstr "اسم المنتج" -#: pretix/base/models/customers.py:60 +#: pretix/base/models/customers.py:67 msgid "Login button label" msgstr "" -#: pretix/base/models/customers.py:64 +#: pretix/base/models/customers.py:71 #, fuzzy #| msgid "Refund method" msgid "Single-sign-on method" msgstr "طريقة الاسترداد" -#: pretix/base/models/customers.py:85 pretix/base/models/devices.py:71 +#: pretix/base/models/customers.py:92 pretix/base/models/devices.py:71 #: pretix/base/models/items.py:1676 pretix/base/models/items.py:1952 msgid "" "You can enter any value here to make it easier to match the data with other " @@ -4642,15 +4667,15 @@ msgstr "" "يمكنك إدخال أي قيمة هنا لتسهيل مطابقة البيانات مع المصادر الأخرى. إذا لم تقم " "بإدخال واحد ، فسننشئ واحدا تلقائيا." -#: pretix/base/models/customers.py:90 +#: pretix/base/models/customers.py:97 msgid "" "The identifier may only contain letters, numbers, dots, dashes, and " "underscores. It must start and end with a letter or number." msgstr "" -#: pretix/base/models/customers.py:195 pretix/control/forms/filter.py:1529 +#: pretix/base/models/customers.py:202 pretix/control/forms/filter.py:1529 #: pretix/control/forms/filter.py:1601 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:42 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:43 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:56 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:135 #: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:35 @@ -4659,77 +4684,77 @@ msgstr "" msgid "disabled" msgstr "معاق" -#: pretix/base/models/customers.py:310 pretix/base/models/orders.py:1538 -#: pretix/base/models/orders.py:3280 pretix/base/settings.py:1150 +#: pretix/base/models/customers.py:330 pretix/base/models/orders.py:1538 +#: pretix/base/models/orders.py:3294 pretix/base/settings.py:1179 msgid "Company name" msgstr "اسم الشركة" -#: pretix/base/models/customers.py:314 pretix/base/models/orders.py:1542 -#: pretix/base/models/orders.py:3287 pretix/base/settings.py:83 +#: pretix/base/models/customers.py:334 pretix/base/models/orders.py:1542 +#: pretix/base/models/orders.py:3301 pretix/base/settings.py:83 #: pretix/plugins/stripe/payment.py:272 msgid "Select country" msgstr "اختر الدولة" -#: pretix/base/models/customers.py:381 +#: pretix/base/models/customers.py:401 msgctxt "openidconnect" msgid "Confidential" msgstr "" -#: pretix/base/models/customers.py:382 +#: pretix/base/models/customers.py:402 #, fuzzy #| msgid "Public profile" msgctxt "openidconnect" msgid "Public" msgstr "حساب عام" -#: pretix/base/models/customers.py:388 +#: pretix/base/models/customers.py:408 #, fuzzy #| msgid "Authorization Code" msgctxt "openidconnect" msgid "Authorization code" msgstr "شفرة الترخيص" -#: pretix/base/models/customers.py:389 +#: pretix/base/models/customers.py:409 msgctxt "openidconnect" msgid "Implicit" msgstr "" -#: pretix/base/models/customers.py:393 +#: pretix/base/models/customers.py:413 msgid "OpenID Connect access (required)" msgstr "" -#: pretix/base/models/customers.py:394 +#: pretix/base/models/customers.py:414 #, fuzzy #| msgctxt "subevent" #| msgid "Create a new date" msgid "Profile data (name, addresses)" msgstr "إنشاء موعد جديد" -#: pretix/base/models/customers.py:414 +#: pretix/base/models/customers.py:434 #, fuzzy #| msgid "Event type" msgid "Client type" msgstr "نوع الفعالية" -#: pretix/base/models/customers.py:417 +#: pretix/base/models/customers.py:437 #, fuzzy #| msgid "Scan type" msgid "Grant type" msgstr "نوع المسح الضوئي" -#: pretix/base/models/customers.py:420 +#: pretix/base/models/customers.py:440 #, fuzzy #| msgid "Required question" msgid "Require PKCE extension" msgstr "سؤال مطلوب" -#: pretix/base/models/customers.py:432 +#: pretix/base/models/customers.py:452 #, fuzzy #| msgid "Allowed membership types" msgid "Allowed access scopes" msgstr "أنواع العضوية المسموح بها" -#: pretix/base/models/customers.py:433 +#: pretix/base/models/customers.py:453 #, fuzzy #| msgid "Create multiple vouchers" msgid "Separate multiple values with spaces" @@ -4766,7 +4791,7 @@ msgstr "هذا المعرف مستخدم مسبقا لسؤال مختلف." #: pretix/control/forms/filter.py:2468 pretix/control/forms/filter.py:2628 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:67 #: pretix/control/templates/pretixcontrol/organizers/gates.html:16 -#: pretix/plugins/checkinlists/exporters.py:766 +#: pretix/plugins/checkinlists/exporters.py:769 msgid "Gate" msgstr "بوابة" @@ -5048,7 +5073,7 @@ msgid "Sell on all sales channels" msgstr "قنوات البيع" #: pretix/base/models/event.py:688 pretix/base/models/items.py:680 -#: pretix/base/models/items.py:1230 pretix/base/payment.py:474 +#: pretix/base/models/items.py:1230 pretix/base/payment.py:476 msgid "Restrict to specific sales channels" msgstr "يقتصر على قنوات بيع محددة" @@ -5129,7 +5154,7 @@ msgstr "" "إذا تم الحديد، فستظهر هذه الفعالية بشكل عام في قائمة تواريخ الفعالية الخاصة " "بك." -#: pretix/base/models/event.py:1565 pretix/base/settings.py:3116 +#: pretix/base/models/event.py:1565 pretix/base/settings.py:3145 msgid "Frontpage text" msgstr "نص الصفحة الأولى" @@ -5141,32 +5166,32 @@ msgstr "التاريخ في سلسلة الفعالية" msgid "Dates in event series" msgstr "التواريخ في سلسلة الفعالية" -#: pretix/base/models/event.py:1728 +#: pretix/base/models/event.py:1724 msgid "One or more variations do not belong to this event." msgstr "عنصر أو أكثر لا ينتمي إلى هذه الفعالية." -#: pretix/base/models/event.py:1758 pretix/base/models/items.py:2236 +#: pretix/base/models/event.py:1754 pretix/base/models/items.py:2236 msgid "Can not contain spaces or special characters except underscores" msgstr "لا يمكن أن يحتوي على مسافات أو أحرف خاصة باستثناء الشرطات السفلية" -#: pretix/base/models/event.py:1763 pretix/base/models/items.py:2241 +#: pretix/base/models/event.py:1759 pretix/base/models/items.py:2241 msgid "The property name may only contain letters, numbers and underscores." msgstr "لا يسمح أن يحتوي اسم الملكية إلا على أحرف وأرقام وشرطات سفلية فقط." -#: pretix/base/models/event.py:1768 +#: pretix/base/models/event.py:1764 msgid "Default value" msgstr "القيمة الافتراضية" -#: pretix/base/models/event.py:1770 +#: pretix/base/models/event.py:1766 #: pretix/control/templates/pretixcontrol/organizers/properties.html:50 msgid "Can only be changed by organizer-level administrators" msgstr "لا يمكن تغييرها إلا من قبل المسؤولين برتبة منظم" -#: pretix/base/models/event.py:1772 +#: pretix/base/models/event.py:1768 msgid "Required for events" msgstr "مطلوب للفعاليات" -#: pretix/base/models/event.py:1773 +#: pretix/base/models/event.py:1769 msgid "" "If checked, an event can only be taken live if the property is set. In event " "series, its always optional to set a value for individual dates" @@ -5174,53 +5199,53 @@ msgstr "" "إذا تم تحديده ، فلا يمكن أن تكون الفعالية مباشرة إلا إذا تم تعيين الخاصية. " "في سلسلة الفعالية، يكون دائما تعيين قيمة للتواريخ الفردية أمرا اختياريا" -#: pretix/base/models/event.py:1779 pretix/base/models/items.py:2253 +#: pretix/base/models/event.py:1775 pretix/base/models/items.py:2253 msgid "Valid values" msgstr "قيم صالحة" -#: pretix/base/models/event.py:1782 +#: pretix/base/models/event.py:1778 #: pretix/control/templates/pretixcontrol/organizers/properties.html:45 #, fuzzy #| msgid "Show number of tickets left" msgid "Show filter option to customers" msgstr "إظهار عدد التذاكر المتبقية" -#: pretix/base/models/event.py:1783 +#: pretix/base/models/event.py:1779 msgid "" "This field will be shown to filter events in the public event list and " "calendar." msgstr "" -#: pretix/base/models/event.py:1786 pretix/control/forms/organizer.py:269 +#: pretix/base/models/event.py:1782 pretix/control/forms/organizer.py:269 #: pretix/control/forms/organizer.py:273 #, fuzzy #| msgid "Public profile" msgid "Public name" msgstr "حساب عام" -#: pretix/base/models/event.py:1790 +#: pretix/base/models/event.py:1786 #: pretix/control/templates/pretixcontrol/organizers/properties.html:40 msgid "Can be used for filtering" msgstr "" -#: pretix/base/models/event.py:1791 +#: pretix/base/models/event.py:1787 msgid "" "This field will be shown to filter events or reports in the backend, and it " "can also be used for hidden filter parameters in the frontend (e.g. using " "the widget)." msgstr "" -#: pretix/base/models/event.py:1801 +#: pretix/base/models/event.py:1797 msgid "A property can either be required or have a default value, not both." msgstr "يمكن أن تكون الخاصية إما مطلوبة أو لها قيمة افتراضية ، وليس كليهما." -#: pretix/base/models/event.py:1881 pretix/base/models/organizer.py:582 +#: pretix/base/models/event.py:1877 pretix/base/models/organizer.py:582 #, fuzzy #| msgid "Info text" msgid "Link text" msgstr "معلومات النص" -#: pretix/base/models/event.py:1884 pretix/base/models/organizer.py:585 +#: pretix/base/models/event.py:1880 pretix/base/models/organizer.py:585 #, fuzzy #| msgid "Imprint URL" msgid "Link URL" @@ -5238,7 +5263,7 @@ msgid "Additional recipients" msgstr "إعدادات إضافية" #: pretix/base/models/exports.py:61 pretix/base/models/exports.py:66 -#: pretix/base/models/exports.py:71 pretix/control/forms/event.py:988 +#: pretix/base/models/exports.py:71 pretix/control/forms/event.py:989 #: pretix/control/forms/organizer.py:586 msgid "You can specify multiple recipients separated by commas." msgstr "" @@ -5255,9 +5280,9 @@ msgstr "إعدادات إضافية" msgid "Additional recipients (Bcc)" msgstr "إعدادات إضافية" -#: pretix/base/models/exports.py:74 pretix/control/forms/event.py:1094 -#: pretix/control/forms/event.py:1168 pretix/control/forms/event.py:1178 -#: pretix/control/forms/event.py:1188 pretix/control/forms/event.py:1203 +#: pretix/base/models/exports.py:74 pretix/control/forms/event.py:1095 +#: pretix/control/forms/event.py:1169 pretix/control/forms/event.py:1179 +#: pretix/control/forms/event.py:1189 pretix/control/forms/event.py:1204 #: pretix/control/forms/orders.py:730 pretix/control/forms/orders.py:952 #: pretix/control/forms/orders.py:979 pretix/control/forms/organizer.py:607 #: pretix/control/forms/organizer.py:617 pretix/control/forms/organizer.py:627 @@ -5295,64 +5320,70 @@ msgstr "لا يمكن أن تحتوي أي قيمة على الرمز المحد msgid "Owned by ticket holder" msgstr "قم بتنزيل تذكرتك هنا:" -#: pretix/base/models/giftcards.py:93 +#: pretix/base/models/giftcards.py:88 +#, fuzzy +#| msgid "View customer account" +msgid "Owned by customer account" +msgstr "عرض حساب العميل" + +#: pretix/base/models/giftcards.py:100 msgid "The gift card code may only contain letters, numbers, dots and dashes." msgstr "قد يحتوي رمز بطاقة الهدايا فقط على أحرف وأرقام ونقاط وشرطات." -#: pretix/base/models/giftcards.py:105 +#: pretix/base/models/giftcards.py:112 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:39 msgctxt "giftcard" msgid "Special terms and conditions" msgstr "‪شروط وأحكام خاصة" -#: pretix/base/models/giftcards.py:219 pretix/base/models/giftcards.py:223 +#: pretix/base/models/giftcards.py:227 pretix/base/models/giftcards.py:231 msgid "Manual transaction" msgstr "المعاملات اليدوية" -#: pretix/base/models/invoices.py:121 +#: pretix/base/models/invoices.py:122 #, fuzzy #| msgid "Pending amount" msgid "pending transmission" msgstr "مبالغ متأخرة" -#: pretix/base/models/invoices.py:122 +#: pretix/base/models/invoices.py:123 msgid "currently being transmitted" msgstr "" -#: pretix/base/models/invoices.py:123 +#: pretix/base/models/invoices.py:124 #, fuzzy #| msgctxt "subevent" #| msgid "No date selected." msgid "transmitted" msgstr "لم يتم تحديد تاريخ." -#: pretix/base/models/invoices.py:124 pretix/plugins/sendmail/models.py:52 +#: pretix/base/models/invoices.py:125 pretix/plugins/sendmail/models.py:52 #, fuzzy #| msgctxt "payment_state" #| msgid "failed" msgid "failed" msgstr "فشل" -#: pretix/base/models/invoices.py:125 +#: pretix/base/models/invoices.py:126 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:56 #, fuzzy #| msgid "(unknown)" msgid "unknown" msgstr "(غير معروف)" -#: pretix/base/models/invoices.py:126 +#: pretix/base/models/invoices.py:127 #, fuzzy #| msgid "in private test mode" msgid "not transmitted due to test mode" msgstr "في وضع الاختبار الخاص" -#: pretix/base/models/invoices.py:218 +#: pretix/base/models/invoices.py:220 #, python-format msgctxt "invoice" msgid "Tax ID: %s" msgstr "رقم تعريف الضريبة: %s" -#: pretix/base/models/invoices.py:224 pretix/base/services/invoices.py:148 +#: pretix/base/models/invoices.py:226 pretix/base/services/invoices.py:154 #, python-format msgctxt "invoice" msgid "VAT-ID: %s" @@ -5586,8 +5617,8 @@ msgstr "عرض قائمة الانتظار لهذه التذكرة" msgid "This will only work if waiting lists are enabled for this event." msgstr "لن يعمل هذا إلا إذا تم تمكين قوائم الانتظار لهذه الفعالية." -#: pretix/base/models/items.py:548 pretix/base/settings.py:1398 -#: pretix/control/forms/event.py:1690 +#: pretix/base/models/items.py:548 pretix/base/settings.py:1427 +#: pretix/control/forms/event.py:1691 msgid "Show number of tickets left" msgstr "إظهار عدد التذاكر المتبقية" @@ -6329,7 +6360,7 @@ msgstr "خيار السؤال" msgid "Question options" msgstr "خيارات السؤال" -#: pretix/base/models/items.py:2074 pretix/control/forms/event.py:1724 +#: pretix/base/models/items.py:2074 pretix/control/forms/event.py:1725 #: pretix/control/templates/pretixcontrol/items/quotas.html:56 msgid "Total capacity" msgstr "السعة الإجمالية" @@ -6339,7 +6370,7 @@ msgid "Leave empty for an unlimited number of tickets." msgstr "اتركه فارغا لعدد غير محدود من التذاكر." #: pretix/base/models/items.py:2080 pretix/base/models/orders.py:1489 -#: pretix/base/models/orders.py:2997 +#: pretix/base/models/orders.py:3011 #: pretix/control/templates/pretixcontrol/checkin/index.html:97 msgid "Item" msgstr "بند" @@ -6494,7 +6525,7 @@ msgid "Canceled" msgstr "ملغاة" #: pretix/base/models/memberships.py:134 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:116 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:117 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:28 msgid "Membership type" msgstr "نوع العضوية" @@ -6503,8 +6534,8 @@ msgstr "نوع العضوية" msgid "pending" msgstr "معلق" -#: pretix/base/models/orders.py:203 pretix/base/payment.py:568 -#: pretix/base/services/invoices.py:486 +#: pretix/base/models/orders.py:203 pretix/base/payment.py:570 +#: pretix/base/services/invoices.py:572 msgid "paid" msgstr "مدفوع" @@ -6514,7 +6545,7 @@ msgid "expired" msgstr "منتهي الصلاحية" #: pretix/base/models/orders.py:254 pretix/control/forms/filter.py:592 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:64 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:65 msgid "Locale" msgstr "المكان" @@ -6661,62 +6692,62 @@ msgctxt "payment_state" msgid "refunded" msgstr "تم الاسترداد" -#: pretix/base/models/orders.py:1756 pretix/base/models/orders.py:2181 +#: pretix/base/models/orders.py:1756 pretix/base/models/orders.py:2195 #: pretix/base/shredder.py:633 msgid "Payment information" msgstr "معلومات الدفع" -#: pretix/base/models/orders.py:2122 +#: pretix/base/models/orders.py:2136 msgctxt "refund_state" msgid "started externally" msgstr "بدأ من الخارج" -#: pretix/base/models/orders.py:2123 +#: pretix/base/models/orders.py:2137 msgctxt "refund_state" msgid "created" msgstr "تم الإنشاء" -#: pretix/base/models/orders.py:2124 +#: pretix/base/models/orders.py:2138 msgctxt "refund_state" msgid "in transit" msgstr "قيد الإرسال" -#: pretix/base/models/orders.py:2125 +#: pretix/base/models/orders.py:2139 msgctxt "refund_state" msgid "done" msgstr "منجز" -#: pretix/base/models/orders.py:2126 +#: pretix/base/models/orders.py:2140 msgctxt "refund_state" msgid "failed" msgstr "فشل" -#: pretix/base/models/orders.py:2128 +#: pretix/base/models/orders.py:2142 msgctxt "refund_state" msgid "canceled" msgstr "ألغيت" -#: pretix/base/models/orders.py:2136 +#: pretix/base/models/orders.py:2150 msgctxt "refund_source" msgid "Organizer" msgstr "منظم" -#: pretix/base/models/orders.py:2137 +#: pretix/base/models/orders.py:2151 msgctxt "refund_source" msgid "Customer" msgstr "عميل" -#: pretix/base/models/orders.py:2138 +#: pretix/base/models/orders.py:2152 msgctxt "refund_source" msgid "External" msgstr "خارجي" -#: pretix/base/models/orders.py:2176 +#: pretix/base/models/orders.py:2190 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:198 msgid "Refund reason" msgstr "سبب استرداد الأموال" -#: pretix/base/models/orders.py:2177 +#: pretix/base/models/orders.py:2191 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:199 #: pretix/control/templates/pretixcontrol/order/refund_choose.html:201 msgid "" @@ -6725,39 +6756,39 @@ msgstr "" "قد يتم عرضها للمستخدم النهائي أو استخدامها على سبيل المثال كجزء من مرجع " "السداد." -#: pretix/base/models/orders.py:2297 +#: pretix/base/models/orders.py:2311 msgid "Service fee" msgstr "رسوم الخدمة" -#: pretix/base/models/orders.py:2298 +#: pretix/base/models/orders.py:2312 msgid "Payment fee" msgstr "رسوم السداد" -#: pretix/base/models/orders.py:2299 +#: pretix/base/models/orders.py:2313 msgid "Shipping fee" msgstr "رسوم الشحن" -#: pretix/base/models/orders.py:2300 +#: pretix/base/models/orders.py:2314 #: pretix/control/templates/pretixcontrol/order/index.html:157 msgid "Cancellation fee" msgstr "رسوم الإلغاء" -#: pretix/base/models/orders.py:2301 +#: pretix/base/models/orders.py:2315 msgid "Insurance fee" msgstr "" -#: pretix/base/models/orders.py:2302 +#: pretix/base/models/orders.py:2316 #, fuzzy #| msgid "Other fees" msgid "Late fee" msgstr "رسوم أخرى" -#: pretix/base/models/orders.py:2303 +#: pretix/base/models/orders.py:2317 msgid "Other fees" msgstr "رسوم أخرى" -#: pretix/base/models/orders.py:2304 pretix/base/payment.py:1372 -#: pretix/base/payment.py:1419 pretix/base/settings.py:992 +#: pretix/base/models/orders.py:2318 pretix/base/payment.py:1374 +#: pretix/base/payment.py:1450 pretix/base/settings.py:992 #: pretix/control/templates/pretixcontrol/items/index.html:107 #: pretix/control/templates/pretixcontrol/order/index.html:152 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:383 @@ -6766,68 +6797,68 @@ msgstr "رسوم أخرى" msgid "Gift card" msgstr "بطاقة هدايا" -#: pretix/base/models/orders.py:2309 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:74 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:115 +#: pretix/base/models/orders.py:2323 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:82 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:123 #: pretix/control/views/vouchers.py:120 #: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:8 msgid "Value" msgstr "قيمة" -#: pretix/base/models/orders.py:2557 +#: pretix/base/models/orders.py:2571 msgid "Order position" msgstr "حالة الطلب" -#: pretix/base/models/orders.py:3102 +#: pretix/base/models/orders.py:3116 msgid "Cart ID (e.g. session key)" msgstr "معرف عربة التسوق (مثل مفتاح الجلسة)" -#: pretix/base/models/orders.py:3113 +#: pretix/base/models/orders.py:3127 #, fuzzy #| msgid "Expiration date" msgid "Limit for extending expiration date" msgstr "تاريخ إنتهاء الصلاحية" -#: pretix/base/models/orders.py:3142 +#: pretix/base/models/orders.py:3156 msgid "Cart position" msgstr "حالة سلة التسوق" -#: pretix/base/models/orders.py:3143 +#: pretix/base/models/orders.py:3157 msgid "Cart positions" msgstr "حالات سلة التسوق" -#: pretix/base/models/orders.py:3279 +#: pretix/base/models/orders.py:3293 msgid "Business customer" msgstr "عميل قطاع الأعمال" -#: pretix/base/models/orders.py:3295 +#: pretix/base/models/orders.py:3309 msgid "This reference will be printed on your invoice for your convenience." msgstr "ستتم طباعة هذا المرجع على فاتورتك وفقا لما يناسبك." -#: pretix/base/models/orders.py:3422 +#: pretix/base/models/orders.py:3436 #, fuzzy #| msgid "Transaction Code" msgid "Transmission type" msgstr "كود المعاملة" -#: pretix/base/models/orders.py:3520 +#: pretix/base/models/orders.py:3534 #: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9 msgid "Badge" msgstr "شارة" -#: pretix/base/models/orders.py:3521 pretix/base/pdf.py:1124 +#: pretix/base/models/orders.py:3535 pretix/base/pdf.py:1124 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:66 -#: pretix/plugins/ticketoutputpdf/ticketoutput.py:113 +#: pretix/plugins/ticketoutputpdf/ticketoutput.py:114 msgid "Ticket" msgstr "تذكرة" -#: pretix/base/models/orders.py:3522 +#: pretix/base/models/orders.py:3536 #, fuzzy #| msgid "Verification failed" msgid "Certificate" msgstr "فشل التحقق" -#: pretix/base/models/orders.py:3523 pretix/control/views/event.py:393 +#: pretix/base/models/orders.py:3537 pretix/control/views/event.py:393 #: pretix/control/views/event.py:398 pretix/control/views/organizer.py:649 #: pretix/control/views/organizer.py:654 #, fuzzy @@ -7170,7 +7201,7 @@ msgstr "" msgid "Should be short, e.g. \"VAT\"" msgstr "يجب أن يكون قصيرا، على سبيل المثال VAT" -#: pretix/base/models/tax.py:330 pretix/control/forms/event.py:1522 +#: pretix/base/models/tax.py:330 pretix/control/forms/event.py:1523 #: pretix/control/templates/pretixcontrol/order/transactions.html:22 #, fuzzy #| msgid "Status code" @@ -7240,12 +7271,12 @@ msgstr "" msgid "You need to set your home country to use the reverse charge feature." msgstr "تحتاج إلى تحديد بلدك لاستخدام ميزة التكلفة العكسية." -#: pretix/base/models/tax.py:427 pretix/control/forms/event.py:1569 +#: pretix/base/models/tax.py:427 pretix/control/forms/event.py:1570 msgid "" "A combination of this tax code with a non-zero tax rate does not make sense." msgstr "" -#: pretix/base/models/tax.py:432 pretix/control/forms/event.py:1573 +#: pretix/base/models/tax.py:432 pretix/control/forms/event.py:1574 msgid "" "A combination of this tax code with a zero tax rate does not make sense." msgstr "" @@ -7553,7 +7584,7 @@ msgstr "المنتجات التي تم شراءها" #: pretix/base/notifications.py:223 pretix/base/services/placeholders.py:384 #: pretix/base/services/placeholders.py:393 -#: pretix/base/templates/pretixbase/email/order_details.html:147 +#: pretix/base/templates/pretixbase/email/order_details.html:151 msgid "View order details" msgstr "معاينة تفاصيل الطلب" @@ -7625,50 +7656,50 @@ msgstr "تم طلب استرداد الأموال" msgid "You have been requested to issue a refund for {order.code}." msgstr "لقدطلب منك إصدار استرداد ل {order.code}." -#: pretix/base/payment.py:85 +#: pretix/base/payment.py:86 #, fuzzy #| msgid "Apply" msgctxt "payment" msgid "Apple Pay" msgstr "تطبيق" -#: pretix/base/payment.py:86 +#: pretix/base/payment.py:87 #, fuzzy #| msgid "Android (Google Play)" msgctxt "payment" msgid "Google Pay" msgstr "الروبوت (جوجل اللعب)" -#: pretix/base/payment.py:117 pretix/base/payment.py:1579 +#: pretix/base/payment.py:119 pretix/base/payment.py:1610 msgid "You cannot pay with gift cards when buying a gift card." msgstr "لا يمكنك الدفع ببطاقات الهدايا عند شراء بطاقة هدايا." -#: pretix/base/payment.py:126 pretix/base/payment.py:1589 -#: pretix/base/payment.py:1591 +#: pretix/base/payment.py:128 pretix/base/payment.py:1620 +#: pretix/base/payment.py:1622 msgid "This gift card does not support this currency." msgstr "بطاقة الهدايا هذه لا تدعم هذه العملة." -#: pretix/base/payment.py:128 pretix/base/payment.py:1597 +#: pretix/base/payment.py:130 pretix/base/payment.py:1628 msgid "This gift card can only be used in test mode." msgstr "لا يمكن استخدام بطاقة الهدايا هذه إلا في وضع الاختبار." -#: pretix/base/payment.py:130 pretix/base/payment.py:1599 +#: pretix/base/payment.py:132 pretix/base/payment.py:1630 msgid "Only test gift cards can be used in test mode." msgstr "يمكن استخدام بطاقات الهدايا التجريبية فقط في وضع الاختبار." -#: pretix/base/payment.py:132 pretix/base/payment.py:1601 +#: pretix/base/payment.py:134 pretix/base/payment.py:1632 msgid "This gift card is no longer valid." msgstr "بطاقة الهدايا هذه لم تعد صالحة." -#: pretix/base/payment.py:134 +#: pretix/base/payment.py:136 msgid "All credit on this gift card has been used." msgstr "تم استخدام كل الرصيد الموجود في بطاقة الهدايا هذه." -#: pretix/base/payment.py:141 +#: pretix/base/payment.py:143 msgid "This gift card is already used for your payment." msgstr "بطاقة الهدايا هذه مستخدمة مسبقا لسدادك." -#: pretix/base/payment.py:145 +#: pretix/base/payment.py:147 msgid "" "You entered a voucher instead of a gift card. Vouchers can only be entered " "on the first page of the shop below the product selection." @@ -7676,11 +7707,11 @@ msgstr "" "لقد أدخلت كود خصم بدلا من بطاقة هدايا. يمكن إدخال أكواد الخصم فقط في الصفحة " "الأولى من المتجر أسفل اختيار المنتج." -#: pretix/base/payment.py:149 +#: pretix/base/payment.py:151 msgid "This gift card is not known." msgstr "بطاقة الهدايا هذه غير معروفة." -#: pretix/base/payment.py:152 +#: pretix/base/payment.py:154 msgid "" "This gift card can not be redeemed since its code is not unique. Please " "contact the organizer of this event." @@ -7688,16 +7719,16 @@ msgstr "" "لا يمكن استرداد بطاقة الهدايا هذه نظرا لأن رمزها ليس فريدا. يرجى الاتصال " "بمنظم هذه الفعالية." -#: pretix/base/payment.py:313 +#: pretix/base/payment.py:315 #: pretix/presale/templates/pretixpresale/event/order.html:116 msgid "Pay now" msgstr "ادفع الآن" -#: pretix/base/payment.py:387 +#: pretix/base/payment.py:389 msgid "Enable payment method" msgstr "تفعيل طريقة الدفع" -#: pretix/base/payment.py:393 +#: pretix/base/payment.py:395 #, fuzzy #| msgid "" #| "Users will not be able to choose this payment provider after the given " @@ -7706,16 +7737,16 @@ msgid "" "Users will not be able to choose this payment provider before the given date." msgstr "لن يتمكن المستخدمون من اختيار مزود خدمة الدفع هذا بعد التاريخ المحدد." -#: pretix/base/payment.py:399 +#: pretix/base/payment.py:401 msgid "" "Users will not be able to choose this payment provider after the given date." msgstr "لن يتمكن المستخدمون من اختيار مزود خدمة الدفع هذا بعد التاريخ المحدد." -#: pretix/base/payment.py:404 +#: pretix/base/payment.py:406 msgid "Minimum order total" msgstr "إجمالي الحد الأدنى للطلب" -#: pretix/base/payment.py:405 +#: pretix/base/payment.py:407 msgid "" "This payment will be available only if the order total is equal to or " "exceeds the given value. The order total for this purpose may be computed " @@ -7725,11 +7756,11 @@ msgstr "" "المحددة. يمكن حساب إجمالي الطلب لهذا الغرض دون الأخذ في الاعتبار الرسوم " "المفروضة بواسطة طريقة الدفع هذه." -#: pretix/base/payment.py:415 +#: pretix/base/payment.py:417 msgid "Maximum order total" msgstr "الحد الأقصى لإجمالي الطلب" -#: pretix/base/payment.py:416 +#: pretix/base/payment.py:418 msgid "" "This payment will be available only if the order total is equal to or below " "the given value. The order total for this purpose may be computed without " @@ -7739,23 +7770,23 @@ msgstr "" "منها. يمكن حساب إجمالي الطلب لهذا الغرض دون الأخذ في الاعتبار الرسوم " "المفروضة بواسطة طريقة الدفع هذه." -#: pretix/base/payment.py:426 pretix/base/payment.py:435 +#: pretix/base/payment.py:428 pretix/base/payment.py:437 msgid "Additional fee" msgstr "رسوم إضافية" -#: pretix/base/payment.py:427 +#: pretix/base/payment.py:429 msgid "Absolute value" msgstr "قيمه مطلقه" -#: pretix/base/payment.py:436 +#: pretix/base/payment.py:438 msgid "Percentage of the order total." msgstr "النسبة المئوية للطلب الإجمالي." -#: pretix/base/payment.py:442 +#: pretix/base/payment.py:444 msgid "Calculate the fee from the total value including the fee." msgstr "احسب الرسوم من القيمة الإجمالية بما في ذلك الرسوم." -#: pretix/base/payment.py:443 +#: pretix/base/payment.py:445 #, python-brace-format msgid "" "We recommend to enable this if you want your users to pay the payment fees " @@ -7768,11 +7799,11 @@ msgstr "" "انقر هنا للحصول على معلومات مفصلة حول ما يمكنه هذا الخيار. لا تنس تحديد " "الرسوم الصحيحة أعلاه!" -#: pretix/base/payment.py:451 +#: pretix/base/payment.py:453 msgid "Text on invoices" msgstr "نص على الفواتير" -#: pretix/base/payment.py:452 +#: pretix/base/payment.py:454 msgid "" "Will be printed just below the payment figures and above the closing text on " "invoices. This will only be used if the invoice is generated before the " @@ -7783,11 +7814,11 @@ msgstr "" "استخدام هذا إلا إذا تم إنشاء الفاتورة قبل سداد الطلب. في حال تم إنشاء " "الفاتورة لاحقا ، فسيظهر نص يفيد بأنه تم الدفع مسبقا." -#: pretix/base/payment.py:461 +#: pretix/base/payment.py:463 msgid "Restrict to countries" msgstr "مقصور على البلدان" -#: pretix/base/payment.py:463 +#: pretix/base/payment.py:465 msgid "" "Only allow choosing this payment provider for invoice addresses in the " "selected countries. If you don't select any country, all countries are " @@ -7797,16 +7828,16 @@ msgstr "" "لم تحدد أي بلد ، فسيسمح بجميع البلدان. يتم تمكين هذا الخيار فقط إذا كان " "عنوان الفاتورة مطلوبا." -#: pretix/base/payment.py:482 +#: pretix/base/payment.py:484 msgid "" "Only allow the usage of this payment provider in the selected sales channels." msgstr "السماح باستخدام مزود الدفع هذا فقط في قنوات المبيعات المحددة." -#: pretix/base/payment.py:486 +#: pretix/base/payment.py:488 msgid "Hide payment method" msgstr "إخفاء طريقة الدفع" -#: pretix/base/payment.py:489 +#: pretix/base/payment.py:491 msgid "" "The payment method will not be shown by default but only to people who enter " "the shop through a special link." @@ -7814,62 +7845,62 @@ msgstr "" "لن يتم عرض طريقة الدفع بشكل افتراضي إلا للأشخاص الذين يدخلون إلى المتجر من " "خلال رابط خاص." -#: pretix/base/payment.py:495 +#: pretix/base/payment.py:497 msgid "Link to enable payment method" msgstr "رابط لتمكين طريقة الدفع" -#: pretix/base/payment.py:504 +#: pretix/base/payment.py:506 msgid "Share this link with customers who should use this payment method." msgstr "شارك هذا الرابط مع العملاء الذين يجب عليهم استخدام طريقة الدفع هذه." -#: pretix/base/payment.py:509 +#: pretix/base/payment.py:511 msgid "Do not send a payment reminder mail" msgstr "" -#: pretix/base/payment.py:510 +#: pretix/base/payment.py:512 msgid "" "Users will not receive a reminder mail to pay for their order before it " "expires if they have chosen this payment method." msgstr "" -#: pretix/base/payment.py:557 +#: pretix/base/payment.py:559 msgctxt "invoice" msgid "The payment for this invoice has already been received." msgstr "تم استلام دفعة هذه الفاتورة سابقا." -#: pretix/base/payment.py:1022 +#: pretix/base/payment.py:1024 #, fuzzy #| msgid "This payment can not be canceled at the moment." msgid "" "This payment is already being processed and can not be canceled any more." msgstr "لا يمكن إلغاء هذه الدفعة في الوقت الراهن." -#: pretix/base/payment.py:1036 +#: pretix/base/payment.py:1038 msgid "Automatic refunds are not supported by this payment provider." msgstr "لا يدعم مزود الدفع هذا المبالغ المستردة التلقائية." -#: pretix/base/payment.py:1127 +#: pretix/base/payment.py:1129 msgid "" "No payment is required as this order only includes products which are free " "of charge." msgstr "لا يلزم الدفع لأن هذا الطلب يشمل فقط المنتجات المجانية." -#: pretix/base/payment.py:1134 +#: pretix/base/payment.py:1136 msgid "Free of charge" msgstr "معفي من الرسوم" -#: pretix/base/payment.py:1166 +#: pretix/base/payment.py:1168 msgid "Box office" msgstr "شباك التذاكر" -#: pretix/base/payment.py:1214 pretix/base/payment.py:1233 +#: pretix/base/payment.py:1216 pretix/base/payment.py:1235 #: pretix/plugins/manualpayment/apps.py:30 #: pretix/plugins/manualpayment/apps.py:33 #: pretix/plugins/manualpayment/apps.py:39 msgid "Manual payment" msgstr "الدفع اليدوي" -#: pretix/base/payment.py:1219 pretix/plugins/banktransfer/payment.py:195 +#: pretix/base/payment.py:1221 pretix/plugins/banktransfer/payment.py:195 msgid "" "In test mode, you can just manually mark this order as paid in the backend " "after it has been created." @@ -7877,16 +7908,16 @@ msgstr "" "في وضع الاختبار ، يمكنك فقط تحديد هذا الطلب يدويا على أنه مدفوع في لوحة " "التحكم بعد إنشائه." -#: pretix/base/payment.py:1240 pretix/base/payment.py:1427 +#: pretix/base/payment.py:1242 pretix/base/payment.py:1458 #: pretix/plugins/banktransfer/payment.py:149 msgid "Payment method name" msgstr "اسم طريقة الدفع" -#: pretix/base/payment.py:1244 +#: pretix/base/payment.py:1246 msgid "Payment process description during checkout" msgstr "وصف عملية الدفع أثناء تسجيل الخروج" -#: pretix/base/payment.py:1245 +#: pretix/base/payment.py:1247 msgid "" "This text will be shown during checkout when the user selects this payment " "method. It should give a short explanation on this payment method." @@ -7894,11 +7925,11 @@ msgstr "" "سيظهر هذا النص أثناء تسجيل الخروج عندما يختار المستخدم طريقة الدفع هذه. يجب " "أن يتم تقديم شرح موجز عن طريقة الدفع ." -#: pretix/base/payment.py:1250 +#: pretix/base/payment.py:1252 msgid "Payment process description in order confirmation emails" msgstr "وصف عملية الدفع في رسائل البريد الإلكتروني لتأكيد الطلب" -#: pretix/base/payment.py:1251 +#: pretix/base/payment.py:1253 #, python-brace-format msgid "" "This text will be included for the {payment_info} placeholder in order " @@ -7910,11 +7941,11 @@ msgstr "" "المستخدم إلى كيفية متابعة الدفع. {order}, {amount}, {currency} " "و{amount_with_currency}." -#: pretix/base/payment.py:1258 +#: pretix/base/payment.py:1260 msgid "Payment process description for pending orders" msgstr "وصف عملية الدفع للطلبات المعلقة" -#: pretix/base/payment.py:1259 +#: pretix/base/payment.py:1261 #, python-brace-format msgid "" "This text will be shown on the order confirmation page for pending orders. " @@ -7925,7 +7956,7 @@ msgstr "" "المستخدم إلى كيفية متابعة الدفع. يمكنك استخدام العناصر {order}, {amount}, " "{currency} و {amount_with_currency}." -#: pretix/base/payment.py:1267 pretix/plugins/banktransfer/payment.py:144 +#: pretix/base/payment.py:1269 pretix/plugins/banktransfer/payment.py:144 msgid "" "Create an invoice for orders using bank transfer immediately if the event is " "otherwise configured to create invoices after payment is completed." @@ -7933,34 +7964,34 @@ msgstr "" "قم بإنشاء فاتورة للطلبات باستخدام التحويل المصرفي على الفور إذا تم إعداد " "الفعالية بطريقة أخرى تسمح بإنشاء الفواتير بعد إتمام الدفع." -#: pretix/base/payment.py:1318 +#: pretix/base/payment.py:1320 msgid "Offsetting" msgstr "تعويض" -#: pretix/base/payment.py:1332 pretix/control/views/orders.py:1255 +#: pretix/base/payment.py:1334 pretix/control/views/orders.py:1256 msgid "You entered an order that could not be found." msgstr "لقد أدخلت طلبا لا يمكن العثور عليه." -#: pretix/base/payment.py:1361 +#: pretix/base/payment.py:1363 #, python-format msgid "Balanced against orders: %s" msgstr "تم تسويتها مقابل الطلبات: %s" -#: pretix/base/payment.py:1433 +#: pretix/base/payment.py:1464 #, fuzzy #| msgid "Payment method name" msgid "Payment method description" msgstr "اسم طريقة الدفع" -#: pretix/base/payment.py:1463 +#: pretix/base/payment.py:1494 msgid "In test mode, only test cards will work." msgstr "في وضع الاختبار ، ستعمل بطاقات الاختبار فقط." -#: pretix/base/payment.py:1593 +#: pretix/base/payment.py:1624 msgid "This gift card is not accepted by this event organizer." msgstr "لم يتم قبول بطاقة الهدايا هذه من قبل منظم هذه الفعالية." -#: pretix/base/payment.py:1595 +#: pretix/base/payment.py:1626 msgid "This gift card was used in the meantime. Please try again." msgstr "تم استخدام بطاقة الهدايا هذه في هذه الأثناء. حاول مرة اخرى." @@ -7972,7 +8003,7 @@ msgstr "رمز التذكرة (محتوى الباركود)" msgid "Order position number" msgstr "رقم حالة الطلب" -#: pretix/base/pdf.py:123 pretix/control/forms/event.py:1777 +#: pretix/base/pdf.py:123 pretix/control/forms/event.py:1778 #: pretix/control/templates/pretixcontrol/items/index.html:38 msgid "Product name" msgstr "اسم المنتج" @@ -8036,7 +8067,7 @@ msgid "Price including add-ons and bundled products" msgstr "السعر شاملا الإضافات" #: pretix/base/pdf.py:184 pretix/base/pdf.py:342 -#: pretix/base/services/invoices.py:487 +#: pretix/base/services/invoices.py:573 #: pretix/base/services/placeholders.py:571 #: pretix/base/services/placeholders.py:653 #: pretix/base/services/placeholders.py:669 @@ -8188,7 +8219,7 @@ msgstr "19:00" msgid "Event location" msgstr "موقع الفعالية" -#: pretix/base/pdf.py:327 pretix/base/settings.py:1172 +#: pretix/base/pdf.py:327 pretix/base/settings.py:1201 msgid "Random City" msgstr "مدينة عشوائية" @@ -8200,7 +8231,7 @@ msgstr "شارع سيسيم 42" msgid "12345" msgstr "12345" -#: pretix/base/pdf.py:362 pretix/base/services/invoices.py:490 +#: pretix/base/pdf.py:362 pretix/base/services/invoices.py:576 msgid "Sample city" msgstr "مدينة مثال" @@ -8396,7 +8427,7 @@ msgstr "السيد دو" #: pretix/base/pdf.py:666 pretix/base/pdf.py:673 #: pretix/plugins/badges/exporters.py:501 #: pretix/plugins/checkinlists/exporters.py:125 -#: pretix/plugins/checkinlists/exporters.py:498 +#: pretix/plugins/checkinlists/exporters.py:499 #: pretix/plugins/ticketoutputpdf/exporters.py:99 #, python-brace-format msgid "Attendee name: {part}" @@ -8419,30 +8450,30 @@ msgstr "اسم عنوان الفاتورة: {part}" msgid "Your layout file is not a valid layout. Error message: {}" msgstr "ملف التخطيط الخاص بك ليس خطة جلوس صالحة. رسالة خطأ: {}" -#: pretix/base/plugins.py:136 +#: pretix/base/plugins.py:138 #: pretix/control/templates/pretixcontrol/event/quick_setup.html:132 msgid "Features" msgstr "المميزات" -#: pretix/base/plugins.py:138 +#: pretix/base/plugins.py:140 #, fuzzy #| msgid "Invoice generation" msgid "Integrations" msgstr "جيل فاتورة" -#: pretix/base/plugins.py:139 +#: pretix/base/plugins.py:141 #, fuzzy #| msgid "Customer actions" msgid "Customizations" msgstr "إجراءات العملاء" -#: pretix/base/plugins.py:140 +#: pretix/base/plugins.py:142 #, fuzzy #| msgid "Export format" msgid "Output and export formats" msgstr "تنسيق التصدير" -#: pretix/base/plugins.py:141 +#: pretix/base/plugins.py:143 #, fuzzy #| msgid "Features" msgid "API features" @@ -8517,7 +8548,7 @@ msgstr "" msgid "Event canceled" msgstr "تم إلغاء الفعالية" -#: pretix/base/services/cart.py:102 pretix/base/services/modelimport.py:235 +#: pretix/base/services/cart.py:102 pretix/base/services/modelimport.py:247 #: pretix/base/services/orders.py:155 msgid "" "We were not able to process your request completely as the server was too " @@ -8594,7 +8625,7 @@ msgstr[3] "لا يمكنك تحديد أكثر من %s عناصر لكل طلب. msgstr[4] "لا يمكنك تحديد أكثر من %s عناصر لكل طلب." msgstr[5] "لا يمكنك تحديد أكثر من %s عناصر لكل طلب." -#: pretix/base/services/cart.py:131 pretix/base/services/orders.py:1598 +#: pretix/base/services/cart.py:131 pretix/base/services/orders.py:1628 #, fuzzy, python-format #| msgid "" #| "You cannot select more than %(max)s items of the product %(product)s." @@ -8608,7 +8639,7 @@ msgstr[3] "لا يمكنك تحديد أكثر من %(max)s عناصر من ال msgstr[4] "لا يمكنك تحديد أكثر من %(max)s عناصر من المنتج %(product)s." msgstr[5] "لا يمكنك تحديد أكثر من %(max)s عناصر من المنتج %(product)s." -#: pretix/base/services/cart.py:136 pretix/base/services/orders.py:1603 +#: pretix/base/services/cart.py:136 pretix/base/services/orders.py:1633 #, fuzzy, python-format #| msgid "" #| "You need to select at least %(min)s items of the product %(product)s." @@ -9131,40 +9162,40 @@ msgstr "الإتحاد الأوربي" msgid "Czech National Bank" msgstr "" -#: pretix/base/services/export.py:86 pretix/base/services/export.py:157 -#: pretix/base/services/export.py:215 +#: pretix/base/services/export.py:91 pretix/base/services/export.py:166 +#: pretix/base/services/export.py:228 msgid "Your export did not contain any data." msgstr "تصديرك لا يحتوي على أي بيانات." -#: pretix/base/services/export.py:151 +#: pretix/base/services/export.py:156 #, fuzzy #| msgid "You do not have permission to perform this action." msgid "You do not have sufficient permission to perform this export." msgstr "ليس لديك إذن لتنفيذ هذا الإجراء." -#: pretix/base/services/export.py:189 +#: pretix/base/services/export.py:198 #, fuzzy #| msgid "Exported files" msgid "Export failed" msgstr "الملفات المصدرة" -#: pretix/base/services/export.py:206 +#: pretix/base/services/export.py:215 #, fuzzy #| msgid "Permission denied" msgid "Permission denied." msgstr "تم رفض طلب الإذن" -#: pretix/base/services/export.py:221 +#: pretix/base/services/export.py:234 msgid "Your exported data exceeded the size limit for scheduled exports." msgstr "" -#: pretix/base/services/invoices.py:109 +#: pretix/base/services/invoices.py:115 #, python-brace-format msgctxt "invoice" msgid "Please complete your payment before {expire_date}." msgstr "يرجى إتمام عملية الدفع قبل {expire_date}." -#: pretix/base/services/invoices.py:121 +#: pretix/base/services/invoices.py:127 #, python-brace-format msgctxt "invoice" msgid "" @@ -9180,52 +9211,52 @@ msgstr "" "{i.zipcode} {i.city} {state}\n" "{country}" -#: pretix/base/services/invoices.py:229 pretix/base/services/invoices.py:266 +#: pretix/base/services/invoices.py:237 pretix/base/services/invoices.py:274 #, fuzzy, python-brace-format #| msgid "Event location" msgctxt "invoice" msgid "Event location: {location}" msgstr "موقع الفعالية" -#: pretix/base/services/invoices.py:245 +#: pretix/base/services/invoices.py:253 #, python-brace-format msgctxt "invoice" msgid "Attendee: {name}" msgstr "الحاضر: {name}" -#: pretix/base/services/invoices.py:263 pretix/plugins/reports/exporters.py:309 +#: pretix/base/services/invoices.py:271 pretix/plugins/reports/exporters.py:309 #, python-brace-format msgctxt "subevent" msgid "Date: {}" msgstr "تاريخ: {}" -#: pretix/base/services/invoices.py:480 +#: pretix/base/services/invoices.py:566 msgid "A payment provider specific text might appear here." msgstr "قد يظهر نص محدد لمزود خدمة الدفع هنا." -#: pretix/base/services/invoices.py:488 +#: pretix/base/services/invoices.py:574 msgid "214th Example Street" msgstr "مثال شارع رقم 214" -#: pretix/base/services/invoices.py:489 +#: pretix/base/services/invoices.py:575 msgid "012345" msgstr "012345" -#: pretix/base/services/invoices.py:506 +#: pretix/base/services/invoices.py:592 #, python-brace-format msgid "Sample product {}" msgstr "نموذج منتج {}" -#: pretix/base/services/invoices.py:516 +#: pretix/base/services/invoices.py:602 msgid "Sample product A" msgstr "نموذج منتج أ" -#: pretix/base/services/invoices.py:576 +#: pretix/base/services/invoices.py:662 #, python-brace-format msgid "New invoice: {number}" msgstr "فاتورة جديدة: {number}" -#: pretix/base/services/invoices.py:578 +#: pretix/base/services/invoices.py:664 #, fuzzy, python-brace-format #| msgid "" #| "Hello,\n" @@ -9276,7 +9307,7 @@ msgstr "" msgid "You are receiving this email because you placed an order for {event}." msgstr "أنت تتلقى هذا البريد الإلكتروني لأنك قدمت طلبا ل {event}." -#: pretix/base/services/mail.py:492 +#: pretix/base/services/mail.py:494 #, fuzzy #| msgid "resend invite" msgctxt "attachment_filename" @@ -9400,12 +9431,12 @@ msgstr "" "أنت تحاول استخدام عضوية من النوع \"{type}\" لفعالية تقام في {date} ، ولكنك " "استخدمت سابقا نفس العضوية لتذكرة مختلفة في نفس الوقت." -#: pretix/base/services/modelimport.py:53 +#: pretix/base/services/modelimport.py:56 #, python-brace-format msgid "Error decoding special characters in your file: {message}" msgstr "" -#: pretix/base/services/modelimport.py:71 +#: pretix/base/services/modelimport.py:74 #, python-brace-format msgid "" "Error while importing value \"{value}\" for column \"{column}\" in line " @@ -9414,33 +9445,33 @@ msgstr "" "خطأ أثناء استيراد القيمة \"{value}\" للعمود \"{column}\" في السطر \"{line}" "\": {message}" -#: pretix/base/services/modelimport.py:89 -#: pretix/base/services/modelimport.py:137 pretix/base/services/orders.py:1607 +#: pretix/base/services/modelimport.py:92 +#: pretix/base/services/modelimport.py:140 pretix/base/services/orders.py:1637 #, python-format msgid "Orders cannot have more than %(max)s positions." msgstr "" -#: pretix/base/services/modelimport.py:113 +#: pretix/base/services/modelimport.py:116 #, python-format msgid "" "The grouping \"%(value)s\" occurs on non-consecutive lines (seen again on " "line %(row)s)." msgstr "" -#: pretix/base/services/modelimport.py:151 +#: pretix/base/services/modelimport.py:154 #, python-brace-format msgid "" "Inconsistent data in row {row}: Column {col} contains value \"{val_line}\", " "but for this order, the value has already been set to \"{val_order}\"." msgstr "" -#: pretix/base/services/modelimport.py:165 -#: pretix/base/services/modelimport.py:277 +#: pretix/base/services/modelimport.py:168 +#: pretix/base/services/modelimport.py:289 #, python-brace-format msgid "Invalid data in row {row}: {message}" msgstr "بيانات غير صالحة في الصف {row}: {message}" -#: pretix/base/services/modelimport.py:258 +#: pretix/base/services/modelimport.py:270 #, fuzzy #| msgid "A voucher can not be deleted if it already has been redeemed." msgid "A voucher cannot be created without a code." @@ -9617,20 +9648,20 @@ msgstr "بطاقة الهدايا هذه لا تدعم هذه العملة." msgid "The order was not canceled." msgstr "تم إلغاء هذا الأمر." -#: pretix/base/services/orders.py:277 pretix/control/forms/orders.py:126 +#: pretix/base/services/orders.py:283 pretix/control/forms/orders.py:126 msgid "The new expiry date needs to be in the future." msgstr "يجب أن يكون تاريخ إنتهاء الصلاحية الجديد في المستقبل." -#: pretix/base/services/orders.py:371 pretix/base/services/orders.py:463 +#: pretix/base/services/orders.py:383 pretix/base/services/orders.py:481 msgid "This order is not pending approval." msgstr "هذا الطلب ليس في انتظار الموافقة." -#: pretix/base/services/orders.py:525 pretix/presale/views/order.py:930 -#: pretix/presale/views/order.py:984 +#: pretix/base/services/orders.py:543 pretix/presale/views/order.py:953 +#: pretix/presale/views/order.py:1007 msgid "You cannot cancel this order." msgstr "لا يمكنك إلغاء هذا الطلب." -#: pretix/base/services/orders.py:537 +#: pretix/base/services/orders.py:555 #, python-brace-format msgid "" "This order can not be canceled since the gift card {card} purchased in this " @@ -9639,7 +9670,7 @@ msgstr "" "لا يمكن إلغاء هذا الطلب لأنه تم بالفعل استرداد قيمة بطاقة الهدايا {card} " "المشتراة لهذا الطلب." -#: pretix/base/services/orders.py:600 pretix/control/forms/orders.py:219 +#: pretix/base/services/orders.py:618 pretix/control/forms/orders.py:219 #, fuzzy #| msgid "" #| "The cancellation fee cannot be higher than the payment credit of this " @@ -9648,13 +9679,13 @@ msgid "" "The cancellation fee cannot be higher than the total amount of this order." msgstr "لا يمكن أن تكون رسوم الإلغاء أعلى من رصيد الدفع لهذا الطلب." -#: pretix/base/services/orders.py:1000 +#: pretix/base/services/orders.py:1024 #, fuzzy #| msgid "This payment method does not support automatic refunds." msgid "The selected payment methods do not cover the total balance." msgstr "طريقة الدفع هذه لا يدعم استرداد التلقائي." -#: pretix/base/services/orders.py:1068 +#: pretix/base/services/orders.py:1092 msgid "" "While trying to place your order, we noticed that the order total has " "changed. Either one of the prices changed just now, or a gift card you used " @@ -9664,31 +9695,31 @@ msgstr "" "الأسعار الآن ، أو أن بطاقة الهدايا التي استخدمتها جاري استعمالها في الوقت " "الحالي. يرجى التحقق من الأسعار أدناه والمحاولة مرة أخرى." -#: pretix/base/services/orders.py:1577 +#: pretix/base/services/orders.py:1607 msgid "You need to select a variation of the product." msgstr "تحتاج إلى تحديد نوع من المنتج." -#: pretix/base/services/orders.py:1578 +#: pretix/base/services/orders.py:1608 #, python-brace-format msgid "" "The quota {name} does not have enough capacity left to perform the operation." msgstr "الحصة {name} لم يتبق لديها سعة كافية لإجراء العملية." -#: pretix/base/services/orders.py:1579 +#: pretix/base/services/orders.py:1609 msgid "There is no quota defined that allows this operation." msgstr "لا توجد حصة محددة تسمح بهذه العملية." -#: pretix/base/services/orders.py:1580 +#: pretix/base/services/orders.py:1610 msgid "The selected product is not active or has no price set." msgstr "المنتج المحدد غير نشط أو ليس له سعر محدد." -#: pretix/base/services/orders.py:1581 +#: pretix/base/services/orders.py:1611 msgid "" "This operation would leave the order empty. Please cancel the order itself " "instead." msgstr "سيترك هذا الإجراء الطلب فارغا. يرجى إلغاء الطلب نفسه بدلا من ذلك." -#: pretix/base/services/orders.py:1583 +#: pretix/base/services/orders.py:1613 msgid "" "This operation would make the order free and therefore immediately paid, " "however no quota is available." @@ -9696,23 +9727,23 @@ msgstr "" "ستجعل هذه العملية الطلب مجانيا وبالتالي يتم دفعه على الفور ، إلا أنه لا " "تتوفر حصة." -#: pretix/base/services/orders.py:1586 +#: pretix/base/services/orders.py:1616 msgid "" "This is an add-on product, please select the base position it should be " "added to." msgstr "هذا منتج إضافي ، يرجى تحديد العنصر الأساسي الذي تجب الإضافة إليه." -#: pretix/base/services/orders.py:1587 +#: pretix/base/services/orders.py:1617 msgid "" "The selected base position does not allow you to add this product as an add-" "on." msgstr "لا يسمح لك العنصر المختار بإضافة هذا المنتج كقائمة مضافة." -#: pretix/base/services/orders.py:1588 +#: pretix/base/services/orders.py:1618 msgid "You need to choose a subevent for the new position." msgstr "تحتاج إلى اختيار فعالية فرعية للعنصر الجديد." -#: pretix/base/services/orders.py:1591 +#: pretix/base/services/orders.py:1621 #, python-brace-format msgid "" "You selected seat \"{seat}\" for a date that does not match the selected " @@ -9721,25 +9752,25 @@ msgstr "" "لقد حددت المقعد \"{seat}\" لتاريخ لا يتطابق مع تاريخ التذكرة المحدد. الرجاء " "اختيار مقعد مرة أخرى." -#: pretix/base/services/orders.py:1593 +#: pretix/base/services/orders.py:1623 msgid "The selected product requires you to select a seat." msgstr "المنتج المحدد يتطلب منك اختيار مقعد." -#: pretix/base/services/orders.py:1594 +#: pretix/base/services/orders.py:1624 msgid "The selected product does not allow to select a seat." msgstr "المنتج المحدد لا يسمح باختيار مقعد." -#: pretix/base/services/orders.py:1595 +#: pretix/base/services/orders.py:1625 msgid "The selected country is blocked by your tax rule." msgstr "تم حظر البلد المحدد من خلال القاعدة الضريبية الخاصة بك." -#: pretix/base/services/orders.py:1596 +#: pretix/base/services/orders.py:1626 msgid "" "You cannot change the price of a position that has been used to issue a gift " "card." msgstr "لا يمكنك تغيير سعر العنصر الذي تم استخدامه لإصدار بطاقة هدايا." -#: pretix/base/services/orders.py:2421 pretix/base/services/orders.py:2438 +#: pretix/base/services/orders.py:2451 pretix/base/services/orders.py:2468 #, python-brace-format msgid "" "A position can not be canceled since the gift card {card} purchased in this " @@ -9748,7 +9779,7 @@ msgstr "" "لا يمكن إلغاء العنصر نظرا لأنه تم بالفعل استرداد قيمة بطاقة الهدايا {card} " "المشتراة في هذا الطلب." -#: pretix/base/services/orders.py:3133 +#: pretix/base/services/orders.py:3182 msgid "" "There was an error while trying to send the money back to you. Please " "contact the event organizer for further information." @@ -9915,7 +9946,7 @@ msgstr "" msgid "Plugin: %s" msgstr "المكونات الإضافية: %s" -#: pretix/base/services/vouchers.py:56 pretix/control/logdisplay.py:579 +#: pretix/base/services/vouchers.py:56 pretix/control/logdisplay.py:580 #, python-brace-format msgid "The voucher has been sent to {recipient}." msgstr "تم إرسال كود الخصم إلى {recipient}." @@ -10371,7 +10402,7 @@ msgstr "" msgid "Only respected by some invoice renderers." msgstr "يستخدم للمتصفحات الحديثة فقط." -#: pretix/base/settings.py:744 pretix/base/settings.py:2959 +#: pretix/base/settings.py:744 pretix/base/settings.py:2988 #: pretix/control/templates/pretixcontrol/pdf/index.html:436 msgid "Font" msgstr "الخط" @@ -10651,11 +10682,41 @@ msgstr "تلقائيا لجميع الطلبات التي تم إنشاؤها" msgid "Invoices will never be automatically generated for free orders." msgstr "لن يتم إنشاء الفواتير تلقائيا للطلبات المجانية." -#: pretix/base/settings.py:1107 +#: pretix/base/settings.py:1108 pretix/base/settings.py:1119 +msgid "" +"Automatic based on ticket-specific validity, membership validity, event " +"series date, or event date" +msgstr "" + +#: pretix/base/settings.py:1109 pretix/base/settings.py:1120 +msgid "Automatic, but prefer invoice date over event date" +msgstr "" + +#: pretix/base/settings.py:1112 pretix/base/settings.py:1123 +#, fuzzy +#| msgctxt "invoice" +#| msgid "Invoice date" +msgid "Invoice date" +msgstr "تاريخ الفاتورة" + +#: pretix/base/settings.py:1116 +#, fuzzy +#| msgctxt "subevent" +#| msgid "Date ordering" +msgid "Date of service" +msgstr "ترتيب التاريخ" + +#: pretix/base/settings.py:1125 +msgid "" +"This controls what dates are shown on the invoice, but is especially " +"important for electronic invoicing." +msgstr "" + +#: pretix/base/settings.py:1136 msgid "Automatically cancel and reissue invoice on address changes" msgstr "إلغاء الفاتورة تلقائيا عند تغيير العنوان وإعادة إصدارها" -#: pretix/base/settings.py:1108 +#: pretix/base/settings.py:1137 msgid "" "If customers change their invoice address on an existing order, the invoice " "will automatically be canceled and a new invoice will be issued. This " @@ -10665,50 +10726,50 @@ msgstr "" "الفاتورة تلقائيا وسيتم إصدار فاتورة جديدة. لن يؤثر هذا الإعداد على التعديلات " "في لوحة التحكم." -#: pretix/base/settings.py:1119 +#: pretix/base/settings.py:1148 msgid "Allow to update existing invoices" msgstr "" -#: pretix/base/settings.py:1120 +#: pretix/base/settings.py:1149 msgid "" "By default, invoices can never again be changed once they are issued. In " "most countries, we recommend to leave this option turned off and always " "issue a new invoice if a change needs to be made." msgstr "" -#: pretix/base/settings.py:1135 +#: pretix/base/settings.py:1164 msgid "Address line" msgstr "العنوان" -#: pretix/base/settings.py:1139 +#: pretix/base/settings.py:1168 msgid "Albert Einstein Road 52" msgstr "شارع ألبرت أينشتاين 52" -#: pretix/base/settings.py:1191 +#: pretix/base/settings.py:1220 msgid "Domestic tax ID" msgstr "معرف الضريبة المحلية" -#: pretix/base/settings.py:1192 +#: pretix/base/settings.py:1221 msgid "e.g. tax number in Germany, ABN in Australia, …" msgstr "على سبيل المثال الرقم الضريبي في ألمانيا ، رقم العمل الأسترالي،…" -#: pretix/base/settings.py:1201 +#: pretix/base/settings.py:1230 msgid "EU VAT ID" msgstr "رقم ضريبة القيمة المضافة في الاتحاد الأوروبي" -#: pretix/base/settings.py:1214 +#: pretix/base/settings.py:1243 msgid "e.g. With this document, we sent you the invoice for your ticket order." msgstr "على سبيل المثال باستخدام هذا المستند ، أرسلنا إليك فاتورة طلب تذكرتك." -#: pretix/base/settings.py:1217 +#: pretix/base/settings.py:1246 msgid "Introductory text" msgstr "نص تمهيدي" -#: pretix/base/settings.py:1218 +#: pretix/base/settings.py:1247 msgid "Will be printed on every invoice above the invoice rows." msgstr "ستتم طباعتها على كل فاتورة فوق صفوف الفاتورة." -#: pretix/base/settings.py:1231 +#: pretix/base/settings.py:1260 msgid "" "e.g. Thank you for your purchase! You can find more information on the event " "at ..." @@ -10716,15 +10777,15 @@ msgstr "" "مثلا شكرا لك على الشراء! يمكنك العثور على مزيد من المعلومات حول هذه الفعالية " "في ..." -#: pretix/base/settings.py:1234 +#: pretix/base/settings.py:1263 msgid "Additional text" msgstr "نص إضافي" -#: pretix/base/settings.py:1235 +#: pretix/base/settings.py:1264 msgid "Will be printed on every invoice below the invoice total." msgstr "ستتم الطباعة على كل فاتورة تحت إجمالي الفاتورة." -#: pretix/base/settings.py:1248 +#: pretix/base/settings.py:1277 msgid "" "e.g. your bank details, legal details like your VAT ID, registration " "numbers, etc." @@ -10732,21 +10793,21 @@ msgstr "" "مثلا تفاصيل حسابك المصرفي، التفاصيل القانونية مثل معرف ضريبة القيمة المضافة، " "أرقام التسجيل، الخ." -#: pretix/base/settings.py:1251 +#: pretix/base/settings.py:1280 msgid "Footer" msgstr "تذييل" -#: pretix/base/settings.py:1252 +#: pretix/base/settings.py:1281 msgid "" "Will be printed centered and in a smaller font at the end of every invoice " "page." msgstr "ستتم طباعتها في المنتصف وبخط أصغر في نهاية كل صفحة فاتورة." -#: pretix/base/settings.py:1265 +#: pretix/base/settings.py:1294 msgid "Attach invoices to emails" msgstr "إرفق الفواتير في رسائل البريد الإلكتروني" -#: pretix/base/settings.py:1266 +#: pretix/base/settings.py:1295 msgid "" "If invoices are automatically generated for all orders, they will be " "attached to the order confirmation mail. If they are automatically generated " @@ -10757,11 +10818,11 @@ msgstr "" "الطلب. إذا تم إنشاؤها تلقائيا عند الدفع ، فسيتم إرفاقها ببريد تأكيد الدفع. " "إذا لم يتم إنشاؤها تلقائيا ، فلن يتم إرفاقها برسائل البريد الإلكتروني." -#: pretix/base/settings.py:1278 +#: pretix/base/settings.py:1307 msgid "Email address to receive a copy of each invoice" msgstr "عنوان البريد الإلكتروني لتلقي نسخة من كل فاتورة" -#: pretix/base/settings.py:1279 +#: pretix/base/settings.py:1308 msgid "" "Each newly created invoice will be sent to this email address shortly after " "creation. You can use this for an automated import of invoices to your " @@ -10771,28 +10832,28 @@ msgstr "" "وقت قصير من إنشائها. يمكنك استخدام هذا للاستيراد الآلي للفواتير إلى نظام " "المحاسبة الخاص بك. ستكون الفاتورة هي المرفق الوحيد بالبريد الإلكتروني." -#: pretix/base/settings.py:1294 +#: pretix/base/settings.py:1323 msgid "Show items outside presale period" msgstr "إظهار العناصر خارج فترة عرض ما قبل البيع" -#: pretix/base/settings.py:1295 +#: pretix/base/settings.py:1324 msgid "" "Show item details before presale has started and after presale has ended" msgstr "إظهار تفاصيل العنصر قبل بداية البيع المسبق وبعد انتهائه" -#: pretix/base/settings.py:1315 +#: pretix/base/settings.py:1344 msgid "Available languages" msgstr "اللغات المتاحة" -#: pretix/base/settings.py:1331 pretix/control/forms/event.py:139 +#: pretix/base/settings.py:1360 pretix/control/forms/event.py:139 msgid "Default language" msgstr "اللغة الافتراضية" -#: pretix/base/settings.py:1341 +#: pretix/base/settings.py:1370 msgid "Region" msgstr "منطقة" -#: pretix/base/settings.py:1342 +#: pretix/base/settings.py:1371 msgid "" "Will be used to determine date and time formatting as well as default " "country for customer addresses and phone numbers. For formatting, this takes " @@ -10804,13 +10865,13 @@ msgstr "" "من اللغة وبالتالي فهو مناسب في الغالب للغات المستخدمة في مناطق مختلفة على " "مستوى العالم (مثل اللغة الإنجليزية)." -#: pretix/base/settings.py:1354 +#: pretix/base/settings.py:1383 #, fuzzy #| msgid "This is not an event series." msgid "This shop represents an event" msgstr "هذه ليست سلسلة فعالية." -#: pretix/base/settings.py:1356 +#: pretix/base/settings.py:1385 msgid "" "Uncheck this box if you are only selling something that has no specific " "date, such as gift cards or a ticket that can be used any time. The system " @@ -10819,19 +10880,19 @@ msgid "" "may still show up in other places." msgstr "" -#: pretix/base/settings.py:1369 +#: pretix/base/settings.py:1398 msgid "Show event end date" msgstr "إظهار تاريخ انتهاء الفعالية" -#: pretix/base/settings.py:1370 +#: pretix/base/settings.py:1399 msgid "If disabled, only event's start date will be displayed to the public." msgstr "إذا تم تعطيل هذا الخيار، فسيظهر للجمهور تاريخ بداية الفعالية فقط." -#: pretix/base/settings.py:1379 +#: pretix/base/settings.py:1408 msgid "Show dates with time" msgstr "عرض التواريخ مع الوقت" -#: pretix/base/settings.py:1380 +#: pretix/base/settings.py:1409 msgid "" "If disabled, the event's start and end date will be displayed without the " "time of day." @@ -10839,27 +10900,27 @@ msgstr "" "إذا تم تعطيل هذا الخيار ، فسيتم عرض تاريخ بداية الفعالية وانتهائها بدون " "توقيت اليوم." -#: pretix/base/settings.py:1389 +#: pretix/base/settings.py:1418 msgid "Hide all products that are sold out" msgstr "إخفاء جميع المنتجات التي تم بيعها" -#: pretix/base/settings.py:1399 pretix/control/forms/event.py:1691 +#: pretix/base/settings.py:1428 pretix/control/forms/event.py:1692 msgid "Publicly show how many tickets of a certain type are still available." msgstr "اعرض علنا عدد التذاكر من نوع معين والتي لا تزال متاحة." -#: pretix/base/settings.py:1408 +#: pretix/base/settings.py:1437 msgid "Ask search engines not to index the ticket shop" msgstr "اطلب من محركات البحث عدم فهرسة متجر التذاكر" -#: pretix/base/settings.py:1417 +#: pretix/base/settings.py:1446 msgid "Show variations of a product expanded by default" msgstr "إظهار الأشكال المختلفة للمنتج موسعة بشكل افتراضي" -#: pretix/base/settings.py:1426 +#: pretix/base/settings.py:1455 msgid "Enable waiting list" msgstr "تمكين قائمة الانتظار" -#: pretix/base/settings.py:1427 pretix/control/forms/event.py:1696 +#: pretix/base/settings.py:1456 pretix/control/forms/event.py:1697 #, fuzzy msgid "" "Once a ticket is sold out, people can add themselves to a waiting list. As " @@ -10871,11 +10932,11 @@ msgstr "" "تصبح التذكرة متاحة مرة أخرى ، سيتم حجزها لأول شخص في قائمة الانتظار وسيتلقى " "هذا الشخص إشعارا بالبريد الإلكتروني مع قسيمة يمكن استخدامها لشراء تذكرة." -#: pretix/base/settings.py:1438 +#: pretix/base/settings.py:1467 msgid "Automatic waiting list assignments" msgstr "مهام قائمة الانتظار التلقائية" -#: pretix/base/settings.py:1439 +#: pretix/base/settings.py:1468 #, fuzzy msgid "" "If ticket capacity becomes free, automatically create a voucher and send it " @@ -10889,11 +10950,11 @@ msgstr "" "البريد الإلكتروني تلقائيا ولكن يمكنك إرسالها يدويا عبر لوحة التحكم. إذا قمت " "بتعطيل قائمة الانتظار مع إبقاء هذا الخيار مفعلا ، فسيستمر إرسال التذاكر." -#: pretix/base/settings.py:1455 +#: pretix/base/settings.py:1484 msgid "Waiting list response time" msgstr "وقت استجابة قائمة الانتظار" -#: pretix/base/settings.py:1458 +#: pretix/base/settings.py:1487 #, fuzzy msgid "" "If a ticket voucher is sent to a person on the waiting list, it has to be " @@ -10904,13 +10965,13 @@ msgstr "" "خلال هذا العدد من الساعات حتى تنتهي صلاحيتها ويمكن إعادة تخصيصها إلى الشخص " "التالي في القائمة." -#: pretix/base/settings.py:1469 +#: pretix/base/settings.py:1498 #, fuzzy #| msgid "Enable waiting list" msgid "Disable waiting list" msgstr "تمكين قائمة الانتظار" -#: pretix/base/settings.py:1470 +#: pretix/base/settings.py:1499 msgid "" "The waiting list will be fully disabled after this date. This means that " "nobody can add themselves to the waiting list any more, but also that " @@ -10919,56 +10980,56 @@ msgid "" "remain active." msgstr "" -#: pretix/base/settings.py:1482 +#: pretix/base/settings.py:1511 msgid "Ask for a name" msgstr "اطلب الاسم" -#: pretix/base/settings.py:1483 +#: pretix/base/settings.py:1512 msgid "Ask for a name when signing up to the waiting list." msgstr "اطلب اسما عند التسجيل في قائمة الانتظار." -#: pretix/base/settings.py:1492 +#: pretix/base/settings.py:1521 msgid "Require name" msgstr "اطلب اسم" -#: pretix/base/settings.py:1493 +#: pretix/base/settings.py:1522 msgid "Require a name when signing up to the waiting list.." msgstr "طلب اسم عند التسجيل في قائمة الانتظار .." -#: pretix/base/settings.py:1503 +#: pretix/base/settings.py:1532 msgid "Ask for a phone number" msgstr "اطلب رقم هاتف" -#: pretix/base/settings.py:1504 +#: pretix/base/settings.py:1533 msgid "Ask for a phone number when signing up to the waiting list." msgstr "اطلب رقم هاتف عند التسجيل في قائمة الانتظار." -#: pretix/base/settings.py:1513 +#: pretix/base/settings.py:1542 msgid "Require phone number" msgstr "يلزم رقم الهاتف" -#: pretix/base/settings.py:1514 +#: pretix/base/settings.py:1543 msgid "Require a phone number when signing up to the waiting list.." msgstr "طلب رقم هاتف عند التسجيل في قائمة الانتظار .." -#: pretix/base/settings.py:1524 +#: pretix/base/settings.py:1553 msgid "Phone number explanation" msgstr "تفسير رقم الهاتف" -#: pretix/base/settings.py:1527 +#: pretix/base/settings.py:1556 msgid "" "If you ask for a phone number, explain why you do so and what you will use " "the phone number for." msgstr "" "إذا طلبت رقم هاتف ، اشرح سبب قيامك بذلك وما الذي ستستخدم رقم الهاتف لأجله." -#: pretix/base/settings.py:1539 +#: pretix/base/settings.py:1568 #, fuzzy #| msgid "Maximum number of items per order" msgid "Maximum number of entries per email address for the same product" msgstr "الحد الأقصى لعدد العناصر لكل طلب" -#: pretix/base/settings.py:1543 +#: pretix/base/settings.py:1572 msgid "" "With an increased limit, a customer may request more than one ticket for a " "specific product using the same, unique email address. However, regardless " @@ -10977,13 +11038,13 @@ msgid "" "ticket at a time." msgstr "" -#: pretix/base/settings.py:1555 +#: pretix/base/settings.py:1584 #, fuzzy #| msgid "Show number of tickets left" msgid "Show number of check-ins to customer" msgstr "إظهار عدد التذاكر المتبقية" -#: pretix/base/settings.py:1556 +#: pretix/base/settings.py:1585 msgid "" "With this option enabled, your customers will be able to see how many times " "they entered the event. This is usually not necessary, but might be useful " @@ -10993,19 +11054,19 @@ msgid "" "check-in lists." msgstr "" -#: pretix/base/settings.py:1569 +#: pretix/base/settings.py:1598 msgid "Allow users to download tickets" msgstr "السماح للمستخدمين بتحميل التذاكر" -#: pretix/base/settings.py:1570 +#: pretix/base/settings.py:1599 msgid "If this is off, nobody can download a ticket." msgstr "إذا تم تعطيل هذا الخيار، فلا يمكن لأي شخص تنزيل تذكرة." -#: pretix/base/settings.py:1579 +#: pretix/base/settings.py:1608 msgid "Download date" msgstr "تاريخ التنزيل" -#: pretix/base/settings.py:1580 +#: pretix/base/settings.py:1609 msgid "" "Ticket download will be offered after this date. If you use the event series " "feature and an order contains tickets for multiple event dates, download of " @@ -11015,13 +11076,13 @@ msgstr "" "الفعاليات وكان الطلب يحتوي على تذاكر لتواريخ فعاليات متعددة ، فسيكون تنزيل " "جميع التذاكر متاحا إذا سمح بذلك أحد تواريخ الفعالية على الأقل." -#: pretix/base/settings.py:1591 +#: pretix/base/settings.py:1620 #, fuzzy #| msgid "Generate tickets for add-on products" msgid "Generate tickets for add-on products and bundled products" msgstr "إنشاء تذاكر للمنتجات الإضافية" -#: pretix/base/settings.py:1592 +#: pretix/base/settings.py:1621 #, fuzzy #| msgid "" #| "By default, tickets are only issued for products selected individually, " @@ -11036,11 +11097,11 @@ msgstr "" "للمنتجات الإضافية. باستخدام هذا الخيار ، يتم إصدار تذكرة منفصلة لكل منتج " "إضافي أيضا." -#: pretix/base/settings.py:1605 +#: pretix/base/settings.py:1634 msgid "Generate tickets for all products" msgstr "إنشاء تذاكر لجميع المنتجات" -#: pretix/base/settings.py:1606 +#: pretix/base/settings.py:1635 msgid "" "If turned off, tickets are only issued for products that are marked as an " "\"admission ticket\"in the product settings. You can also turn off ticket " @@ -11050,11 +11111,11 @@ msgstr "" "\"بطاقة دخول\" عليها في إعدادات المنتج. يمكنك أيضا إيقاف تشغيل إصدار التذاكر " "لكل منتج على حدة." -#: pretix/base/settings.py:1618 +#: pretix/base/settings.py:1647 msgid "Generate tickets for pending orders" msgstr "إصدار تذاكر للطلبات المعلقة" -#: pretix/base/settings.py:1619 +#: pretix/base/settings.py:1648 msgid "" "If turned off, ticket downloads are only possible after an order has been " "marked as paid." @@ -11062,11 +11123,11 @@ msgstr "" "إذا تم إيقاف تشغيل هذا الخيار، فلن يكون تنزيل التذاكر ممكنا إلا بعد وضع " "علامة على الطلب على أنه مدفوع." -#: pretix/base/settings.py:1630 +#: pretix/base/settings.py:1659 msgid "Do not issue ticket before email address is validated" msgstr "لا تصدر تذكرة قبل التحقق من صحة عنوان البريد الإلكتروني" -#: pretix/base/settings.py:1631 +#: pretix/base/settings.py:1660 msgid "" "If turned on, tickets will not be offered for download directly after " "purchase. They will be attached to the payment confirmation email (if the " @@ -11079,13 +11140,13 @@ msgstr "" "جدا)، وسيتمكن العميل من تنزيلها من الصفحة بمجرد النقر على الرابط في البريد " "الإلكتروني. لا يؤثر على الطلبات المنفذة من خلال قنوات البيع الأخرى." -#: pretix/base/settings.py:1647 +#: pretix/base/settings.py:1676 #, fuzzy #| msgid "Quota availabilities" msgid "Low availability threshold" msgstr "توافر الحصة" -#: pretix/base/settings.py:1648 +#: pretix/base/settings.py:1677 msgid "" "If the availability of tickets falls below this percentage, the event (or a " "date, if it is an event series) will be highlighted to have low availability " @@ -11093,11 +11154,11 @@ msgid "" "availability will not be shown publicly." msgstr "" -#: pretix/base/settings.py:1662 +#: pretix/base/settings.py:1691 msgid "Show availability in event overviews" msgstr "إظهار التوفر في \"نبذة عن الفعالية\"" -#: pretix/base/settings.py:1663 +#: pretix/base/settings.py:1692 msgid "" "If checked, the list of events will show if events are sold out. This might " "make for longer page loading times if you have lots of events and the shown " @@ -11107,24 +11168,24 @@ msgstr "" "يؤدي هذا إلى إطالة وقت تحميل الصفحات إذا كان لديك الكثير من الفعاليات وقد " "تكون الحالة المعروضة قديمة لمدة تصل إلى دقيقتين." -#: pretix/base/settings.py:1676 pretix/base/settings.py:1684 +#: pretix/base/settings.py:1705 pretix/base/settings.py:1713 #: pretix/presale/templates/pretixpresale/fragment_calendar_nav.html:8 msgid "List" msgstr "قائمة" -#: pretix/base/settings.py:1677 pretix/base/settings.py:1685 +#: pretix/base/settings.py:1706 pretix/base/settings.py:1714 msgid "Week calendar" msgstr "تقويم الأسبوع" -#: pretix/base/settings.py:1678 pretix/base/settings.py:1686 +#: pretix/base/settings.py:1707 pretix/base/settings.py:1715 msgid "Month calendar" msgstr "تقويم الشهر" -#: pretix/base/settings.py:1682 +#: pretix/base/settings.py:1711 msgid "Default overview style" msgstr "نمط النظرة العامة الافتراضي" -#: pretix/base/settings.py:1688 +#: pretix/base/settings.py:1717 msgid "" "If your event series has more than 50 dates in the future, only the month or " "week calendar can be used." @@ -11132,13 +11193,13 @@ msgstr "" "إذا كانت سلسلة الفعاليات الخاصة بك تحتوي على أكثر من 50 تاريخا في المستقبل ، " "فيمكن استخدام تقويم الشهر أو الأسبوع فقط." -#: pretix/base/settings.py:1697 +#: pretix/base/settings.py:1726 #, fuzzy #| msgid "Hide all unavailable dates from calendar or list views" msgid "Show filter options for calendar or list view" msgstr "إخفاء جميع التواريخ غير المتاحة من التقويم أو طرق عرض القائمة" -#: pretix/base/settings.py:1698 +#: pretix/base/settings.py:1727 #, fuzzy #| msgid "The selected product is not active or has no price set." msgid "" @@ -11146,57 +11207,57 @@ msgid "" "settings." msgstr "المنتج المحدد غير نشط أو ليس له سعر محدد." -#: pretix/base/settings.py:1707 +#: pretix/base/settings.py:1736 msgid "Hide all unavailable dates from calendar or list views" msgstr "إخفاء جميع التواريخ غير المتاحة من التقويم أو طرق عرض القائمة" -#: pretix/base/settings.py:1708 pretix/base/settings.py:1719 +#: pretix/base/settings.py:1737 pretix/base/settings.py:1748 msgid "" "This option currently only affects the calendar of this event series, not " "the organizer-wide calendar." msgstr "" -#: pretix/base/settings.py:1718 +#: pretix/base/settings.py:1747 #, fuzzy #| msgid "Hide all unavailable dates from calendar or list views" msgid "Hide all past dates from calendar" msgstr "إخفاء جميع التواريخ غير المتاحة من التقويم أو طرق عرض القائمة" -#: pretix/base/settings.py:1730 pretix/base/settings.py:1739 +#: pretix/base/settings.py:1759 pretix/base/settings.py:1768 msgid "No modifications after order was submitted" msgstr "" -#: pretix/base/settings.py:1731 pretix/base/settings.py:1740 +#: pretix/base/settings.py:1760 pretix/base/settings.py:1769 #, fuzzy #| msgid "Only pending or paid orders can be changed." msgid "Only the person who ordered can make changes" msgstr "يمكن فقط تغيير الطلبات المعلقة أو المدفوعة." -#: pretix/base/settings.py:1732 pretix/base/settings.py:1741 +#: pretix/base/settings.py:1761 pretix/base/settings.py:1770 msgid "Both the attendee and the person who ordered can make changes" msgstr "" -#: pretix/base/settings.py:1736 +#: pretix/base/settings.py:1765 #, fuzzy #| msgid "Allow customers to modify their information after they checked in." msgid "Allow customers to modify their information" msgstr "اسمح للعملاء بتعديل معلوماتهم بعد تمام التسجيل." -#: pretix/base/settings.py:1751 +#: pretix/base/settings.py:1780 msgid "Allow customers to modify their information after they checked in." msgstr "اسمح للعملاء بتعديل معلوماتهم بعد تمام التسجيل." -#: pretix/base/settings.py:1752 +#: pretix/base/settings.py:1781 msgid "" "By default, no more modifications are possible for an order as soon as one " "of the tickets in the order has been checked in." msgstr "" -#: pretix/base/settings.py:1762 +#: pretix/base/settings.py:1791 msgid "Last date of modifications" msgstr "آخر موعد لإجراء التعديلات" -#: pretix/base/settings.py:1763 +#: pretix/base/settings.py:1792 msgid "" "The last date users can modify details of their orders, such as attendee " "names or answers to questions. If you use the event series feature and an " @@ -11207,58 +11268,58 @@ msgstr "" "الحضور أو إجابات الأسئلة. إذا كنت تستخدم ميزة سلسلة الفعاليات وكان الطلب " "يحتوي على تذاكر لتواريخ فعاليات متعددة ، فسيتم استخدام أقرب تاريخ." -#: pretix/base/settings.py:1774 +#: pretix/base/settings.py:1803 msgid "Customers can change the variation of the products they purchased" msgstr "يمكن للعملاء تغيير تنوع المنتجات التي قاموا بشرائها" -#: pretix/base/settings.py:1783 +#: pretix/base/settings.py:1812 #, fuzzy #| msgid "Customers can cancel their paid orders" msgid "Customers can change their selected add-on products" msgstr "يمكن للعملاء إلغاء طلباتهم المدفوعة" -#: pretix/base/settings.py:1793 pretix/base/settings.py:1804 +#: pretix/base/settings.py:1822 pretix/base/settings.py:1833 msgid "" "Only allow changes if the resulting price is higher or equal than the " "previous price." msgstr "السماح بالتغييرات فقط إذا كان السعر الناتج أعلى أو يساوي السعر السابق." -#: pretix/base/settings.py:1794 pretix/base/settings.py:1805 +#: pretix/base/settings.py:1823 pretix/base/settings.py:1834 msgid "" "Only allow changes if the resulting price is higher than the previous price." msgstr "السماح بالتغييرات فقط إذا كان السعر الناتج أعلى من السعر السابق." -#: pretix/base/settings.py:1795 pretix/base/settings.py:1806 +#: pretix/base/settings.py:1824 pretix/base/settings.py:1835 msgid "" "Only allow changes if the resulting price is equal to the previous price." msgstr "السماح بالتغييرات فقط إذا كان السعر الناتج أعلى من السعر السابق." -#: pretix/base/settings.py:1796 pretix/base/settings.py:1807 +#: pretix/base/settings.py:1825 pretix/base/settings.py:1836 msgid "" "Allow changes regardless of price, as long as no refund is required (i.e. " "the resulting price is not lower than what has already been paid)." msgstr "" -#: pretix/base/settings.py:1798 pretix/base/settings.py:1809 +#: pretix/base/settings.py:1827 pretix/base/settings.py:1838 msgid "Allow changes regardless of price, even if this results in a refund." msgstr "" "السماح بالتغييرات بغض النظر عن السعر ، حتى لو أدى ذلك إلى استرداد الأموال." -#: pretix/base/settings.py:1802 +#: pretix/base/settings.py:1831 msgid "Requirement for changed prices" msgstr "شرط تغيير الأسعار" -#: pretix/base/settings.py:1820 +#: pretix/base/settings.py:1849 msgid "Do not allow changes after" msgstr "لا تسمح بالتغييرات بعد" -#: pretix/base/settings.py:1829 +#: pretix/base/settings.py:1858 #, fuzzy #| msgid "The payment for this invoice has already been received." msgid "Allow change even though the ticket has already been checked in" msgstr "تم إستلام قيمة هذه الفاتورة مسبقا." -#: pretix/base/settings.py:1830 +#: pretix/base/settings.py:1859 msgid "" "By default, order changes are disabled after any ticket in the order has " "been checked in. If you check this box, this requirement is lifted. It is " @@ -11267,11 +11328,11 @@ msgid "" "limitation on price changes above." msgstr "" -#: pretix/base/settings.py:1842 +#: pretix/base/settings.py:1871 msgid "Allow individual attendees to change their ticket" msgstr "" -#: pretix/base/settings.py:1843 +#: pretix/base/settings.py:1872 msgid "" "By default, only the person who ordered the tickets can make any changes. If " "you check this box, individual attendees can also make changes. However, " @@ -11280,45 +11341,45 @@ msgid "" "customer." msgstr "" -#: pretix/base/settings.py:1855 +#: pretix/base/settings.py:1884 msgid "Customers can cancel their unpaid orders" msgstr "يمكن للعملاء إلغاء طلباتهم غير المدفوعة" -#: pretix/base/settings.py:1867 +#: pretix/base/settings.py:1896 #, fuzzy #| msgid "Keep a fixed cancellation fee" msgid "Charge a fixed cancellation fee" msgstr "احتفظ برسوم إلغاء ثابتة" -#: pretix/base/settings.py:1868 pretix/base/settings.py:1879 -#: pretix/base/settings.py:1893 +#: pretix/base/settings.py:1897 pretix/base/settings.py:1908 +#: pretix/base/settings.py:1922 msgid "" "Only affects orders pending payments, a cancellation fee for free orders is " "never charged. Note that it will be your responsibility to claim the " "cancellation fee from the user." msgstr "" -#: pretix/base/settings.py:1878 +#: pretix/base/settings.py:1907 #, fuzzy #| msgid "Keep payment, shipping and service fees" msgid "Charge payment, shipping and service fees" msgstr "احتفظ برسوم السداد والشحن والخدمة" -#: pretix/base/settings.py:1892 +#: pretix/base/settings.py:1921 #, fuzzy #| msgid "Keep a percentual cancellation fee" msgid "Charge a percentual cancellation fee" msgstr "احتفظ بنسبة رسوم الإلغاء" -#: pretix/base/settings.py:1903 pretix/base/settings.py:2042 +#: pretix/base/settings.py:1932 pretix/base/settings.py:2071 msgid "Do not allow cancellations after" msgstr "لا تسمح بالإلغاء بعد" -#: pretix/base/settings.py:1912 +#: pretix/base/settings.py:1941 msgid "Customers can cancel their paid orders" msgstr "يمكن للعملاء إلغاء طلباتهم المدفوعة" -#: pretix/base/settings.py:1913 +#: pretix/base/settings.py:1942 msgid "" "Paid money will be automatically paid back if the payment method allows it. " "Otherwise, a manual refund will be created for you to process manually." @@ -11326,29 +11387,29 @@ msgstr "" "سيتم رد الأموال المدفوعة تلقائيا إذا كانت طريقة الدفع تسمح بذلك. وبخلاف " "ذلك ، سيتم إنشاء استرداد يدوي لتتم معالجته يدويا." -#: pretix/base/settings.py:1926 pretix/control/forms/orders.py:909 +#: pretix/base/settings.py:1955 pretix/control/forms/orders.py:909 msgid "Keep a fixed cancellation fee" msgstr "احتفظ برسوم إلغاء ثابتة" -#: pretix/base/settings.py:1935 +#: pretix/base/settings.py:1964 msgid "Keep payment, shipping and service fees" msgstr "احتفظ برسوم السداد والشحن والخدمة" -#: pretix/base/settings.py:1947 pretix/control/forms/orders.py:920 +#: pretix/base/settings.py:1976 pretix/control/forms/orders.py:920 msgid "Keep a percentual cancellation fee" msgstr "احتفظ بنسبة رسوم الإلغاء" -#: pretix/base/settings.py:1956 +#: pretix/base/settings.py:1985 msgid "Allow customers to voluntarily choose a lower refund" msgstr "السماح للعملاء طواعية باختيار استرداد أقل" -#: pretix/base/settings.py:1957 +#: pretix/base/settings.py:1986 msgid "" "With this option enabled, your customers can choose to get a smaller refund " "to support you." msgstr "مع تمكين هذا الخيار ، يمكن لعملائك اختيار استرداد مبلغ أصغر لدعمك." -#: pretix/base/settings.py:1962 +#: pretix/base/settings.py:1991 msgid "" "However, if you want us to help keep the lights on here, please consider " "using the slider below to request a smaller refund. Thank you!" @@ -11356,12 +11417,12 @@ msgstr "" "إذا كنت تريد منا المساعدة في استمرار النشاط، فيرجى استخدام شريط التمرير " "أدناه لطلب استرداد مبلغ أقل. شكرا لك!" -#: pretix/base/settings.py:1969 +#: pretix/base/settings.py:1998 #, fuzzy msgid "Voluntary lower refund explanation" msgstr "تبرير تخفيض المبلغ الطوعي" -#: pretix/base/settings.py:1972 +#: pretix/base/settings.py:2001 msgid "" "This text will be shown in between the explanation of how the refunds work " "and the slider which your customers can use to choose the amount they would " @@ -11372,11 +11433,11 @@ msgstr "" "الذي يمكن لعملائك استخدامه لاختيار المبلغ الذي يرغبون في استلامه. يمكنك " "استخدامه على سبيل المثال لشرح اختيار استرداد أقل مما سيساعد مؤسستك." -#: pretix/base/settings.py:1987 +#: pretix/base/settings.py:2016 msgid "Step size for reduction amount" msgstr "حجم مبلغ التخفيض" -#: pretix/base/settings.py:1988 +#: pretix/base/settings.py:2017 msgid "" "By default, customers can choose an arbitrary amount for you to keep. If you " "set this to e.g. 10, they will only be able to choose values in increments " @@ -11386,7 +11447,7 @@ msgstr "" "ذلك على سبيل المثال 10 ، سيكونون قادرين فقط على اختيار القيم بزيادات قدرها " "10." -#: pretix/base/settings.py:1998 +#: pretix/base/settings.py:2027 msgid "" "Customers can only request a cancellation that needs to be approved by the " "event organizer before the order is canceled and a refund is issued." @@ -11394,68 +11455,68 @@ msgstr "" "يمكن للعملاء فقط طلب الإلغاء الذي يحتاج إلى موافقة منظم الفالية قبل إلغاء " "الطلب وإصدار أمر الاسترداد." -#: pretix/base/settings.py:2008 +#: pretix/base/settings.py:2037 msgid "" "Do not show the cancellation fee to users when they request cancellation." msgstr "" -#: pretix/base/settings.py:2017 pretix/base/settings.py:2027 +#: pretix/base/settings.py:2046 pretix/base/settings.py:2056 msgid "All refunds are issued to the original payment method" msgstr "يتم إصدار جميع المبالغ المستردة بطريقة الدفع الأصلية" -#: pretix/base/settings.py:2018 pretix/base/settings.py:2028 +#: pretix/base/settings.py:2047 pretix/base/settings.py:2057 msgid "" "Customers can choose between a gift card and a refund to their payment method" msgstr "" "يمكن للعملاء الاختيار بين بطاقة هدايا واسترداد الأموال بطريقة الدفع الخاصة " "بهم" -#: pretix/base/settings.py:2019 pretix/base/settings.py:2029 +#: pretix/base/settings.py:2048 pretix/base/settings.py:2058 msgid "All refunds are issued as gift cards" msgstr "يتم إصدار جميع المبالغ المستردة كبطاقات هدايا" -#: pretix/base/settings.py:2020 pretix/base/settings.py:2030 +#: pretix/base/settings.py:2049 pretix/base/settings.py:2059 msgid "Do not handle refunds automatically at all" msgstr "" -#: pretix/base/settings.py:2025 +#: pretix/base/settings.py:2054 #: pretix/control/templates/pretixcontrol/order/index.html:149 msgid "Refund method" msgstr "طريقة الاسترداد" -#: pretix/base/settings.py:2051 pretix/base/settings.py:2064 +#: pretix/base/settings.py:2080 pretix/base/settings.py:2093 #, fuzzy #| msgid "Generate cancellation" msgid "Terms of cancellation" msgstr "توليد إلغاء" -#: pretix/base/settings.py:2054 +#: pretix/base/settings.py:2083 msgid "" "This text will be shown when cancellation is allowed for a paid order. Leave " "empty if you want pretix to automatically generate the terms of cancellation " "based on your settings." msgstr "" -#: pretix/base/settings.py:2067 +#: pretix/base/settings.py:2096 msgid "" "This text will be shown when cancellation is allowed for an unpaid or free " "order. Leave empty if you want pretix to automatically generate the terms of " "cancellation based on your settings." msgstr "" -#: pretix/base/settings.py:2077 pretix/control/forms/event.py:1719 +#: pretix/base/settings.py:2106 pretix/control/forms/event.py:1720 msgid "Contact address" msgstr "عنوان الإتصال" -#: pretix/base/settings.py:2078 pretix/control/forms/event.py:1721 +#: pretix/base/settings.py:2107 pretix/control/forms/event.py:1722 msgid "We'll show this publicly to allow attendees to contact you." msgstr "سيظهر هذا علنا للسماح للحاضرين بالاتصال بك." -#: pretix/base/settings.py:2086 pretix/control/forms/event.py:1713 +#: pretix/base/settings.py:2115 pretix/control/forms/event.py:1714 msgid "Imprint URL" msgstr "رابط موقع مقدم الخدمة" -#: pretix/base/settings.py:2087 pretix/control/forms/event.py:1714 +#: pretix/base/settings.py:2116 pretix/control/forms/event.py:1715 msgid "" "This should point e.g. to a part of your website that has your contact " "details and legal information." @@ -11463,11 +11524,11 @@ msgstr "" "ينبغي أن يشير هذا إلى على سبيل المثال جزء من موقع الويب الخاص بك الذي يحتوي " "على تفاصيل الاتصال الخاصة بك والمعلومات القانونية." -#: pretix/base/settings.py:2097 +#: pretix/base/settings.py:2126 msgid "Privacy Policy URL" msgstr "" -#: pretix/base/settings.py:2098 +#: pretix/base/settings.py:2127 #, fuzzy #| msgid "" #| "This should point e.g. to a part of your website that has your contact " @@ -11479,13 +11540,13 @@ msgstr "" "ينبغي أن يشير هذا إلى على سبيل المثال جزء من موقع الويب الخاص بك الذي يحتوي " "على تفاصيل الاتصال الخاصة بك والمعلومات القانونية." -#: pretix/base/settings.py:2109 +#: pretix/base/settings.py:2138 #, fuzzy #| msgid "Account information" msgid "Accessibility information URL" msgstr "معلومات الحساب" -#: pretix/base/settings.py:2110 +#: pretix/base/settings.py:2139 #, fuzzy #| msgid "" #| "This should point e.g. to a part of your website that has your contact " @@ -11497,7 +11558,7 @@ msgstr "" "ينبغي أن يشير هذا إلى على سبيل المثال جزء من موقع الويب الخاص بك الذي يحتوي " "على تفاصيل الاتصال الخاصة بك والمعلومات القانونية." -#: pretix/base/settings.py:2117 +#: pretix/base/settings.py:2146 #: pretix/presale/templates/pretixpresale/event/base.html:228 #: pretix/presale/templates/pretixpresale/event/base.html:233 #: pretix/presale/templates/pretixpresale/organizers/accessibility.html:6 @@ -11508,23 +11569,23 @@ msgstr "" msgid "Accessibility information" msgstr "معلومات الحساب" -#: pretix/base/settings.py:2121 +#: pretix/base/settings.py:2150 #, fuzzy #| msgid "Account information" msgid "Accessibility information title" msgstr "معلومات الحساب" -#: pretix/base/settings.py:2131 +#: pretix/base/settings.py:2160 #, fuzzy #| msgid "Account information" msgid "Accessibility information text" msgstr "معلومات الحساب" -#: pretix/base/settings.py:2152 +#: pretix/base/settings.py:2181 msgid "Attach ticket files" msgstr "إرفق ملفات التذكرة" -#: pretix/base/settings.py:2154 +#: pretix/base/settings.py:2183 #, python-brace-format msgid "" "Tickets will never be attached if they're larger than {size} to avoid email " @@ -11533,36 +11594,36 @@ msgstr "" "لن يتم إرفاق التذاكر أبدا إذا كان حجمها أكبر من {size} لتجنب مشاكل إرسال " "البريد الإلكتروني." -#: pretix/base/settings.py:2165 pretix/plugins/sendmail/forms.py:201 +#: pretix/base/settings.py:2194 pretix/plugins/sendmail/forms.py:201 #: pretix/plugins/sendmail/models.py:270 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html:66 msgid "Attach calendar files" msgstr "إرفق ملفات التقويم" -#: pretix/base/settings.py:2166 +#: pretix/base/settings.py:2195 msgid "" "If enabled, we will attach an .ics calendar file to order confirmation " "emails." msgstr "" "في حالة التمكين، سنرفق ملف تقويم ics. لرسائل البريد الإلكتروني لتأكيد الطلب." -#: pretix/base/settings.py:2175 +#: pretix/base/settings.py:2204 msgid "Attach calendar files only after order has been paid" msgstr "" -#: pretix/base/settings.py:2176 +#: pretix/base/settings.py:2205 msgid "" "Use this if you e.g. put a private access link into the calendar file to " "make sure people only receive it after their payment was confirmed." msgstr "" -#: pretix/base/settings.py:2185 +#: pretix/base/settings.py:2214 #, fuzzy #| msgid "Product description" msgid "Event description" msgstr "وصف المنتج" -#: pretix/base/settings.py:2188 +#: pretix/base/settings.py:2217 msgid "" "You can use this to share information with your attendees, such as travel " "information or the link to a digital event. If you keep it empty, we will " @@ -11572,11 +11633,11 @@ msgid "" "people." msgstr "" -#: pretix/base/settings.py:2201 +#: pretix/base/settings.py:2230 msgid "Subject prefix" msgstr "الرمز الذي يسبق الموضوع" -#: pretix/base/settings.py:2202 +#: pretix/base/settings.py:2231 msgid "" "This will be prepended to the subject of all outgoing emails, formatted as " "[prefix]. Choose, for example, a short form of your event name." @@ -11584,23 +11645,23 @@ msgstr "" "سيتم إضافة هذا مسبقا إلى موضوع جميع رسائل البريد الإلكتروني الصادرة ، محدد " "مثل [prefix]. اختر ، على سبيل المثال ، مسمى قصير لاسم الفعالية الخاصة بك." -#: pretix/base/settings.py:2216 pretix/control/forms/mailsetup.py:37 +#: pretix/base/settings.py:2245 pretix/control/forms/mailsetup.py:37 #: pretix/control/forms/mailsetup.py:119 #: pretix/control/templates/pretixcontrol/event/mail.html:39 #: pretix/control/templates/pretixcontrol/organizers/mail.html:40 msgid "Sender address" msgstr "عنوان المرسل" -#: pretix/base/settings.py:2217 pretix/control/forms/mailsetup.py:38 +#: pretix/base/settings.py:2246 pretix/control/forms/mailsetup.py:38 #: pretix/control/forms/mailsetup.py:120 msgid "Sender address for outgoing emails" msgstr "عنوان المرسل لرسائل البريد الإلكتروني الصادرة" -#: pretix/base/settings.py:2226 +#: pretix/base/settings.py:2255 msgid "Sender name" msgstr "اسم المرسل" -#: pretix/base/settings.py:2227 +#: pretix/base/settings.py:2256 msgid "" "Sender name used in conjunction with the sender address for outgoing emails. " "Defaults to your event name." @@ -11608,20 +11669,20 @@ msgstr "" "يتم استخدام اسم المرسل مع عنوان المرسل لرسائل البريد الإلكتروني الصادرة. " "افتراضات لاسم الفعالية الخاصة بك." -#: pretix/base/settings.py:2245 pretix/base/settings.py:2302 -#: pretix/base/settings.py:2319 pretix/base/settings.py:2337 +#: pretix/base/settings.py:2274 pretix/base/settings.py:2331 +#: pretix/base/settings.py:2348 pretix/base/settings.py:2366 #, python-brace-format msgid "Your order: {code}" msgstr "طلبك هو: {code}" -#: pretix/base/settings.py:2249 pretix/base/settings.py:2282 -#: pretix/base/settings.py:2387 pretix/base/settings.py:2620 -#: pretix/base/settings.py:2657 +#: pretix/base/settings.py:2278 pretix/base/settings.py:2311 +#: pretix/base/settings.py:2416 pretix/base/settings.py:2649 +#: pretix/base/settings.py:2686 #, python-brace-format msgid "Your event registration: {code}" msgstr "تسجيل الفعالية الخاصة بك:{code}" -#: pretix/base/settings.py:2253 +#: pretix/base/settings.py:2282 #, python-brace-format msgid "" "Hello,\n" @@ -11646,12 +11707,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2266 +#: pretix/base/settings.py:2295 #, python-brace-format msgid "Your orders for {event}" msgstr "طلباتكم ل{event}" -#: pretix/base/settings.py:2270 +#: pretix/base/settings.py:2299 #, python-brace-format msgid "" "Hello,\n" @@ -11674,7 +11735,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2286 +#: pretix/base/settings.py:2315 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -11697,7 +11758,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2306 +#: pretix/base/settings.py:2335 #, python-brace-format msgid "" "Hello,\n" @@ -11722,7 +11783,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2323 +#: pretix/base/settings.py:2352 #, python-brace-format msgid "" "Hello,\n" @@ -11749,7 +11810,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2341 +#: pretix/base/settings.py:2370 #, python-brace-format msgid "" "Hello,\n" @@ -11779,13 +11840,13 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2359 +#: pretix/base/settings.py:2388 #, fuzzy #| msgid "Split into new order" msgid "Attachment for new orders" msgstr "تنقسم إلى النظام الجديد" -#: pretix/base/settings.py:2364 +#: pretix/base/settings.py:2393 #, python-brace-format msgid "" "This file will be attached to the first email that we send for every new " @@ -11797,7 +11858,7 @@ msgid "" "vital email going to spam, you can only upload PDF files of up to {size} MB." msgstr "" -#: pretix/base/settings.py:2391 +#: pretix/base/settings.py:2420 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -11820,12 +11881,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2403 +#: pretix/base/settings.py:2432 #, python-brace-format msgid "Your order has been changed: {code}" msgstr "تم تغيير طلبك: {code}" -#: pretix/base/settings.py:2407 +#: pretix/base/settings.py:2436 #, python-brace-format msgid "" "Hello,\n" @@ -11848,12 +11909,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2419 +#: pretix/base/settings.py:2448 #, python-brace-format msgid "Payment received for your order: {code}" msgstr "تم إستلام الدفع لطلبك: {code}" -#: pretix/base/settings.py:2423 +#: pretix/base/settings.py:2452 #, python-brace-format msgid "" "Hello,\n" @@ -11880,12 +11941,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2441 +#: pretix/base/settings.py:2470 #, python-brace-format msgid "Event registration confirmed: {code}" msgstr "تم تأكيد تسجيل الفعالية: {code}" -#: pretix/base/settings.py:2445 +#: pretix/base/settings.py:2474 #, python-brace-format msgid "" "Hello {attendee_name},\n" @@ -11908,12 +11969,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2462 pretix/control/forms/event.py:1129 -#: pretix/control/forms/event.py:1243 pretix/plugins/sendmail/models.py:275 +#: pretix/base/settings.py:2491 pretix/control/forms/event.py:1130 +#: pretix/control/forms/event.py:1244 pretix/plugins/sendmail/models.py:275 msgid "Number of days" msgstr "عدد الأيام" -#: pretix/base/settings.py:2464 pretix/control/forms/event.py:1132 +#: pretix/base/settings.py:2493 pretix/control/forms/event.py:1133 msgid "" "This email will be sent out this many days before the order expires. If the " "value is 0, the mail will never be sent." @@ -11921,12 +11982,12 @@ msgstr "" "سيتم إرسال هذا البريد الإلكتروني من هذا عدة أيام قبل انتهاء صلاحية النظام. " "إذا كانت القيمة 0، لن يتم إرسال البريد." -#: pretix/base/settings.py:2472 +#: pretix/base/settings.py:2501 #, python-brace-format msgid "Your order is about to expire: {code}" msgstr "طلبك على وشك الانتهاء: {code}" -#: pretix/base/settings.py:2476 +#: pretix/base/settings.py:2505 #, python-brace-format msgid "" "Hello,\n" @@ -11953,12 +12014,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2490 +#: pretix/base/settings.py:2519 #, python-brace-format msgid "Your order is pending payment: {code}" msgstr "طلبك في انتظار الدفع: {code}" -#: pretix/base/settings.py:2494 +#: pretix/base/settings.py:2523 #, fuzzy, python-brace-format #| msgid "" #| "Hello,\n" @@ -11996,13 +12057,13 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2507 +#: pretix/base/settings.py:2536 #, fuzzy, python-brace-format #| msgid "Payment received for your order: {code}" msgid "Incomplete payment received: {code}" msgstr "تم إستلام الدفع لطلبك: {code}" -#: pretix/base/settings.py:2511 +#: pretix/base/settings.py:2540 #, fuzzy, python-brace-format #| msgid "" #| "Hello,\n" @@ -12043,13 +12104,13 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2527 +#: pretix/base/settings.py:2556 #, fuzzy, python-brace-format #| msgid "Payment received for your order: {code}" msgid "Payment failed for your order: {code}" msgstr "تم إستلام الدفع لطلبك: {code}" -#: pretix/base/settings.py:2531 +#: pretix/base/settings.py:2560 #, fuzzy, python-brace-format #| msgid "" #| "Hello,\n" @@ -12090,12 +12151,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2545 +#: pretix/base/settings.py:2574 #, python-brace-format msgid "You have been selected from the waitinglist for {event}" msgstr "لقد تم اختيارك من قائمة الانتظار ل{event}" -#: pretix/base/settings.py:2549 +#: pretix/base/settings.py:2578 #, fuzzy, python-brace-format #| msgid "" #| "Hello,\n" @@ -12167,12 +12228,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2578 +#: pretix/base/settings.py:2607 #, python-brace-format msgid "Order canceled: {code}" msgstr "تم إلغاء الطلب: {code}" -#: pretix/base/settings.py:2582 +#: pretix/base/settings.py:2611 #, python-brace-format msgid "" "Hello,\n" @@ -12199,12 +12260,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2596 +#: pretix/base/settings.py:2625 #, python-brace-format msgid "Order approved and awaiting payment: {code}" msgstr "تمت الموافقة على الطلب وفي انتظار الدفع: {code}" -#: pretix/base/settings.py:2600 +#: pretix/base/settings.py:2629 #, python-brace-format msgid "" "Hello,\n" @@ -12234,7 +12295,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2624 pretix/base/settings.py:2661 +#: pretix/base/settings.py:2653 pretix/base/settings.py:2690 #, fuzzy, python-brace-format #| msgid "" #| "Hello {attendee_name},\n" @@ -12267,12 +12328,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2636 +#: pretix/base/settings.py:2665 #, python-brace-format msgid "Order approved and confirmed: {code}" msgstr "تمت الموافقة على الطلب وتأكيده: {code}" -#: pretix/base/settings.py:2640 +#: pretix/base/settings.py:2669 #, python-brace-format msgid "" "Hello,\n" @@ -12297,12 +12358,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2673 +#: pretix/base/settings.py:2702 #, python-brace-format msgid "Order denied: {code}" msgstr "الطلب مرفوض: {code}" -#: pretix/base/settings.py:2677 +#: pretix/base/settings.py:2706 #, python-brace-format msgid "" "Hello,\n" @@ -12331,7 +12392,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2692 +#: pretix/base/settings.py:2721 #, python-brace-format msgid "" "Hello,\n" @@ -12350,13 +12411,13 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2702 +#: pretix/base/settings.py:2731 #, fuzzy, python-brace-format #| msgid "Invoice number" msgid "Invoice {invoice_number}" msgstr "رقم الفاتورة" -#: pretix/base/settings.py:2706 +#: pretix/base/settings.py:2735 #, fuzzy, python-brace-format #| msgid "" #| "Hello,\n" @@ -12388,12 +12449,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2724 pretix/base/settings.py:2740 +#: pretix/base/settings.py:2753 pretix/base/settings.py:2769 #, python-brace-format msgid "Your ticket is ready for download: {code}" msgstr "تذكرتك جاهزة للتنزيل: {code}" -#: pretix/base/settings.py:2728 +#: pretix/base/settings.py:2757 #, fuzzy, python-brace-format #| msgid "" #| "Hello {attendee_name},\n" @@ -12426,7 +12487,7 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2744 +#: pretix/base/settings.py:2773 #, python-brace-format msgid "" "Hello,\n" @@ -12449,12 +12510,12 @@ msgstr "" "تحياتنا،\n" "فريق {event}" -#: pretix/base/settings.py:2756 +#: pretix/base/settings.py:2785 #, python-brace-format msgid "Activate your account at {organizer}" msgstr "قم بتفعيل حسابك على {organizer}" -#: pretix/base/settings.py:2760 +#: pretix/base/settings.py:2789 #, python-brace-format msgid "" "Hello {name},\n" @@ -12489,12 +12550,12 @@ msgstr "" "\n" "فريق {organizer} الخاص بك" -#: pretix/base/settings.py:2778 +#: pretix/base/settings.py:2807 #, python-brace-format msgid "Confirm email address for your account at {organizer}" msgstr "تأكيد عنوان البريد الإلكتروني لحسابك على {organizer}" -#: pretix/base/settings.py:2782 +#: pretix/base/settings.py:2811 #, python-brace-format msgid "" "Hello {name},\n" @@ -12529,12 +12590,12 @@ msgstr "" "\n" "فريق {organizer} الخاص بك" -#: pretix/base/settings.py:2800 +#: pretix/base/settings.py:2829 #, python-brace-format msgid "Set a new password for your account at {organizer}" msgstr "قم بتعيين كلمة مرور جديدة لحسابك على {organizer}" -#: pretix/base/settings.py:2804 +#: pretix/base/settings.py:2833 #, python-brace-format msgid "" "Hello {name},\n" @@ -12569,57 +12630,57 @@ msgstr "" "\n" "فريق {organizer} الخاص بك" -#: pretix/base/settings.py:2856 pretix/base/settings.py:2863 -#: pretix/base/settings.py:2877 pretix/base/settings.py:2885 -#: pretix/base/settings.py:2899 pretix/base/settings.py:2907 -#: pretix/base/settings.py:2921 pretix/base/settings.py:2928 +#: pretix/base/settings.py:2885 pretix/base/settings.py:2892 +#: pretix/base/settings.py:2906 pretix/base/settings.py:2914 +#: pretix/base/settings.py:2928 pretix/base/settings.py:2936 +#: pretix/base/settings.py:2950 pretix/base/settings.py:2957 msgid "Please enter the hexadecimal code of a color, e.g. #990000." msgstr "الرجاء إدخال رمز عشري للون على سبيل المثال # 990000." -#: pretix/base/settings.py:2860 +#: pretix/base/settings.py:2889 msgid "Primary color" msgstr "لون أساسي" -#: pretix/base/settings.py:2881 +#: pretix/base/settings.py:2910 msgid "Accent color for success" msgstr "درجة لون لنجاح العملية" -#: pretix/base/settings.py:2882 +#: pretix/base/settings.py:2911 msgid "We strongly suggest to use a shade of green." msgstr "نقترح بشدة استخدام الظل الأخضر." -#: pretix/base/settings.py:2903 +#: pretix/base/settings.py:2932 msgid "Accent color for errors" msgstr "درجة لون الأخطاء" -#: pretix/base/settings.py:2904 +#: pretix/base/settings.py:2933 msgid "We strongly suggest to use a shade of red." msgstr "نقترح بشدة استخدام الظل الأحمر." -#: pretix/base/settings.py:2925 +#: pretix/base/settings.py:2954 msgid "Page background color" msgstr "لون خلفية الصفحة" -#: pretix/base/settings.py:2940 +#: pretix/base/settings.py:2969 msgid "Use round edges" msgstr "استخدم حواف مستديرة" -#: pretix/base/settings.py:2949 +#: pretix/base/settings.py:2978 msgid "" "Use native spinners in the widget instead of custom ones for numeric inputs " "such as quantity." msgstr "" -#: pretix/base/settings.py:2960 +#: pretix/base/settings.py:2989 msgid "Only respected by modern browsers." msgstr "يستخدم للمتصفحات الحديثة فقط." -#: pretix/base/settings.py:2971 pretix/base/settings.py:3015 +#: pretix/base/settings.py:3000 pretix/base/settings.py:3044 #: pretix/control/forms/organizer.py:523 msgid "Header image" msgstr "صورة رأسية" -#: pretix/base/settings.py:2974 +#: pretix/base/settings.py:3003 #, fuzzy #| msgid "" #| "If you provide a logo image, we will by default not show your event name " @@ -12639,26 +12700,26 @@ msgstr "" "120 بكسل. يمكنك زيادة الحجم من خلال الإعداد أدناه. نوصي بعدم استخدام " "التفاصيل الصغيرة على الصورة حيث سيتغير حجمها على الشاشات الصغيرة." -#: pretix/base/settings.py:2995 pretix/base/settings.py:3038 +#: pretix/base/settings.py:3024 pretix/base/settings.py:3067 msgid "Use header image in its full size" msgstr "استخدم الصورة الرأسية بحجمها الكامل" -#: pretix/base/settings.py:2996 pretix/base/settings.py:3039 +#: pretix/base/settings.py:3025 pretix/base/settings.py:3068 msgid "We recommend to upload a picture at least 1170 pixels wide." msgstr "نوصي بتحميل صورة لا يقل عرضها عن 1170 بكسل." -#: pretix/base/settings.py:3005 +#: pretix/base/settings.py:3034 msgid "Show event title even if a header image is present" msgstr "أعرض عنوان الفعالية حتى إذا كانت الصورة الرأسية موجودة" -#: pretix/base/settings.py:3006 +#: pretix/base/settings.py:3035 msgid "" "The title will only be shown on the event front page. If no header image is " "uploaded for the event, but the header image from the organizer profile is " "used, this option will be ignored and the event title will always be shown." msgstr "" -#: pretix/base/settings.py:3018 pretix/control/forms/organizer.py:527 +#: pretix/base/settings.py:3047 pretix/control/forms/organizer.py:527 #, fuzzy #| msgid "" #| "If you provide a logo image, we will by default not show your " @@ -12678,15 +12739,15 @@ msgstr "" "الحجم من الإعداد أدناه. نوصي بعدم استخدام التفاصيل الصغيرة على الصورة حيث " "سيتم تغيير حجمها على الشاشات الصغيرة." -#: pretix/base/settings.py:3048 +#: pretix/base/settings.py:3077 msgid "Use header image also for events without an individually uploaded logo" msgstr "" -#: pretix/base/settings.py:3056 +#: pretix/base/settings.py:3085 msgid "Favicon" msgstr "فافيكون" -#: pretix/base/settings.py:3059 +#: pretix/base/settings.py:3088 msgid "" "If you provide a favicon, we will show it instead of the default pretix " "icon. We recommend a size of at least 200x200px to accommodate most devices." @@ -12694,11 +12755,11 @@ msgstr "" "إذا قمت بتوفير فافيكون، وسوف نعرض بدلا من الافتراضي pretix رمز. نوصي حجم " "200x200px على الأقل لاستيعاب معظم الأجهزة." -#: pretix/base/settings.py:3075 +#: pretix/base/settings.py:3104 msgid "Social media image" msgstr "صورة وسائل التواصل الاجتماعي" -#: pretix/base/settings.py:3078 +#: pretix/base/settings.py:3107 msgid "" "This picture will be used as a preview if you post links to your ticket shop " "on social media. Facebook advises to use a picture size of 1200 x 630 " @@ -12712,19 +12773,19 @@ msgstr "" "لذلك نوصي بالتأكد من أنها لا تزال تبدو جيدة في حال كان المربع الأوسط هو الذي " "يظهر فقط. إذا لم تقم بملء هذا ، فسنستخدم الشعار المقدم أعلاه." -#: pretix/base/settings.py:3096 +#: pretix/base/settings.py:3125 msgid "Logo image" msgstr "صورة الشعار" -#: pretix/base/settings.py:3100 +#: pretix/base/settings.py:3129 msgid "We will show your logo with a maximal height and width of 2.5 cm." msgstr "سنعرض شعارك بارتفاع وعرض 2.5 سم كحد أقصى." -#: pretix/base/settings.py:3126 pretix/base/settings.py:3232 +#: pretix/base/settings.py:3155 pretix/base/settings.py:3261 msgid "Info text" msgstr "معلومات النص" -#: pretix/base/settings.py:3129 pretix/base/settings.py:3234 +#: pretix/base/settings.py:3158 pretix/base/settings.py:3263 msgid "" "Not displayed anywhere by default, but if you want to, you can use this e.g. " "in ticket templates." @@ -12732,11 +12793,11 @@ msgstr "" "لا يتم عرضه في أي مكان بشكل افتراضي ، ولكن إذا كنت ترغب في ذلك ، يمكنك " "استخدام هذا على سبيل المثال في قوالب التذاكر." -#: pretix/base/settings.py:3138 +#: pretix/base/settings.py:3167 msgid "Banner text (top)" msgstr "نص الشعار (أعلى)" -#: pretix/base/settings.py:3141 +#: pretix/base/settings.py:3170 msgid "" "This text will be shown above every page of your shop. Please only use this " "for very important messages." @@ -12744,11 +12805,11 @@ msgstr "" "سيظهر هذا النص فوق كل صفحة من صفحات متجرك. الرجاء استخدام هذا فقط للرسائل " "الهامة جدا." -#: pretix/base/settings.py:3151 +#: pretix/base/settings.py:3180 msgid "Banner text (bottom)" msgstr "نص الشعار (أسفل)" -#: pretix/base/settings.py:3154 +#: pretix/base/settings.py:3183 msgid "" "This text will be shown below every page of your shop. Please only use this " "for very important messages." @@ -12756,11 +12817,11 @@ msgstr "" "سيظهر هذا النص أسفل كل صفحة من صفحات متجرك. الرجاء استخدام هذا فقط للرسائل " "الهامة جدا." -#: pretix/base/settings.py:3164 +#: pretix/base/settings.py:3193 msgid "Voucher explanation" msgstr "تفسير لكود الخصم" -#: pretix/base/settings.py:3167 +#: pretix/base/settings.py:3196 msgid "" "This text will be shown next to the input for a voucher code. You can use it " "e.g. to explain how to obtain a voucher code." @@ -12768,11 +12829,11 @@ msgstr "" "سيظهر هذا النص بجانب إدخال رمز كود الخصم. يمكنك استخدامه على سبيل المثال " "لشرح كيفية الحصول على رمز قسيمة." -#: pretix/base/settings.py:3177 +#: pretix/base/settings.py:3206 msgid "Attendee data explanation" msgstr "شرح بيانات الحضور" -#: pretix/base/settings.py:3180 +#: pretix/base/settings.py:3209 #, fuzzy #| msgid "" #| "This text will be shown above the questions asked for every admission " @@ -12785,11 +12846,11 @@ msgstr "" "سيتم عرض هذا النص فوق الأسئلة المطروحة لكل منتج مدخل. يمكنك استخدامه على " "سبيل المثال لشرح سبب حاجتك إلى معلومات منهم." -#: pretix/base/settings.py:3190 +#: pretix/base/settings.py:3219 msgid "Additional success message" msgstr "رسالة نجاح إضافية" -#: pretix/base/settings.py:3191 +#: pretix/base/settings.py:3220 msgid "" "This message will be shown after an order has been created successfully. It " "will be shown in additional to the default text." @@ -12797,11 +12858,11 @@ msgstr "" "ستظهر هذه الرسالة بعد إنشاء الطلب بنجاح. سيتم عرضه بالإضافة إلى النص " "الافتراضي." -#: pretix/base/settings.py:3203 +#: pretix/base/settings.py:3232 msgid "Help text of the phone number field" msgstr "نص المساعدة لحقل رقم الهاتف" -#: pretix/base/settings.py:3210 +#: pretix/base/settings.py:3239 msgid "" "Make sure to enter a valid email address. We will send you an order " "confirmation including a link that you need to access your order later." @@ -12809,15 +12870,15 @@ msgstr "" "تأكد من إدخال عنوان بريد إلكتروني صالح. سنرسل إليك تأكيدا لطلبك يتضمن رابطا " "تحتاجه للوصول إلى طلبك لاحقا." -#: pretix/base/settings.py:3217 +#: pretix/base/settings.py:3246 msgid "Help text of the email field" msgstr "نص المساعدة لحقل البريد الإلكتروني" -#: pretix/base/settings.py:3243 +#: pretix/base/settings.py:3272 msgid "Allow creating a new team during event creation" msgstr "السماح بإنشاء فريق جديد أثناء إنشاء الفعالية" -#: pretix/base/settings.py:3244 +#: pretix/base/settings.py:3273 msgid "" "Users that do not have access to all events under this organizer, must " "select one of their teams to have access to the created event. This setting " @@ -12829,36 +12890,36 @@ msgstr "" "الإعداد للمستخدمين بإنشاء فريق محدد للفعاية أثناء التنقل ، حتى عندما لا يكون " "لديهم إذن \"إمكانية تغيير الفرق والتصاريح\"." -#: pretix/base/settings.py:3316 pretix/base/settings.py:3326 +#: pretix/base/settings.py:3345 pretix/base/settings.py:3355 msgid "Event start time (descending)" msgstr "وقت بدء الفعالية (تنازلي)" -#: pretix/base/settings.py:3318 pretix/base/settings.py:3328 +#: pretix/base/settings.py:3347 pretix/base/settings.py:3357 msgid "Name (descending)" msgstr "الاسم (تنازلي)" -#: pretix/base/settings.py:3323 +#: pretix/base/settings.py:3352 msgctxt "subevent" msgid "Date ordering" msgstr "ترتيب التاريخ" -#: pretix/base/settings.py:3339 +#: pretix/base/settings.py:3368 msgid "Link back to organizer overview on all event pages" msgstr "قم بنظرة عامة للمنظم للاطلاع على جميع صفحات الفعالية" -#: pretix/base/settings.py:3348 +#: pretix/base/settings.py:3377 msgid "Homepage text" msgstr "نص الصفحة الرئيسية" -#: pretix/base/settings.py:3350 +#: pretix/base/settings.py:3379 msgid "This will be displayed on the organizer homepage." msgstr "سيتم عرض هذا على الصفحة الرئيسية للمنظم." -#: pretix/base/settings.py:3365 +#: pretix/base/settings.py:3394 msgid "Length of gift card codes" msgstr "طول رموز بطاقات الهدايا" -#: pretix/base/settings.py:3366 +#: pretix/base/settings.py:3395 #, python-brace-format msgid "" "The system generates by default {}-character long gift card codes. However, " @@ -12867,11 +12928,11 @@ msgstr "" "ينشئ النظام افتراضيا رموز بطاقات هدايا طويلة مكونة من {}-حرف. ومع ذلك ، إذا " "تم طلب طول مختلف، فيمكن تعيينه هنا." -#: pretix/base/settings.py:3382 +#: pretix/base/settings.py:3411 msgid "Validity of gift card codes in years" msgstr "صلاحية رموز بطاقات الهدايا بالسنوات" -#: pretix/base/settings.py:3383 +#: pretix/base/settings.py:3412 msgid "" "If you set a number here, gift cards will by default expire at the end of " "the year after this many years. If you keep it empty, gift cards do not have " @@ -12881,23 +12942,23 @@ msgstr "" "العام بعد هذه السنوات العديدة. إذا أبقيت الخانة فارغة ، فلن يكون لبطاقات " "الهدايا تاريخ انتهاء صلاحية صريح." -#: pretix/base/settings.py:3394 +#: pretix/base/settings.py:3423 msgid "Enable cookie consent management features" msgstr "" -#: pretix/base/settings.py:3400 +#: pretix/base/settings.py:3429 msgid "" "By clicking \"Accept all cookies\", you agree to the storing of cookies and " "use of similar technologies on your device." msgstr "" -#: pretix/base/settings.py:3407 +#: pretix/base/settings.py:3436 #, fuzzy #| msgid "Additional text" msgid "Dialog text" msgstr "نص إضافي" -#: pretix/base/settings.py:3414 +#: pretix/base/settings.py:3443 msgid "" "We use cookies and similar technologies to gather data that allows us to " "improve this website and our offerings. If you do not agree, we will only " @@ -12905,49 +12966,49 @@ msgid "" "offers." msgstr "" -#: pretix/base/settings.py:3422 +#: pretix/base/settings.py:3451 msgid "Secondary dialog text" msgstr "" -#: pretix/base/settings.py:3428 +#: pretix/base/settings.py:3457 #, fuzzy #| msgid "Price settings" msgid "Privacy settings" msgstr "ضبط الأسعار" -#: pretix/base/settings.py:3433 +#: pretix/base/settings.py:3462 #, fuzzy #| msgid "Allowed titles" msgid "Dialog title" msgstr "عناوين سمح" -#: pretix/base/settings.py:3439 +#: pretix/base/settings.py:3468 msgid "Accept all cookies" msgstr "" -#: pretix/base/settings.py:3444 +#: pretix/base/settings.py:3473 #, fuzzy #| msgid "Product variation description" msgid "\"Accept\" button description" msgstr "وصف نوع المنتج" -#: pretix/base/settings.py:3450 +#: pretix/base/settings.py:3479 #, fuzzy #| msgid "Required question" msgid "Required cookies only" msgstr "سؤال مطلوب" -#: pretix/base/settings.py:3455 +#: pretix/base/settings.py:3484 #, fuzzy #| msgid "Product variation description" msgid "\"Reject\" button description" msgstr "وصف نوع المنتج" -#: pretix/base/settings.py:3465 +#: pretix/base/settings.py:3494 msgid "Customers can choose their own seats" msgstr "يمكن للعملاء اختيار مقاعدهم الخاصة" -#: pretix/base/settings.py:3466 +#: pretix/base/settings.py:3495 msgid "" "If disabled, you will need to manually assign seats in the backend. Note " "that this can mean people will not know their seat after their purchase and " @@ -12957,159 +13018,159 @@ msgstr "" "لاحظ أن هذا قد يعني أن الأشخاص لن يعرفوا مقعدهم بعد شرائه وقد لا يكون مكتوبا " "على تذكرتهم." -#: pretix/base/settings.py:3492 +#: pretix/base/settings.py:3521 msgid "Show button to copy user input from other products" msgstr "أظهر الزر لنسخ مدخلات المستخدم من المنتجات الأخرى" -#: pretix/base/settings.py:3502 +#: pretix/base/settings.py:3531 msgid "Most common English titles" msgstr "العناوين الإنجليزية الأكثر شيوعا" -#: pretix/base/settings.py:3512 +#: pretix/base/settings.py:3541 msgid "Most common German titles" msgstr "العناوين الألمانية الأكثر شيوعا" -#: pretix/base/settings.py:3525 +#: pretix/base/settings.py:3554 msgctxt "person_name_salutation" msgid "Ms" msgstr "آنسة" -#: pretix/base/settings.py:3526 +#: pretix/base/settings.py:3555 msgctxt "person_name_salutation" msgid "Mr" msgstr "السيد" -#: pretix/base/settings.py:3527 +#: pretix/base/settings.py:3556 msgctxt "person_name_salutation" msgid "Mx" msgstr "السيد\\السيدة" -#: pretix/base/settings.py:3564 pretix/base/settings.py:3580 -#: pretix/base/settings.py:3596 pretix/base/settings.py:3611 -#: pretix/base/settings.py:3629 pretix/base/settings.py:3644 -#: pretix/base/settings.py:3674 pretix/base/settings.py:3698 -#: pretix/base/settings.py:3730 pretix/base/settings.py:3752 -#: pretix/base/settings.py:3783 +#: pretix/base/settings.py:3593 pretix/base/settings.py:3609 +#: pretix/base/settings.py:3625 pretix/base/settings.py:3640 +#: pretix/base/settings.py:3658 pretix/base/settings.py:3673 +#: pretix/base/settings.py:3703 pretix/base/settings.py:3727 +#: pretix/base/settings.py:3759 pretix/base/settings.py:3781 +#: pretix/base/settings.py:3812 msgctxt "person_name_sample" msgid "John" msgstr "جون" -#: pretix/base/settings.py:3565 pretix/base/settings.py:3581 -#: pretix/base/settings.py:3597 pretix/base/settings.py:3613 -#: pretix/base/settings.py:3631 pretix/base/settings.py:3645 -#: pretix/base/settings.py:3675 pretix/base/settings.py:3731 -#: pretix/base/settings.py:3753 pretix/base/settings.py:3784 +#: pretix/base/settings.py:3594 pretix/base/settings.py:3610 +#: pretix/base/settings.py:3626 pretix/base/settings.py:3642 +#: pretix/base/settings.py:3660 pretix/base/settings.py:3674 +#: pretix/base/settings.py:3704 pretix/base/settings.py:3760 +#: pretix/base/settings.py:3782 pretix/base/settings.py:3813 msgctxt "person_name_sample" msgid "Doe" msgstr "دو" -#: pretix/base/settings.py:3571 pretix/base/settings.py:3587 -#: pretix/base/settings.py:3619 pretix/base/settings.py:3738 -#: pretix/base/settings.py:3760 +#: pretix/base/settings.py:3600 pretix/base/settings.py:3616 +#: pretix/base/settings.py:3648 pretix/base/settings.py:3767 +#: pretix/base/settings.py:3789 msgctxt "person_name" msgid "Title" msgstr "عنوان" -#: pretix/base/settings.py:3579 pretix/base/settings.py:3595 -#: pretix/base/settings.py:3628 pretix/base/settings.py:3751 -#: pretix/base/settings.py:3782 +#: pretix/base/settings.py:3608 pretix/base/settings.py:3624 +#: pretix/base/settings.py:3657 pretix/base/settings.py:3780 +#: pretix/base/settings.py:3811 msgctxt "person_name_sample" msgid "Dr" msgstr "الدكتور" -#: pretix/base/settings.py:3603 pretix/base/settings.py:3620 +#: pretix/base/settings.py:3632 pretix/base/settings.py:3649 msgid "First name" msgstr "الاسم الاول" -#: pretix/base/settings.py:3604 pretix/base/settings.py:3621 +#: pretix/base/settings.py:3633 pretix/base/settings.py:3650 msgid "Middle name" msgstr "الاسم الأوسط" -#: pretix/base/settings.py:3685 pretix/base/settings.py:3697 +#: pretix/base/settings.py:3714 pretix/base/settings.py:3726 #: pretix/control/forms/organizer.py:658 msgctxt "person_name_sample" msgid "John Doe" msgstr "جون دو" -#: pretix/base/settings.py:3691 +#: pretix/base/settings.py:3720 msgid "Calling name" msgstr "اسم النداء" -#: pretix/base/settings.py:3705 +#: pretix/base/settings.py:3734 msgid "Latin transcription" msgstr "الإملاء بالحروف اللاتينية" -#: pretix/base/settings.py:3717 pretix/base/settings.py:3737 -#: pretix/base/settings.py:3759 +#: pretix/base/settings.py:3746 pretix/base/settings.py:3766 +#: pretix/base/settings.py:3788 msgctxt "person_name" msgid "Salutation" msgstr "تحية" -#: pretix/base/settings.py:3729 pretix/base/settings.py:3750 -#: pretix/base/settings.py:3781 +#: pretix/base/settings.py:3758 pretix/base/settings.py:3779 +#: pretix/base/settings.py:3810 msgctxt "person_name_sample" msgid "Mr" msgstr "السيد" -#: pretix/base/settings.py:3763 +#: pretix/base/settings.py:3792 msgctxt "person_name" msgid "Degree (after name)" msgstr "الدرجة (بعد الاسم)" -#: pretix/base/settings.py:3785 +#: pretix/base/settings.py:3814 msgctxt "person_name_sample" msgid "MA" msgstr "MA" -#: pretix/base/settings.py:3811 pretix/base/settings.py:3813 +#: pretix/base/settings.py:3840 pretix/base/settings.py:3842 #, fuzzy #| msgid "Product name" msgctxt "address" msgid "Province" msgstr "اسم المنتج" -#: pretix/base/settings.py:3812 +#: pretix/base/settings.py:3841 #, fuzzy #| msgid "Use feature" msgctxt "address" msgid "Prefecture" msgstr "استخدام ميزة" -#: pretix/base/settings.py:3901 pretix/control/forms/event.py:228 +#: pretix/base/settings.py:3930 pretix/control/forms/event.py:228 msgid "" "Your default locale must also be enabled for your event (see box above)." msgstr "يجب أيضا تمكين لغتك الافتراضية للفعالية الخاصة بك (انظر المربع أعلاه)." -#: pretix/base/settings.py:3905 +#: pretix/base/settings.py:3934 msgid "" "You cannot require specifying attendee names if you do not ask for them." msgstr "لا يمكنك طلب تحديد أسماء الحضور إذا لم تطلبها." -#: pretix/base/settings.py:3909 +#: pretix/base/settings.py:3938 msgid "You have to ask for attendee emails if you want to make them required." msgstr "" "عليك أن تطلب رسائل البريد الإلكتروني للحضور إذا كنت ترغب في جعلها إلزامية." -#: pretix/base/settings.py:3913 +#: pretix/base/settings.py:3942 msgid "" "You have to ask for invoice addresses if you want to make them required." msgstr "عليك أن تطلب عناوين الفواتير إذا كنت ترغب في جعلها إلزامية." -#: pretix/base/settings.py:3917 +#: pretix/base/settings.py:3946 msgid "You have to require invoice addresses to require for company names." msgstr "عليك أن تطلب عنوان الفاتورة لطلب أسماء الشركات." -#: pretix/base/settings.py:3924 +#: pretix/base/settings.py:3953 msgid "The last payment date cannot be before the end of presale." msgstr "لا يمكن أن يكون تاريخ الدفع الأخير قبل نهاية فترة عرض البيع المسبق." -#: pretix/base/settings.py:3932 +#: pretix/base/settings.py:3961 #, fuzzy, python-brace-format #| msgid "Please enter a valid sales channel." msgid "The value \"{identifier}\" is not a valid sales channel." msgstr "الرجاء إدخال قناة بيع صالحة." -#: pretix/base/settings.py:3947 +#: pretix/base/settings.py:3976 msgid "This needs to be disabled if other NFC-based types are active." msgstr "" @@ -13419,12 +13480,10 @@ msgstr "" "تتلقى هذا البريد الإلكتروني لأن شخصا ما قام بتسجيلك في الفعالية التالية:" #: pretix/base/templates/pretixbase/email/order_details.html:12 -#: pretix/base/templates/pretixbase/email/order_details.html:59 msgid "Event:" msgstr "فعالية:" #: pretix/base/templates/pretixbase/email/order_details.html:23 -#: pretix/base/templates/pretixbase/email/order_details.html:80 msgid "Order code:" msgstr "رمز الطلب:" @@ -13433,19 +13492,41 @@ msgid "created by" msgstr "أنشئ من قبل" #: pretix/base/templates/pretixbase/email/order_details.html:34 -#: pretix/base/templates/pretixbase/email/order_details.html:132 msgid "Contact:" msgstr "جهة اتصال:" #: pretix/base/templates/pretixbase/email/order_details.html:54 +#, fuzzy, python-format +#| msgid "" +#| "You are receiving this email because you placed an order for {event}." msgid "" -"You are receiving this email because you placed an order for the following " -"event:" -msgstr "تتلقى هذا البريد الإلكتروني لأنك قدمت طلبا للفعالية التالية:" +"You are receiving this email because you placed an order for " +"%(event)s." +msgstr "أنت تتلقى هذا البريد الإلكتروني لأنك قدمت طلبا ل {event}." -#: pretix/base/templates/pretixbase/email/order_details.html:89 -msgid "Details:" -msgstr "تفاصيل:" +#: pretix/base/templates/pretixbase/email/order_details.html:93 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:23 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:320 +#: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:15 +#: pretix/control/templates/pretixcontrol/organizers/customers.html:90 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:23 +#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:95 +#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:102 +#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:21 +#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:390 +#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:114 +#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:95 +#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:66 +msgid "Details" +msgstr "تفاصيل" + +#: pretix/base/templates/pretixbase/email/order_details.html:136 +#: pretix/presale/templates/pretixpresale/event/base.html:222 +#: pretix/presale/templates/pretixpresale/organizers/base.html:100 +#, fuzzy +#| msgid "Contact:" +msgid "Contact" +msgstr "جهة اتصال:" #: pretix/base/templates/pretixbase/email/shred_completed.txt:2 #, python-format @@ -14144,7 +14225,7 @@ msgid "Do not copy" msgstr "لا تنسخ" #: pretix/control/forms/event.py:336 pretix/control/forms/item.py:1301 -#: pretix/control/forms/subevents.py:410 +#: pretix/control/forms/subevents.py:411 #, python-brace-format msgid "Default ({value})" msgstr "تلقائي ({value})" @@ -14232,11 +14313,11 @@ msgid "" "card is issued in." msgstr "" -#: pretix/control/forms/event.py:887 +#: pretix/control/forms/event.py:888 msgid "Generate invoices for Sales channels" msgstr "توليد الفواتير للقنوات المبيعات" -#: pretix/control/forms/event.py:890 +#: pretix/control/forms/event.py:891 msgid "" "If you have enabled invoice generation in the previous setting, you can " "limit it here to specific sales channels." @@ -14244,107 +14325,107 @@ msgstr "" "إذا قمت بتمكين الجيل الفاتورة في الإعداد السابق، يمكنك تحديد هنا لقنوات " "البيع المحددة." -#: pretix/control/forms/event.py:894 +#: pretix/control/forms/event.py:895 msgid "Invoice style" msgstr "النمط فاتورة" -#: pretix/control/forms/event.py:900 +#: pretix/control/forms/event.py:901 msgid "Invoice language" msgstr "اللغة فاتورة" -#: pretix/control/forms/event.py:901 pretix/control/forms/event.py:916 +#: pretix/control/forms/event.py:902 pretix/control/forms/event.py:917 msgid "The user's language" msgstr "لغة المستخدم" -#: pretix/control/forms/event.py:924 +#: pretix/control/forms/event.py:925 #, python-brace-format msgid "" "An invoice will be issued before payment if the customer selects one of the " "following payment methods: {list}" msgstr "" -#: pretix/control/forms/event.py:928 +#: pretix/control/forms/event.py:929 msgid "" "None of the currently configured payment methods will cause an invoice to be " "issued before payment." msgstr "" -#: pretix/control/forms/event.py:937 +#: pretix/control/forms/event.py:938 #, fuzzy #| msgid "Split into new order" msgid "Recommended" msgstr "تنقسم إلى النظام الجديد" -#: pretix/control/forms/event.py:949 +#: pretix/control/forms/event.py:950 msgid "The online shop must be selected to receive these emails." msgstr "" -#: pretix/control/forms/event.py:965 +#: pretix/control/forms/event.py:966 #, fuzzy #| msgid "Sales channels to automatically check in" msgid "Sales channels for checkout emails" msgstr "قنوات البيع للبريد الإلكتروني الخاص بالدفع" -#: pretix/control/forms/event.py:966 +#: pretix/control/forms/event.py:967 msgid "" "The order placed and paid emails will only be send to orders from these " "sales channels. The online shop must be enabled." msgstr "" -#: pretix/control/forms/event.py:977 +#: pretix/control/forms/event.py:978 msgid "" "This email will only be send to orders from these sales channels. The online " "shop must be enabled." msgstr "" -#: pretix/control/forms/event.py:985 pretix/control/forms/organizer.py:583 +#: pretix/control/forms/event.py:986 pretix/control/forms/organizer.py:583 msgid "Bcc address" msgstr "عنوان مخفية" -#: pretix/control/forms/event.py:987 pretix/control/forms/organizer.py:585 +#: pretix/control/forms/event.py:988 pretix/control/forms/organizer.py:585 #, fuzzy #| msgid "All emails will be sent to this address as a Bcc copy" msgid "All emails will be sent to this address as a Bcc copy." msgstr "سيتم إرسال جميع رسائل البريد الإلكتروني إلى هذا العنوان كنسخة مخفية" -#: pretix/control/forms/event.py:995 pretix/control/forms/organizer.py:593 +#: pretix/control/forms/event.py:996 pretix/control/forms/organizer.py:593 msgid "Signature" msgstr "التوقيع" -#: pretix/control/forms/event.py:998 +#: pretix/control/forms/event.py:999 #, python-brace-format msgid "This will be attached to every email. Available placeholders: {event}" msgstr "وسيلحق هذا على كل البريد الإلكتروني. النائبة المتاحة: {event}" -#: pretix/control/forms/event.py:1003 pretix/control/forms/organizer.py:601 +#: pretix/control/forms/event.py:1004 pretix/control/forms/organizer.py:601 msgid "e.g. your contact details" msgstr "مثلا تفاصيل الاتصال الخاصة بك" -#: pretix/control/forms/event.py:1008 +#: pretix/control/forms/event.py:1009 msgid "HTML mail renderer" msgstr "HTML العارض الإلكتروني" -#: pretix/control/forms/event.py:1013 pretix/control/forms/event.py:1040 -#: pretix/control/forms/event.py:1067 pretix/control/forms/event.py:1217 +#: pretix/control/forms/event.py:1014 pretix/control/forms/event.py:1041 +#: pretix/control/forms/event.py:1068 pretix/control/forms/event.py:1218 #, fuzzy #| msgid "Text sent to order contact address" msgid "Subject sent to order contact address" msgstr "إرسالها إلى عنوان النص أمر الاتصال" -#: pretix/control/forms/event.py:1018 pretix/control/forms/event.py:1045 -#: pretix/control/forms/event.py:1072 pretix/control/forms/event.py:1222 +#: pretix/control/forms/event.py:1019 pretix/control/forms/event.py:1046 +#: pretix/control/forms/event.py:1073 pretix/control/forms/event.py:1223 msgid "Text sent to order contact address" msgstr "إرسالها إلى عنوان النص أمر الاتصال" -#: pretix/control/forms/event.py:1023 pretix/control/forms/event.py:1050 -#: pretix/control/forms/event.py:1077 pretix/control/forms/event.py:1227 -#: pretix/control/forms/event.py:1272 pretix/control/forms/event.py:1302 -msgid "Send an email to attendees" -msgstr "إرسال بريد إلكتروني إلى الحضور" - #: pretix/control/forms/event.py:1024 pretix/control/forms/event.py:1051 #: pretix/control/forms/event.py:1078 pretix/control/forms/event.py:1228 #: pretix/control/forms/event.py:1273 pretix/control/forms/event.py:1303 +msgid "Send an email to attendees" +msgstr "إرسال بريد إلكتروني إلى الحضور" + +#: pretix/control/forms/event.py:1025 pretix/control/forms/event.py:1052 +#: pretix/control/forms/event.py:1079 pretix/control/forms/event.py:1229 +#: pretix/control/forms/event.py:1274 pretix/control/forms/event.py:1304 msgid "" "If the order contains attendees with email addresses different from the " "person who orders the tickets, the following email will be sent out to the " @@ -14353,85 +14434,85 @@ msgstr "" "إذا كان النظام يحتوي على الحضور مع عناوين البريد الإلكتروني المختلفة من " "الشخص الذي يأمر التذاكر، سيتم إرسال البريد الإلكتروني التالي إلى الحضور." -#: pretix/control/forms/event.py:1029 pretix/control/forms/event.py:1056 -#: pretix/control/forms/event.py:1083 pretix/control/forms/event.py:1233 -#: pretix/control/forms/event.py:1278 pretix/control/forms/event.py:1308 +#: pretix/control/forms/event.py:1030 pretix/control/forms/event.py:1057 +#: pretix/control/forms/event.py:1084 pretix/control/forms/event.py:1234 +#: pretix/control/forms/event.py:1279 pretix/control/forms/event.py:1309 #, fuzzy #| msgid "Text sent to attendees" msgid "Subject sent to attendees" msgstr "إرسالها النص إلى الحضور" -#: pretix/control/forms/event.py:1034 pretix/control/forms/event.py:1061 -#: pretix/control/forms/event.py:1088 pretix/control/forms/event.py:1238 -#: pretix/control/forms/event.py:1283 pretix/control/forms/event.py:1313 +#: pretix/control/forms/event.py:1035 pretix/control/forms/event.py:1062 +#: pretix/control/forms/event.py:1089 pretix/control/forms/event.py:1239 +#: pretix/control/forms/event.py:1284 pretix/control/forms/event.py:1314 msgid "Text sent to attendees" msgstr "إرسالها النص إلى الحضور" -#: pretix/control/forms/event.py:1099 pretix/control/forms/event.py:1173 -#: pretix/control/forms/event.py:1183 pretix/control/forms/event.py:1193 -#: pretix/control/forms/event.py:1198 pretix/control/forms/event.py:1210 +#: pretix/control/forms/event.py:1100 pretix/control/forms/event.py:1174 +#: pretix/control/forms/event.py:1184 pretix/control/forms/event.py:1194 +#: pretix/control/forms/event.py:1199 pretix/control/forms/event.py:1211 #: pretix/control/forms/organizer.py:612 pretix/control/forms/organizer.py:622 #: pretix/control/forms/organizer.py:632 #: pretix/control/templates/pretixcontrol/event/mail.html:88 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:111 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:119 msgid "Text" msgstr "نص" -#: pretix/control/forms/event.py:1104 +#: pretix/control/forms/event.py:1105 #, fuzzy #| msgid "Text (sent by admin)" msgid "Subject (sent by admin)" msgstr "النص (أرسلت بواسطة admin)" -#: pretix/control/forms/event.py:1109 +#: pretix/control/forms/event.py:1110 #, fuzzy #| msgid "Text sent to attendees" msgid "Subject (sent by admin to attendee)" msgstr "إرسالها النص إلى الحضور" -#: pretix/control/forms/event.py:1114 +#: pretix/control/forms/event.py:1115 msgid "Text (sent by admin)" msgstr "النص (أرسلت بواسطة admin)" -#: pretix/control/forms/event.py:1119 +#: pretix/control/forms/event.py:1120 #, fuzzy #| msgid "Text (requested by user)" msgid "Subject (requested by user)" msgstr "النص (عن طريق المستخدم المطلوب)" -#: pretix/control/forms/event.py:1124 +#: pretix/control/forms/event.py:1125 msgid "Text (requested by user)" msgstr "النص (عن طريق المستخدم المطلوب)" -#: pretix/control/forms/event.py:1136 +#: pretix/control/forms/event.py:1137 msgid "Text (if order will expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1141 +#: pretix/control/forms/event.py:1142 msgid "Subject (if order will expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1146 +#: pretix/control/forms/event.py:1147 msgid "Text (if order will not expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1151 +#: pretix/control/forms/event.py:1152 msgid "Subject (if order will not expire automatically)" msgstr "" -#: pretix/control/forms/event.py:1156 +#: pretix/control/forms/event.py:1157 #, fuzzy #| msgid "Payment received for your order: {code}" msgid "Subject (if an incomplete payment was received)" msgstr "تم إستلام الدفع لطلبك: {code}" -#: pretix/control/forms/event.py:1161 +#: pretix/control/forms/event.py:1162 #, fuzzy #| msgid "Payment received for your order: {code}" msgid "Text (if an incomplete payment was received)" msgstr "تم إستلام الدفع لطلبك: {code}" -#: pretix/control/forms/event.py:1164 +#: pretix/control/forms/event.py:1165 #, fuzzy #| msgid "This plugin allows you to receive payments via bank transfer." msgid "" @@ -14439,13 +14520,13 @@ msgid "" "payments, such as bank transfer." msgstr "يسمح لك هذا المكون الإضافي بتلقي المدفوعات عبر التحويل المصرفي." -#: pretix/control/forms/event.py:1206 pretix/control/forms/event.py:1213 +#: pretix/control/forms/event.py:1207 pretix/control/forms/event.py:1214 msgid "" "This will only be used if the invoice is sent to a different email address " "or at a different time than the order confirmation." msgstr "" -#: pretix/control/forms/event.py:1246 +#: pretix/control/forms/event.py:1247 msgid "" "This email will be sent out this many days before the order event starts. If " "the field is empty, the mail will never be sent." @@ -14453,31 +14534,31 @@ msgstr "" "سيتم إرسال هذا البريد الإلكتروني من هذا عدة أيام قبل أن يبدأ الحدث النظام. " "إذا كان الحقل فارغا، لن يتم إرسال البريد." -#: pretix/control/forms/event.py:1250 +#: pretix/control/forms/event.py:1251 #, fuzzy #| msgid "Received order" msgid "Subject for received order" msgstr "النظام وردت" -#: pretix/control/forms/event.py:1255 +#: pretix/control/forms/event.py:1256 #, fuzzy #| msgid "Received order" msgid "Text for received order" msgstr "النظام وردت" -#: pretix/control/forms/event.py:1260 +#: pretix/control/forms/event.py:1261 #, fuzzy #| msgid "Yes, approve order" msgid "Subject for approved order" msgstr "نعم، والموافقة على النظام" -#: pretix/control/forms/event.py:1265 +#: pretix/control/forms/event.py:1266 #, fuzzy #| msgid "Yes, approve order" msgid "Text for approved order" msgstr "نعم، والموافقة على النظام" -#: pretix/control/forms/event.py:1268 pretix/control/forms/event.py:1286 +#: pretix/control/forms/event.py:1269 pretix/control/forms/event.py:1287 msgid "" "This will only be sent out for non-free orders. Free orders will receive the " "free order template from below instead." @@ -14485,19 +14566,19 @@ msgstr "" "سيتم ارسال هذا للطلبات غير المجانية فقط. وسوف يتلقى أصحاب الطلبات المجانية " "بدلا من ذلك نموذج الطلب المجاني كما هو في الأسفل." -#: pretix/control/forms/event.py:1290 +#: pretix/control/forms/event.py:1291 #, fuzzy #| msgid "Approved free order" msgid "Subject for approved free order" msgstr "طلب مجاني معتمد" -#: pretix/control/forms/event.py:1295 +#: pretix/control/forms/event.py:1296 #, fuzzy #| msgid "Approved free order" msgid "Text for approved free order" msgstr "طلب مجاني معتمد" -#: pretix/control/forms/event.py:1298 pretix/control/forms/event.py:1316 +#: pretix/control/forms/event.py:1299 pretix/control/forms/event.py:1317 msgid "" "This will only be sent out for free orders. Non-free orders will receive the " "non-free order template from above instead." @@ -14505,103 +14586,103 @@ msgstr "" "سيتم ارسال هذا إلى الطلبات المجانية فقط. سيستلم أصحاب الطلبات غير المجانية " "نموذج الطلب غير المجاني كما هو في الأعلى." -#: pretix/control/forms/event.py:1320 +#: pretix/control/forms/event.py:1321 #, fuzzy #| msgid "Received order" msgid "Subject for denied order" msgstr "النظام وردت" -#: pretix/control/forms/event.py:1325 +#: pretix/control/forms/event.py:1326 #, fuzzy #| msgid "Denied order" msgid "Text for denied order" msgstr "أمر مرفوض" -#: pretix/control/forms/event.py:1420 +#: pretix/control/forms/event.py:1421 #, fuzzy #| msgid "Ticket code" msgid "Ticket code generator" msgstr "إنشاء رمز التذكرة" -#: pretix/control/forms/event.py:1421 +#: pretix/control/forms/event.py:1422 msgid "For advanced users, usually does not need to be changed." msgstr "" -#: pretix/control/forms/event.py:1478 +#: pretix/control/forms/event.py:1479 msgid "Any country" msgstr "أي بلد" -#: pretix/control/forms/event.py:1479 +#: pretix/control/forms/event.py:1480 msgid "European Union" msgstr "الإتحاد الأوربي" -#: pretix/control/forms/event.py:1505 +#: pretix/control/forms/event.py:1506 msgid "Any customer" msgstr "أي زبون" -#: pretix/control/forms/event.py:1506 +#: pretix/control/forms/event.py:1507 msgid "Individual" msgstr "فرد" -#: pretix/control/forms/event.py:1507 +#: pretix/control/forms/event.py:1508 msgid "Business" msgstr "اعمال" -#: pretix/control/forms/event.py:1508 +#: pretix/control/forms/event.py:1509 msgid "Business with valid VAT ID" msgstr "العمل مع معرف الضريبة على القيمة المضافة" -#: pretix/control/forms/event.py:1514 +#: pretix/control/forms/event.py:1515 msgid "Charge VAT" msgstr "تكلفة ضريبة القيمة المضافة" -#: pretix/control/forms/event.py:1516 +#: pretix/control/forms/event.py:1517 msgid "No VAT" msgstr "لا ضريبه للقيمه المضافه" -#: pretix/control/forms/event.py:1517 +#: pretix/control/forms/event.py:1518 msgid "Sale not allowed" msgstr "غير مسموح بالبيع" -#: pretix/control/forms/event.py:1518 +#: pretix/control/forms/event.py:1519 #, fuzzy #| msgid "New order requires approval" msgid "Order requires approval" msgstr "طلب جديد يتطلب الموافقة." -#: pretix/control/forms/event.py:1523 +#: pretix/control/forms/event.py:1524 #, fuzzy #| msgid "Default price" msgid "Default tax code" msgstr "السعر الافتراضي" -#: pretix/control/forms/event.py:1527 +#: pretix/control/forms/event.py:1528 #, fuzzy #| msgid "Sales tax rate" msgid "Deviating tax rate" msgstr "معدل ضريبة المبيعات" -#: pretix/control/forms/event.py:1532 pretix/control/forms/event.py:1536 +#: pretix/control/forms/event.py:1533 pretix/control/forms/event.py:1537 msgid "Text on invoice" msgstr "النص على الفاتورة" -#: pretix/control/forms/event.py:1556 +#: pretix/control/forms/event.py:1557 msgid "" "A combination of this calculation mode with a non-zero tax rate does not " "make sense." msgstr "" -#: pretix/control/forms/event.py:1561 pretix/control/forms/event.py:1565 +#: pretix/control/forms/event.py:1562 pretix/control/forms/event.py:1566 #, fuzzy #| msgid "This combination of credentials is not known to our system." msgid "This combination of calculation mode and tax code does not make sense." msgstr "مجموعة بيانات الاعتماد هذه غير معروفة لدى نظامنا." -#: pretix/control/forms/event.py:1630 +#: pretix/control/forms/event.py:1631 msgid "Pre-selected voucher" msgstr "قسيمة المختارة مسبقا" -#: pretix/control/forms/event.py:1632 +#: pretix/control/forms/event.py:1633 msgid "" "If set, the widget will show products as if this voucher has been entered " "and when a product is bought via the widget, this voucher will be used. This " @@ -14612,11 +14693,11 @@ msgstr "" "شراء المنتج عن طريق القطعة، سيتم استخدام هذه القسائم. يمكن استخدام هذا يمكن " "على سبيل المثال لتوفير الحاجيات التي تعطي تخفيض أو إلغاء المنتجات سرية." -#: pretix/control/forms/event.py:1637 +#: pretix/control/forms/event.py:1638 msgid "Compatibility mode" msgstr "وضع التوافق" -#: pretix/control/forms/event.py:1639 +#: pretix/control/forms/event.py:1640 msgid "" "Our regular widget doesn't work in all website builders. If you run into " "trouble, try using this compatibility mode." @@ -14624,28 +14705,28 @@ msgstr "" "لا تعمل لدينا القطعة العادية في جميع بناة الموقع. إذا واجهت مشكلة، حاول " "استخدام هذا الوضع التوافق." -#: pretix/control/forms/event.py:1660 +#: pretix/control/forms/event.py:1661 msgid "The given voucher code does not exist." msgstr "لا وجود رمز قسيمة معين." -#: pretix/control/forms/event.py:1667 pretix/control/forms/organizer.py:112 +#: pretix/control/forms/event.py:1668 pretix/control/forms/organizer.py:112 #: pretix/control/views/shredder.py:179 msgid "The slug you entered was not correct." msgstr "وكانت سبيكة التي أدخلتها غير صحيحة." -#: pretix/control/forms/event.py:1702 +#: pretix/control/forms/event.py:1703 msgid "Ticket downloads" msgstr "التنزيلات تذكرة" -#: pretix/control/forms/event.py:1703 +#: pretix/control/forms/event.py:1704 msgid "Your customers will be able to download their tickets in PDF format." msgstr "زبائنك سوف تكون قادرة على تحميل تذاكرهم في شكل PDF." -#: pretix/control/forms/event.py:1707 +#: pretix/control/forms/event.py:1708 msgid "Require all attendees to fill in their names" msgstr "يتطلب من جميع الحضور لملء في أسمائها" -#: pretix/control/forms/event.py:1708 +#: pretix/control/forms/event.py:1709 msgid "" "By default, we will ask for names but not require them. You can turn this " "off completely in the settings." @@ -14653,11 +14734,11 @@ msgstr "" "افتراضيا، ونحن سوف تسأل عن الأسماء ولكن لا تتطلب منهم. يمكنك إيقاف هذا تماما " "في الإعدادات." -#: pretix/control/forms/event.py:1734 +#: pretix/control/forms/event.py:1735 msgid "Payment via Stripe" msgstr "الدفع عن طريق الشريط" -#: pretix/control/forms/event.py:1735 +#: pretix/control/forms/event.py:1736 msgid "" "Stripe is an online payments processor supporting credit cards and lots of " "other payment options. To accept payments via Stripe, you will need to set " @@ -14668,11 +14749,11 @@ msgstr "" "خيارات الدفع الأخرى. لقبول الدفع عن طريق الشريط، وسوف تحتاج إلى إعداد حساب " "معهم، والتي تأخذ أقل من خمس دقائق باستخدام واجهة بسيطة بهم." -#: pretix/control/forms/event.py:1741 +#: pretix/control/forms/event.py:1742 msgid "Payment by bank transfer" msgstr "الدفع عن طريق التحويل المصرفي" -#: pretix/control/forms/event.py:1742 +#: pretix/control/forms/event.py:1743 msgid "" "Your customers will be instructed to wire the money to your account. You can " "then import your bank statements to process the payments within pretix, or " @@ -14682,16 +14763,16 @@ msgstr "" "المصرفية الخاصة بك لمعالجة المدفوعات في غضون pretix، أو وضع علامة عليها كما " "تدفع يدويا." -#: pretix/control/forms/event.py:1781 +#: pretix/control/forms/event.py:1782 #: pretix/control/templates/pretixcontrol/event/quick_setup.html:45 msgid "Price (optional)" msgstr "السعر (اختياري)" -#: pretix/control/forms/event.py:1786 +#: pretix/control/forms/event.py:1787 msgid "Free" msgstr "حر" -#: pretix/control/forms/event.py:1791 +#: pretix/control/forms/event.py:1792 msgid "Quantity available" msgstr "الكمية متاحة" @@ -14992,7 +15073,7 @@ msgid "Search query" msgstr "البحث في الاستفسارات" #: pretix/control/forms/filter.py:1528 pretix/control/forms/filter.py:1600 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:46 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:47 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:47 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:54 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_list.html:126 @@ -15004,14 +15085,14 @@ msgid "active" msgstr "غير نشط" #: pretix/control/forms/filter.py:1530 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:44 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:45 #, fuzzy #| msgid "Deactivate" msgid "not yet activated" msgstr "إلغاء تنشيط" #: pretix/control/forms/filter.py:1534 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:110 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:111 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:6 #: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:12 #: pretix/presale/views/customer.py:366 @@ -15070,7 +15151,7 @@ msgstr "جميع الحاضرين" #: pretix/control/templates/pretixcontrol/checkin/index.html:183 #: pretix/control/templates/pretixcontrol/checkin/lists.html:103 #: pretix/plugins/checkinlists/exporters.py:109 -#: pretix/plugins/checkinlists/exporters.py:500 +#: pretix/plugins/checkinlists/exporters.py:501 msgid "Checked in" msgstr "إيداعه" @@ -15116,6 +15197,7 @@ msgid "No administrator" msgstr "لا المسؤول" #: pretix/control/forms/filter.py:2117 +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:51 msgid "Valid" msgstr "ساري المفعول" @@ -15170,15 +15252,15 @@ msgstr "كل مبلغ معاد المفتوحة" msgid "All refunds" msgstr "كل مبلغ معاد" -#: pretix/control/forms/filter.py:2353 pretix/plugins/reports/exporters.py:699 +#: pretix/control/forms/filter.py:2353 pretix/plugins/reports/exporters.py:700 msgid "Date filter" msgstr "تاريخ فلتر" -#: pretix/control/forms/filter.py:2355 pretix/plugins/reports/exporters.py:701 +#: pretix/control/forms/filter.py:2355 pretix/plugins/reports/exporters.py:702 msgid "Filter by…" msgstr "مصنف بواسطة…" -#: pretix/control/forms/filter.py:2357 pretix/plugins/reports/exporters.py:703 +#: pretix/control/forms/filter.py:2357 pretix/plugins/reports/exporters.py:704 msgid "Date of last successful payment" msgstr "تاريخ الدفع الناجح الماضي" @@ -15202,7 +15284,7 @@ msgstr "المدفوعات الناجحة فقط" #: pretix/control/forms/filter.py:2404 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:64 -#: pretix/plugins/checkinlists/exporters.py:756 +#: pretix/plugins/checkinlists/exporters.py:759 msgid "Scan type" msgstr "نوع المسح الضوئي" @@ -15214,7 +15296,7 @@ msgstr "جميع الإجراءات" #: pretix/control/forms/filter.py:2415 pretix/control/forms/filter.py:2455 #: pretix/control/templates/pretixcontrol/checkin/checkins.html:67 -#: pretix/plugins/checkinlists/exporters.py:762 +#: pretix/plugins/checkinlists/exporters.py:765 msgid "Device" msgstr "جهاز" @@ -15240,7 +15322,7 @@ msgid "End date" msgstr "تاريخ الإنتهاء" #: pretix/control/forms/filter.py:2478 -#: pretix/plugins/checkinlists/exporters.py:880 +#: pretix/plugins/checkinlists/exporters.py:883 msgid "All check-in lists" msgstr "جميع قوائم التسجيل" @@ -15254,8 +15336,8 @@ msgstr "جميع قوائم التسجيل" #: pretix/plugins/checkinlists/exporters.py:81 #: pretix/plugins/checkinlists/exporters.py:154 #: pretix/plugins/checkinlists/exporters.py:475 -#: pretix/plugins/checkinlists/exporters.py:755 -#: pretix/plugins/checkinlists/exporters.py:843 +#: pretix/plugins/checkinlists/exporters.py:758 +#: pretix/plugins/checkinlists/exporters.py:846 msgid "Check-in list" msgstr "تحقق في قائمة" @@ -15824,47 +15906,53 @@ msgstr "أضفني إلى القائمة" msgid "pretix field" msgstr "pretix شعار" -#: pretix/control/forms/modelimport.py:50 +#: pretix/control/forms/modelimport.py:52 #, python-brace-format msgid "CSV column: \"{name}\"" msgstr "" -#: pretix/control/forms/modelimport.py:76 +#: pretix/control/forms/modelimport.py:81 msgid "Import mode" msgstr "وضع الاستيراد" -#: pretix/control/forms/modelimport.py:78 +#: pretix/control/forms/modelimport.py:83 msgid "Create a separate order for each line" msgstr "" -#: pretix/control/forms/modelimport.py:79 +#: pretix/control/forms/modelimport.py:84 msgid "Create one order with one position per line" msgstr "" -#: pretix/control/forms/modelimport.py:80 +#: pretix/control/forms/modelimport.py:85 msgid "" "Group multiple lines together into the same order based on a grouping column" msgstr "" -#: pretix/control/forms/modelimport.py:87 +#: pretix/control/forms/modelimport.py:92 msgid "Create orders as fully paid" msgstr "أنشئ الطلبات المدفوعة كليا" -#: pretix/control/forms/modelimport.py:88 +#: pretix/control/forms/modelimport.py:93 msgid "Create orders as pending and still require payment" msgstr "" -#: pretix/control/forms/modelimport.py:93 +#: pretix/control/forms/modelimport.py:98 msgid "Create orders as test mode orders" msgstr "أنشئ الطلبات في وضع الإختبار" -#: pretix/control/forms/modelimport.py:112 +#: pretix/control/forms/modelimport.py:102 +#, fuzzy +#| msgid "Only orders created in test mode can be deleted." +msgid "Orders not created in test mode cannot be deleted again after import." +msgstr "أوامر الوحيدة التي تم إنشاؤها في وضع الاختبار يمكن حذفها." + +#: pretix/control/forms/modelimport.py:123 #, fuzzy #| msgid "You cannot generate an invoice for this order." msgid "A grouping cannot be specified for this import mode." msgstr "لا يمكن انشاء فاتورة لهذا الطلب." -#: pretix/control/forms/modelimport.py:114 +#: pretix/control/forms/modelimport.py:125 #, fuzzy #| msgid "A variation needs to be set for this item." msgid "A grouping needs to be specified for this import mode." @@ -15986,8 +16074,8 @@ msgstr "دفع المبلغ" #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:24 #: pretix/plugins/reports/exporters.py:510 #: pretix/plugins/reports/exporters.py:572 -#: pretix/plugins/reports/exporters.py:692 -#: pretix/plugins/reports/exporters.py:897 +#: pretix/plugins/reports/exporters.py:693 +#: pretix/plugins/reports/exporters.py:898 msgid "Payment date" msgstr "يوم الدفع او الاستحقاق" @@ -16423,77 +16511,77 @@ msgstr "أنواع الأحداث" msgid "Gift card value" msgstr "قيمة بطاقة هدية" -#: pretix/control/forms/organizer.py:794 +#: pretix/control/forms/organizer.py:826 #, fuzzy #| msgid "An account with this email address is already registered." msgid "An medium with this type and identifier is already registered." msgstr "هناك حساب مرتبط بهذا البريد الإلكتروني مسبقا." -#: pretix/control/forms/organizer.py:892 +#: pretix/control/forms/organizer.py:924 #, fuzzy #| msgid "An account with this email address is already registered." msgid "An account with this customer ID is already registered." msgstr "هناك حساب مرتبط بهذا البريد الإلكتروني مسبقا." -#: pretix/control/forms/organizer.py:909 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:61 +#: pretix/control/forms/organizer.py:941 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:62 #: pretix/presale/forms/customer.py:169 pretix/presale/forms/customer.py:493 msgid "Phone" msgstr "" -#: pretix/control/forms/organizer.py:1016 +#: pretix/control/forms/organizer.py:1048 #, fuzzy #| msgid "Target URL" msgctxt "sso_oidc" msgid "Base URL" msgstr "الرابط المستهدف" -#: pretix/control/forms/organizer.py:1020 +#: pretix/control/forms/organizer.py:1052 #, fuzzy #| msgid "Client ID" msgctxt "sso_oidc" msgid "Client ID" msgstr "هوية العميل" -#: pretix/control/forms/organizer.py:1024 +#: pretix/control/forms/organizer.py:1056 #, fuzzy #| msgid "Client secret" msgctxt "sso_oidc" msgid "Client secret" msgstr "سر العميل" -#: pretix/control/forms/organizer.py:1028 +#: pretix/control/forms/organizer.py:1060 msgctxt "sso_oidc" msgid "Scope" msgstr "" -#: pretix/control/forms/organizer.py:1029 +#: pretix/control/forms/organizer.py:1061 msgctxt "sso_oidc" msgid "Multiple scopes separated with spaces." msgstr "" -#: pretix/control/forms/organizer.py:1033 +#: pretix/control/forms/organizer.py:1065 #, fuzzy #| msgid "User profile only" msgctxt "sso_oidc" msgid "User ID field" msgstr "ملف تعريف المستخدم فقط" -#: pretix/control/forms/organizer.py:1034 +#: pretix/control/forms/organizer.py:1066 msgctxt "sso_oidc" msgid "" "We will assume that the contents of the user ID fields are unique and can " "never change for a user." msgstr "" -#: pretix/control/forms/organizer.py:1040 +#: pretix/control/forms/organizer.py:1072 #, fuzzy #| msgid "All invoices" msgctxt "sso_oidc" msgid "Email field" msgstr "جميع الفواتير" -#: pretix/control/forms/organizer.py:1041 +#: pretix/control/forms/organizer.py:1073 msgctxt "sso_oidc" msgid "" "We will assume that all email addresses received from the SSO provider are " @@ -16501,19 +16589,19 @@ msgid "" "security issues might arise." msgstr "" -#: pretix/control/forms/organizer.py:1048 +#: pretix/control/forms/organizer.py:1080 #, fuzzy #| msgid "Phone number" msgctxt "sso_oidc" msgid "Phone field" msgstr "رقم الجوال" -#: pretix/control/forms/organizer.py:1052 +#: pretix/control/forms/organizer.py:1084 msgctxt "sso_oidc" msgid "Query parameters" msgstr "" -#: pretix/control/forms/organizer.py:1053 +#: pretix/control/forms/organizer.py:1085 #, python-brace-format msgctxt "sso_oidc" msgid "" @@ -16521,25 +16609,25 @@ msgid "" "endpoint. Enter as: {example}" msgstr "" -#: pretix/control/forms/organizer.py:1114 +#: pretix/control/forms/organizer.py:1146 #, fuzzy #| msgid "A new client secret has been generated and is now effective." msgid "Invalidate old client secret and generate a new one" msgstr "تم إنشاء سر عميل جديد، وهو الآن فعال." -#: pretix/control/forms/organizer.py:1147 +#: pretix/control/forms/organizer.py:1179 #, fuzzy #| msgid "Organizer name" msgid "Organizer short name" msgstr "اسم المنظم" -#: pretix/control/forms/organizer.py:1151 +#: pretix/control/forms/organizer.py:1183 #, fuzzy #| msgid "Disable selected" msgid "Allow access to reusable media" msgstr "تعطيل المختارة" -#: pretix/control/forms/organizer.py:1152 +#: pretix/control/forms/organizer.py:1184 msgid "" "This is required if you want the other organizer to participate in a shared " "system with e.g. NFC payment chips. You should only use this option for " @@ -16548,25 +16636,25 @@ msgid "" "to interact with the media type." msgstr "" -#: pretix/control/forms/organizer.py:1168 +#: pretix/control/forms/organizer.py:1200 #, fuzzy #| msgid "The selected date does not exist in this event series." msgid "The selected organizer does not exist or cannot be invited." msgstr "التاريخ المحدد غير موجود في سلسلة الفعاليات هذه." -#: pretix/control/forms/organizer.py:1170 +#: pretix/control/forms/organizer.py:1202 #, fuzzy #| msgid "The selected organizer was not found." msgid "The selected organizer has already been invited." msgstr "لم يتم العثور على المنظم المحدد." -#: pretix/control/forms/organizer.py:1205 +#: pretix/control/forms/organizer.py:1237 #, fuzzy #| msgid "A voucher with this code already exists." msgid "A sales channel with the same identifier already exists." msgstr "يوجد كود الخصم مسبقا يحمل هذا الرمز." -#: pretix/control/forms/organizer.py:1217 +#: pretix/control/forms/organizer.py:1249 msgid "Events with active plugin" msgstr "" @@ -16664,7 +16752,7 @@ msgstr "نهاية الفعالية يجب أن تكون في وقت لاحق ب msgid "Available_until" msgstr "متاحة حتى" -#: pretix/control/forms/subevents.py:469 +#: pretix/control/forms/subevents.py:470 msgid "Exclude these dates instead of adding them." msgstr "استبعاد هذه التواريخ بدلا من إضافتها." @@ -17068,7 +17156,7 @@ msgid "The check-in of position #{posid} on list \"{list}\" has been reverted." msgstr "في الاختيار من موقف # {posid} على قائمة \"{list}\" وقد عادت." #: pretix/control/logdisplay.py:353 pretix/control/logdisplay.py:355 -#: pretix/control/logdisplay.py:970 pretix/control/logdisplay.py:972 +#: pretix/control/logdisplay.py:971 pretix/control/logdisplay.py:973 msgid "(unknown)" msgstr "(غير معروف)" @@ -17123,8 +17211,8 @@ msgstr "أكد المستخدم الرسالة التالية: \"{}\"" msgid "The order has been canceled (comment: \"{comment}\")." msgstr "تم رفض الطلب." -#: pretix/control/logdisplay.py:416 pretix/control/views/orders.py:1565 -#: pretix/presale/views/order.py:1049 +#: pretix/control/logdisplay.py:416 pretix/control/views/orders.py:1566 +#: pretix/presale/views/order.py:1072 msgid "The order has been canceled." msgstr "تم إلغاء هذا الأمر." @@ -17164,11 +17252,11 @@ msgstr "" msgid "Internal error while transferring data to {provider_display_name}." msgstr "" -#: pretix/control/logdisplay.py:483 pretix/control/logdisplay.py:820 +#: pretix/control/logdisplay.py:483 pretix/control/logdisplay.py:821 msgid "The settings of a payment provider have been changed." msgstr "تم تغيير الإعدادات من مقدم الدفع." -#: pretix/control/logdisplay.py:486 pretix/control/logdisplay.py:819 +#: pretix/control/logdisplay.py:486 pretix/control/logdisplay.py:820 msgid "The settings of a ticket output provider have been changed." msgstr "تم تغيير إعدادات مزود الناتج التذاكر." @@ -17215,11 +17303,11 @@ msgstr "تم وضع علامة على الترتيب كما المدفوعة." msgid "The order has been set to require payment before use." msgstr "تم إرسال كود الخصم إلى {recipient}." -#: pretix/control/logdisplay.py:505 pretix/control/views/orders.py:1570 +#: pretix/control/logdisplay.py:505 pretix/control/views/orders.py:1571 msgid "The order has been marked as expired." msgstr "تم وضع علامة على النظام ومنتهية الصلاحية." -#: pretix/control/logdisplay.py:506 pretix/control/views/orders.py:1469 +#: pretix/control/logdisplay.py:506 pretix/control/views/orders.py:1470 msgid "The order has been marked as paid." msgstr "تم وضع علامة على الترتيب كما المدفوعة." @@ -17231,7 +17319,7 @@ msgstr "تم حذف طلب الإلغاء." msgid "The order has been refunded." msgstr "وقد تم ترتيب ردها." -#: pretix/control/logdisplay.py:509 pretix/control/views/orders.py:1886 +#: pretix/control/logdisplay.py:509 pretix/control/views/orders.py:1887 msgid "The order has been reactivated." msgstr "تم إعادة تنشيط الطلب." @@ -17280,85 +17368,91 @@ msgstr "تم تغيير حساب العميل." msgid "The order locale has been changed." msgstr "تم تغيير لغة النظام." -#: pretix/control/logdisplay.py:524 pretix/control/views/orders.py:1609 -#: pretix/presale/views/order.py:741 pretix/presale/views/order.py:814 +#: pretix/control/logdisplay.py:524 pretix/control/views/orders.py:1610 +#: pretix/presale/views/order.py:745 pretix/presale/views/order.py:825 msgid "The invoice has been generated." msgstr "تم إنشاء الفاتورة." -#: pretix/control/logdisplay.py:525 pretix/control/views/orders.py:1682 +#: pretix/control/logdisplay.py:525 +#, fuzzy +#| msgid "The invoice has been generated." +msgid "The invoice could not be generated." +msgstr "تم إنشاء الفاتورة." + +#: pretix/control/logdisplay.py:526 pretix/control/views/orders.py:1683 msgid "The invoice has been regenerated." msgstr "تم إعادة إنشاء الفاتورة." -#: pretix/control/logdisplay.py:526 pretix/control/views/orders.py:1744 -#: pretix/presale/views/order.py:827 +#: pretix/control/logdisplay.py:527 pretix/control/views/orders.py:1745 +#: pretix/presale/views/order.py:845 msgid "The invoice has been reissued." msgstr "تم إعادة إصدار الفاتورة." -#: pretix/control/logdisplay.py:527 +#: pretix/control/logdisplay.py:528 #, fuzzy, python-brace-format #| msgid "The invite has been resent." msgid "The invoice {full_invoice_no} has been sent." msgstr "وكان يستاء دعوة." -#: pretix/control/logdisplay.py:528 +#: pretix/control/logdisplay.py:529 #, python-brace-format msgid "The transmission of invoice {full_invoice_no} has failed." msgstr "" -#: pretix/control/logdisplay.py:529 +#: pretix/control/logdisplay.py:530 #, python-brace-format msgid "" "Invoice {full_invoice_no} has not been transmitted because the transmission " "provider does not support test mode invoices." msgstr "" -#: pretix/control/logdisplay.py:531 +#: pretix/control/logdisplay.py:532 #, python-brace-format msgid "The invoice {full_invoice_no} has been scheduled for retransmission." msgstr "" -#: pretix/control/logdisplay.py:532 +#: pretix/control/logdisplay.py:533 msgid "The order's internal comment has been updated." msgstr "تم تحديث تعليق الداخلي النظام و." -#: pretix/control/logdisplay.py:533 +#: pretix/control/logdisplay.py:534 #, fuzzy #| msgid "The order of items has been updated." msgid "The order's follow-up date has been updated." msgstr "تم تحديث ترتيب العناصر." -#: pretix/control/logdisplay.py:534 +#: pretix/control/logdisplay.py:535 msgid "The order's flag to require attention at check-in has been toggled." msgstr "تم تبديل عند النقر علم النظام وبحاجة إلى اهتمام في الاختيار." -#: pretix/control/logdisplay.py:536 +#: pretix/control/logdisplay.py:537 #, fuzzy #| msgid "The order's secret has been changed." msgid "The order's check-in text has been changed." msgstr "تم تغيير سر النظام و." -#: pretix/control/logdisplay.py:537 +#: pretix/control/logdisplay.py:538 #, fuzzy #| msgid "The order's flag to require attention at check-in has been toggled." msgid "" "The order's flag to be considered valid even if unpaid has been toggled." msgstr "تم تبديل عند النقر علم النظام وبحاجة إلى اهتمام في الاختيار." -#: pretix/control/logdisplay.py:539 +#: pretix/control/logdisplay.py:540 #, python-brace-format msgid "A new payment {local_id} has been started instead of the previous one." msgstr "وقد بدأ دفعة جديدة {local_id} بدلا من سابقتها." -#: pretix/control/logdisplay.py:540 +#: pretix/control/logdisplay.py:541 msgid "An unidentified type email has been sent." msgstr "تم ارسال نوع البريد الإلكتروني مجهول." -#: pretix/control/logdisplay.py:541 pretix/control/logdisplay.py:722 -#: pretix/control/logdisplay.py:728 pretix/control/logdisplay.py:756 +#: pretix/control/logdisplay.py:542 pretix/control/logdisplay.py:723 +#: pretix/control/logdisplay.py:729 pretix/control/logdisplay.py:757 msgid "Sending of an email has failed." msgstr "ارسال بريد الكتروني قد فشلت." -#: pretix/control/logdisplay.py:542 +#: pretix/control/logdisplay.py:543 #, fuzzy #| msgid "" #| "The email has been sent without attachments since they would have been " @@ -17370,68 +17464,68 @@ msgstr "" "تم إرسال البريد الإلكتروني دون المرفقات لأنها كان يمكن أن يكون كبيرا جدا " "ليكون من المرجح أن يصل." -#: pretix/control/logdisplay.py:544 +#: pretix/control/logdisplay.py:545 #, fuzzy #| msgid "A custom email has been sent." msgid "An invoice email has been sent." msgstr "تم إرسال البريد الإلكتروني المخصص." -#: pretix/control/logdisplay.py:545 +#: pretix/control/logdisplay.py:546 msgid "A custom email has been sent." msgstr "تم إرسال البريد الإلكتروني المخصص." -#: pretix/control/logdisplay.py:546 +#: pretix/control/logdisplay.py:547 msgid "A custom email has been sent to an attendee." msgstr "تم إرسال البريد الإلكتروني المخصص لحاضر." -#: pretix/control/logdisplay.py:547 +#: pretix/control/logdisplay.py:548 msgid "" "An email has been sent with a reminder that the ticket is available for " "download." msgstr "وقد أرسلت رسالة بالبريد الالكتروني مع التذكير بأن تذكرة يتوفر للتحميل." -#: pretix/control/logdisplay.py:549 +#: pretix/control/logdisplay.py:550 msgid "" "An email has been sent with a warning that the order is about to expire." msgstr "" "وقد أرسلت رسالة بالبريد الالكتروني مع تحذير بأن النظام على وشك الانتهاء." -#: pretix/control/logdisplay.py:552 +#: pretix/control/logdisplay.py:553 msgid "" "An email has been sent to notify the user that the order has been canceled." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم التي تم إلغاء الطلب." -#: pretix/control/logdisplay.py:553 +#: pretix/control/logdisplay.py:554 msgid "" "An email has been sent to notify the user that the event has been canceled." msgstr "تم إرسال بريد إلكتروني لإعلام المستخدم بإلغاء الفعالية." -#: pretix/control/logdisplay.py:556 +#: pretix/control/logdisplay.py:557 msgid "" "An email has been sent to notify the user that the order has been changed." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم التي تم تغيير النظام." -#: pretix/control/logdisplay.py:558 +#: pretix/control/logdisplay.py:559 msgid "" "An email has been sent to notify the user that the order has been received." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم الذي تم استلام النظام." -#: pretix/control/logdisplay.py:560 +#: pretix/control/logdisplay.py:561 msgid "" "An email has been sent to notify the user that payment has been received." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم الذي تم استلام المبلغ." -#: pretix/control/logdisplay.py:562 +#: pretix/control/logdisplay.py:563 msgid "" "An email has been sent to notify the user that the order has been denied." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم التي تم رفض الطلب." -#: pretix/control/logdisplay.py:563 +#: pretix/control/logdisplay.py:564 msgid "" "An email has been sent to notify the user that the order has been approved." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم أن تمت الموافقة على النظام." -#: pretix/control/logdisplay.py:566 +#: pretix/control/logdisplay.py:567 msgid "" "An email has been sent to notify the user that the order has been received " "and requires payment." @@ -17439,7 +17533,7 @@ msgstr "" "وقد تم إرسال بريد إلكتروني لإعلام المستخدم الذي تم استلام النظام ويتطلب " "الدفع." -#: pretix/control/logdisplay.py:567 +#: pretix/control/logdisplay.py:568 msgid "" "An email has been sent to notify the user that the order has been received " "and requires approval." @@ -17447,25 +17541,25 @@ msgstr "" "وقد تم إرسال بريد إلكتروني لإعلام المستخدم الذي تم استلام النظام، ويتطلب " "موافقة عليها." -#: pretix/control/logdisplay.py:570 +#: pretix/control/logdisplay.py:571 msgid "" "An email with a link to the order detail page has been resent to the user." msgstr "" "وكانت رسائل البريد الإلكتروني مع رابط إلى صفحة التفاصيل النظام تستاء إلى " "المستخدم." -#: pretix/control/logdisplay.py:571 +#: pretix/control/logdisplay.py:572 #, fuzzy #| msgid "" #| "An email has been sent to notify the user that payment has been received." msgid "An email has been sent to notify the user that the payment failed." msgstr "وقد تم إرسال بريد إلكتروني لإعلام المستخدم الذي تم استلام المبلغ." -#: pretix/control/logdisplay.py:578 +#: pretix/control/logdisplay.py:579 msgid "The voucher has been created." msgstr "تم إنشاء قسيمة." -#: pretix/control/logdisplay.py:581 +#: pretix/control/logdisplay.py:582 #, fuzzy #| msgid "A voucher has been sent to a person on the waiting list." msgid "" @@ -17473,853 +17567,853 @@ msgid "" "from the waiting list." msgstr "تم إرسال قسيمة لشخص على قائمة الانتظار." -#: pretix/control/logdisplay.py:582 +#: pretix/control/logdisplay.py:583 msgid "The voucher has been changed." msgstr "تم تغيير قسيمة." -#: pretix/control/logdisplay.py:583 +#: pretix/control/logdisplay.py:584 msgid "The voucher has been deleted." msgstr "تم حذف قسيمة." -#: pretix/control/logdisplay.py:584 +#: pretix/control/logdisplay.py:585 #, fuzzy, python-brace-format #| msgid "A voucher has been sent to a person on the waiting list." msgid "The voucher has been assigned to {email} through the waiting list." msgstr "تم إرسال قسيمة لشخص على قائمة الانتظار." -#: pretix/control/logdisplay.py:593 +#: pretix/control/logdisplay.py:594 #, python-brace-format msgid "The voucher has been redeemed in order {order_code}." msgstr "تم استبدال القسيمة من أجل {order_code}." -#: pretix/control/logdisplay.py:608 +#: pretix/control/logdisplay.py:609 msgid "The category has been added." msgstr "تمت إضافة فئة." -#: pretix/control/logdisplay.py:609 +#: pretix/control/logdisplay.py:610 msgid "The category has been deleted." msgstr "تم حذف الفئة." -#: pretix/control/logdisplay.py:610 +#: pretix/control/logdisplay.py:611 msgid "The category has been changed." msgstr "تم تغيير الفئة." -#: pretix/control/logdisplay.py:611 +#: pretix/control/logdisplay.py:612 #, fuzzy #| msgid "The category has been deleted." msgid "The category has been reordered." msgstr "تم حذف الفئة." -#: pretix/control/logdisplay.py:618 +#: pretix/control/logdisplay.py:619 msgid "The tax rule has been added." msgstr "تمت إضافة القاعدة الضريبية." -#: pretix/control/logdisplay.py:619 +#: pretix/control/logdisplay.py:620 msgid "The tax rule has been deleted." msgstr "تم حذف حكم الضرائب." -#: pretix/control/logdisplay.py:620 +#: pretix/control/logdisplay.py:621 msgid "The tax rule has been changed." msgstr "تم تغيير القاعدة الضريبية." -#: pretix/control/logdisplay.py:632 +#: pretix/control/logdisplay.py:633 #, python-brace-format msgid "{user} has been added to the team." msgstr "{user} قد أضيفت إلى الفريق." -#: pretix/control/logdisplay.py:633 +#: pretix/control/logdisplay.py:634 #, python-brace-format msgid "{user} has been removed from the team." msgstr "{user} تمت إزالته من الفريق." -#: pretix/control/logdisplay.py:634 +#: pretix/control/logdisplay.py:635 #, python-brace-format msgid "{user} has been invited to the team." msgstr "{user} وقد وجهت الدعوة للفريق." -#: pretix/control/logdisplay.py:635 +#: pretix/control/logdisplay.py:636 #, python-brace-format msgid "Invite for {user} has been resent." msgstr "دعوة ل{user} لديه كان يستاء." -#: pretix/control/logdisplay.py:646 +#: pretix/control/logdisplay.py:647 #, python-brace-format msgid "{user} has joined the team using the invite sent to {email}." msgstr "{user} انضم إلى الفريق باستخدام دعوة إرسالها إلى {email}." -#: pretix/control/logdisplay.py:656 +#: pretix/control/logdisplay.py:657 msgid "Your account settings have been changed." msgstr "تم تغيير إعدادات حسابك." -#: pretix/control/logdisplay.py:659 pretix/control/views/user.py:253 +#: pretix/control/logdisplay.py:660 pretix/control/views/user.py:253 #, python-brace-format msgid "Your email address has been changed to {email}." msgstr "تم تغيير عنوان البريد الإلكتروني الخاص بك إلى {email}." -#: pretix/control/logdisplay.py:661 pretix/control/views/user.py:250 +#: pretix/control/logdisplay.py:662 pretix/control/views/user.py:250 msgid "Your password has been changed." msgstr "تم تغيير كلمة السر الخاصة بك." -#: pretix/control/logdisplay.py:663 +#: pretix/control/logdisplay.py:664 msgid "Your account has been enabled." msgstr "تم تمكين حسابك." -#: pretix/control/logdisplay.py:665 +#: pretix/control/logdisplay.py:666 msgid "Your account has been disabled." msgstr "تم تعطيل حسابك." -#: pretix/control/logdisplay.py:675 +#: pretix/control/logdisplay.py:676 #, python-brace-format msgid "You impersonated {}." msgstr "كنت انتحاله {}." -#: pretix/control/logdisplay.py:676 +#: pretix/control/logdisplay.py:677 #, python-brace-format msgid "You stopped impersonating {}." msgstr "قمت بإيقاف انتحال {}." -#: pretix/control/logdisplay.py:683 +#: pretix/control/logdisplay.py:684 msgid "This object has been created by cloning." msgstr "تم إنشاء هذا الكائن عبر النسخ." -#: pretix/control/logdisplay.py:684 +#: pretix/control/logdisplay.py:685 msgid "The organizer has been changed." msgstr "تم تغيير المنظم." -#: pretix/control/logdisplay.py:685 +#: pretix/control/logdisplay.py:686 msgid "The organizer settings have been changed." msgstr "تم تغيير إعدادات المنظم." -#: pretix/control/logdisplay.py:686 pretix/control/logdisplay.py:827 +#: pretix/control/logdisplay.py:687 pretix/control/logdisplay.py:828 #, fuzzy #| msgid "The order details have been changed." msgid "The footer links have been changed." msgstr "تم تغيير تفاصيل النظام." -#: pretix/control/logdisplay.py:687 pretix/control/logdisplay.py:734 +#: pretix/control/logdisplay.py:688 pretix/control/logdisplay.py:735 #, fuzzy #| msgid "The quota has been added." msgid "A scheduled export has been added." msgstr "تمت إضافة الحصص." -#: pretix/control/logdisplay.py:688 pretix/control/logdisplay.py:735 +#: pretix/control/logdisplay.py:689 pretix/control/logdisplay.py:736 #, fuzzy #| msgid "The product has been changed." msgid "A scheduled export has been changed." msgstr "تم تغيير المنتج." -#: pretix/control/logdisplay.py:689 pretix/control/logdisplay.py:736 +#: pretix/control/logdisplay.py:690 pretix/control/logdisplay.py:737 #, fuzzy #| msgid "The selected product has been deleted." msgid "A scheduled export has been deleted." msgstr "تم حذف المنتج المحدد." -#: pretix/control/logdisplay.py:690 pretix/control/logdisplay.py:737 +#: pretix/control/logdisplay.py:691 pretix/control/logdisplay.py:738 #, fuzzy #| msgid "The selected product has been deleted." msgid "A scheduled export has been executed." msgstr "تم حذف المنتج المحدد." -#: pretix/control/logdisplay.py:691 pretix/control/logdisplay.py:738 +#: pretix/control/logdisplay.py:692 pretix/control/logdisplay.py:739 #, python-brace-format msgid "A scheduled export has failed: {reason}." msgstr "" -#: pretix/control/logdisplay.py:692 +#: pretix/control/logdisplay.py:693 msgid "Gift card acceptance for another organizer has been added." msgstr "تم إضافة قبول بطاقة الهدية لمنظم آخر." -#: pretix/control/logdisplay.py:693 +#: pretix/control/logdisplay.py:694 msgid "Gift card acceptance for another organizer has been removed." msgstr "تم إزالة قبول بطاقة هدية لمنظم آخر." -#: pretix/control/logdisplay.py:694 +#: pretix/control/logdisplay.py:695 #, fuzzy #| msgid "The gift card has been created." msgid "A new gift card acceptor has been invited." msgstr "تم إنشاء بطاقة هدية." -#: pretix/control/logdisplay.py:695 +#: pretix/control/logdisplay.py:696 #, fuzzy #| msgid "The gift card has been created." msgid "A gift card acceptor has been removed." msgstr "تم إنشاء بطاقة هدية." -#: pretix/control/logdisplay.py:696 +#: pretix/control/logdisplay.py:697 #, fuzzy #| msgid "The selected gift card issuer has been removed." msgid "A gift card issuer has been removed or declined." msgstr "تمت إزالة مصدر البطاقة هدية المحدد." -#: pretix/control/logdisplay.py:697 +#: pretix/control/logdisplay.py:698 #, fuzzy #| msgid "The selected gift card issuer has been added." msgid "A new gift card issuer has been accepted." msgstr "تمت إضافة مصدر البطاقة هدية المحدد." -#: pretix/control/logdisplay.py:698 +#: pretix/control/logdisplay.py:699 msgid "The webhook has been created." msgstr "تم إنشاء خطاف الويب." -#: pretix/control/logdisplay.py:699 +#: pretix/control/logdisplay.py:700 msgid "The webhook has been changed." msgstr "تم تغيير خطاف الويب." -#: pretix/control/logdisplay.py:700 +#: pretix/control/logdisplay.py:701 msgid "The webhook call retry jobs have been manually expedited." msgstr "" -#: pretix/control/logdisplay.py:701 +#: pretix/control/logdisplay.py:702 #, fuzzy #| msgid "The webhook has been created." msgid "The webhook call retry jobs have been dropped." msgstr "تم إنشاء خطاف الويب." -#: pretix/control/logdisplay.py:702 +#: pretix/control/logdisplay.py:703 #, fuzzy #| msgid "The order has been created." msgid "The SSO provider has been created." msgstr "تم إنشاء هذا الأمر." -#: pretix/control/logdisplay.py:703 +#: pretix/control/logdisplay.py:704 #, fuzzy #| msgid "The order has been changed." msgid "The SSO provider has been changed." msgstr "تم تغيير النظام." -#: pretix/control/logdisplay.py:704 +#: pretix/control/logdisplay.py:705 #, fuzzy #| msgid "The order has been deleted." msgid "The SSO provider has been deleted." msgstr "تم حذف هذا الأمر." -#: pretix/control/logdisplay.py:705 +#: pretix/control/logdisplay.py:706 #, fuzzy #| msgid "The event has been created." msgid "The SSO client has been created." msgstr "تم إنشاء هذا الحدث." -#: pretix/control/logdisplay.py:706 +#: pretix/control/logdisplay.py:707 #, fuzzy #| msgid "The account has been changed." msgid "The SSO client has been changed." msgstr "تم تغيير الحساب." -#: pretix/control/logdisplay.py:707 +#: pretix/control/logdisplay.py:708 #, fuzzy #| msgid "The event has been deleted." msgid "The SSO client has been deleted." msgstr "الحدث تم الغائه." -#: pretix/control/logdisplay.py:708 pretix/control/views/organizer.py:2632 +#: pretix/control/logdisplay.py:709 pretix/control/views/organizer.py:2632 msgid "The membership type has been created." msgstr "تم انشاء نوع العضوية." -#: pretix/control/logdisplay.py:709 +#: pretix/control/logdisplay.py:710 msgid "The membership type has been changed." msgstr "تم تغيير نوع العضوية." -#: pretix/control/logdisplay.py:710 +#: pretix/control/logdisplay.py:711 msgid "The membership type has been deleted." msgstr "تم حذف نوع العضوية." -#: pretix/control/logdisplay.py:711 pretix/control/views/organizer.py:3470 +#: pretix/control/logdisplay.py:712 pretix/control/views/organizer.py:3472 #, fuzzy #| msgctxt "subevent" #| msgid "The new date has been created." msgid "The sales channel has been created." msgstr "تم إنشاء الموعد الجديد." -#: pretix/control/logdisplay.py:712 +#: pretix/control/logdisplay.py:713 #, fuzzy #| msgid "The device has been changed." msgid "The sales channel has been changed." msgstr "تم تغيير الجهاز." -#: pretix/control/logdisplay.py:713 +#: pretix/control/logdisplay.py:714 #, fuzzy #| msgid "The selected list has been deleted." msgid "The sales channel has been deleted." msgstr "تم حذف القائمة المحددة." -#: pretix/control/logdisplay.py:714 +#: pretix/control/logdisplay.py:715 msgid "The account has been created." msgstr "تم إنشاء الحساب." -#: pretix/control/logdisplay.py:715 +#: pretix/control/logdisplay.py:716 msgid "The account has been changed." msgstr "تم تغيير الحساب." -#: pretix/control/logdisplay.py:716 +#: pretix/control/logdisplay.py:717 msgid "A membership for this account has been added." msgstr "تم إضافة عضوية لهذا الحساب." -#: pretix/control/logdisplay.py:717 +#: pretix/control/logdisplay.py:718 msgid "A membership of this account has been changed." msgstr "تم تغيير العضوية لهذا الحساب." -#: pretix/control/logdisplay.py:718 +#: pretix/control/logdisplay.py:719 msgid "A membership of this account has been deleted." msgstr "تم حذف عضوية هذا الحساب." -#: pretix/control/logdisplay.py:719 +#: pretix/control/logdisplay.py:720 #, fuzzy #| msgid "Your account has been disabled." msgid "The account has been disabled and anonymized." msgstr "تم تعطيل الحساب وأصبح مجهول المصدر." -#: pretix/control/logdisplay.py:720 +#: pretix/control/logdisplay.py:721 msgid "A new password has been requested." msgstr "تم طلب تعيين كلمة المرور جديدة." -#: pretix/control/logdisplay.py:721 +#: pretix/control/logdisplay.py:722 msgid "A new password has been set." msgstr "تم تعيين كلمة المرور جديدة." -#: pretix/control/logdisplay.py:723 +#: pretix/control/logdisplay.py:724 #, fuzzy #| msgid "The team has been created." msgid "The reusable medium has been created." msgstr "تم إنشاء فريق." -#: pretix/control/logdisplay.py:724 +#: pretix/control/logdisplay.py:725 #, fuzzy #| msgid "The payment has been created successfully." msgid "The reusable medium has been created automatically." msgstr "تم إنشاء دفع بنجاح." -#: pretix/control/logdisplay.py:725 +#: pretix/control/logdisplay.py:726 #, fuzzy #| msgid "The tax rule has been changed." msgid "The reusable medium has been changed." msgstr "تم تغيير القاعدة الضريبية." -#: pretix/control/logdisplay.py:726 +#: pretix/control/logdisplay.py:727 #, fuzzy #| msgid "The email has been queued to be sent." msgid "The medium has been connected to a new ticket." msgstr "وقد تم في قائمة الانتظار البريد الإلكتروني لإرسالها." -#: pretix/control/logdisplay.py:727 +#: pretix/control/logdisplay.py:728 #, fuzzy #| msgid "The email has been queued to be sent." msgid "The medium has been connected to a new gift card." msgstr "وقد تم في قائمة الانتظار البريد الإلكتروني لإرسالها." -#: pretix/control/logdisplay.py:729 +#: pretix/control/logdisplay.py:730 msgid "The event's internal comment has been updated." msgstr "تم تحديث التعليق الداخلي للحدث." -#: pretix/control/logdisplay.py:730 +#: pretix/control/logdisplay.py:731 msgid "The event has been canceled." msgstr "تم إلغاء الفعالية." -#: pretix/control/logdisplay.py:731 +#: pretix/control/logdisplay.py:732 msgid "An event has been deleted." msgstr "تم حذف فعالية." -#: pretix/control/logdisplay.py:732 +#: pretix/control/logdisplay.py:733 msgid "A removal process for personal data has been started." msgstr "" -#: pretix/control/logdisplay.py:733 +#: pretix/control/logdisplay.py:734 msgid "A removal process for personal data has been completed." msgstr "" -#: pretix/control/logdisplay.py:739 +#: pretix/control/logdisplay.py:740 msgid "The user has been created." msgstr "تم إنشاء المستخدم." -#: pretix/control/logdisplay.py:740 +#: pretix/control/logdisplay.py:741 #, python-brace-format msgid "" "A first login using {agent_type} on {os_type} from {country} has been " "detected." msgstr "" -#: pretix/control/logdisplay.py:742 pretix/control/views/user.py:490 +#: pretix/control/logdisplay.py:743 pretix/control/views/user.py:490 #: pretix/control/views/user.py:550 pretix/control/views/user.py:609 msgid "Two-factor authentication has been enabled." msgstr "تم تمكين مصادقة اثنين عامل." -#: pretix/control/logdisplay.py:743 pretix/control/views/user.py:393 +#: pretix/control/logdisplay.py:744 pretix/control/views/user.py:393 #: pretix/control/views/user.py:625 msgid "Two-factor authentication has been disabled." msgstr "تم تعطيل المصادقة اثنين عامل." -#: pretix/control/logdisplay.py:744 pretix/control/views/user.py:642 +#: pretix/control/logdisplay.py:745 pretix/control/views/user.py:642 msgid "Your two-factor emergency codes have been regenerated." msgstr "وقد جددت بك رموز الطوارئ اثنين عامل." -#: pretix/control/logdisplay.py:745 +#: pretix/control/logdisplay.py:746 #, fuzzy #| msgid "Your two-factor emergency codes have been regenerated." msgid "A two-factor emergency code has been generated." msgstr "وقد جددت بك رموز الطوارئ اثنين عامل." -#: pretix/control/logdisplay.py:746 +#: pretix/control/logdisplay.py:747 #, python-brace-format msgid "" "A new two-factor authentication device \"{name}\" has been added to your " "account." msgstr "A اثنين عامل جهاز التوثيق جديد \"{name}\" قد أضيفت إلى حسابك." -#: pretix/control/logdisplay.py:748 +#: pretix/control/logdisplay.py:749 #, python-brace-format msgid "" "The two-factor authentication device \"{name}\" has been removed from your " "account." msgstr "الجهاز اثنين عامل التوثيق \"{name}\" تمت إزالة من حسابك." -#: pretix/control/logdisplay.py:750 +#: pretix/control/logdisplay.py:751 msgid "Notifications have been enabled." msgstr "تم تمكين الإشعارات." -#: pretix/control/logdisplay.py:751 +#: pretix/control/logdisplay.py:752 msgid "Notifications have been disabled." msgstr "تم تعطيل الإشعارات." -#: pretix/control/logdisplay.py:752 +#: pretix/control/logdisplay.py:753 msgid "Your notification settings have been changed." msgstr "تم تغيير إعدادات الإشعار." -#: pretix/control/logdisplay.py:753 +#: pretix/control/logdisplay.py:754 msgid "This user has been anonymized." msgstr "تم طمس هويتها لهذا المستخدم." -#: pretix/control/logdisplay.py:757 +#: pretix/control/logdisplay.py:758 msgid "Password reset mail sent." msgstr "إرسال كلمة المرور الإلكتروني إعادة تعيين." -#: pretix/control/logdisplay.py:758 +#: pretix/control/logdisplay.py:759 msgid "The password has been reset." msgstr "وقد تم إعادة تعيين كلمة المرور." -#: pretix/control/logdisplay.py:759 +#: pretix/control/logdisplay.py:760 msgid "" "A repeated password reset has been denied, as the last request was less than " "24 hours ago." msgstr "" -#: pretix/control/logdisplay.py:761 +#: pretix/control/logdisplay.py:762 #, python-brace-format msgid "The organizer \"{name}\" has been deleted." msgstr "منظم \"{name}\" تم حذفها." -#: pretix/control/logdisplay.py:762 pretix/control/logdisplay.py:988 +#: pretix/control/logdisplay.py:763 pretix/control/logdisplay.py:989 msgid "A voucher has been sent to a person on the waiting list." msgstr "تم إرسال قسيمة لشخص على قائمة الانتظار." -#: pretix/control/logdisplay.py:763 +#: pretix/control/logdisplay.py:764 #, fuzzy #| msgid "An entry has been added to the waiting list." msgid "An entry has been transferred to another waiting list." msgstr "تمت إضافة إدخال إلى قائمة الانتظار." -#: pretix/control/logdisplay.py:764 +#: pretix/control/logdisplay.py:765 msgid "The team has been created." msgstr "تم إنشاء فريق." -#: pretix/control/logdisplay.py:765 +#: pretix/control/logdisplay.py:766 msgid "The team settings have been changed." msgstr "تم تغيير إعدادات الفريق." -#: pretix/control/logdisplay.py:766 +#: pretix/control/logdisplay.py:767 msgid "The team has been deleted." msgstr "تم حذف الفريق." -#: pretix/control/logdisplay.py:767 pretix/control/views/organizer.py:2298 +#: pretix/control/logdisplay.py:768 pretix/control/views/organizer.py:2298 msgid "The gate has been created." msgstr "تم إنشاء البوابة." -#: pretix/control/logdisplay.py:768 +#: pretix/control/logdisplay.py:769 msgid "The gate has been changed." msgstr "تم تغيير البوابة." -#: pretix/control/logdisplay.py:769 +#: pretix/control/logdisplay.py:770 msgid "The gate has been deleted." msgstr "تم حذف البوابة." -#: pretix/control/logdisplay.py:770 +#: pretix/control/logdisplay.py:771 msgctxt "subevent" msgid "The event date has been deleted." msgstr "تم حذف تاريخ الحدث." -#: pretix/control/logdisplay.py:771 +#: pretix/control/logdisplay.py:772 msgctxt "subevent" msgid "The event date has been canceled." msgstr "تم تغيير تاريخ الفعالية." -#: pretix/control/logdisplay.py:772 +#: pretix/control/logdisplay.py:773 msgctxt "subevent" msgid "The event date has been changed." msgstr "تم تغيير تاريخ الحدث." -#: pretix/control/logdisplay.py:773 +#: pretix/control/logdisplay.py:774 msgctxt "subevent" msgid "The event date has been created." msgstr "تم إنشاء تاريخ الحدث." -#: pretix/control/logdisplay.py:774 +#: pretix/control/logdisplay.py:775 msgctxt "subevent" msgid "A quota has been added to the event date." msgstr "تمت إضافة الحصص لتاريخ الحدث." -#: pretix/control/logdisplay.py:775 +#: pretix/control/logdisplay.py:776 msgctxt "subevent" msgid "A quota has been changed on the event date." msgstr "تم تغيير الحصص في تاريخ الحدث." -#: pretix/control/logdisplay.py:776 +#: pretix/control/logdisplay.py:777 msgctxt "subevent" msgid "A quota has been removed from the event date." msgstr "تمت إزالة حصة من تاريخ الحدث." -#: pretix/control/logdisplay.py:777 +#: pretix/control/logdisplay.py:778 msgid "The device has been created." msgstr "تم إنشاء الجهاز." -#: pretix/control/logdisplay.py:778 +#: pretix/control/logdisplay.py:779 msgid "The device has been changed." msgstr "تم تغيير الجهاز." -#: pretix/control/logdisplay.py:779 +#: pretix/control/logdisplay.py:780 msgid "Access of the device has been revoked." msgstr "تم إبطال الوصول للجهاز." -#: pretix/control/logdisplay.py:780 +#: pretix/control/logdisplay.py:781 msgid "The device has been initialized." msgstr "تم تهيئة الجهاز." -#: pretix/control/logdisplay.py:781 +#: pretix/control/logdisplay.py:782 msgid "The access token of the device has been regenerated." msgstr "تم إعادة إنشاء الوصول رمزية للجهاز." -#: pretix/control/logdisplay.py:782 +#: pretix/control/logdisplay.py:783 msgid "The device has notified the server of an hardware or software update." msgstr "وقد أخطرت جهاز الخادم من تحديث الأجهزة أو البرامج." -#: pretix/control/logdisplay.py:783 +#: pretix/control/logdisplay.py:784 msgid "The gift card has been created." msgstr "تم إنشاء بطاقة هدية." -#: pretix/control/logdisplay.py:784 pretix/control/views/organizer.py:1925 +#: pretix/control/logdisplay.py:785 pretix/control/views/organizer.py:1925 msgid "The gift card has been changed." msgstr "تم تغيير بطاقة الهدية." -#: pretix/control/logdisplay.py:785 +#: pretix/control/logdisplay.py:786 msgid "A manual transaction has been performed." msgstr "تم إجراء عملية يدوية." -#: pretix/control/logdisplay.py:786 +#: pretix/control/logdisplay.py:787 #, python-brace-format msgid "The token \"{name}\" has been created." msgstr "ورمزي \"{name}\" تم إنشاؤه." -#: pretix/control/logdisplay.py:787 +#: pretix/control/logdisplay.py:788 #, python-brace-format msgid "The token \"{name}\" has been revoked." msgstr "ورمزي \"{name}\" تم إبطال." -#: pretix/control/logdisplay.py:788 +#: pretix/control/logdisplay.py:789 #, fuzzy #| msgid "The check-in list has been deleted." msgid "The check-in and print log state has been reset." msgstr "تم حذف الاختيار في القائمة." -#: pretix/control/logdisplay.py:795 pretix/control/logdisplay.py:854 +#: pretix/control/logdisplay.py:796 pretix/control/logdisplay.py:855 #, fuzzy #| msgid "A plugin has been enabled." msgid "The plugin has been enabled." msgstr "تم تمكين البرنامج المساعد." -#: pretix/control/logdisplay.py:796 pretix/control/logdisplay.py:855 +#: pretix/control/logdisplay.py:797 pretix/control/logdisplay.py:856 #: pretix/control/views/event.py:490 pretix/control/views/organizer.py:753 #, fuzzy #| msgid "A plugin has been disabled." msgid "The plugin has been disabled." msgstr "تم تعطيل البرنامج المساعد." -#: pretix/control/logdisplay.py:799 pretix/control/logdisplay.py:858 +#: pretix/control/logdisplay.py:800 pretix/control/logdisplay.py:859 #, fuzzy, python-brace-format #| msgid "Question {val}" msgid "Plugin {val}" msgstr "سؤال{val}" -#: pretix/control/logdisplay.py:814 +#: pretix/control/logdisplay.py:815 #, fuzzy #| msgid "A user has been added to the event team." msgid "A meta property has been added to this event." msgstr "تمت إضافة المستخدم إلى فريق الحدث." -#: pretix/control/logdisplay.py:815 +#: pretix/control/logdisplay.py:816 #, fuzzy #| msgid "A user has been removed from the event team." msgid "A meta property has been removed from this event." msgstr "تمت إزالة مستخدم من فريق الحدث." -#: pretix/control/logdisplay.py:816 +#: pretix/control/logdisplay.py:817 #, fuzzy #| msgctxt "subevent" #| msgid "A quota has been changed on the event date." msgid "A meta property has been changed on this event." msgstr "تم تغيير الحصص في تاريخ الحدث." -#: pretix/control/logdisplay.py:817 +#: pretix/control/logdisplay.py:818 msgid "The event settings have been changed." msgstr "تم تغيير إعدادات الحدث." -#: pretix/control/logdisplay.py:818 +#: pretix/control/logdisplay.py:819 msgid "The ticket download settings have been changed." msgstr "تم تغيير إعدادات تذكرة تنزيل." -#: pretix/control/logdisplay.py:821 +#: pretix/control/logdisplay.py:822 msgid "The shop has been taken live." msgstr "وقد اتخذت المحل الحية." -#: pretix/control/logdisplay.py:822 +#: pretix/control/logdisplay.py:823 msgid "The shop has been taken offline." msgstr "وقد اتخذت المحل حاليا." -#: pretix/control/logdisplay.py:823 +#: pretix/control/logdisplay.py:824 msgid "The shop has been taken into test mode." msgstr "وقد اتخذت المحل في وضع الاختبار." -#: pretix/control/logdisplay.py:824 +#: pretix/control/logdisplay.py:825 msgid "The test mode has been disabled." msgstr "تم تعطيل وضع الاختبار." -#: pretix/control/logdisplay.py:825 +#: pretix/control/logdisplay.py:826 msgid "The event has been created." msgstr "تم إنشاء هذا الحدث." -#: pretix/control/logdisplay.py:826 +#: pretix/control/logdisplay.py:827 msgid "The event details have been changed." msgstr "تم تغيير تفاصيل الفعالية." -#: pretix/control/logdisplay.py:828 +#: pretix/control/logdisplay.py:829 msgid "An answer option has been added to the question." msgstr "تمت إضافة خيار الإجابة على السؤال." -#: pretix/control/logdisplay.py:829 +#: pretix/control/logdisplay.py:830 msgid "An answer option has been removed from the question." msgstr "تمت إزالة خيار الإجابة عن السؤال." -#: pretix/control/logdisplay.py:830 +#: pretix/control/logdisplay.py:831 msgid "An answer option has been changed." msgstr "تم تغيير خيار الإجابة." -#: pretix/control/logdisplay.py:831 +#: pretix/control/logdisplay.py:832 msgid "A user has been added to the event team." msgstr "تمت إضافة المستخدم إلى فريق الحدث." -#: pretix/control/logdisplay.py:832 +#: pretix/control/logdisplay.py:833 msgid "A user has been invited to the event team." msgstr "وقد وجهت الدعوة للمستخدم لفريق الحدث." -#: pretix/control/logdisplay.py:833 +#: pretix/control/logdisplay.py:834 msgid "A user's permissions have been changed." msgstr "تم تغيير الأذونات للمستخدم." -#: pretix/control/logdisplay.py:834 +#: pretix/control/logdisplay.py:835 msgid "A user has been removed from the event team." msgstr "تمت إزالة مستخدم من فريق الحدث." -#: pretix/control/logdisplay.py:841 +#: pretix/control/logdisplay.py:842 msgid "The check-in list has been added." msgstr "تمت إضافة الاختيار في القائمة." -#: pretix/control/logdisplay.py:842 pretix/control/logdisplay.py:843 +#: pretix/control/logdisplay.py:843 pretix/control/logdisplay.py:844 msgid "The check-in list has been deleted." msgstr "تم حذف الاختيار في القائمة." -#: pretix/control/logdisplay.py:844 +#: pretix/control/logdisplay.py:845 msgid "The check-in list has been changed." msgstr "تم تغيير الاختيار في القائمة." -#: pretix/control/logdisplay.py:847 +#: pretix/control/logdisplay.py:848 #, fuzzy, python-brace-format #| msgid "Check-in list" msgid "Check-in list {val}" msgstr "تحقق في قائمة" -#: pretix/control/logdisplay.py:874 +#: pretix/control/logdisplay.py:875 msgid "The product has been created." msgstr "تم إنشاء المنتج." -#: pretix/control/logdisplay.py:875 +#: pretix/control/logdisplay.py:876 msgid "The product has been changed." msgstr "تم تغيير المنتج." -#: pretix/control/logdisplay.py:876 +#: pretix/control/logdisplay.py:877 #, fuzzy #| msgid "The product has been created." msgid "The product has been reordered." msgstr "تم إنشاء المنتج." -#: pretix/control/logdisplay.py:877 +#: pretix/control/logdisplay.py:878 msgid "The product has been deleted." msgstr "تم حذف المنتج." -#: pretix/control/logdisplay.py:878 +#: pretix/control/logdisplay.py:879 msgid "An add-on has been added to this product." msgstr "تمت إضافة وظيفة إضافية على هذا المنتج." -#: pretix/control/logdisplay.py:879 +#: pretix/control/logdisplay.py:880 msgid "An add-on has been removed from this product." msgstr "تمت إزالة وظيفة إضافية على من هذا المنتج." -#: pretix/control/logdisplay.py:880 +#: pretix/control/logdisplay.py:881 msgid "An add-on has been changed on this product." msgstr "تم تغيير وظيفة إضافية على على هذا المنتج." -#: pretix/control/logdisplay.py:881 +#: pretix/control/logdisplay.py:882 msgid "A bundled item has been added to this product." msgstr "تمت إضافة بند المجمعة لهذا المنتج." -#: pretix/control/logdisplay.py:882 +#: pretix/control/logdisplay.py:883 msgid "A bundled item has been removed from this product." msgstr "تمت إزالة عنصر المجمعة من هذا المنتج." -#: pretix/control/logdisplay.py:883 +#: pretix/control/logdisplay.py:884 msgid "A bundled item has been changed on this product." msgstr "تم تغيير عنصر المجمعة لهذا المنتج." -#: pretix/control/logdisplay.py:890 +#: pretix/control/logdisplay.py:891 #, python-brace-format msgid "The variation \"{value}\" has been created." msgstr "الاختلاف \"{value}\" تم إنشاؤه." -#: pretix/control/logdisplay.py:891 +#: pretix/control/logdisplay.py:892 #, python-brace-format msgid "The variation \"{value}\" has been deleted." msgstr "الاختلاف \"{value}\" تم حذفها." -#: pretix/control/logdisplay.py:892 +#: pretix/control/logdisplay.py:893 #, python-brace-format msgid "The variation \"{value}\" has been changed." msgstr "الاختلاف \"{value}\" تم تغيير." -#: pretix/control/logdisplay.py:909 +#: pretix/control/logdisplay.py:910 #, python-brace-format msgid "Payment {local_id} has been confirmed." msgstr "وقد تم تأكيد الدفع {local_id}." -#: pretix/control/logdisplay.py:910 +#: pretix/control/logdisplay.py:911 #, python-brace-format msgid "Payment {local_id} has been canceled." msgstr "تم إلغاء الدفع {local_id}." -#: pretix/control/logdisplay.py:911 +#: pretix/control/logdisplay.py:912 #, python-brace-format msgid "Canceling payment {local_id} has failed." msgstr "فشل إلغاء الدفع {local_id}." -#: pretix/control/logdisplay.py:912 +#: pretix/control/logdisplay.py:913 #, python-brace-format msgid "Payment {local_id} has been started." msgstr "وقد بدأ الدفع {local_id}." -#: pretix/control/logdisplay.py:913 +#: pretix/control/logdisplay.py:914 #, python-brace-format msgid "Payment {local_id} has failed." msgstr "فشلت الدفع {local_id}." -#: pretix/control/logdisplay.py:914 +#: pretix/control/logdisplay.py:915 #, python-brace-format msgid "The order could not be marked as paid: {message}" msgstr "لا يمكن أن تكون وضعت النظام كما المدفوعة: {message}" -#: pretix/control/logdisplay.py:915 +#: pretix/control/logdisplay.py:916 msgid "The order has been overpaid." msgstr "وقد تم ترتيب زائدة." -#: pretix/control/logdisplay.py:916 +#: pretix/control/logdisplay.py:917 #, python-brace-format msgid "Refund {local_id} has been created." msgstr "تم إنشاء استرداد {local_id}." -#: pretix/control/logdisplay.py:917 +#: pretix/control/logdisplay.py:918 #, python-brace-format msgid "Refund {local_id} has been created by an external entity." msgstr "تم إنشاء استرداد {local_id} كيان خارجي." -#: pretix/control/logdisplay.py:918 +#: pretix/control/logdisplay.py:919 msgid "The customer requested you to issue a refund." msgstr "طلب لك العملاء لإصدار رد." -#: pretix/control/logdisplay.py:919 +#: pretix/control/logdisplay.py:920 #, python-brace-format msgid "Refund {local_id} has been completed." msgstr "وقد تم الانتهاء استرداد {local_id}." -#: pretix/control/logdisplay.py:920 +#: pretix/control/logdisplay.py:921 #, python-brace-format msgid "Refund {local_id} has been canceled." msgstr "تم إلغاء استرداد {local_id}." -#: pretix/control/logdisplay.py:921 +#: pretix/control/logdisplay.py:922 #, python-brace-format msgid "Refund {local_id} has failed." msgstr "فشل استرداد {local_id}." -#: pretix/control/logdisplay.py:928 +#: pretix/control/logdisplay.py:929 msgid "The quota has been added." msgstr "تمت إضافة الحصص." -#: pretix/control/logdisplay.py:929 +#: pretix/control/logdisplay.py:930 msgid "The quota has been deleted." msgstr "تم حذف الحصص." -#: pretix/control/logdisplay.py:930 +#: pretix/control/logdisplay.py:931 msgid "The quota has been changed." msgstr "تم تغيير الحصص." -#: pretix/control/logdisplay.py:931 +#: pretix/control/logdisplay.py:932 msgid "The quota has closed." msgstr "وقد أغلقت الحصص." -#: pretix/control/logdisplay.py:932 pretix/control/views/item.py:1081 +#: pretix/control/logdisplay.py:933 pretix/control/views/item.py:1081 msgid "The quota has been re-opened." msgstr "وكانت الحصة إعادة فتح." -#: pretix/control/logdisplay.py:939 +#: pretix/control/logdisplay.py:940 msgid "The question has been added." msgstr "تمت إضافة هذا السؤال." -#: pretix/control/logdisplay.py:940 +#: pretix/control/logdisplay.py:941 msgid "The question has been deleted." msgstr "تم حذف السؤال." -#: pretix/control/logdisplay.py:941 +#: pretix/control/logdisplay.py:942 msgid "The question has been changed." msgstr "تم تغيير السؤال." -#: pretix/control/logdisplay.py:942 +#: pretix/control/logdisplay.py:943 #, fuzzy #| msgid "The question has been deleted." msgid "The question has been reordered." msgstr "تم حذف السؤال." -#: pretix/control/logdisplay.py:949 +#: pretix/control/logdisplay.py:950 #, fuzzy #| msgid "The quota has been added." msgid "The discount has been added." msgstr "تمت إضافة الحصص." -#: pretix/control/logdisplay.py:950 +#: pretix/control/logdisplay.py:951 #, fuzzy #| msgid "The product has been deleted." msgid "The discount has been deleted." msgstr "تم حذف المنتج." -#: pretix/control/logdisplay.py:951 +#: pretix/control/logdisplay.py:952 #, fuzzy #| msgid "The account has been changed." msgid "The discount has been changed." msgstr "تم تغيير الحساب." -#: pretix/control/logdisplay.py:975 +#: pretix/control/logdisplay.py:976 #, python-brace-format msgid "" "Position #{posid} has been checked in manually at {datetime} on list \"{list}" @@ -18327,7 +18421,7 @@ msgid "" msgstr "" "وقد تم التحقق من موقف # {posid} في يدويا في{datetime} على قائمة \"{list}\"." -#: pretix/control/logdisplay.py:980 +#: pretix/control/logdisplay.py:981 #, python-brace-format msgid "" "Position #{posid} has been checked in again at {datetime} on list \"{list}\"." @@ -18335,15 +18429,15 @@ msgstr "" "وقد تم التحقق من موقف # {posid} الدخول مرة أخرى في{datetime} على قائمة " "\"{list}\"." -#: pretix/control/logdisplay.py:989 +#: pretix/control/logdisplay.py:990 msgid "An entry has been removed from the waiting list." msgstr "تمت إزالة إدخال من قائمة الانتظار." -#: pretix/control/logdisplay.py:990 +#: pretix/control/logdisplay.py:991 msgid "An entry has been changed on the waiting list." msgstr "تم تغيير دخول على قائمة الانتظار." -#: pretix/control/logdisplay.py:991 +#: pretix/control/logdisplay.py:992 msgid "An entry has been added to the waiting list." msgstr "تمت إضافة إدخال إلى قائمة الانتظار." @@ -18427,7 +18521,7 @@ msgstr "القطعة" #: pretix/control/navigation.py:126 pretix/control/navigation.py:435 #: pretix/control/navigation.py:485 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:138 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:151 #: pretix/control/templates/pretixcontrol/event/payment.html:47 #: pretix/control/templates/pretixcontrol/event/plugins.html:117 #: pretix/control/templates/pretixcontrol/organizers/plugins.html:137 @@ -18710,12 +18804,12 @@ msgstr "" #: pretix/presale/templates/pretixpresale/event/checkout_addons.html:90 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:126 #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:80 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:131 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:168 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:194 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:53 #: pretix/presale/templates/pretixpresale/event/order_change.html:27 #: pretix/presale/templates/pretixpresale/event/order_pay.html:28 -#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:66 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:75 #: pretix/presale/templates/pretixpresale/event/position_change.html:29 msgid "Continue" msgstr "المتابعة" @@ -18768,7 +18862,7 @@ msgstr "كلمة المرور الجديدة تعيين" #: pretix/control/templates/pretixcontrol/email_setup_simple.html:82 #: pretix/control/templates/pretixcontrol/email_setup_smtp.html:38 #: pretix/control/templates/pretixcontrol/event/cancel.html:91 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:162 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:175 #: pretix/control/templates/pretixcontrol/event/mail.html:135 #: pretix/control/templates/pretixcontrol/event/payment.html:88 #: pretix/control/templates/pretixcontrol/event/payment_provider.html:36 @@ -18801,8 +18895,8 @@ msgstr "كلمة المرور الجديدة تعيين" #: pretix/control/templates/pretixcontrol/organizers/export_form.html:46 #: pretix/control/templates/pretixcontrol/organizers/gate_edit.html:15 #: pretix/control/templates/pretixcontrol/organizers/giftcard_acceptance_invite.html:15 -#: pretix/control/templates/pretixcontrol/organizers/giftcard_create.html:17 -#: pretix/control/templates/pretixcontrol/organizers/giftcard_edit.html:21 +#: pretix/control/templates/pretixcontrol/organizers/giftcard_create.html:20 +#: pretix/control/templates/pretixcontrol/organizers/giftcard_edit.html:24 #: pretix/control/templates/pretixcontrol/organizers/mail.html:73 #: pretix/control/templates/pretixcontrol/organizers/membershiptype_edit.html:15 #: pretix/control/templates/pretixcontrol/organizers/plugin_events.html:41 @@ -18813,9 +18907,9 @@ msgstr "كلمة المرور الجديدة تعيين" #: pretix/control/templates/pretixcontrol/organizers/team_edit.html:47 #: pretix/control/templates/pretixcontrol/organizers/webhook_edit.html:21 #: pretix/control/templates/pretixcontrol/pdf/index.html:46 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:630 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:632 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:368 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:287 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:289 #: pretix/control/templates/pretixcontrol/user/notifications.html:85 #: pretix/control/templates/pretixcontrol/user/settings.html:81 #: pretix/control/templates/pretixcontrol/user/staff_session_edit.html:13 @@ -19235,7 +19329,7 @@ msgstr[5] "" #: pretix/presale/templates/pretixpresale/event/order_change.html:22 #: pretix/presale/templates/pretixpresale/event/order_modify.html:80 #: pretix/presale/templates/pretixpresale/event/order_pay.html:23 -#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:60 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:69 #: pretix/presale/templates/pretixpresale/event/order_pay_confirm.html:40 #: pretix/presale/templates/pretixpresale/event/position_change.html:24 #: pretix/presale/templates/pretixpresale/event/position_modify.html:44 @@ -19256,7 +19350,7 @@ msgstr "قم بالإلغاء" #: pretix/control/templates/pretixcontrol/orders/export.html:77 #: pretix/control/templates/pretixcontrol/orders/export_delete.html:15 #: pretix/control/templates/pretixcontrol/organizers/channel_delete.html:28 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:173 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:174 #: pretix/control/templates/pretixcontrol/organizers/customer_membership_delete.html:26 #: pretix/control/templates/pretixcontrol/organizers/delete.html:30 #: pretix/control/templates/pretixcontrol/organizers/export.html:77 @@ -19358,7 +19452,7 @@ msgstr "اسم البنك" #: pretix/control/templates/pretixcontrol/checkin/checkins.html:65 #: pretix/control/templates/pretixcontrol/checkin/simulator.html:49 #: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:14 -#: pretix/plugins/checkinlists/exporters.py:767 +#: pretix/plugins/checkinlists/exporters.py:770 msgid "Result" msgstr "النتيجة" @@ -19574,8 +19668,8 @@ msgstr "آلية الدخول" #: pretix/control/templates/pretixcontrol/items/index.html:164 #: pretix/control/templates/pretixcontrol/orders/export.html:73 #: pretix/control/templates/pretixcontrol/orders/index.html:40 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:98 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:166 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:99 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:167 #: pretix/control/templates/pretixcontrol/organizers/export.html:73 #: pretix/control/templates/pretixcontrol/organizers/giftcard.html:15 #: pretix/control/templates/pretixcontrol/organizers/mail.html:34 @@ -20544,25 +20638,32 @@ msgstr "ضبط فاتورة" msgid "Invoice generation" msgstr "جيل فاتورة" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:27 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:23 +msgid "" +"You configured that your shop is not an event and the event date should not " +"be shown. Therefore, we recommend that you set the date of service to a " +"different option." +msgstr "" + +#: pretix/control/templates/pretixcontrol/event/invoicing.html:40 msgid "Address form" msgstr "شكل عنوان" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:40 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:53 msgid "Issuer details" msgstr "تفاصيل المصدر" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:50 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:63 msgid "Invoice customization" msgstr "فاتورة التخصيص" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:64 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:77 #, fuzzy #| msgid "Invoice generation" msgid "Invoice transmission" msgstr "جيل فاتورة" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:66 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:79 msgid "" "pretix can transmit invoices using different transmission methods. Different " "transmission methods might be required depending on country and industry. By " @@ -20570,56 +20671,56 @@ msgid "" "types of transmission can be added by plugins." msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:73 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:86 msgid "" "Whether a transmission method listed here is actually selectable for " "customers may depend on the country of the customer or whether the customer " "is entering a business address." msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:82 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:95 #, fuzzy #| msgid "Transaction Code" msgid "Transmission method" msgstr "كود المعاملة" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:98 -#: pretix/control/templates/pretixcontrol/event/invoicing.html:125 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:111 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:138 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:109 #: pretix/plugins/statistics/templates/pretixplugins/statistics/index.html:111 msgid "Available" msgstr "متاح" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:100 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:113 msgid "" "When this type is available for an invoice address, no other type can be " "selected." msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:101 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:114 msgid "(exclusive)" msgstr "" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:108 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:121 #, fuzzy #| msgid "Available" msgid "Unavailable" msgstr "متاح" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:130 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:143 #, fuzzy #| msgctxt "payment_state" #| msgid "confirmed" msgid "Not configured" msgstr "تم التأكيد" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:152 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:165 #, fuzzy #| msgid "Enable waiting list" msgid "Enable additional invoice transmission plugins" msgstr "تمكين قائمة الانتظار" -#: pretix/control/templates/pretixcontrol/event/invoicing.html:159 +#: pretix/control/templates/pretixcontrol/event/invoicing.html:172 msgid "Save and show preview" msgstr "حفظ وعرض المعاينة" @@ -20979,19 +21080,19 @@ msgstr "" #: pretix/control/views/organizer.py:2672 #: pretix/control/views/organizer.py:2788 #: pretix/control/views/organizer.py:2917 -#: pretix/control/views/organizer.py:3111 -#: pretix/control/views/organizer.py:3140 -#: pretix/control/views/organizer.py:3180 -#: pretix/control/views/organizer.py:3257 -#: pretix/control/views/organizer.py:3354 -#: pretix/control/views/organizer.py:3383 -#: pretix/control/views/organizer.py:3521 pretix/control/views/subevents.py:542 +#: pretix/control/views/organizer.py:3113 +#: pretix/control/views/organizer.py:3142 +#: pretix/control/views/organizer.py:3182 +#: pretix/control/views/organizer.py:3259 +#: pretix/control/views/organizer.py:3356 +#: pretix/control/views/organizer.py:3385 +#: pretix/control/views/organizer.py:3523 pretix/control/views/subevents.py:542 #: pretix/control/views/subevents.py:1614 pretix/control/views/user.py:236 #: pretix/control/views/users.py:114 pretix/control/views/vouchers.py:305 #: pretix/plugins/autocheckin/views.py:164 pretix/plugins/badges/views.py:157 #: pretix/plugins/sendmail/views.py:645 pretix/plugins/stripe/views.py:679 #: pretix/plugins/ticketoutputpdf/views.py:172 -#: pretix/presale/views/customer.py:527 pretix/presale/views/customer.py:579 +#: pretix/presale/views/customer.py:542 pretix/presale/views/customer.py:594 msgid "Your changes have been saved." msgstr "تم حفظ التغييرات." @@ -21856,6 +21957,33 @@ msgstr "أرقام اعتبارا من %(date)s" msgid "Currently available: %(num)s" msgstr "المتاحة حاليا: %(num)s" +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:9 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:81 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:14 +#: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:7 +#, fuzzy +#| msgid "Confirmations" +msgid "Information" +msgstr "تأكيدات" + +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:10 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:15 +msgid "The following gift cards are available in your customer account:" +msgstr "" + +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:25 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:29 +#, fuzzy +#| msgid "Issued gift cards" +msgid "Use gift card" +msgstr "بطاقات هدية صدر" + +#: pretix/control/templates/pretixcontrol/giftcards/checkout.html:27 +#: pretix/control/templates/pretixcontrol/pdf/index.html:156 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:32 +msgid "Apply" +msgstr "تطبيق" + #: pretix/control/templates/pretixcontrol/giftcards/checkout_confirm.html:4 #, fuzzy, python-format #| msgid "This gift card can only be used in test mode." @@ -22460,8 +22588,8 @@ msgid "" msgstr "" #: pretix/control/templates/pretixcontrol/item/index.html:254 -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:617 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:260 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:619 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:262 msgid "Additional settings" msgstr "إعدادات إضافية" @@ -22816,8 +22944,8 @@ msgstr "تحرير مسألة" #: pretix/control/templates/pretixcontrol/items/question.html:26 #: pretix/control/templates/pretixcontrol/orders/fragment_order_status.html:31 #: pretix/control/templates/pretixcontrol/orders/overview.html:88 -#: pretix/plugins/checkinlists/exporters.py:503 -#: pretix/plugins/checkinlists/exporters.py:697 +#: pretix/plugins/checkinlists/exporters.py:504 +#: pretix/plugins/checkinlists/exporters.py:699 #: pretix/plugins/reports/exporters.py:397 #: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:23 msgid "Paid" @@ -23883,7 +24011,7 @@ msgstr "الضرائب" #: pretix/plugins/reports/exporters.py:397 #: pretix/plugins/reports/exporters.py:446 #: pretix/plugins/reports/exporters.py:638 -#: pretix/plugins/reports/exporters.py:968 +#: pretix/plugins/reports/exporters.py:969 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:465 msgid "Total" msgstr "المجموع" @@ -24750,7 +24878,7 @@ msgid "Remove filter" msgstr "فلتر إزالة" #: pretix/control/templates/pretixcontrol/orders/index.html:145 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:207 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:208 #, fuzzy #| msgid "Order total" msgid "Order paid / total" @@ -24775,40 +24903,40 @@ msgid "TODO %(date)s" msgstr "خروج: %(date)s" #: pretix/control/templates/pretixcontrol/orders/index.html:215 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:246 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:247 #: pretix/control/templates/pretixcontrol/search/orders.html:95 msgid "CANCELLATION REQUESTED" msgstr "" #: pretix/control/templates/pretixcontrol/orders/index.html:218 #: pretix/control/templates/pretixcontrol/orders/index.html:220 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:249 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:251 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:250 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:252 #: pretix/control/templates/pretixcontrol/search/orders.html:98 #: pretix/control/templates/pretixcontrol/search/orders.html:100 msgid "REFUND PENDING" msgstr "إسترداد بانتظار" #: pretix/control/templates/pretixcontrol/orders/index.html:223 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:254 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:255 #: pretix/control/templates/pretixcontrol/search/orders.html:103 msgid "OVERPAID" msgstr "زائدة" #: pretix/control/templates/pretixcontrol/orders/index.html:225 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:256 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:257 #: pretix/control/templates/pretixcontrol/search/orders.html:105 msgid "UNDERPAID" msgstr "يتقاضون أجورا" #: pretix/control/templates/pretixcontrol/orders/index.html:227 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:258 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:259 #: pretix/control/templates/pretixcontrol/search/orders.html:107 msgid "FULLY PAID" msgstr "مدفوع بالكامل" #: pretix/control/templates/pretixcontrol/orders/index.html:239 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:270 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:271 msgid "INVOICE NOT CANCELED" msgstr "" @@ -24976,8 +25104,8 @@ msgstr "إضافة قاعدة جديدة" msgid "Channel" msgstr "يتغيرون" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:7 -#: pretix/control/templates/pretixcontrol/organizers/customer.html:13 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:8 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:14 #: pretix/control/templates/pretixcontrol/organizers/customer_edit.html:8 #: pretix/control/templates/pretixcontrol/organizers/customer_edit.html:18 #, fuzzy, python-format @@ -24985,60 +25113,53 @@ msgstr "يتغيرون" msgid "Customer #%(id)s" msgstr "عنوان البريد الإلكتروني التحقق منها" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:22 -#: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:15 -#: pretix/control/templates/pretixcontrol/organizers/customers.html:90 -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:23 -#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:95 -#: pretix/control/templates/pretixcontrol/organizers/reusable_media.html:102 -#: pretix/control/templates/pretixcontrol/organizers/reusable_medium.html:21 -#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:390 -#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:114 -#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html:95 -#: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:66 -msgid "Details" -msgstr "تفاصيل" - -#: pretix/control/templates/pretixcontrol/organizers/customer.html:54 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:55 #, fuzzy #| msgid "Send password reset email" msgid "Send password reset link" msgstr "إرسال إعادة تعيين كلمة المرور البريد الإلكتروني" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:79 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:80 msgid "This includes all paid orders by this customer across all your events." msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:80 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:81 #, fuzzy #| msgid "Payment pending" msgid "Lifetime spending" msgstr "انتظار الدفع" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:102 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:103 #: pretix/control/templates/pretixcontrol/organizers/customer_anonymize.html:39 #: pretix/control/templates/pretixcontrol/users/form.html:24 msgid "Anonymize" msgstr "إخفاء هوية" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:121 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:122 #: pretix/control/templates/pretixcontrol/organizers/customer_membership.html:35 #: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:60 msgid "Usages" msgstr "مرات الإستخدام" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:188 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:189 #, fuzzy #| msgid "Team memberships" msgid "Add membership" msgstr "عضوية فريق" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:240 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:241 #: pretix/presale/templates/pretixpresale/organizers/customer_orders.html:29 msgid "Matched to the account based on the email address." msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/customer.html:286 +#: pretix/control/templates/pretixcontrol/organizers/customer.html:294 +#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:65 +#, fuzzy +#| msgid "Latin transcription" +msgid "Last transaction" +msgstr "الإملاء بالحروف اللاتينية" + +#: pretix/control/templates/pretixcontrol/organizers/customer.html:334 #, fuzzy #| msgid "User history" msgid "Customer history" @@ -25520,30 +25641,23 @@ msgstr "تاريخ الانتهاء" msgid "Issued through sale" msgstr "أصدرت من خلال بيع" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:63 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:71 msgid "Transactions" msgstr "المعاملات" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:73 -#: pretix/presale/templates/pretixpresale/event/fragment_giftcard_history.html:7 -#, fuzzy -#| msgid "Confirmations" -msgid "Information" -msgstr "تأكيدات" - -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:86 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:94 msgid "" "Create a payment on the respective order that cancels out with this " "transaction. The order will then likely be overpaid." msgstr "" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:88 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:96 #, fuzzy #| msgid "Never" msgid "Revert" msgstr "أبدا" -#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:131 +#: pretix/control/templates/pretixcontrol/organizers/giftcard.html:139 #, fuzzy #| msgid "Gift cards" msgid "Gift card history" @@ -25656,12 +25770,6 @@ msgstr "" msgid "Manually issue a gift card" msgstr "يدويا إصدار بطاقة هدية" -#: pretix/control/templates/pretixcontrol/organizers/giftcards.html:65 -#, fuzzy -#| msgid "Latin transcription" -msgid "Last transaction" -msgstr "الإملاء بالحروف اللاتينية" - #: pretix/control/templates/pretixcontrol/organizers/index.html:9 msgid "" "The list below shows all organizer accounts you have administrative access " @@ -26313,10 +26421,6 @@ msgstr "" "والغرض من هذه الميزة فقط للمستخدمين المتقدمين. من المستحسن استخدامه فقط لنسخ " "والتصاميم حصة التذاكر، وليس لتعديل التعليمات البرمجية المصدر التصميم." -#: pretix/control/templates/pretixcontrol/pdf/index.html:156 -msgid "Apply" -msgstr "تطبيق" - #: pretix/control/templates/pretixcontrol/pdf/index.html:164 msgid "Uploading new PDF background…" msgstr "تحميل خلفية PDF جديدة ..." @@ -26836,8 +26940,8 @@ msgid "" "from the product settings will be used." msgstr "" -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:521 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:164 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:523 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:166 msgid "" "You can choose to either add one or more check-in lists for every date in " "your series individually, or use just one check-in list for all your dates " @@ -26849,9 +26953,9 @@ msgid "" "will be easier." msgstr "" -#: pretix/control/templates/pretixcontrol/subevents/bulk.html:600 +#: pretix/control/templates/pretixcontrol/subevents/bulk.html:602 #: pretix/control/templates/pretixcontrol/subevents/bulk_edit.html:359 -#: pretix/control/templates/pretixcontrol/subevents/detail.html:243 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:245 msgid "Add a new check-in list" msgstr "إضافة الاختيار في قائمة جديدة" @@ -26942,7 +27046,7 @@ msgctxt "subevent" msgid "Create date" msgstr "تاريخ إنشاء" -#: pretix/control/templates/pretixcontrol/subevents/detail.html:277 +#: pretix/control/templates/pretixcontrol/subevents/detail.html:279 msgctxt "subevent" msgid "Date history" msgstr "تاريخ التاريخ" @@ -28236,11 +28340,11 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: pretix/control/views/datasync.py:82 +#: pretix/control/views/datasync.py:82 pretix/control/views/datasync.py:113 #, fuzzy -#| msgid "The quota has been re-opened and will not close again." -msgid "The sync job has been enqueued and will run in the next minutes." -msgstr "وكانت الحصة إعادة فتحها وسوف يتم إغلاق مرة أخرى." +#| msgid "The voucher has been sent to {recipient}." +msgid "The sync job has been set to run as soon as possible." +msgstr "تم إرسال كود الخصم إلى {recipient}." #: pretix/control/views/datasync.py:90 pretix/control/views/datasync.py:104 #, fuzzy @@ -28261,12 +28365,6 @@ msgstr "وقد تم بالفعل إلغاء الفاتورة." msgid "The sync job has been canceled." msgstr "تم إلغاء هذا الأمر." -#: pretix/control/views/datasync.py:113 -#, fuzzy -#| msgid "The voucher has been sent to {recipient}." -msgid "The sync job has been set to run as soon as possible." -msgstr "تم إرسال كود الخصم إلى {recipient}." - #: pretix/control/views/datasync.py:144 #, fuzzy #| msgctxt "subevent" @@ -28316,7 +28414,7 @@ msgstr "تم تحديث ترتيب العناصر." #: pretix/control/views/discounts.py:260 pretix/control/views/item.py:190 #: pretix/control/views/item.py:402 pretix/control/views/item.py:536 #: pretix/control/views/organizer.py:2558 -#: pretix/control/views/organizer.py:3616 +#: pretix/control/views/organizer.py:3618 #, fuzzy #| msgid "Some of the provided question ids are invalid." msgid "Some of the provided object ids are invalid." @@ -28368,7 +28466,7 @@ msgid "Unknown email renderer." msgstr "غير معروف العارض البريد الإلكتروني." #: pretix/control/views/event.py:920 pretix/control/views/orders.py:678 -#: pretix/presale/views/order.py:1088 pretix/presale/views/order.py:1095 +#: pretix/presale/views/order.py:1111 pretix/presale/views/order.py:1118 msgid "You requested an invalid ticket output type." msgstr "لقد طلبت صالح نوع الانتاج التذاكر." @@ -28571,7 +28669,7 @@ msgstr "تم تحديث ترتيب الفئات." #: pretix/control/views/item.py:405 pretix/control/views/item.py:539 #: pretix/control/views/organizer.py:2561 -#: pretix/control/views/organizer.py:3619 +#: pretix/control/views/organizer.py:3621 #, fuzzy #| msgid "The question has been deleted." msgid "Not all objects have been selected." @@ -28803,19 +28901,19 @@ msgid "" "Successfully executed the action \"{label}\" on {success} of {total} orders." msgstr "" -#: pretix/control/views/orders.py:680 pretix/presale/views/order.py:158 -#: pretix/presale/views/order.py:240 pretix/presale/views/order.py:334 -#: pretix/presale/views/order.py:361 pretix/presale/views/order.py:429 -#: pretix/presale/views/order.py:496 pretix/presale/views/order.py:542 -#: pretix/presale/views/order.py:728 pretix/presale/views/order.py:841 -#: pretix/presale/views/order.py:913 pretix/presale/views/order.py:928 -#: pretix/presale/views/order.py:977 pretix/presale/views/order.py:982 -#: pretix/presale/views/order.py:1097 pretix/presale/views/order.py:1274 -#: pretix/presale/views/order.py:1666 pretix/presale/views/order.py:1697 +#: pretix/control/views/orders.py:680 pretix/presale/views/order.py:161 +#: pretix/presale/views/order.py:243 pretix/presale/views/order.py:337 +#: pretix/presale/views/order.py:364 pretix/presale/views/order.py:432 +#: pretix/presale/views/order.py:499 pretix/presale/views/order.py:545 +#: pretix/presale/views/order.py:731 pretix/presale/views/order.py:864 +#: pretix/presale/views/order.py:936 pretix/presale/views/order.py:951 +#: pretix/presale/views/order.py:1000 pretix/presale/views/order.py:1005 +#: pretix/presale/views/order.py:1120 pretix/presale/views/order.py:1297 +#: pretix/presale/views/order.py:1689 pretix/presale/views/order.py:1720 msgid "Unknown order code or not authorized to access this order." msgstr "كود أجل غير معروف أو غير مخول للوصول إلى هذا النظام." -#: pretix/control/views/orders.py:682 pretix/presale/views/order.py:1102 +#: pretix/control/views/orders.py:682 pretix/presale/views/order.py:1125 msgid "Ticket download is not enabled for this product." msgstr "لم يتم تمكين حمل تذكرة لهذا المنتج." @@ -28918,26 +29016,26 @@ msgid "" "still necessary." msgstr "" -#: pretix/control/views/orders.py:1259 +#: pretix/control/views/orders.py:1260 #, fuzzy #| msgid "You entered an order that could not be found." msgid "You entered an order in an event with a different currency." msgstr "لقد أدخلت طلبا لا يمكن العثور عليه." -#: pretix/control/views/orders.py:1310 +#: pretix/control/views/orders.py:1311 msgid "" "You can not refund more than the amount of a payment that is not yet " "refunded." msgstr "لا يمكنك استرداد أكثر من مبلغ الدفعة التي لم يتم ردها حتى الان." -#: pretix/control/views/orders.py:1315 +#: pretix/control/views/orders.py:1316 msgid "" "You selected a partial refund for a payment method that only supports full " "refunds." msgstr "" "لقد حددت استرداد جزئي لطريقة الدفع التي تدعم فقط المبالغ المستردة كامل." -#: pretix/control/views/orders.py:1345 +#: pretix/control/views/orders.py:1346 #, python-brace-format msgid "" "One of the refunds failed to be processed. You should retry to refund in a " @@ -28946,12 +29044,12 @@ msgstr "" "فشل في معالجتها واحدة من المبالغ المستردة. يجب عليك إعادة المحاولة لاسترداد " "بطريقة مختلفة. وكانت رسالة الخطأ: {}" -#: pretix/control/views/orders.py:1351 +#: pretix/control/views/orders.py:1352 #, python-brace-format msgid "A refund of {} has been processed." msgstr "وقد تم تجهيز واسترداد {}." -#: pretix/control/views/orders.py:1355 +#: pretix/control/views/orders.py:1356 #, python-brace-format msgid "" "A refund of {} has been saved, but not yet fully executed. You can mark it " @@ -28960,16 +29058,16 @@ msgstr "" "تم حفظ استرداد {}، ولكن لم يتم تنفيذها بالكامل. يمكنك وضع علامة على أنها " "كاملة أدناه." -#: pretix/control/views/orders.py:1384 +#: pretix/control/views/orders.py:1385 msgid "" "A new gift card was created. You can now send the user their gift card code." msgstr "" -#: pretix/control/views/orders.py:1392 +#: pretix/control/views/orders.py:1393 msgid "Your gift card code" msgstr "" -#: pretix/control/views/orders.py:1394 +#: pretix/control/views/orders.py:1395 #, python-brace-format msgid "" "Hello,\n" @@ -28982,22 +29080,22 @@ msgid "" "Your {event} team" msgstr "" -#: pretix/control/views/orders.py:1405 +#: pretix/control/views/orders.py:1406 msgid "The refunds you selected do not match the selected total refund amount." msgstr "المبالغ المستردة التي حددتها لا تتطابق إجمالي استرداد المبلغ المحدد." -#: pretix/control/views/orders.py:1535 +#: pretix/control/views/orders.py:1536 msgid "" "The order has been marked as paid, but we were unable to send a confirmation " "mail." msgstr "" "تم وضع علامة على النظام ودفع، ولكن لم نتمكن من إرسال البريد الإلكتروني تأكيد." -#: pretix/control/views/orders.py:1538 +#: pretix/control/views/orders.py:1539 msgid "The payment has been created successfully." msgstr "تم إنشاء دفع بنجاح." -#: pretix/control/views/orders.py:1552 +#: pretix/control/views/orders.py:1553 msgid "" "The order has been canceled. You can now select how you want to transfer the " "money back to the user." @@ -29005,22 +29103,22 @@ msgstr "" "تم إلغاء هذا الأمر. يمكنك الآن تحديد كيف تريد لنقل الجزء الخلفي المال " "للمستخدم." -#: pretix/control/views/orders.py:1623 pretix/control/views/orders.py:1627 +#: pretix/control/views/orders.py:1624 pretix/control/views/orders.py:1628 msgid "No VAT ID specified." msgstr "يتم تحديد معرف ضريبة القيمة المضافة." -#: pretix/control/views/orders.py:1631 +#: pretix/control/views/orders.py:1632 msgid "No country specified." msgstr "تحديد أي بلد." -#: pretix/control/views/orders.py:1635 +#: pretix/control/views/orders.py:1636 #, fuzzy #| msgid "" #| "VAT ID could not be checked since a non-EU country has been specified." msgid "VAT ID could not be checked since this country is not supported." msgstr "ولم يتسن التحقق VAT ID منذ تم تحديد بلد خارج الاتحاد الأوروبي." -#: pretix/control/views/orders.py:1646 +#: pretix/control/views/orders.py:1647 msgid "" "The VAT ID could not be checked, as the VAT checking service of the country " "is currently not available." @@ -29028,68 +29126,68 @@ msgstr "" "ولم يتسن التحقق من هوية ضريبة القيمة المضافة، مثل خدمة فحص ضريبة القيمة " "المضافة من البلاد غير متوفرة حاليا." -#: pretix/control/views/orders.py:1649 +#: pretix/control/views/orders.py:1650 msgid "This VAT ID is valid." msgstr "هذا ID VAT صالح." -#: pretix/control/views/orders.py:1663 pretix/control/views/orders.py:1697 -#: pretix/control/views/orders.py:1729 +#: pretix/control/views/orders.py:1664 pretix/control/views/orders.py:1698 +#: pretix/control/views/orders.py:1730 msgid "Unknown invoice." msgstr "فاتورة غير معروفة." -#: pretix/control/views/orders.py:1666 +#: pretix/control/views/orders.py:1667 msgid "Invoices may not be changed after they are created." msgstr "" -#: pretix/control/views/orders.py:1668 +#: pretix/control/views/orders.py:1669 msgid "Invoices may not be changed after they are transmitted." msgstr "" -#: pretix/control/views/orders.py:1670 pretix/control/views/orders.py:1732 +#: pretix/control/views/orders.py:1671 pretix/control/views/orders.py:1733 msgid "The invoice has already been canceled." msgstr "وقد تم بالفعل إلغاء الفاتورة." -#: pretix/control/views/orders.py:1672 +#: pretix/control/views/orders.py:1673 #, fuzzy #| msgid "The invoice has already been canceled." msgid "The invoice file has already been exported." msgstr "وقد تم بالفعل إلغاء الفاتورة." -#: pretix/control/views/orders.py:1674 +#: pretix/control/views/orders.py:1675 #, fuzzy #| msgid "The invoice has been regenerated." msgid "The invoice file is too old to be regenerated." msgstr "تم إعادة إنشاء الفاتورة." -#: pretix/control/views/orders.py:1676 pretix/control/views/orders.py:1734 +#: pretix/control/views/orders.py:1677 pretix/control/views/orders.py:1735 msgid "The invoice has been cleaned of personal data." msgstr "وقد تم تنظيف الفاتورة البيانات الشخصية." -#: pretix/control/views/orders.py:1701 +#: pretix/control/views/orders.py:1702 msgid "" "The invoice is currently being transmitted. You can start a new attempt " "after the current one has been completed." msgstr "" -#: pretix/control/views/orders.py:1708 +#: pretix/control/views/orders.py:1709 #, fuzzy #| msgid "The invoice has been cleaned of personal data." msgid "The invoice has been scheduled for retransmission." msgstr "وقد تم تنظيف الفاتورة البيانات الشخصية." -#: pretix/control/views/orders.py:1765 +#: pretix/control/views/orders.py:1766 msgid "The email has been queued to be sent." msgstr "وقد تم في قائمة الانتظار البريد الإلكتروني لإرسالها." -#: pretix/control/views/orders.py:1789 pretix/presale/views/order.py:1283 +#: pretix/control/views/orders.py:1790 pretix/presale/views/order.py:1306 msgid "This invoice has not been found" msgstr "لم يتم العثور على هذه الفاتورة" -#: pretix/control/views/orders.py:1796 pretix/presale/views/order.py:1290 +#: pretix/control/views/orders.py:1797 pretix/presale/views/order.py:1313 msgid "The invoice file is no longer stored on the server." msgstr "لم يعد تخزين الملف فاتورة على الخادم." -#: pretix/control/views/orders.py:1801 pretix/presale/views/order.py:1295 +#: pretix/control/views/orders.py:1802 pretix/presale/views/order.py:1318 msgid "" "The invoice file has not yet been generated, we will generate it for you " "now. Please try again in a few seconds." @@ -29097,107 +29195,107 @@ msgstr "" "لم يتم إنشاء ملف الفاتورة، وسوف تولد لانها لكم الآن. يرجى المحاولة مرة أخرى " "في بضع ثوان." -#: pretix/control/views/orders.py:1829 +#: pretix/control/views/orders.py:1830 msgid "The payment term has been changed." msgstr "تم تغيير مصطلح الدفع." -#: pretix/control/views/orders.py:1834 pretix/control/views/orders.py:1891 +#: pretix/control/views/orders.py:1835 pretix/control/views/orders.py:1892 msgid "" "We were not able to process the request completely as the server was too " "busy." msgstr "لم نكن قادرين على معالجة الطلب تماما كما كان الملقم مشغول جدا." -#: pretix/control/views/orders.py:1842 +#: pretix/control/views/orders.py:1843 msgid "This action is only allowed for pending orders." msgstr "يسمح هذا الإجراء فقط لانتظار أوامر." -#: pretix/control/views/orders.py:1897 +#: pretix/control/views/orders.py:1898 #, fuzzy #| msgid "This action is only allowed for pending orders." msgid "This action is only allowed for canceled orders." msgstr "يسمح هذا الإجراء فقط لانتظار أوامر." -#: pretix/control/views/orders.py:2154 pretix/presale/views/order.py:1569 +#: pretix/control/views/orders.py:2155 pretix/presale/views/order.py:1592 msgid "An error occurred. Please see the details below." msgstr "حدث خطأ. يرجى الاطلاع على التفاصيل أدناه." -#: pretix/control/views/orders.py:2162 +#: pretix/control/views/orders.py:2163 msgid "The order has been changed and the user has been notified." msgstr "تم تغيير النظام وتم إعلام المستخدم." -#: pretix/control/views/orders.py:2164 pretix/control/views/orders.py:2300 -#: pretix/control/views/orders.py:2337 pretix/presale/views/order.py:1604 +#: pretix/control/views/orders.py:2165 pretix/control/views/orders.py:2301 +#: pretix/control/views/orders.py:2338 pretix/presale/views/order.py:1627 msgid "The order has been changed." msgstr "تم تغيير النظام." -#: pretix/control/views/orders.py:2191 pretix/presale/checkoutflow.py:945 -#: pretix/presale/views/order.py:783 pretix/presale/views/order.py:888 +#: pretix/control/views/orders.py:2192 pretix/presale/checkoutflow.py:945 +#: pretix/presale/views/order.py:793 pretix/presale/views/order.py:911 msgid "" "We had difficulties processing your input. Please review the errors below." msgstr "كان لدينا صعوبات معالجة المدخلات الخاصة بك. يرجى مراجعة الأخطاء أدناه." -#: pretix/control/views/orders.py:2302 +#: pretix/control/views/orders.py:2303 msgid "Nothing about the order had to be changed." msgstr "كان شيئا عن هذا الأمر يجب أن يتغير." -#: pretix/control/views/orders.py:2383 pretix/plugins/sendmail/views.py:176 +#: pretix/control/views/orders.py:2384 pretix/plugins/sendmail/views.py:176 msgid "We could not send the email. See below for details." msgstr "لم نتمكن من إرسال البريد الإلكتروني. انظر أدناه للحصول على التفاصيل." -#: pretix/control/views/orders.py:2399 pretix/control/views/orders.py:2469 +#: pretix/control/views/orders.py:2400 pretix/control/views/orders.py:2470 #: pretix/plugins/sendmail/views.py:204 pretix/plugins/sendmail/views.py:671 #, python-brace-format msgid "Subject: {subject}" msgstr "الموضوع: {subject}" -#: pretix/control/views/orders.py:2418 pretix/control/views/orders.py:2489 +#: pretix/control/views/orders.py:2419 pretix/control/views/orders.py:2490 #, python-brace-format msgid "Your message has been queued and will be sent to {}." msgstr "وقد اصطف رسالتك وسوف يتم ارسالهم الى {}." -#: pretix/control/views/orders.py:2422 pretix/control/views/orders.py:2492 +#: pretix/control/views/orders.py:2423 pretix/control/views/orders.py:2493 #, python-brace-format msgid "Failed to send mail to the following user: {}" msgstr "فشل في إرسال البريد الإلكتروني للمستخدم التالية: {}" -#: pretix/control/views/orders.py:2545 pretix/presale/views/order.py:1062 +#: pretix/control/views/orders.py:2546 pretix/presale/views/order.py:1085 msgid "" "This link is no longer valid. Please go back, refresh the page, and try " "again." msgstr "هذا الرابط لم يعد صالحا. يرجى العودة، بتحديث الصفحة وحاول مرة أخرى." -#: pretix/control/views/orders.py:2626 +#: pretix/control/views/orders.py:2627 msgid "There is no order with the given order code." msgstr "لا يوجد أي ترتيب مع رمز ترتيب معين." -#: pretix/control/views/orders.py:2732 pretix/control/views/organizer.py:2074 +#: pretix/control/views/orders.py:2733 pretix/control/views/organizer.py:2074 msgid "The selected exporter was not found." msgstr "لم يتم العثور على مصدر المحدد." -#: pretix/control/views/orders.py:2742 pretix/control/views/organizer.py:2084 +#: pretix/control/views/orders.py:2743 pretix/control/views/organizer.py:2084 msgid "There was a problem processing your input. See below for error details." msgstr "" "كانت هناك مشكلة معالجة المدخلات الخاصة بك. انظر أدناه للحصول على تفاصيل " "الخطأ." -#: pretix/control/views/orders.py:2777 pretix/control/views/organizer.py:2127 +#: pretix/control/views/orders.py:2778 pretix/control/views/organizer.py:2127 #, python-brace-format msgid "" "Your export schedule has been saved. The next export will start around " "{datetime}." msgstr "" -#: pretix/control/views/orders.py:2782 pretix/control/views/organizer.py:2132 +#: pretix/control/views/orders.py:2783 pretix/control/views/organizer.py:2132 msgid "Your export schedule has been saved, but no next export is planned." msgstr "" -#: pretix/control/views/orders.py:2821 pretix/control/views/organizer.py:2172 +#: pretix/control/views/orders.py:2822 pretix/control/views/organizer.py:2172 #, fuzzy, python-brace-format #| msgid "Export date" msgid "Export: {title}" msgstr "تاريخ التصدير" -#: pretix/control/views/orders.py:2822 pretix/control/views/organizer.py:2174 +#: pretix/control/views/orders.py:2823 pretix/control/views/organizer.py:2174 #, python-brace-format msgid "" "Hello,\n" @@ -29205,7 +29303,7 @@ msgid "" "attached to this email, you can find a new scheduled report for {name}." msgstr "" -#: pretix/control/views/orders.py:2849 pretix/control/views/organizer.py:2207 +#: pretix/control/views/orders.py:2850 pretix/control/views/organizer.py:2207 #, fuzzy #| msgid "You do not have permission to perform this action." msgid "" @@ -29213,27 +29311,27 @@ msgid "" "therefore you cannot schedule it." msgstr "ليس لديك إذن لتنفيذ هذا الإجراء." -#: pretix/control/views/orders.py:2902 pretix/control/views/organizer.py:2259 +#: pretix/control/views/orders.py:2903 pretix/control/views/organizer.py:2259 msgid "" "Your export is queued to start soon. The results will be send via email. " "Depending on system load and type and size of export, this may take a few " "minutes." msgstr "" -#: pretix/control/views/orders.py:2981 +#: pretix/control/views/orders.py:2982 #, fuzzy #| msgid "The order has been canceled." msgid "All orders have been canceled." msgstr "تم إلغاء هذا الأمر." -#: pretix/control/views/orders.py:2983 +#: pretix/control/views/orders.py:2984 #, python-brace-format msgid "" "The orders have been canceled. An error occurred with {count} orders, please " "check all uncanceled orders." msgstr "" -#: pretix/control/views/orders.py:3004 +#: pretix/control/views/orders.py:3005 #, fuzzy #| msgid "Your input was invalid, please try again." msgid "Your input was not valid." @@ -29312,8 +29410,8 @@ msgstr "تم إنشاء فريق. يمكنك الآن إضافة أعضاء لل #: pretix/control/views/organizer.py:2792 #: pretix/control/views/organizer.py:2872 #: pretix/control/views/organizer.py:2922 -#: pretix/control/views/organizer.py:3481 -#: pretix/control/views/organizer.py:3525 +#: pretix/control/views/organizer.py:3483 +#: pretix/control/views/organizer.py:3527 msgid "Your changes could not be saved." msgstr "لا يمكن حفظ التغييرات الخاصة بك." @@ -29504,7 +29602,7 @@ msgstr "تم تحديث ترتيب العناصر." #: pretix/control/views/organizer.py:2706 #: pretix/control/views/organizer.py:2822 #: pretix/control/views/organizer.py:2952 -#: pretix/control/views/organizer.py:3218 +#: pretix/control/views/organizer.py:3220 #, fuzzy #| msgid "The selected product has been deleted." msgid "The selected object has been deleted." @@ -29547,25 +29645,25 @@ msgstr "" "لقد أرسلنا إليك بريدا إلكترونيا يحتوي على مزيد من الإرشادات حول إعادة تعيين " "كلمة المرور الخاصة بك." -#: pretix/control/views/organizer.py:3283 +#: pretix/control/views/organizer.py:3285 #, fuzzy #| msgid "This user has been anonymized." msgid "The customer account has been anonymized." msgstr "تم طمس هويتها لهذا المستخدم." -#: pretix/control/views/organizer.py:3553 +#: pretix/control/views/organizer.py:3555 #, fuzzy #| msgid "This organizer can not be deleted." msgid "This channel can not be deleted." msgstr "لا يمكن حذف هذا منظم." -#: pretix/control/views/organizer.py:3558 +#: pretix/control/views/organizer.py:3560 #, fuzzy #| msgid "The selected list has been deleted." msgid "The selected sales channel has been deleted." msgstr "تم حذف القائمة المحددة." -#: pretix/control/views/organizer.py:3560 +#: pretix/control/views/organizer.py:3562 #, fuzzy #| msgid "" #| "The event could not be deleted as some constraints (e.g. data created by " @@ -29577,7 +29675,7 @@ msgstr "" "لا يمكن حذف الحدث عن بعض القيود (مثل البيانات التي تم إنشاؤها من قبل " "المكونات الإضافية) لا تسمح بذلك." -#: pretix/control/views/organizer.py:3585 +#: pretix/control/views/organizer.py:3587 #, fuzzy #| msgid "The order of items has been updated." msgid "The order of sales channels has been updated." @@ -30288,7 +30386,7 @@ msgstr "قم بتضمين تذاكر لفترة في هذا التاريخ أو #: pretix/plugins/badges/exporters.py:493 #: pretix/plugins/checkinlists/exporters.py:118 #: pretix/plugins/reports/exporters.py:506 -#: pretix/plugins/reports/exporters.py:688 +#: pretix/plugins/reports/exporters.py:689 #: pretix/plugins/ticketoutputpdf/exporters.py:92 msgid "Sort by" msgstr "ترتيب حسب" @@ -31232,8 +31330,8 @@ msgstr "قائمة التسجيل (PDF)" #: pretix/plugins/checkinlists/exporters.py:305 #: pretix/plugins/checkinlists/exporters.py:476 -#: pretix/plugins/checkinlists/exporters.py:673 -#: pretix/plugins/checkinlists/exporters.py:743 +#: pretix/plugins/checkinlists/exporters.py:674 +#: pretix/plugins/checkinlists/exporters.py:745 #, fuzzy #| msgid "Check-in" msgctxt "export_category" @@ -31258,81 +31356,81 @@ msgid "" "list." msgstr "" -#: pretix/plugins/checkinlists/exporters.py:500 +#: pretix/plugins/checkinlists/exporters.py:501 msgid "Checked out" msgstr "تسجيل خروج" -#: pretix/plugins/checkinlists/exporters.py:500 -#: pretix/plugins/checkinlists/exporters.py:765 +#: pretix/plugins/checkinlists/exporters.py:501 +#: pretix/plugins/checkinlists/exporters.py:768 msgid "Automatically checked in" msgstr "تم التسجيل تلقائيا" -#: pretix/plugins/checkinlists/exporters.py:506 -#: pretix/plugins/checkinlists/exporters.py:694 -#: pretix/plugins/checkinlists/exporters.py:759 +#: pretix/plugins/checkinlists/exporters.py:507 +#: pretix/plugins/checkinlists/exporters.py:696 +#: pretix/plugins/checkinlists/exporters.py:762 #: pretix/plugins/paypal/payment.py:124 pretix/plugins/paypal2/payment.py:121 msgid "Secret" msgstr "سري" -#: pretix/plugins/checkinlists/exporters.py:672 +#: pretix/plugins/checkinlists/exporters.py:673 #, fuzzy #| msgid "All check-in lists" msgid "Valid check-in codes" msgstr "جميع قوائم التسجيل" -#: pretix/plugins/checkinlists/exporters.py:674 +#: pretix/plugins/checkinlists/exporters.py:675 msgid "" "Download a spreadsheet with all valid check-in barcodes e.g. for import into " "a different system. Does not included blocked codes or personal data." msgstr "" -#: pretix/plugins/checkinlists/exporters.py:742 +#: pretix/plugins/checkinlists/exporters.py:744 #, fuzzy #| msgid "Check-in log (all successful scans)" msgid "Check-in log (all scans)" msgstr "تسجيل الدخول (جميع عمليات الفحص الناجحة)" -#: pretix/plugins/checkinlists/exporters.py:744 +#: pretix/plugins/checkinlists/exporters.py:746 msgid "" "Download a spreadsheet with one line for every scan that happened at your " "check-in stations." msgstr "" -#: pretix/plugins/checkinlists/exporters.py:763 +#: pretix/plugins/checkinlists/exporters.py:766 #, fuzzy #| msgid "Go offline" msgid "Offline" msgstr "العودة متواجد حاليا" -#: pretix/plugins/checkinlists/exporters.py:764 +#: pretix/plugins/checkinlists/exporters.py:767 msgid "Offline override" msgstr "تجاوز وضع عدم الاتصال" -#: pretix/plugins/checkinlists/exporters.py:768 +#: pretix/plugins/checkinlists/exporters.py:771 #: pretix/plugins/stripe/templates/pretixplugins/stripe/control.html:83 msgid "Error message" msgstr "رسالة خاطئة" -#: pretix/plugins/checkinlists/exporters.py:769 +#: pretix/plugins/checkinlists/exporters.py:772 #, fuzzy #| msgid "Download date" msgid "Upload date" msgstr "تاريخ التنزيل" -#: pretix/plugins/checkinlists/exporters.py:770 +#: pretix/plugins/checkinlists/exporters.py:773 #, fuzzy #| msgid "Download time" msgid "Upload time" msgstr "وقت التنزيل" -#: pretix/plugins/checkinlists/exporters.py:827 +#: pretix/plugins/checkinlists/exporters.py:830 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:519 #: pretix/presale/templates/pretixpresale/fragment_modals.html:52 #: pretix/presale/templates/pretixpresale/fragment_modals.html:148 msgid "OK" msgstr "" -#: pretix/plugins/checkinlists/exporters.py:859 +#: pretix/plugins/checkinlists/exporters.py:862 #, fuzzy #| msgid "Successful payments" msgid "Successful scans only" @@ -31894,7 +31992,7 @@ msgid "Please turn on JavaScript." msgstr "حاول مرة اخرى." #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:29 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:57 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:85 msgid "Please select how you want to pay." msgstr "يرجى اختيار طريقة الدفع." @@ -32119,16 +32217,16 @@ msgid "Orders by tax rate ({currency})" msgstr "أوامر حسب معدل الضريبة ({currency})" #: pretix/plugins/reports/exporters.py:576 -#: pretix/plugins/reports/exporters.py:805 -#: pretix/plugins/reports/exporters.py:857 -#: pretix/plugins/reports/exporters.py:898 +#: pretix/plugins/reports/exporters.py:806 +#: pretix/plugins/reports/exporters.py:858 +#: pretix/plugins/reports/exporters.py:899 msgid "Gross" msgstr "الإجمالي" #: pretix/plugins/reports/exporters.py:576 -#: pretix/plugins/reports/exporters.py:806 -#: pretix/plugins/reports/exporters.py:858 -#: pretix/plugins/reports/exporters.py:898 +#: pretix/plugins/reports/exporters.py:807 +#: pretix/plugins/reports/exporters.py:859 +#: pretix/plugins/reports/exporters.py:899 msgid "Tax" msgstr "ضريبة" @@ -32142,16 +32240,16 @@ msgstr "القائمة الافتراضية" msgid "Download a spreadsheet with the tax amounts included in each order." msgstr "" -#: pretix/plugins/reports/exporters.py:669 +#: pretix/plugins/reports/exporters.py:670 msgid "Taxes by country" msgstr "الضرائب حسب البلد" -#: pretix/plugins/reports/exporters.py:670 +#: pretix/plugins/reports/exporters.py:671 msgid "Business customers" msgstr "عملاء قطاع الأعمال" -#: pretix/plugins/reports/exporters.py:802 -#: pretix/plugins/reports/exporters.py:847 +#: pretix/plugins/reports/exporters.py:803 +#: pretix/plugins/reports/exporters.py:848 msgid "Country code" msgstr "رمز البلد" @@ -34088,7 +34186,7 @@ msgstr "المنتجات الإضافية" #: pretix/presale/checkoutflow.py:678 pretix/presale/checkoutflow.py:686 #: pretix/presale/views/cart.py:195 pretix/presale/views/cart.py:200 #: pretix/presale/views/cart.py:218 pretix/presale/views/cart.py:231 -#: pretix/presale/views/order.py:1491 pretix/presale/views/order.py:1499 +#: pretix/presale/views/order.py:1514 pretix/presale/views/order.py:1522 msgid "Please enter numbers only." msgstr "الرجاء إدخال أرقام فقط." @@ -34149,7 +34247,7 @@ msgstr "" "تم استعمال بطاقة الهدايا الخاصة بك، ولكن {} لا تزال بحاجة إلى أن يتم سدادها. " "الرجاء اختيار طريقة الدفع." -#: pretix/presale/checkoutflow.py:1397 pretix/presale/views/order.py:676 +#: pretix/presale/checkoutflow.py:1397 pretix/presale/views/order.py:679 msgid "Please select a payment method." msgstr "الرجاء اختيار طريقة الدفع." @@ -34160,8 +34258,8 @@ msgstr "الرجاء اختيار طريقة الدفع." msgid "Please select a payment method to proceed." msgstr "الرجاء اختيار طريقة الدفع." -#: pretix/presale/checkoutflow.py:1454 pretix/presale/views/order.py:435 -#: pretix/presale/views/order.py:502 +#: pretix/presale/checkoutflow.py:1454 pretix/presale/views/order.py:438 +#: pretix/presale/views/order.py:505 msgid "The payment information you entered was incomplete." msgstr "معلومات الدفع التي أدخلتها غير مكتملة." @@ -34513,13 +34611,6 @@ msgctxt "alert-messages" msgid "Information" msgstr "تأكيدات" -#: pretix/presale/templates/pretixpresale/event/base.html:222 -#: pretix/presale/templates/pretixpresale/organizers/base.html:100 -#, fuzzy -#| msgid "Contact:" -msgid "Contact" -msgstr "جهة اتصال:" - #: pretix/presale/templates/pretixpresale/event/base.html:225 #: pretix/presale/templates/pretixpresale/fragment_modals.html:118 #: pretix/presale/templates/pretixpresale/fragment_modals.html:137 @@ -34580,7 +34671,7 @@ msgstr "ملاحظات الطلب" #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:209 #: pretix/presale/templates/pretixpresale/event/checkout_customer.html:121 #: pretix/presale/templates/pretixpresale/event/checkout_membership.html:75 -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:126 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:163 #: pretix/presale/templates/pretixpresale/event/checkout_questions.html:189 #: pretix/presale/templates/pretixpresale/organizers/customer_address_delete.html:28 #: pretix/presale/templates/pretixpresale/organizers/customer_profile_delete.html:28 @@ -34789,59 +34880,72 @@ msgid "" "product." msgstr "" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:13 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:41 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:30 #, fuzzy #| msgid "Please confirm the following payment details." msgid "You already selected the following payment methods:" msgstr "يرجى تأكيد تفاصيل الدفع التالية." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:30 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:58 #, fuzzy #| msgctxt "invoice" #| msgid "Received payments" msgid "Remove payment" msgstr "المدفوعات المستلمة" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:40 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:68 #, fuzzy #| msgid "Pending amount" msgid "Remaining balance" msgstr "مبالغ متأخرة" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:41 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:69 #, fuzzy #| msgid "Please select a payment method." msgid "Please select a payment method below." msgstr "الرجاء اختيار طريقة الدفع." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:54 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:82 #, fuzzy #| msgid "Please select how you want to pay." msgid "Please select how you want to pay the remaining balance:" msgstr "يرجى اختيار طريقة الدفع." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:92 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:110 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:45 +#, fuzzy, python-format +#| msgid "%(num)s available" +msgid "(%(count)s available)" +msgid_plural "(%(count)s available)" +msgstr[0] "%(num)s هو متاح" +msgstr[1] "%(num)s هو متاح" +msgstr[2] "%(num)s هو متاح" +msgstr[3] "%(num)s هو متاح" +msgstr[4] "%(num)s هو متاح" +msgstr[5] "%(num)s هو متاح" + +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:129 msgid "This sales channel does not provide support for test mode." msgstr "لا توفر قناة المبيعات هذه دعما لوضع الاختبار." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:94 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:131 msgid "If you continue, you might pay an actual order with non-existing money!" msgstr "إذا تابعت ، فقد تدفع طلبا فعليا بمبلغ غير موجود!" -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:102 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:139 msgid "This payment provider does not provide support for test mode." msgstr "لا يوفر مزود الدفع هذا دعما لوضع الاختبار." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:104 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:141 msgid "If you continue, actual money might be transferred." msgstr "إذا قمت بالمتابعة، قد يتم تحويل المبلغ الفعلي." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:115 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:152 msgid "There are no payment providers enabled." msgstr "لم يتم تمكين مزودي الدفع." -#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:117 +#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:154 msgid "" "Please go to the payment settings and activate one or more payment providers." msgstr "يرجى الذهاب إلى إعدادات الدفع وتفعيل واحد أو أكثر من مزودي الدفع." @@ -36318,7 +36422,7 @@ msgstr "" "يرجى الملاحظة: إذا قمت بتغيير طريقة الدفع الخاصة بك ، فسيتغير إجمالي طلبك " "حسب المبلغ المعروض على يمين كل طريقة." -#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:52 +#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:61 msgid "There are no alternative payment providers available for this order." msgstr "لا يوجد مزودو دفع بديلون متاحون لهذا الطلب." @@ -36870,7 +36974,7 @@ msgstr "هل أنت متأكد أنك تريد حذف التواريخ التا #: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:5 #: pretix/presale/templates/pretixpresale/organizers/customer_addresses.html:11 -#: pretix/presale/views/customer.py:372 +#: pretix/presale/views/customer.py:378 #, fuzzy #| msgid "Address" msgid "Addresses" @@ -36901,6 +37005,42 @@ msgstr "قم بتغيير كلمة المرور" msgid "customer account information" msgstr "تاكيد التسجيل" +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:28 +#, fuzzy, python-format +#| msgid "First scanned: %(date)s" +msgid "Issued on %(date)s" +msgstr "الممسوحة ضوئيا أولا: %(date)s" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:38 +#, fuzzy, python-format +#| msgid "Expired" +msgid "Expired since %(date)s" +msgstr "منتهية الصلاحية" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:46 +#, fuzzy, python-format +#| msgid "Admission: %(datetime)s" +msgid "Valid until %(date)s" +msgstr "القبول: %(datetime)s" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:66 +#, fuzzy +#| msgid "Pending amount" +msgid "Remaining value:" +msgstr "مبالغ متأخرة" + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:76 +#, fuzzy +#| msgid "You do not have permission to clone this event." +msgid "You don’t have any gift cards in your account currently." +msgstr "ليس لديك إذن لاستنساخ هذا الحدث." + +#: pretix/presale/templates/pretixpresale/organizers/customer_giftcards.html:77 +msgid "" +"Currently, only gift cards resulting from refunds show up here, any " +"purchased gift cards show up under the orders tab." +msgstr "" + #: pretix/presale/templates/pretixpresale/organizers/customer_info.html:6 msgid "Account information" msgstr "معلومات الحساب" @@ -37001,7 +37141,7 @@ msgstr "هل أنت متأكد أنك تريد حذف التواريخ التا #: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:5 #: pretix/presale/templates/pretixpresale/organizers/customer_profiles.html:11 -#: pretix/presale/views/customer.py:378 +#: pretix/presale/views/customer.py:384 #, fuzzy #| msgid "Attendee address" msgid "Attendee profiles" @@ -37167,7 +37307,7 @@ msgstr "" "أرسلناه لك لتفعيل حسابك واختيار كلمة مرور." #: pretix/presale/views/customer.py:268 pretix/presale/views/customer.py:271 -#: pretix/presale/views/customer.py:607 pretix/presale/views/customer.py:613 +#: pretix/presale/views/customer.py:622 pretix/presale/views/customer.py:628 msgid "You clicked an invalid link." msgstr "لقد قمت بالنقر فوق رابط غير صالح." @@ -37183,7 +37323,7 @@ msgstr "" "لقد أرسلنا إليك بريدا إلكترونيا يحتوي على مزيد من الإرشادات حول إعادة تعيين " "كلمة المرور الخاصة بك." -#: pretix/presale/views/customer.py:575 +#: pretix/presale/views/customer.py:590 msgid "" "Your changes have been saved. We've sent you an email with a link to update " "your email address. The email address of your account will be changed as " @@ -37193,17 +37333,17 @@ msgstr "" "بريدك الإلكتروني. سيتم تغيير عنوان البريد الإلكتروني الخاص بحسابك بمجرد " "النقر فوق هذا الارتباط." -#: pretix/presale/views/customer.py:624 +#: pretix/presale/views/customer.py:639 msgid "" "Your email address has not been updated since the address is already in use " "for another customer account." msgstr "" -#: pretix/presale/views/customer.py:627 +#: pretix/presale/views/customer.py:642 msgid "Your email address has been updated." msgstr "تم تحديث عنوان بريدك الإلكتروني." -#: pretix/presale/views/customer.py:844 pretix/presale/views/customer.py:855 +#: pretix/presale/views/customer.py:859 pretix/presale/views/customer.py:870 #, python-brace-format msgid "" "We were unable to use your login since the email address {email} is already " @@ -37253,56 +37393,60 @@ msgstr "لا يمكن استخدام بطاقة الهدايا هذه إلا ف msgid "Time machine disabled!" msgstr "هذا الحساب معطل." -#: pretix/presale/views/order.py:366 pretix/presale/views/order.py:431 -#: pretix/presale/views/order.py:498 +#: pretix/presale/views/order.py:369 pretix/presale/views/order.py:434 +#: pretix/presale/views/order.py:501 msgid "The payment for this order cannot be continued." msgstr "لا يمكن متابعة الدفع لهذا الطلب." -#: pretix/presale/views/order.py:371 pretix/presale/views/order.py:440 -#: pretix/presale/views/order.py:507 pretix/presale/views/order.py:549 +#: pretix/presale/views/order.py:374 pretix/presale/views/order.py:443 +#: pretix/presale/views/order.py:510 pretix/presale/views/order.py:552 msgid "The payment is too late to be accepted." msgstr "فات الأوان لقبول الدفع." -#: pretix/presale/views/order.py:544 +#: pretix/presale/views/order.py:547 msgid "The payment method for this order cannot be changed." msgstr "لا يمكن تغيير طريقة الدفع لهذا الطلب." -#: pretix/presale/views/order.py:555 +#: pretix/presale/views/order.py:558 msgid "A payment is currently pending for this order." msgstr "دفعة سداد معلقة حاليا لهذا الطلب." -#: pretix/presale/views/order.py:667 +#: pretix/presale/views/order.py:670 msgid "An invoice has been generated." msgstr "تم إنشاء فاتورة." -#: pretix/presale/views/order.py:843 pretix/presale/views/order.py:915 +#: pretix/presale/views/order.py:751 pretix/presale/views/order.py:831 +msgid "Invoice generation has failed, please reach out to the organizer." +msgstr "" + +#: pretix/presale/views/order.py:866 pretix/presale/views/order.py:938 msgid "You cannot modify this order" msgstr "لا يمكنك تعديل هذا الطلب" -#: pretix/presale/views/order.py:1010 pretix/presale/views/order.py:1015 -#: pretix/presale/views/order.py:1020 +#: pretix/presale/views/order.py:1033 pretix/presale/views/order.py:1038 +#: pretix/presale/views/order.py:1043 msgid "You chose an invalid cancellation fee." msgstr "لقد اخترت رسوم إلغاء غير صالحة." -#: pretix/presale/views/order.py:1036 +#: pretix/presale/views/order.py:1059 msgid "Canceled by customer" msgstr "تم الإلغاء من قبل العميل" -#: pretix/presale/views/order.py:1047 +#: pretix/presale/views/order.py:1070 msgid "The cancellation has been requested." msgstr "تم طلب الإلغاء." -#: pretix/presale/views/order.py:1100 +#: pretix/presale/views/order.py:1123 msgid "Ticket download is not (yet) enabled for this order." msgstr "لم يتم تمكين تنزيل التذاكر (حتى الآن) لهذا الطلب." -#: pretix/presale/views/order.py:1109 +#: pretix/presale/views/order.py:1132 msgid "Please click the link we sent you via email to download your tickets." msgstr "" "الرجاء الضغط على الرابط الذي أرسلناه لك عبر البريد الإلكتروني لتنزيل التذاكر " "الخاصة بك." -#: pretix/presale/views/order.py:1596 +#: pretix/presale/views/order.py:1619 #, python-brace-format msgid "" "The order has been changed. You can now proceed by paying the open amount of " @@ -37310,44 +37454,44 @@ msgid "" msgstr "" "تم تغيير الطلب. يمكنك الآن المضي قدما بدفع المبلغ المفتوح وقدره{amount}." -#: pretix/presale/views/order.py:1608 +#: pretix/presale/views/order.py:1631 #, fuzzy #| msgid "Your search did not match any vouchers." msgid "You did not make any changes." msgstr "بحثك لم تطابق اي القسائم." -#: pretix/presale/views/order.py:1632 +#: pretix/presale/views/order.py:1655 msgid "You may not change your order in a way that reduces the total price." msgstr "" -#: pretix/presale/views/order.py:1634 +#: pretix/presale/views/order.py:1657 msgid "You may only change your order in a way that increases the total price." msgstr "" -#: pretix/presale/views/order.py:1636 +#: pretix/presale/views/order.py:1659 msgid "You may not change your order in a way that changes the total price." msgstr "" -#: pretix/presale/views/order.py:1638 +#: pretix/presale/views/order.py:1661 #, fuzzy #| msgid "You can cancel this order, but you will not receive a refund." msgid "You may not change your order in a way that would require a refund." msgstr "يمكنك إلغاء هذا الطلب ، لكنك لن تسترد المبلغ." -#: pretix/presale/views/order.py:1646 +#: pretix/presale/views/order.py:1669 msgid "" "You may not change your order in a way that increases the total price since " "payments are no longer being accepted for this event." msgstr "" -#: pretix/presale/views/order.py:1652 +#: pretix/presale/views/order.py:1675 msgid "" "You may not change your order in a way that requires additional payment " "while we are processing your current payment. Please check back after your " "current payment has been accepted." msgstr "" -#: pretix/presale/views/order.py:1668 pretix/presale/views/order.py:1699 +#: pretix/presale/views/order.py:1691 pretix/presale/views/order.py:1722 msgid "You cannot change this order." msgstr "لا يمكنك تغيير هذا الطلب." @@ -37457,6 +37601,19 @@ msgstr "الوصول إلى الكتابة" msgid "Kosovo" msgstr "كوسوفو" +#~ msgid "" +#~ "You are receiving this email because you placed an order for the " +#~ "following event:" +#~ msgstr "تتلقى هذا البريد الإلكتروني لأنك قدمت طلبا للفعالية التالية:" + +#~ msgid "Details:" +#~ msgstr "تفاصيل:" + +#, fuzzy +#~| msgid "The quota has been re-opened and will not close again." +#~ msgid "The sync job has been enqueued and will run in the next minutes." +#~ msgstr "وكانت الحصة إعادة فتحها وسوف يتم إغلاق مرة أخرى." + #~ msgid "" #~ "If you click links in this column, you will only find orders that are " #~ "canceled completely, while the numbers also include single canceled " diff --git a/src/pretix/locale/ar/LC_MESSAGES/djangojs.po b/src/pretix/locale/ar/LC_MESSAGES/djangojs.po index d323b4564..eea5ce387 100644 --- a/src/pretix/locale/ar/LC_MESSAGES/djangojs.po +++ b/src/pretix/locale/ar/LC_MESSAGES/djangojs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-26 11:16+0000\n" +"POT-Creation-Date: 2025-10-21 07:27+0000\n" "PO-Revision-Date: 2021-09-15 11:22+0000\n" "Last-Translator: Mohamed Tawfiq \n" "Language-Team: Arabic \n" "Language-Team: Azerbaijani