Compare commits

...
Author SHA1 Message Date
d9ce40d0ac Update src/pretix/base/email.py
Co-authored-by: Richard Schreiber <wiffbi@gmail.com>
2022-08-11 21:40:45 +02:00
Raphael Michel d62c7553c2 Add last order modification time as an email placeholder 2022-08-09 17:21:15 +02:00
Raphael Michel 4ce51b81ed Limit length of invoice number counter 2022-08-09 16:01:20 +02:00
Raphael Michel f63fbaca4d Do not run control context processor for error pages 2022-08-09 09:53:43 +02:00
Raphael Michel 7bab5b16a2 Badges: Add paper size HERMA 40x40 2022-08-08 13:18:30 +02:00
Raphael Michel bdb0a176da Bring back status code 400 for unknown domains 2022-08-08 10:20:32 +02:00
Raphael Michel 345a05e4ae Improve error message on mismatching host header on new installations 2022-08-08 10:19:32 +02:00
Raphael Michel 3bb590c1ae Ensure /favicon.ico does not raise Resolver404 on custom domains 2022-08-08 10:01:50 +02:00
Richard SchreiberandGitHub 9a5e07e078 PDF-Editor: fix other/other-i18n input prefill bug (Z#23104692) (#2756) 2022-08-05 15:44:08 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a563881659 Bump @babel/core from 7.18.6 to 7.18.10 in /src/pretix/static/npm_dir (#2759)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-05 10:00:05 +02:00
Raphael MichelandGitHub 50ebda332a Bump PyPDF to version 2 (#2755) 2022-08-05 09:53:32 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9ae25caf5c Bump vue and vue-template-compiler in /src/pretix/static/npm_dir (#2749)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-05 09:35:37 +02:00
Michael StapelbergandGitHub a27a5c65aa Docker: Set AUTOMIGRATE=skip for subprocesses (#2742) 2022-08-05 09:34:52 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
395dbedbed Bump rollup from 2.75.7 to 2.77.2 in /src/pretix/static/npm_dir (#2751)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-05 09:34:21 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
441f32349f Bump @babel/preset-env from 7.18.6 to 7.18.9 in /src/pretix/static/npm_dir (#2750)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-05 09:31:30 +02:00
Michael StapelbergandGitHub fd3311ed60 Set default for SITE_URL to localhost:8000 (#2757) 2022-08-05 09:31:22 +02:00
Raphael Michel 6cd8fb5b58 Order import: Add test for country code XK 2022-08-05 09:30:10 +02:00
Raphael Michel 62f1e8d64b Order import: Allow custom country codes (like XK) 2022-08-05 09:29:31 +02:00
Raphael Michel 4eca90e287 Order data exporter: Do not use same colum name twice on same sheet 2022-08-05 09:27:05 +02:00
Raphael Michel e6c45e40a9 Add a delay to the navigation typeahead to prevent many lookups 2022-08-04 17:59:19 +02:00
Raphael Michel 0bb41cc44e Navigation typeahead: only match order numbers and vouchers at the beginning and only >3 characters 2022-08-04 17:55:25 +02:00
Raphael Michel 6c7f5f4888 Fix performance issue in sendmail_run_rules cronjob 2022-08-04 17:01:04 +02:00
Raphael Michel c13d873f1f Invalidate tickets when item meta data is changed 2022-08-04 15:41:45 +02:00
Raphael Michel bddeb35520 Don't crash if an order can't be paid manually
Fixes PRETIXEU-5Q6
2022-08-01 19:12:56 +02:00
Raphael Michel 9ce519bb0b Docs: Fix missing redirect from http to https 2022-08-01 13:07:06 +02:00
Raphael Michel 1f9b0b842f Docs: Clarify information on search= parameter for orders 2022-08-01 13:06:01 +02:00
Raphael Michel 69b482849a Bump to 4.13.0.dev0 2022-07-29 16:10:21 +02:00
Raphael Michel e57fa635ed Bump version to 4.12.0 2022-07-29 16:09:31 +02:00
Raphael Michel 40574a00f7 Stripe: Show connected account ID 2022-07-29 09:48:56 +02:00
Richard SchreiberandGitHub c65bb13ba4 Presale: fix doubled error messages (Z#23104019) (#2739) 2022-07-29 09:48:34 +02:00
Michael StapelbergandGitHub 713b13b027 Checkout: fix membership being selected when only one is available 2022-07-28 11:27:51 +02:00
Raphael Michel 8cf539a573 Fix og:description field for event series 2022-07-27 15:10:07 +02:00
Raphael Michel 8a8171bd24 Expose name scheme over the settings API, including details for device clients 2022-07-27 11:12:58 +02:00
Raphael Michel d7922571e7 Docs: Add missing constraints on order codes 2022-07-26 11:23:57 +02:00
f244c11f5e Update translations (#2737)
Co-authored-by: Raphael Michel <michel@rami.io>
2022-07-26 11:23:52 +02:00
Raphael Michel 93a202e8c8 Update bleach to 5.0.* 2022-07-25 19:00:43 +02:00
Raphael Michel 66a60f402e Update po files
[CI skip]

Signed-off-by: Raphael Michel <michel@rami.io>
2022-07-25 18:59:56 +02:00
94900cd386 Allow to hide cancellation fee from end-user in approval flow (#2735)
Co-authored-by: Richard Schreiber <wiffbi@gmail.com>
2022-07-25 18:58:25 +02:00
c90cb1f19c Change sort order in cart to keep subevents together (#2730)
Co-authored-by: Richard Schreiber <wiffbi@gmail.com>
2022-07-25 18:35:10 +02:00
Raphael MichelandGitHub b06e98ace4 API: Add endpoints to trigger data shredders (#2731) 2022-07-25 18:34:40 +02:00
Raphael MichelandGitHub 59edb355f8 Invoice renderer: Print gift card amount even on paid orders if partial payments should be printed (#2734) 2022-07-25 18:24:00 +02:00
Mauro AmicoandGitHub a3bff0a697 Add custom_field in orders API (#2715) 2022-07-25 15:37:27 +02:00
126 changed files with 36917 additions and 32530 deletions
+1
View File
@@ -2,6 +2,7 @@
file=/tmp/supervisor.sock
[supervisord]
environment = AUTOMIGRATE="skip"
logfile=/dev/stdout
logfile_maxbytes=0
loglevel=info
@@ -240,6 +240,9 @@ The following snippet is an example on how to configure a nginx proxy for pretix
listen 80 default_server;
listen [::]:80 ipv6only=on default_server;
server_name pretix.mydomain.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 default_server;
@@ -225,6 +225,9 @@ The following snippet is an example on how to configure a nginx proxy for pretix
listen 80 default_server;
listen [::]:80 ipv6only=on default_server;
server_name pretix.mydomain.com;
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 default_server;
+1 -1
View File
@@ -182,7 +182,7 @@ endpoints:
Content-Type: application/json
{
"download": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/orderlist/download/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/"
"download": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/exporters/orderlist/download/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/"
}
:param organizer: The ``slug`` field of the organizer to fetch
+1
View File
@@ -38,6 +38,7 @@ at :ref:`plugin-docs`.
webhooks
seatingplans
exporters
shredders
sendmail_rules
billing_invoices
billing_var
+3 -2
View File
@@ -60,6 +60,7 @@ invoice_address object Invoice address
├ state string Customer state (ISO 3166-2 code). Only supported in
AU, BR, CA, CN, MY, MX, and US.
├ internal_reference string Customer's internal reference to be printed on the invoice
├ custom_field string Custom invoice address field
├ vat_id string Customer VAT ID
└ vat_id_validated string ``true``, if the VAT ID has been validated against the
EU VAT service and validation was successful. This only
@@ -427,7 +428,7 @@ List of all orders
``last_modified``, and ``status``. Default: ``datetime``
:query string code: Only return orders that match the given order code
:query string status: Only return orders in the given order status (see above)
:query string search: Only return orders matching a given search query
:query string search: Only return orders matching a given search query (matching for names, email addresses, and company names)
:query integer item: Only return orders with a position that contains this item ID. *Warning:* Result will also include orders if they contain mixed items, and it will even return orders where the item is only contained in a canceled position.
:query integer variation: Only return orders with a position that contains this variation ID. *Warning:* Result will also include orders if they contain mixed items and variations, and it will even return orders where the variation is only contained in a canceled position.
:query boolean testmode: Only return orders with ``testmode`` set to ``true`` or ``false``
@@ -852,7 +853,7 @@ Creating orders
You can supply the following fields of the resource:
* ``code`` (optional)
* ``code`` (optional) Only ``A-Z`` and ``0-9``, but without ``O`` and ``1``.
* ``status`` (optional) Defaults to pending for non-free orders and paid for free orders. You can only set this to
``"n"`` for pending or ``"p"`` for paid. We will create a payment object for this order either in state ``created``
or in state ``confirmed``, depending on this value. If you create a paid order, the ``order_paid`` signal will
+177
View File
@@ -0,0 +1,177 @@
.. spelling:: checkin
Data shredders
==============
pretix and it's plugins include a number of data shredders that allow you to clear personal information from the system.
This page shows you how to use these shredders through the API.
.. versionchanged:: 4.12
This feature has been added to the API.
.. warning::
Unlike the user interface, the API will not force you to download tax-relevant data before you delete it.
Listing available shredders
---------------------------
.. http:get:: /api/v1/organizers/(organizer)/events/(event)/shredders/
Returns a list of all exporters shredders for a given event.
**Example request**:
.. sourcecode:: http
GET /api/v1/organizers/bigevents/events/sampleconf/shredders/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"identifier": "question_answers",
"verbose_name": "Answers to questions"
}
]
}
:query integer page: The page number in case of a multi-page result set, default is 1
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:statuscode 200: no error
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
Running an export
-----------------
Before you can delete data, you need to start a data export.
Since exports often include large data sets, they might take longer than the duration of an HTTP request. Therefore,
creating an export is a two-step process. First you need to start an export task with one of the following to API
endpoints:
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/shredders/export/
Starts an export task. If your input parameters validate correctly, a ``202 Accepted`` status code is returned.
The body points you to the download URL of the result as well as the URL for the next step.
**Example request**:
.. sourcecode:: http
POST /api/v1/organizers/bigevents/events/sampleconf/shredders/export/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
Content-Type: application/json
{
"shredders": ["question_answers"]
}
**Example response**:
.. sourcecode:: http
HTTP/1.1 202 Accepted
Vary: Accept
Content-Type: application/json
{
"download": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/shredders/download/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/",
"shred": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/shredders/shred/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/"
}
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:param identifier: The ``identifier`` field of the exporter to run
:statuscode 202: no error
:statuscode 400: Invalid input options or event data is not ready to be deleted
:statuscode 401: Authentication failure
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
Downloading the result
----------------------
When starting an export, you receive a ``download`` URL for downloading the result. Running a ``GET`` request on that result will
yield one of the following status codes:
* ``200 OK`` The export succeeded. The body will be your resulting file. Might be large!
* ``409 Conflict`` Your export is still running. The body will be JSON with the structure ``{"status": "running"}``. ``status`` can be ``waiting`` before the task is actually being processed. Please retry, but wait at least one second before you do.
* ``410 Gone`` Running the export has failed permanently. The body will be JSON with the structure ``{"status": "failed", "message": "Error message"}``
* ``404 Not Found`` The export does not exist / is expired / belongs to a different API key.
Shredding the data
------------------
When starting an export, you receive a ``shred`` URL for actually shredding the data.
You can only start the actual shredding process after the export file was generated, however you are not forced to download
the file (we'd recommend it in most cases, though).
The download will no longer be possible after the shredding.
Since shredding often requires deleting large data sets, it might take longer than the duration of an HTTP request.
Therefore, shredding again is a two-step process. First you need to start a shredder task with one of the following to API
endpoints:
.. http:post:: /api/v1/organizers/(organizer)/events/(event)/shredders/shred/(id1)/(id2)/
Starts an export task. If your input parameters validate correctly, a ``202 Accepted`` status code is returned.
The body points you to an URL you can use to check the status.
**Example request**:
.. sourcecode:: http
POST /api/v1/organizers/bigevents/events/sampleconf/shredders/shred/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/ HTTP/1.1
Host: pretix.eu
Accept: application/json, text/javascript
**Example response**:
.. sourcecode:: http
HTTP/1.1 202 Accepted
Vary: Accept
Content-Type: application/json
{
"status": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/shredders/status/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/"
}
:param organizer: The ``slug`` field of the organizer to fetch
:param event: The ``slug`` field of the event to fetch
:param id1: Opaque value given to you in the previous response
:param id2: Opaque value given to you in the previous response
:statuscode 202: no error
:statuscode 400: Invalid input options
:statuscode 401: Authentication failure
:statuscode 404: The export does not exist / is expired / belongs to a different API key.
:statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource.
:statuscode 409: Your export is still running. The body will be JSON with the structure ``{"status": "running"}``. ``status`` can be ``waiting`` before the task is actually being processed. Please retry, but wait at least one second before you do.
:statuscode 410: Either the job has timed out or running the export has failed permanently. The body will be JSON with the structure ``{"status": "failed", "message": "Error message"}``
Checking the result
-------------------
When starting to shred, you receive a ``status`` URL for checking for success.
Running a ``GET`` request on that result will yield one of the following status codes:
* ``200 OK`` The shredding succeeded.
* ``409 Conflict`` Shredding is still running. The body will be JSON with the structure ``{"status": "running"}``. ``status`` can be ``waiting`` before the task is actually being processed. Please retry, but wait at least one second before you do.
* ``410 Gone`` We no longer know about this process, probably the process was started more than an hour ago. Might also occur after successful operations on small pretix installations without asynchronous task handling.
* ``417 Expectation Failed`` Running the export has failed permanently. The body will be JSON with the structure ``{"status": "failed", "message": "Error message"}``
+1 -1
View File
@@ -19,4 +19,4 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
__version__ = "4.12.0.dev1"
__version__ = "4.13.0.dev0"
+27 -1
View File
@@ -54,7 +54,10 @@ from pretix.base.models.items import SubEventItem, SubEventItemVariation
from pretix.base.services.seating import (
SeatProtected, generate_seats, validate_plan_change,
)
from pretix.base.settings import LazyI18nStringList, validate_event_settings
from pretix.base.settings import (
PERSON_NAME_SALUTATIONS, PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS,
LazyI18nStringList, validate_event_settings,
)
from pretix.base.signals import api_event_settings_fields
logger = logging.getLogger(__name__)
@@ -762,6 +765,7 @@ class EventSettingsSerializer(SettingsSerializer):
'cancel_allow_user_paid_adjust_fees_step',
'cancel_allow_user_paid_refund_as_giftcard',
'cancel_allow_user_paid_require_approval',
'cancel_allow_user_paid_require_approval_fee_unknown',
'change_allow_user_variation',
'change_allow_user_addons',
'change_allow_user_until',
@@ -776,6 +780,7 @@ class EventSettingsSerializer(SettingsSerializer):
'logo_image_large',
'logo_show_title',
'og_image',
'name_scheme',
]
def __init__(self, *args, **kwargs):
@@ -841,4 +846,25 @@ class DeviceEventSettingsSerializer(EventSettingsSerializer):
'invoice_address_from_country',
'invoice_address_from_tax_id',
'invoice_address_from_vat_id',
'name_scheme',
]
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['_name_scheme_fields'] = serializers.JSONField(
read_only=True,
default=[{"key": k, "label": str(v), "weight": w} for k, v, w, *__ in PERSON_NAME_SCHEMES.get(self.event.settings.name_scheme)['fields']]
)
self.fields['_name_scheme_salutations'] = serializers.JSONField(
read_only=True,
default=[{"key": k, "label": str(v)} for k, v in PERSON_NAME_SALUTATIONS]
)
self.fields['_name_scheme_titles'] = serializers.JSONField(
read_only=True,
default=(
[{"key": k, "label": k}
for k in PERSON_NAME_TITLE_GROUPS.get(self.event.settings.name_scheme_titles)[1]]
if self.event.settings.name_scheme_titles
else []
)
)
+1 -1
View File
@@ -92,7 +92,7 @@ class InvoiceAddressSerializer(I18nAwareModelSerializer):
class Meta:
model = InvoiceAddress
fields = ('last_modified', 'is_business', 'company', 'name', 'name_parts', 'street', 'zipcode', 'city', 'country',
'state', 'vat_id', 'vat_id_validated', 'internal_reference')
'state', 'vat_id', 'vat_id_validated', 'custom_field', 'internal_reference')
read_only_fields = ('last_modified',)
def __init__(self, *args, **kwargs):
+36
View File
@@ -0,0 +1,36 @@
#
# This file is part of pretix (Community Edition).
#
# Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-2021 rami.io GmbH and contributors
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License.
#
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
# this file, see <https://pretix.eu/about/en/license>.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
from rest_framework import serializers
class ShredderSerializer(serializers.Serializer):
identifier = serializers.CharField()
verbose_name = serializers.CharField()
class JobRunSerializer(serializers.Serializer):
shredders = serializers.MultipleChoiceField(choices=[])
def __init__(self, *args, **kwargs):
shredders = kwargs.pop('shredders')
super().__init__(*args, **kwargs)
self.fields['shredders'].choices = ((k.identifier, k.identifier) for k in shredders)
+3 -1
View File
@@ -42,7 +42,8 @@ from pretix.api.views import cart
from .views import (
checkin, device, discount, event, exporters, idempotency, item, oauth,
order, organizer, upload, user, version, voucher, waitinglist, webhooks,
order, organizer, shredders, upload, user, version, voucher, waitinglist,
webhooks,
)
router = routers.DefaultRouter()
@@ -84,6 +85,7 @@ event_router.register(r'waitinglistentries', waitinglist.WaitingListViewSet)
event_router.register(r'checkinlists', checkin.CheckinListViewSet)
event_router.register(r'cartpositions', cart.CartPositionViewSet)
event_router.register(r'exporters', exporters.EventExportersViewSet, basename='exporters')
event_router.register(r'shredders', shredders.EventShreddersViewSet, basename='shredders')
checkinlist_router = routers.DefaultRouter()
checkinlist_router.register(r'positions', checkin.CheckinListPositionViewSet, basename='checkinlistpos')
+240
View File
@@ -0,0 +1,240 @@
#
# This file is part of pretix (Community Edition).
#
# Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-2021 rami.io GmbH and contributors
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License.
#
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
# this file, see <https://pretix.eu/about/en/license>.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
from datetime import timedelta
from celery.result import AsyncResult
from django.conf import settings
from django.http import Http404
from django.shortcuts import get_object_or_404
from django.utils.functional import cached_property
from django.utils.timezone import now
from rest_framework import status, viewsets
from rest_framework.decorators import action
from rest_framework.exceptions import ValidationError
from rest_framework.response import Response
from rest_framework.reverse import reverse
from pretix.api.serializers.shredders import (
JobRunSerializer, ShredderSerializer,
)
from pretix.base.models import CachedFile
from pretix.base.services.shredder import export, shred
from pretix.base.shredder import shred_constraints
from pretix.helpers.http import ChunkBasedFileResponse
class ShreddersMixin:
def list(self, request, *args, **kwargs):
res = ShredderSerializer(self.shredders, many=True)
return Response({
"count": len(self.shredders),
"next": None,
"previous": None,
"results": res.data
})
def get_object(self):
instances = [e for e in self.shredders if e.identifier == self.kwargs.get('pk')]
if not instances:
raise Http404()
return instances[0]
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = ShredderSerializer(instance)
return Response(serializer.data)
@action(detail=False, methods=['GET'], url_name='download', url_path='download/(?P<asyncid>[^/]+)/(?P<cfid>[^/]+)')
def download(self, *args, **kwargs):
cf = get_object_or_404(
CachedFile,
id=kwargs['cfid'],
session_key=f'api-shredder-{str(type(self.request.user or self.request.auth))}-{(self.request.user or self.request.auth).pk}'
)
if cf.file:
resp = ChunkBasedFileResponse(cf.file.file, content_type=cf.type)
resp['Content-Disposition'] = 'attachment; filename="{}"'.format(cf.filename).encode("ascii", "ignore")
return resp
elif not settings.HAS_CELERY:
return Response(
{'status': 'failed', 'message': 'Unknown file ID or export failed'},
status=status.HTTP_410_GONE
)
res = AsyncResult(kwargs['asyncid'])
if res.failed():
if isinstance(res.info, dict) and res.info['exc_type'] in ('ShredError', 'ExportError'):
msg = res.info['exc_message']
else:
msg = 'Internal error'
return Response(
{'status': 'failed', 'message': msg},
status=status.HTTP_410_GONE
)
return Response(
{
'status': 'running' if res.state in ('PROGRESS', 'STARTED', 'SUCCESS') else 'waiting',
},
status=status.HTTP_409_CONFLICT
)
@action(detail=False, methods=['GET'], url_name='status', url_path='status/(?P<asyncid>[^/]+)/(?P<cfid>[^/]+)')
def status(self, *args, **kwargs):
if settings.HAS_CELERY:
res = AsyncResult(kwargs['asyncid'])
if res.failed():
if isinstance(res.info, dict) and res.info['exc_type'] in ('ShredError', 'ExportError'):
msg = res.info['exc_message']
else:
msg = 'Internal error'
return Response(
{'status': 'failed', 'message': msg},
status=status.HTTP_417_EXPECTATION_FAILED
)
elif res.successful():
return Response(
{'status': 'ok', 'message': 'OK'},
status=status.HTTP_200_OK
)
try:
CachedFile.objects.get(
id=kwargs['cfid'],
session_key=f'api-shredder-{str(type(self.request.user or self.request.auth))}-{(self.request.user or self.request.auth).pk}'
)
except CachedFile.DoesNotExist:
return Response(
{'status': 'gone', 'message': 'May have succeeded or timed out'},
status=status.HTTP_410_GONE
)
return Response(
{
'status': 'running' if res.state in ('PROGRESS', 'STARTED', 'SUCCESS') else 'waiting',
},
status=status.HTTP_409_CONFLICT
)
@action(detail=False, methods=['POST'], url_name='shred', url_path='shred/(?P<asyncid>[^/]+)/(?P<cfid>[^/]+)')
def shred(self, *args, **kwargs):
cf = get_object_or_404(
CachedFile,
id=kwargs['cfid'],
session_key=f'api-shredder-{str(type(self.request.user or self.request.auth))}-{(self.request.user or self.request.auth).pk}'
)
if cf.file:
async_result = self.do_shred(cf)
url_kwargs = {
'asyncid': str(async_result.id),
'cfid': str(cf.id),
}
url_kwargs.update(self.kwargs)
return Response({
'status': reverse('api-v1:shredders-status', kwargs=url_kwargs, request=self.request),
}, status=status.HTTP_202_ACCEPTED)
elif not settings.HAS_CELERY:
return Response(
{'status': 'failed', 'message': 'Unknown file ID or export failed'},
status=status.HTTP_410_GONE
)
res = AsyncResult(kwargs['asyncid'])
if res.failed():
if isinstance(res.info, dict) and res.info['exc_type'] in ('ShredError', 'ExportError'):
msg = res.info['exc_message']
else:
msg = 'Internal error'
return Response(
{'status': 'failed', 'message': msg},
status=status.HTTP_410_GONE
)
return Response(
{
'status': 'running' if res.state in ('PROGRESS', 'STARTED', 'SUCCESS') else 'waiting',
},
status=status.HTTP_409_CONFLICT
)
@action(detail=False, methods=['POST'])
def export(self, *args, **kwargs):
serializer = JobRunSerializer(shredders=self.shredders, data=self.request.data, **self.get_serializer_kwargs())
serializer.is_valid(raise_exception=True)
cf = CachedFile(web_download=False)
cf.date = now()
cf.expires = now() + timedelta(hours=2)
cf.session_key = f'api-shredder-{str(type(self.request.user or self.request.auth))}-{(self.request.user or self.request.auth).pk}'
cf.save()
d = serializer.data
for k, v in d.items():
if isinstance(v, set):
d[k] = list(v)
async_result = self.do_export(cf, serializer.validated_data['shredders'])
url_kwargs = {
'asyncid': str(async_result.id),
'cfid': str(cf.id),
}
url_kwargs.update(self.kwargs)
return Response({
'download': reverse('api-v1:shredders-download', kwargs=url_kwargs, request=self.request),
'shred': reverse('api-v1:shredders-shred', kwargs=url_kwargs, request=self.request),
}, status=status.HTTP_202_ACCEPTED)
class EventShreddersViewSet(ShreddersMixin, viewsets.ViewSet):
permission = 'can_change_orders'
def get_serializer_kwargs(self):
return {}
@cached_property
def shredders(self):
shredders = []
for k, v in sorted(self.request.event.get_data_shredders().items(), key=lambda s: s[1].verbose_name):
shredders.append(v)
return shredders
def do_export(self, cf, shredders):
constr = shred_constraints(self.request.event)
if constr:
raise ValidationError(constr)
return export.apply_async(args=(
self.request.event.id,
list(shredders),
f'api-shredder-{str(type(self.request.user or self.request.auth))}-{(self.request.user or self.request.auth).pk}',
str(cf.pk)
))
def do_shred(self, cf):
constr = shred_constraints(self.request.event)
if constr:
raise ValidationError(constr)
return shred.apply_async(args=(
self.request.event.id,
str(cf.pk),
True,
))
+14
View File
@@ -43,6 +43,7 @@ from pretix.base.i18n import (
LazyCurrencyNumber, LazyDate, LazyExpiresDate, LazyNumber,
)
from pretix.base.models import Event
from pretix.base.reldate import RelativeDateWrapper
from pretix.base.settings import PERSON_NAME_SCHEMES
from pretix.base.signals import (
register_html_mail_renderers, register_mail_placeholders,
@@ -469,6 +470,19 @@ def base_placeholders(sender, **kwargs):
}
),
),
SimpleFunctionalMailTextPlaceholder(
'order_modification_deadline_date_and_time', ['order', 'event'],
lambda order, event:
date_format(order.modify_deadline.astimezone(event.timezone), 'SHORT_DATETIME_FORMAT')
if order.modify_deadline
else '',
lambda event: date_format(
event.settings.get(
'last_order_modification_date', as_type=RelativeDateWrapper
).datetime(event).astimezone(event.timezone),
'SHORT_DATETIME_FORMAT'
) if event.settings.get('last_order_modification_date') else '',
),
SimpleFunctionalMailTextPlaceholder(
'event_location', ['event_or_subevent'], lambda event_or_subevent: str(event_or_subevent.location or ''),
lambda event: str(event.location or ''),
+4 -1
View File
@@ -610,7 +610,10 @@ class OrderListExporter(MultiSheetListExporter):
for k, label, w in name_scheme['fields']:
headers.append(_('Invoice address name') + ': ' + str(label))
headers += [
_('Address'), _('ZIP code'), _('City'), _('Country'), pgettext('address', 'State'), _('VAT ID'),
_('Invoice address street'), _('Invoice address ZIP code'), _('Invoice address city'),
_('Invoice address country'),
pgettext('address', 'Invoice address state'),
_('VAT ID'),
]
headers += [
_('Sales channel'), _('Order locale'),
+28 -9
View File
@@ -28,6 +28,7 @@ from typing import Tuple
import bleach
import vat_moss.exchange_rates
from django.contrib.staticfiles import finders
from django.db.models import Sum
from django.dispatch import receiver
from django.utils.formats import date_format, localize
from django.utils.translation import (
@@ -47,7 +48,7 @@ from reportlab.platypus import (
)
from pretix.base.decimal import round_decimal
from pretix.base.models import Event, Invoice, Order
from pretix.base.models import Event, Invoice, Order, OrderPayment
from pretix.base.signals import register_invoice_renderers
from pretix.base.templatetags.money import money_filter
from pretix.helpers.reportlab import ThumbnailingImageReader
@@ -589,15 +590,33 @@ class ClassicInvoiceRenderer(BaseReportlabInvoiceRenderer):
])
colwidths = [a * doc.width for a in (.65, .05, .30)]
if self.invoice.event.settings.invoice_show_payments and not self.invoice.is_cancellation and \
self.invoice.order.status == Order.STATUS_PENDING:
pending_sum = self.invoice.order.pending_sum
if pending_sum != total:
tdata.append([pgettext('invoice', 'Received payments')] + (['', '', ''] if has_taxes else ['']) + [
money_filter(pending_sum - total, self.invoice.event.currency)
if self.invoice.event.settings.invoice_show_payments and not self.invoice.is_cancellation:
if self.invoice.order.status == Order.STATUS_PENDING:
pending_sum = self.invoice.order.pending_sum
if pending_sum != total:
tdata.append([pgettext('invoice', 'Received payments')] + (['', '', ''] if has_taxes else ['']) + [
money_filter(pending_sum - total, self.invoice.event.currency)
])
tdata.append([pgettext('invoice', 'Outstanding payments')] + (['', '', ''] if has_taxes else ['']) + [
money_filter(pending_sum, self.invoice.event.currency)
])
tstyledata += [
('FONTNAME', (0, len(tdata) - 3), (-1, len(tdata) - 3), self.font_bold),
]
elif self.invoice.order.payments.filter(
state__in=(OrderPayment.PAYMENT_STATE_CONFIRMED, OrderPayment.PAYMENT_STATE_REFUNDED), provider='giftcard'
).exists():
giftcard_sum = self.invoice.order.payments.filter(
state__in=(OrderPayment.PAYMENT_STATE_CONFIRMED, OrderPayment.PAYMENT_STATE_REFUNDED),
provider='giftcard'
).aggregate(
s=Sum('amount')
)['s'] or Decimal('0.00')
tdata.append([pgettext('invoice', 'Paid by gift card')] + (['', '', ''] if has_taxes else ['']) + [
money_filter(giftcard_sum, self.invoice.event.currency)
])
tdata.append([pgettext('invoice', 'Outstanding payments')] + (['', '', ''] if has_taxes else ['']) + [
money_filter(pending_sum, self.invoice.event.currency)
tdata.append([pgettext('invoice', 'Remaining amount')] + (['', '', ''] if has_taxes else ['']) + [
money_filter(total - giftcard_sum, self.invoice.event.currency)
])
tstyledata += [
('FONTNAME', (0, len(tdata) - 3), (-1, len(tdata) - 3), self.font_bold),
+14 -10
View File
@@ -746,6 +746,19 @@ class Order(LockModel, LoggedModel):
length += 1
iteration = 0
@property
def modify_deadline(self):
modify_deadline = self.event.settings.get('last_order_modification_date', as_type=RelativeDateWrapper)
if self.event.has_subevents and modify_deadline:
dates = [
modify_deadline.datetime(se)
for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True))
]
return min(dates) if dates else None
elif modify_deadline:
return modify_deadline.datetime(self.event)
return None
@property
def can_modify_answers(self) -> bool:
"""
@@ -758,16 +771,7 @@ class Order(LockModel, LoggedModel):
if self.status not in (Order.STATUS_PENDING, Order.STATUS_PAID, Order.STATUS_EXPIRED):
return False
modify_deadline = self.event.settings.get('last_order_modification_date', as_type=RelativeDateWrapper)
if self.event.has_subevents and modify_deadline:
dates = [
modify_deadline.datetime(se)
for se in self.event.subevents.filter(id__in=self.positions.values_list('subevent', flat=True))
]
modify_deadline = min(dates) if dates else None
elif modify_deadline:
modify_deadline = modify_deadline.datetime(self.event)
modify_deadline = self.modify_deadline
if modify_deadline is not None and now() > modify_deadline:
return False
+2 -2
View File
@@ -392,7 +392,7 @@ class InvoiceAddressCountry(ImportColumn):
return list(countries)
def clean(self, value, previous_values):
if value and not Country(value).numeric:
if value and not (Country(value).numeric or value in settings.COUNTRIES_OVERRIDE):
raise ValidationError(_("Please enter a valid country code."))
return value
@@ -538,7 +538,7 @@ class AttendeeCountry(ImportColumn):
return list(countries)
def clean(self, value, previous_values):
if value and not Country(value).numeric:
if value and not (Country(value).numeric or value in settings.COUNTRIES_OVERRIDE):
raise ValidationError(_("Please enter a valid country code."))
return value
+11 -11
View File
@@ -57,7 +57,7 @@ from django.utils.html import conditional_escape
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _, pgettext
from i18nfield.strings import LazyI18nString
from PyPDF2 import PdfFileReader
from PyPDF2 import PdfReader
from pytz import timezone
from reportlab.graphics import renderPDF
from reportlab.graphics.barcode.qr import QrCodeWidget
@@ -646,7 +646,7 @@ class Renderer:
self.event = event
if self.background_file:
self.bg_bytes = self.background_file.read()
self.bg_pdf = PdfFileReader(BytesIO(self.bg_bytes), strict=False)
self.bg_pdf = PdfReader(BytesIO(self.bg_bytes), strict=False)
else:
self.bg_bytes = None
self.bg_pdf = None
@@ -861,7 +861,7 @@ class Renderer:
canvas.restoreState()
def draw_page(self, canvas: Canvas, order: Order, op: OrderPosition, show_page=True, only_page=None):
page_count = self.bg_pdf.getNumPages()
page_count = len(self.bg_pdf.pages)
if not only_page and not show_page:
raise ValueError("only_page=None and show_page=False cannot be combined")
@@ -881,7 +881,7 @@ class Renderer:
elif o['type'] == "poweredby":
self._draw_poweredby(canvas, op, o)
if self.bg_pdf:
canvas.setPageSize((self.bg_pdf.getPage(page).mediaBox[2], self.bg_pdf.getPage(page).mediaBox[3]))
canvas.setPageSize((self.bg_pdf.pages[0].mediabox[2], self.bg_pdf.pages[0].mediabox[3]))
if show_page:
canvas.showPage()
@@ -905,17 +905,17 @@ class Renderer:
with open(os.path.join(d, 'out.pdf'), 'rb') as f:
return BytesIO(f.read())
else:
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2 import PdfReader, PdfWriter
buffer.seek(0)
new_pdf = PdfFileReader(buffer)
output = PdfFileWriter()
new_pdf = PdfReader(buffer)
output = PdfWriter()
for i, page in enumerate(new_pdf.pages):
bg_page = copy.copy(self.bg_pdf.getPage(i))
bg_page.mergePage(page)
output.addPage(bg_page)
bg_page = copy.copy(self.bg_pdf.pages[i])
bg_page.merge_page(page)
output.add_page(bg_page)
output.addMetadata({
output.add_metadata({
'/Title': str(title),
'/Creator': 'pretix',
})
+10 -7
View File
@@ -51,7 +51,7 @@ from pretix.celery_app import app
@app.task(base=ProfiledEventTask)
def export(event: Event, shredders: List[str], session_key=None) -> None:
def export(event: Event, shredders: List[str], session_key=None, cfid=None) -> None:
known_shredders = event.get_data_shredders()
with NamedTemporaryFile() as rawfile:
@@ -85,13 +85,16 @@ def export(event: Event, shredders: List[str], session_key=None) -> None:
rawfile.seek(0)
cf = CachedFile()
cf.date = now()
if cfid:
cf = CachedFile.objects.get(pk=cfid)
else:
cf = CachedFile()
cf.date = now()
cf.session_key = session_key
cf.web_download = True
cf.expires = now() + timedelta(hours=1)
cf.filename = event.slug + '.zip'
cf.type = 'application/zip'
cf.session_key = session_key
cf.web_download = True
cf.expires = now() + timedelta(hours=1)
cf.save()
cf.file.save(cachedfile_name(cf, cf.filename), rawfile)
@@ -115,7 +118,7 @@ def shred(event: Event, fileid: str, confirm_code: str) -> None:
if not shredder:
continue
shredders.append(shredder)
if any(shredder.require_download_confirmation for shredder in shredders):
if confirm_code is not True and any(shredder.require_download_confirmation for shredder in shredders):
if indexdata['confirm_code'] != confirm_code:
raise ShredError(_("The confirm code you entered was incorrect."))
if event.logentry_set.filter(datetime__gte=parse(indexdata['time'])):
+17 -1
View File
@@ -57,6 +57,7 @@ from django_countries.fields import Country
from hierarkey.models import GlobalSettingsBase, Hierarkey
from i18nfield.forms import I18nFormField, I18nTextarea, I18nTextInput
from i18nfield.strings import LazyI18nString
from phonenumbers import PhoneNumber, parse
from rest_framework import serializers
from pretix.api.serializers.fields import (
@@ -1514,6 +1515,15 @@ DEFAULTS = {
"before the order is canceled and a refund is issued."),
)
},
'cancel_allow_user_paid_require_approval_fee_unknown': {
'default': 'False',
'type': bool,
'form_class': forms.BooleanField,
'serializer_class': serializers.BooleanField,
'form_kwargs': dict(
label=_("Do not show the cancellation fee to users when they request cancellation."),
)
},
'cancel_allow_user_paid_refund_as_giftcard': {
'default': 'off',
'type': str,
@@ -2585,7 +2595,9 @@ Your {organizer} team"""))
},
'name_scheme': {
'default': 'full', # default for new events is 'given_family'
'type': str
'type': str,
'serializer_class': serializers.ChoiceField,
'serializer_kwargs': {},
},
'giftcard_length': {
'default': settings.ENTROPY['giftcard_secret'],
@@ -2980,6 +2992,9 @@ PERSON_NAME_SCHEMES = OrderedDict([
},
}),
])
DEFAULTS['name_scheme']['serializer_kwargs']['choices'] = ((k, k) for k in PERSON_NAME_SCHEMES)
COUNTRIES_WITH_STATE_IN_ADDRESS = {
# Source: http://www.bitboost.com/ref/international-address-formats.html
# This is not a list of countries that *have* states, this is a list of countries where states
@@ -3016,6 +3031,7 @@ settings_hierarkey.add_type(LazyI18nStringList,
settings_hierarkey.add_type(RelativeDateWrapper,
serialize=lambda rdw: rdw.to_string(),
unserialize=lambda s: RelativeDateWrapper.from_string(s))
settings_hierarkey.add_type(PhoneNumber, lambda pn: pn.as_international, lambda s: parse(s))
@settings_hierarkey.set_global(cache_namespace='global')
@@ -0,0 +1,52 @@
{% extends "error.html" %}
{% load i18n %}
{% load static %}
{% block title %}{% trans "Unknown host" %}{% endblock %}
{% block content %}
<i class="fa fa-question-circle-o fa-fw big-icon"></i>
<div class="error-details">
<h1>{% trans "Unknown host" %}</h1>
<p>
{% blocktrans trimmed with host=header_host %}
Your browser told us that you want to access "{{ header_host }}". Unfortunately, we don't have
any content for this domain.
{% endblocktrans %}
</p>
{% if is_fresh_install %}
<p>
{% blocktrans trimmed %}
It looks like this is a fresh installation of pretix. This error message is probably caused due to
the fact that either your configuration includes the wrong site URL or your reverse proxy is sending
the wrong header.
{% endblocktrans %}
</p>
<dl>
<dt>{% trans "Expected host according to configuration" %}</dt>
<dd><code>{{ site_host }}</code></dd>
<dt>{% trans "Received headers" %}</dt>
<dd>
<code>Host: {{ request.headers.Host }}</code>
{% if xfh %}
<br>
<code>X-Forwarded-For: {{ xfh }}</code>
{% if not settings.USE_X_FORWARDED_HOST %}({% trans "ignored" %}){% endif %}
{% endif %}
</dd>
<dt>{% trans "Derived host from headers" %}</dt>
<dd><code>{{ header_host }}</code></dd>
</dl>
{% else %}
<p>
{% blocktrans trimmed %}
If you just configured this as a domain for your ticket shop, you now need to set this up as a "custom domain"
in your organizer account.
{% endblocktrans %}
</p>
{% endif %}
<p class="links">
<a id='goback' href='#'>{% trans "Take a step back" %}</a>
&middot; <a id='reload' href='#'>{% trans "Try again" %}</a>
</p>
<img src="{% static "pretixbase/img/pretix-logo.svg" %}" class="logo"/>
</div>
{% endblock %}
+1 -1
View File
@@ -71,7 +71,7 @@ def _default_context(request):
except Resolver404:
return {}
if not request.path.startswith(get_script_prefix() + 'control'):
if not request.path.startswith(get_script_prefix() + 'control') or not hasattr(request, 'user'):
return {}
ctx = {
'url_name': url.url_name,
+3 -1
View File
@@ -39,7 +39,7 @@ from urllib.parse import urlencode, urlparse
from django import forms
from django.conf import settings
from django.core.exceptions import ValidationError
from django.core.validators import validate_email
from django.core.validators import MaxValueValidator, validate_email
from django.db.models import Prefetch, Q, prefetch_related_objects
from django.forms import (
CheckboxSelectMultiple, formset_factory, inlineformset_factory,
@@ -674,6 +674,7 @@ class CancelSettingsForm(SettingsForm):
'cancel_allow_user_paid_adjust_fees_step',
'cancel_allow_user_paid_refund_as_giftcard',
'cancel_allow_user_paid_require_approval',
'cancel_allow_user_paid_require_approval_fee_unknown',
'change_allow_user_variation',
'change_allow_user_price',
'change_allow_user_until',
@@ -847,6 +848,7 @@ class InvoiceSettingsForm(SettingsForm):
self.fields['invoice_generate_sales_channels'].choices = (
(c.identifier, c.verbose_name) for c in get_all_sales_channels().values()
)
self.fields['invoice_numbers_counter_length'].validators.append(MaxValueValidator(15))
def clean(self):
data = super().clean()
@@ -16,6 +16,9 @@
<legend>{% trans "Paid orders" %}</legend>
{% bootstrap_field form.cancel_allow_user_paid layout="control" %}
{% bootstrap_field form.cancel_allow_user_paid_require_approval layout="control" %}
<div data-display-dependency="#id_cancel_allow_user_paid_require_approval">
{% bootstrap_field form.cancel_allow_user_paid_require_approval_fee_unknown layout="control" %}
</div>
{% bootstrap_field form.cancel_allow_user_paid_keep layout="control" %}
{% bootstrap_field form.cancel_allow_user_paid_keep_percentage layout="control" %}
{% bootstrap_field form.cancel_allow_user_paid_keep_fees layout="control" %}
+27 -13
View File
@@ -1344,22 +1344,36 @@ class ItemUpdateGeneral(ItemDetailMixin, EventPermissionRequiredMixin, MetaDataE
def form_valid(self, form):
self.save_meta()
messages.success(self.request, _('Your changes have been saved.'))
if form.has_changed() or any(f.has_changed() for f in self.plugin_forms):
data = {
k: form.cleaned_data.get(k)
for k in form.changed_data
}
for f in self.plugin_forms:
data.update({
k: (f.cleaned_data.get(k).name
if isinstance(f.cleaned_data.get(k), File)
else f.cleaned_data.get(k))
for k in f.changed_data
})
change_data = {
k: form.cleaned_data.get(k)
for k in form.changed_data
}
for f in self.plugin_forms:
change_data.update({
k: (f.cleaned_data.get(k).name
if isinstance(f.cleaned_data.get(k), File)
else f.cleaned_data.get(k))
for k in f.changed_data
})
meta_changed = {}
for f in self.meta_forms:
meta_changed.update({
k: (f.cleaned_data.get(k).name
if isinstance(f.cleaned_data.get(k), File)
else f.cleaned_data.get(k))
for k in f.changed_data
})
if meta_changed:
change_data['meta_data'] = meta_changed
if change_data:
self.object.log_action(
'pretix.event.item.changed', user=self.request.user, data=data
'pretix.event.item.changed', user=self.request.user, data=change_data
)
invalidate_cache.apply_async(kwargs={'event': self.request.event.pk, 'item': self.object.pk})
for f in self.plugin_forms:
f.save()
+11 -7
View File
@@ -1186,13 +1186,17 @@ class OrderTransition(OrderView):
if ps == Decimal('0.00') and self.order.pending_sum <= Decimal('0.00'):
p = self.order.payments.filter(state=OrderPayment.PAYMENT_STATE_CONFIRMED).last()
if p:
p._mark_order_paid(
user=self.request.user,
send_mail=self.mark_paid_form.cleaned_data['send_email'],
force=self.mark_paid_form.cleaned_data.get('force', False),
payment_refund_sum=self.order.payment_refund_sum,
)
messages.success(self.request, _('The order has been marked as paid.'))
try:
p._mark_order_paid(
user=self.request.user,
send_mail=self.mark_paid_form.cleaned_data['send_email'],
force=self.mark_paid_form.cleaned_data.get('force', False),
payment_refund_sum=self.order.payment_refund_sum,
)
except Quota.QuotaExceededException as e:
messages.error(self.request, str(e))
else:
messages.success(self.request, _('The order has been marked as paid.'))
return redirect(self.get_order_url())
try:
+5 -5
View File
@@ -39,8 +39,8 @@ from django.utils.crypto import get_random_string
from django.utils.timezone import now
from django.utils.translation import gettext as _
from django.views.generic import TemplateView
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.utils import PdfReadError
from PyPDF2 import PdfReader, PdfWriter
from PyPDF2.errors import PdfReadError
from reportlab.lib.units import mm
from pretix.base.i18n import language
@@ -153,9 +153,9 @@ class BaseEditorView(EventPermissionRequiredMixin, TemplateView):
def post(self, request, *args, **kwargs):
if "emptybackground" in request.POST:
p = PdfFileWriter()
p = PdfWriter()
try:
p.addBlankPage(
p.add_blank_page(
width=float(request.POST.get('width')) * mm,
height=float(request.POST.get('height')) * mm,
)
@@ -203,7 +203,7 @@ class BaseEditorView(EventPermissionRequiredMixin, TemplateView):
try:
bg_bytes = c.file.read()
PdfFileReader(BytesIO(bg_bytes), strict=False)
PdfReader(BytesIO(bg_bytes), strict=False)
except PdfReadError as e:
return JsonResponse({
"status": "error",
+3 -3
View File
@@ -228,9 +228,9 @@ def nav_context_list(request):
if query:
qs_orga = qs_orga.filter(Q(name__icontains=query) | Q(slug__icontains=query))
if query:
if query and len(query) >= 3:
qs_orders = Order.objects.filter(
code__icontains=query
code__istartswith=query
).select_related('event', 'event__organizer').only('event', 'code', 'pk').order_by()
if not request.user.has_active_staff_session(request.session.session_key):
qs_orders = qs_orders.filter(
@@ -241,7 +241,7 @@ def nav_context_list(request):
)
qs_vouchers = Voucher.objects.filter(
code__icontains=query
code__istartswith=query
).select_related('event', 'event__organizer').only('event', 'code', 'pk').order_by()
if not request.user.has_active_staff_session(request.session.session_key):
qs_vouchers = qs_vouchers.filter(
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-09-15 11:22+0000\n"
"Last-Translator: Mohamed Tawfiq <mtawfiq@wafyapp.com>\n"
"Language-Team: Arabic <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -296,14 +296,18 @@ msgid "Order canceled"
msgstr "تم إلغاء الطلب"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "تذاكر الدخول"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "تذاكر سارية المفعول"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "حاليا بالداخل"
@@ -651,20 +655,20 @@ msgstr "ستسترد %(currency)%(amount)"
msgid "Please enter the amount the organizer can keep."
msgstr "الرجاء إدخال المبلغ الذي يمكن للمنظم الاحتفاظ به."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "الرجاء إدخال عدد لأحد أنواع التذاكر."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "مطلوب"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "المنطقة الزمنية:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "التوقيت المحلي:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2020-12-19 07:00+0000\n"
"Last-Translator: albert <albert.serra.monner@gmail.com>\n"
"Language-Team: Catalan <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -289,14 +289,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -624,22 +628,22 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Cistella expirada"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-12-06 23:00+0000\n"
"Last-Translator: Ondřej Sokol <osokol@treesoft.cz>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -291,14 +291,18 @@ msgid "Order canceled"
msgstr "Objednávka zrušena"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Vyřízené vstupenky"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Platné vstupenky"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Aktuálně uvnitř"
@@ -644,20 +648,20 @@ msgstr "Dostanete %(currency)s %(amount)s zpět"
msgid "Please enter the amount the organizer can keep."
msgstr "Zadejte částku, kterou si organizátor může ponechat."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Zadejte prosím množství pro jeden z typů vstupenek."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "povinný"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Časové pásmo:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Místní čas:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-04-01 13:36+0000\n"
"Last-Translator: Anna-itk <abc@aarhus.dk>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -301,16 +301,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "Check-in QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -679,22 +683,22 @@ msgstr "fra %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Kurv udløbet"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Tidszone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Din lokaltid:"
File diff suppressed because it is too large Load Diff
+14 -10
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-28 18:04+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-07-26 08:58+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
"de/>\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 4.12\n"
"X-Generator: Weblate 4.13.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -289,14 +289,18 @@ msgid "Order canceled"
msgstr "Bestellung storniert"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr "Ticket-Code ist nicht eindeutig auf der Liste"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Eingecheckte Tickets"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Gültige Tickets"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Derzeit anwesend"
@@ -646,20 +650,20 @@ msgstr "Sie erhalten %(currency)s %(amount)s zurück"
msgid "Please enter the amount the organizer can keep."
msgstr "Bitte geben Sie den Betrag ein, den der Veranstalter einbehalten darf."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Bitte tragen Sie eine Menge für eines der Produkte ein."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "verpflichtend"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Zeitzone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Deine lokale Zeit:"
File diff suppressed because it is too large Load Diff
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-28 18:04+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-07-26 08:58+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix-js/de_Informal/>\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 4.12\n"
"X-Generator: Weblate 4.13.1\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -289,14 +289,18 @@ msgid "Order canceled"
msgstr "Bestellung storniert"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr "Ticket-Code ist nicht eindeutig auf der Liste"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Eingecheckte Tickets"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Gültige Tickets"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Derzeit anwesend"
@@ -645,20 +649,20 @@ msgstr "Du erhältst %(currency)s %(amount)s zurück"
msgid "Please enter the amount the organizer can keep."
msgstr "Bitte gib den Betrag ein, den der Veranstalter einbehalten darf."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Bitte trage eine Menge für eines der Produkte ein."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "verpflichtend"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Zeitzone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Deine lokale Zeit:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -288,14 +288,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -619,20 +623,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2019-10-03 19:00+0000\n"
"Last-Translator: Chris Spy <chrispiropoulou@hotmail.com>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -304,16 +304,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "Έλεγχος QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -691,22 +695,22 @@ msgstr "απο %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Εισαγάγετε μια ποσότητα για έναν από τους τύπους εισιτηρίων."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Το καλάθι έληξε"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-11-25 21:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -291,14 +291,18 @@ msgid "Order canceled"
msgstr "Orden cancelada"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Registro de código QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Tickets válidos"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Actualmente adentro"
@@ -645,20 +649,20 @@ msgstr "Obtienes %(currency)s %(price)s de vuelta"
msgid "Please enter the amount the organizer can keep."
msgstr "Por favor, ingrese el monto que el organizador puede quedarse."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Por favor, introduzca un valor para cada tipo de entrada."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "campo requerido"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Zona horaria:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Su hora local:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-11-10 05:00+0000\n"
"Last-Translator: Jaakko Rinta-Filppula <jaakko@r-f.fi>\n"
"Language-Team: Finnish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -300,14 +300,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -644,22 +648,22 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Ostoskori on vanhentunut"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Aikavyöhyke:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-04-07 10:40+0000\n"
"Last-Translator: Eva-Maria Obermann <obermann@rami.io>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -301,16 +301,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "Enregistrement QR code"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -679,22 +683,22 @@ msgstr "de %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "SVP entrez une quantité pour un de vos types de billets."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Panier expiré"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-02-22 22:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -291,14 +291,18 @@ msgid "Order canceled"
msgstr "Pedido cancelado"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Rexistro de código QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Tíckets válidos"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Actualmente dentro"
@@ -642,20 +646,20 @@ msgstr "Obtés %(currency)s %(price)s de volta"
msgid "Please enter the amount the organizer can keep."
msgstr "Por favor, ingrese a cantidade que pode conservar o organizador."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Por favor, introduza un valor para cada tipo de entrada."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "campo requirido"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Zona horaria:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "A súa hora local:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-09-24 13:54+0000\n"
"Last-Translator: ofirtro <ofir.tro@gmail.com>\n"
"Language-Team: Hebrew <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -290,14 +290,18 @@ msgid "Order canceled"
msgstr "הזמנה בוטלה"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "כרטיסים תקפים"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -627,20 +631,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2020-01-24 08:00+0000\n"
"Last-Translator: Prokaj Miklós <mixolid0@gmail.com>\n"
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -302,16 +302,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "Check in QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -679,22 +683,22 @@ msgstr "%(currency) %(price)-tól"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Adjon meg egy mennyiséget az egyik jegytípusból."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "A kosár lejárt"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-05-08 19:00+0000\n"
"Last-Translator: Emanuele Signoretta <signorettae@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -293,14 +293,18 @@ msgid "Order canceled"
msgstr "Ordine cancellato"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Biglietti controllati"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Biglietti validi"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Attualmente all'interno"
@@ -640,20 +644,20 @@ msgstr "Ricevi indietro %(currency)s %(amount)s"
msgid "Please enter the amount the organizer can keep."
msgstr "Inserisci l'importo che l'organizzatore può trattenere."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Inserisci la quantità per una tipologia di biglietto."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "richiesto"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Fuso orario:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Ora locale:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-03-15 00:00+0000\n"
"Last-Translator: Yuriko Matsunami <y.matsunami@enobyte.com>\n"
"Language-Team: Japanese <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -291,14 +291,18 @@ msgid "Order canceled"
msgstr "注文がキャンセルされました"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "チェックイン済みのチケット"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "有効なチケット"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "現在オンラインです"
@@ -635,20 +639,20 @@ msgstr "%(currency)s %(amount)s が払い戻されます"
msgid "Please enter the amount the organizer can keep."
msgstr "イベント開催者が受け取る料金を入力してください。"
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "商品の総数を入力してください。"
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "必須"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "タイムゾーン:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "現地時間:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-04-06 03:00+0000\n"
"Last-Translator: Liga V <lerning_by_dreaming@gmx.de>\n"
"Language-Team: Latvian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -292,14 +292,18 @@ msgid "Order canceled"
msgstr "Pasūtījums ir atcelts"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Reģistrētās biļetes"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Derīgās biļetes"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Šobrīd iekšā"
@@ -646,20 +650,20 @@ msgstr "Jūs saņemsiet %(valūta)s %(cena)s atpakaļ"
msgid "Please enter the amount the organizer can keep."
msgstr "Lūdzu ievadiet skaitu (summu), ko pasākuma organizators var paturēt."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Lūdzu, ievadiet nepieciešamo daudzumu izvēlētajam biļešu veidam."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "obligāts"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Laika zona:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Vietējais laiks:"
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-06-20 02:00+0000\n"
"Last-Translator: fyksen <fredrik@fyksen.me>\n"
"Language-Team: Norwegian Bokmål <https://translate.pretix.eu/projects/pretix/"
@@ -289,14 +289,18 @@ msgid "Order canceled"
msgstr "Ordre kansellert"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Innsjekkede billetter"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Gydlige billetter"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Inne nå"
@@ -632,20 +636,20 @@ msgstr "Du mottar %(currency)s %(amount)s tilbake"
msgid "Please enter the amount the organizer can keep."
msgstr "Vennligst skriv inn beløpet arrangøren kan beholde."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Vennligst skriv inn et antall for en av billetttypene."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "nødvendig"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Tidssone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Din lokale tid:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-10-29 02:00+0000\n"
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -290,14 +290,18 @@ msgid "Order canceled"
msgstr "Bestelling geannuleerd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Ingecheckte tickets"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Geldige tickets"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Op dit moment binnen"
@@ -638,20 +642,20 @@ msgstr "U krijgt %(currency)s %(amount)s terug"
msgid "Please enter the amount the organizer can keep."
msgstr "Voer het bedrag in dat de organisator mag houden."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Voer een hoeveelheid voor een van de producten in."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "verplicht"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Tijdzone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Uw lokale tijd:"
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -287,14 +287,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -618,20 +622,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-08-05 04:00+0000\n"
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
@@ -291,14 +291,18 @@ msgid "Order canceled"
msgstr "Bestelling geannuleerd"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Ingecheckte kaartjes"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Geldige kaartjes"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Op dit moment binnen"
@@ -648,20 +652,20 @@ msgstr "Jij krijgt %(currency)s %(amount)s terug"
msgid "Please enter the amount the organizer can keep."
msgstr "Voer het bedrag in dat de organisator mag houden."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Voer een hoeveelheid voor een van de producten in."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "verplicht"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Tijdzone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Je lokale tijd:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2019-09-24 19:00+0000\n"
"Last-Translator: Serge Bazanski <q3k@hackerspace.pl>\n"
"Language-Team: Polish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -303,16 +303,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "QR zameldowania"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -686,22 +690,22 @@ msgstr "od %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Proszę wybrać liczbę dla jednego z typów biletów."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Koszyk wygasł"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -288,14 +288,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -621,20 +625,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -288,14 +288,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -619,20 +623,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2019-03-19 09:00+0000\n"
"Last-Translator: Vitor Reis <vitor.reis7@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
@@ -302,16 +302,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "QR Check-in"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -693,22 +697,22 @@ msgstr "A partir de %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "O carrinho expirou"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2020-10-27 06:00+0000\n"
"Last-Translator: David Vaz <davidmgvaz@gmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://translate.pretix.eu/projects/"
@@ -302,16 +302,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "Check-in QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -664,22 +668,22 @@ msgstr "Recebes %(currency)s %(amount)s de volta"
msgid "Please enter the amount the organizer can keep."
msgstr "Por favor insira o montante com que a organização pode ficar."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Por favor insira a quantidade para um tipo de bilhetes."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Carrinho expirado"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Fuso horário:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Sua hora local:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-04-29 04:00+0000\n"
"Last-Translator: Edd28 <chitu_edy@yahoo.com>\n"
"Language-Team: Romanian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -290,14 +290,18 @@ msgid "Order canceled"
msgstr "Comandă anulată"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Bilete Scanate"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Bilete Valide"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "Aflat în interior"
@@ -645,20 +649,20 @@ msgstr "Primești înapoi %(currency)s %(amount)s"
msgid "Please enter the amount the organizer can keep."
msgstr "Introdu valoarea pe care o poate păstra organizatorul."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Introdu cantitatea pentru unul dintre tipurile de bilete."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "necesar"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Fus orar:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Ora locală:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-08-09 13:10+0000\n"
"Last-Translator: Svyatoslav <slava@digitalarthouse.eu>\n"
"Language-Team: Russian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -303,16 +303,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "QR-код для регистрации"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -683,22 +687,22 @@ msgstr "от %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Пожалуйста, введите количество для одного из типов билетов."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Срок действия корзины истёк"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -287,14 +287,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -618,20 +622,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2019-08-27 08:00+0000\n"
"Last-Translator: Bostjan Marusic <bostjan@brokenbones.si>\n"
"Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -303,16 +303,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "QR koda za check-in"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -684,22 +688,22 @@ msgstr "od %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Prosimo vnesite količino za eno od vrst vstopnic."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Vsebina košarice je potekla"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-03-03 07:00+0000\n"
"Last-Translator: MaLund13 <mart.lund13@gmail.com>\n"
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -291,14 +291,18 @@ msgid "Order canceled"
msgstr "Beställningen har avbokats"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Incheckade biljetter"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Giltiga biljetter"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "För tillfället närvarande"
@@ -636,20 +640,20 @@ msgstr "Du får %(amount)s %(currency)s tillbaka"
msgid "Please enter the amount the organizer can keep."
msgstr "Vänligen ange det belopp som arrangören kan behålla."
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Vänligen ange en kvantitet för en av biljettyperna."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "obligatorisk"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Tidszon:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Din lokala tid:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2018-09-03 06:36+0000\n"
"Last-Translator: Yunus Fırat Pişkin <firat.piskin@idvlabs.com>\n"
"Language-Team: Turkish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -302,16 +302,20 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#, fuzzy
#| msgid "Check-in QR"
msgid "Checked-in Tickets"
msgstr "Giriş QR"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -696,22 +700,22 @@ msgstr "% (para birimi) s% (fiyat) s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "Sepetinizin süresi doldu"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2022-05-10 02:00+0000\n"
"Last-Translator: Iryna N <in380@nyu.edu>\n"
"Language-Team: Ukrainian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -294,14 +294,18 @@ msgid "Order canceled"
msgstr "Замовлення скасовано"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "Зареєстровані квитки"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "Дійсні квитки"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr "На даний момент всередині"
@@ -643,20 +647,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr "Будь ласка, введіть кількість для одного типу квитків."
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr "обов'язково"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr "Часовий пояс:"
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr "Ваш місцевий час:"
File diff suppressed because it is too large Load Diff
+12 -8
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -288,14 +288,18 @@ msgid "Order canceled"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Checked-in Tickets"
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Valid Tickets"
msgid "Checked-in Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -619,20 +623,20 @@ msgstr ""
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
msgid "required"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
File diff suppressed because it is too large Load Diff
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"POT-Creation-Date: 2022-07-25 16:59+0000\n"
"PO-Revision-Date: 2021-12-03 08:37+0000\n"
"Last-Translator: ExtremeX-BB <qq754163444@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.pretix.eu/projects/"
@@ -297,14 +297,18 @@ msgid "Order canceled"
msgstr "订单已经取消"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket code is ambiguous on list"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Checked-in Tickets"
msgstr "已签到的票"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Valid Tickets"
msgstr "有效的票"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Currently inside"
msgstr ""
@@ -651,22 +655,22 @@ msgstr "由 %(currency)s %(price)s"
msgid "Please enter the amount the organizer can keep."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:377
#: pretix/static/pretixpresale/js/ui/main.js:378
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:413
#: pretix/static/pretixpresale/js/ui/main.js:414
#, fuzzy
#| msgid "Cart expired"
msgid "required"
msgstr "购物车已过期"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
#: pretix/static/pretixpresale/js/ui/main.js:517
#: pretix/static/pretixpresale/js/ui/main.js:536
msgid "Time zone:"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js:526
#: pretix/static/pretixpresale/js/ui/main.js:527
msgid "Your local time:"
msgstr ""
+10 -1
View File
@@ -43,6 +43,7 @@ from django.core.cache import cache
from django.core.exceptions import DisallowedHost
from django.http.request import split_domain_port
from django.middleware.csrf import CsrfViewMiddleware as BaseCsrfMiddleware
from django.shortcuts import render
from django.urls import set_urlconf
from django.utils.cache import patch_vary_headers
from django.utils.deprecation import MiddlewareMixin
@@ -112,7 +113,15 @@ class MultiDomainMiddleware(MiddlewareMixin):
elif settings.DEBUG or domain in LOCAL_HOST_NAMES:
request.urlconf = "pretix.multidomain.maindomain_urlconf"
else:
raise DisallowedHost("Unknown host: %r" % host)
with scopes_disabled():
is_fresh_install = not Event.objects.exists()
return render(request, '400_hostname.html', {
'header_host': domain,
'site_host': default_domain,
'settings': settings,
'xfh': request.headers.get('X-Forwarded-Host'),
'is_fresh_install': is_fresh_install,
}, status=400)
else:
raise DisallowedHost("Invalid HTTP_HOST header: %r." % host)

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