forked from CGM_Public/pretix_original
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8fa715ac4b |
@@ -343,8 +343,8 @@ Endpoints
|
||||
Creates a new event with properties as set in the request body. The properties that are copied are: ``is_public``,
|
||||
``testmode``, ``has_subevents``, settings, plugin settings, items, variations, add-ons, quotas, categories, tax rules, questions.
|
||||
|
||||
If the ``plugins``, ``has_subevents``, ``meta_data`` and/or ``is_public`` fields are present in the post body this will
|
||||
determine their value. Otherwise their value will be copied from the existing event.
|
||||
If the ``plugins``, ``has_subevents`` and/or ``is_public`` fields are present in the post body this will determine their
|
||||
value. Otherwise their value will be copied from the existing event.
|
||||
|
||||
Please note that you can only copy from events under the same organizer this way. Use the ``clone_from`` parameter
|
||||
when creating a new event for this instead.
|
||||
|
||||
@@ -137,17 +137,13 @@ last_modified datetime Last modificati
|
||||
|
||||
The ``event`` attribute has been added. The organizer-level endpoint has been added.
|
||||
|
||||
.. versionchanged:: 2023.9
|
||||
|
||||
The ``customer`` query parameter has been added.
|
||||
|
||||
.. versionchanged:: 2023.10
|
||||
|
||||
The ``checkin_text`` attribute has been added.
|
||||
|
||||
.. versionchanged:: 2024.1
|
||||
.. versionchanged:: 2023.9
|
||||
|
||||
The ``expires`` attribute can now be passed during order creation.
|
||||
The ``customer`` query parameter has been added.
|
||||
|
||||
|
||||
.. _order-position-resource:
|
||||
@@ -733,8 +729,6 @@ Updating order fields
|
||||
|
||||
* ``valid_if_pending``
|
||||
|
||||
* ``expires``
|
||||
|
||||
**Example request**:
|
||||
|
||||
.. sourcecode:: http
|
||||
|
||||
@@ -32,7 +32,6 @@ transactions list of objects Transactions in
|
||||
├ checksum string Checksum computed from payer, reference, amount and
|
||||
date
|
||||
├ payer string Payment source
|
||||
├ external_id string Unique ID of the payment from an external source
|
||||
├ reference string Payment reference
|
||||
├ amount string Payment amount
|
||||
├ iban string Payment IBAN
|
||||
@@ -86,7 +85,6 @@ Endpoints
|
||||
"date": "26.06.2017",
|
||||
"payer": "John Doe",
|
||||
"order": null,
|
||||
"external_id": null,
|
||||
"iban": "",
|
||||
"bic": "",
|
||||
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
|
||||
@@ -141,7 +139,6 @@ Endpoints
|
||||
"iban": "",
|
||||
"bic": "",
|
||||
"order": null,
|
||||
"external_id": null,
|
||||
"checksum": "5de03a601644dfa63420dacfd285565f8375a8f2",
|
||||
"reference": "GUTSCHRIFT\r\nSAMPLECONF-NAB12 EREF: SAMPLECONF-NAB12\r\nIBAN: DE1234556…",
|
||||
"state": "nomatch",
|
||||
|
||||
@@ -194,23 +194,17 @@ A complete record could look like this::
|
||||
|
||||
v=spf1 a mx include:_spf.pretix.eu ~all
|
||||
|
||||
Make sure to read up on the `SPF specification`_.
|
||||
Make sure to read up on the `SPF specification`_. If you want to authenticate your emails with DKIM, set up a DNS TXT
|
||||
record for the subdomain ``pretix._domainkey`` with the following contents::
|
||||
|
||||
If you want to authenticate your emails with `DKIM`_, set up a ``CNAME`` record for the subdomain ``pretix._domainkey``
|
||||
pointing to ``dkim.pretix.eu``::
|
||||
|
||||
pretix._domainkey.mydomain.com. CNAME dkim.pretix.eu.
|
||||
v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDXrDk6lwOWX00e2MbiiJac6huI+gnzLf9N4G1FnBv3PXq8fz3i2q1szH72OF5mAlKm3zXO4cl/uxx+lfidS1ERbX6Bn9BRstBTQUKWC4JFj8Yk9+fwT7LWehDURazLdTzfsIjJFudLLvxtOKSaOCtMhbPX05DIhziaqVCBqgz/NQIDAQAB
|
||||
|
||||
Then, please contact support@pretix.eu and we will enable DKIM for your domain on our mail servers.
|
||||
|
||||
For senders with larger volumes, Google Mail also requires you to have a `DMARC`_ policy (that may however be ``p=none``).
|
||||
|
||||
.. note:: Many SMTP servers impose rate limits on the sent emails, such as a maximum number of emails sent per hour.
|
||||
These SMTP servers are often not suitable for use with pretix, in case you want to send an email to many
|
||||
hundreds or thousands of ticket buyers. Depending on how the rate limit is implemented, emails might be lost
|
||||
in this case, as pretix only retries email delivery for a certain time period.
|
||||
|
||||
.. _DKIM: https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
|
||||
.. _Sender Policy Framework: https://en.wikipedia.org/wiki/Sender_Policy_Framework
|
||||
.. _SPF specification: http://www.open-spf.org/SPF_Record_Syntax
|
||||
.. _DMARC: https://en.wikipedia.org/wiki/DMARC
|
||||
@@ -138,7 +138,7 @@ the button-style of that checkbox with the one in the pretix shop, you can use t
|
||||
|
||||
.. note::
|
||||
|
||||
Due to compatibility with existing widget installations, the default value for ``single-item-select``
|
||||
Due to compatibilty with existing widget installations, the default value for ``single-item-select``
|
||||
is ``checkbox``. This might change in the future, so make sure, to set the attribute to
|
||||
``single-item-select="checkbox"`` if you need it.
|
||||
|
||||
@@ -196,7 +196,7 @@ settings. For example, if you set up a meta data property called "Promoted" that
|
||||
|
||||
<pretix-widget event="https://pretix.eu/demo/series/" list-type="list" filter="attr[Promoted]=Yes"></pretix-widget>
|
||||
|
||||
If you have enabled public filters in your meta data attribute configuration, a filter-form shows up. To disable, use::
|
||||
If you have enabled public filters in your meta data attribute configuration, a filter formshows up. To disable, use::
|
||||
|
||||
<pretix-widget event="https://pretix.eu/demo/democon/" disable-filters></pretix-widget>
|
||||
|
||||
|
||||
@@ -145,7 +145,7 @@ to get a better plain text representation of your text. Note however, that for
|
||||
security reasons you can only use the following HTML elements::
|
||||
|
||||
a, abbr, acronym, b, br, code, div, em, h1, h2,
|
||||
h3, h4, h5, h6, hr, i, li, ol, p, pre, s, span, strong,
|
||||
h3, h4, h5, h6, hr, i, li, ol, p, pre, span, strong,
|
||||
table, tbody, td, thead, tr, ul
|
||||
|
||||
Additionally, only the following attributes are allowed on them::
|
||||
|
||||
+2
-2
@@ -59,7 +59,7 @@ dependencies = [
|
||||
"dnspython==2.3.*",
|
||||
"drf_ujson2==1.7.*",
|
||||
"geoip2==4.*",
|
||||
"importlib_metadata==7.*", # Polyfill, we can probably drop this once we require Python 3.10+
|
||||
"importlib_metadata==6.*", # Polyfill, we can probably drop this once we require Python 3.10+
|
||||
"isoweek",
|
||||
"jsonschema",
|
||||
"kombu==5.3.*",
|
||||
@@ -97,7 +97,7 @@ dependencies = [
|
||||
"sepaxml==2.6.*",
|
||||
"slimit",
|
||||
"static3==0.7.*",
|
||||
"stripe==7.9.*",
|
||||
"stripe==5.4.*",
|
||||
"text-unidecode==1.*",
|
||||
"tlds>=2020041600",
|
||||
"tqdm==4.*",
|
||||
|
||||
@@ -267,10 +267,9 @@ CACHE_LARGE_VALUES_ALIAS = 'default'
|
||||
FILE_UPLOAD_EXTENSIONS_IMAGE = (".png", ".jpg", ".gif", ".jpeg")
|
||||
PILLOW_FORMATS_IMAGE = ('PNG', 'GIF', 'JPEG')
|
||||
|
||||
FILE_UPLOAD_EXTENSIONS_FAVICON = (".ico", ".png", ".jpg", ".gif", ".jpeg")
|
||||
PILLOW_FORMATS_QUESTIONS_FAVICON = ('PNG', 'GIF', 'JPEG', 'ICO')
|
||||
FILE_UPLOAD_EXTENSIONS_FAVICON = (".ico", ".png", "jpg", ".gif", ".jpeg")
|
||||
|
||||
FILE_UPLOAD_EXTENSIONS_QUESTION_IMAGE = (".png", ".jpg", ".gif", ".jpeg", ".bmp", ".tif", ".tiff", ".jfif")
|
||||
FILE_UPLOAD_EXTENSIONS_QUESTION_IMAGE = (".png", "jpg", ".gif", ".jpeg", ".bmp", ".tif", ".tiff", ".jfif")
|
||||
PILLOW_FORMATS_QUESTIONS_IMAGE = ('PNG', 'GIF', 'JPEG', 'BMP', 'TIFF')
|
||||
|
||||
FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
||||
@@ -279,5 +278,3 @@ FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT = (
|
||||
".bmp", ".tif", ".tiff"
|
||||
)
|
||||
FILE_UPLOAD_EXTENSIONS_OTHER = FILE_UPLOAD_EXTENSIONS_EMAIL_ATTACHMENT
|
||||
|
||||
PRETIX_MAX_ORDER_SIZE = 500
|
||||
|
||||
@@ -38,7 +38,6 @@ MAIL_FROM_ORGANIZERS = 'invalid@invalid'
|
||||
FILE_UPLOAD_MAX_SIZE_EMAIL_AUTO_ATTACHMENT = 10
|
||||
FILE_UPLOAD_MAX_SIZE_EMAIL_ATTACHMENT = 10
|
||||
FILE_UPLOAD_MAX_SIZE_IMAGE = 10
|
||||
FILE_UPLOAD_MAX_SIZE_FAVICON = 10
|
||||
DEFAULT_CURRENCY = 'EUR'
|
||||
SECRET_KEY = "build-time-secret-key"
|
||||
HAS_REDIS = False
|
||||
|
||||
@@ -424,7 +424,7 @@ class CloneEventSerializer(EventSerializer):
|
||||
new_event = super().create({**validated_data, 'plugins': None})
|
||||
|
||||
event = Event.objects.filter(slug=self.context['event'], organizer=self.context['organizer'].pk).first()
|
||||
new_event.copy_data_from(event, skip_meta_data='meta_data' in validated_data)
|
||||
new_event.copy_data_from(event)
|
||||
|
||||
if plugins is not None:
|
||||
new_event.set_active_plugins(plugins)
|
||||
|
||||
@@ -1035,14 +1035,13 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.fields['positions'].child.fields['voucher'].queryset = self.context['event'].vouchers.all()
|
||||
self.fields['customer'].queryset = self.context['event'].organizer.customers.all()
|
||||
self.fields['expires'].required = False
|
||||
|
||||
class Meta:
|
||||
model = Order
|
||||
fields = ('code', 'status', 'testmode', 'email', 'phone', 'locale', 'payment_provider', 'fees', 'comment', 'sales_channel',
|
||||
'invoice_address', 'positions', 'checkin_attention', 'checkin_text', 'payment_info', 'payment_date',
|
||||
'consume_carts', 'force', 'send_email', 'simulate', 'customer', 'custom_followup_at',
|
||||
'require_approval', 'valid_if_pending', 'expires')
|
||||
'require_approval', 'valid_if_pending')
|
||||
|
||||
def validate_payment_provider(self, pp):
|
||||
if pp is None:
|
||||
@@ -1051,11 +1050,6 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
||||
raise ValidationError('The given payment provider is not known.')
|
||||
return pp
|
||||
|
||||
def validate_expires(self, expires):
|
||||
if expires < now():
|
||||
raise ValidationError('Expiration date must be in the future.')
|
||||
return expires
|
||||
|
||||
def validate_sales_channel(self, channel):
|
||||
if channel not in get_all_sales_channels():
|
||||
raise ValidationError('Unknown sales channel.')
|
||||
@@ -1077,10 +1071,6 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
||||
raise ValidationError(
|
||||
'An order cannot be empty.'
|
||||
)
|
||||
if len(data) > settings.PRETIX_MAX_ORDER_SIZE:
|
||||
raise ValidationError(
|
||||
'Orders cannot have more than %(max)s positions.' % {'max': settings.PRETIX_MAX_ORDER_SIZE}
|
||||
)
|
||||
errs = [{} for p in data]
|
||||
if any([p.get('positionid') for p in data]):
|
||||
if not all([p.get('positionid') for p in data]):
|
||||
@@ -1366,8 +1356,7 @@ class OrderCreateSerializer(I18nAwareModelSerializer):
|
||||
if validated_data.get('locale', None) is None:
|
||||
validated_data['locale'] = self.context['event'].settings.locale
|
||||
order = Order(event=self.context['event'], **validated_data)
|
||||
if not validated_data.get('expires'):
|
||||
order.set_expires(subevents=[p.get('subevent') for p in positions_data])
|
||||
order.set_expires(subevents=[p.get('subevent') for p in positions_data])
|
||||
order.meta_info = "{}"
|
||||
order.total = Decimal('0.00')
|
||||
if validated_data.get('require_approval') is not None:
|
||||
|
||||
@@ -152,6 +152,11 @@ class CheckinListViewSet(viewsets.ModelViewSet):
|
||||
@action(detail=True, methods=['POST'], url_name='failed_checkins')
|
||||
@transaction.atomic()
|
||||
def failed_checkins(self, *args, **kwargs):
|
||||
additional_log_data = {}
|
||||
if 'debug_data' in self.request.data:
|
||||
# Intentionally undocumented, might be removed again
|
||||
additional_log_data['debug_data'] = self.request.data.pop('debug_data')
|
||||
|
||||
serializer = FailedCheckinSerializer(
|
||||
data=self.request.data,
|
||||
context={'event': self.request.event}
|
||||
@@ -194,14 +199,16 @@ class CheckinListViewSet(viewsets.ModelViewSet):
|
||||
'reason_explanation': c.error_explanation,
|
||||
'datetime': c.datetime,
|
||||
'type': c.type,
|
||||
'list': c.list.pk
|
||||
'list': c.list.pk,
|
||||
**additional_log_data,
|
||||
}, user=self.request.user, auth=self.request.auth)
|
||||
else:
|
||||
self.request.event.log_action('pretix.event.checkin.unknown', data={
|
||||
'datetime': c.datetime,
|
||||
'type': c.type,
|
||||
'list': c.list.pk,
|
||||
'barcode': c.raw_barcode
|
||||
'barcode': c.raw_barcode,
|
||||
**additional_log_data,
|
||||
}, user=self.request.user, auth=self.request.auth)
|
||||
|
||||
return Response(serializer.data, status=201)
|
||||
|
||||
@@ -254,7 +254,7 @@ class EventViewSet(viewsets.ModelViewSet):
|
||||
new_event = serializer.save(organizer=self.request.organizer)
|
||||
|
||||
if copy_from:
|
||||
new_event.copy_data_from(copy_from, skip_meta_data='meta_data' in serializer.validated_data)
|
||||
new_event.copy_data_from(copy_from)
|
||||
|
||||
if plugins is not None:
|
||||
new_event.set_active_plugins(plugins)
|
||||
|
||||
@@ -222,8 +222,6 @@ class OrderViewSetMixin:
|
||||
qs = qs.prefetch_related('refunds', 'refunds__payment')
|
||||
if 'invoice_address' not in self.request.GET.getlist('exclude'):
|
||||
qs = qs.select_related('invoice_address')
|
||||
if 'customer' not in self.request.GET.getlist('exclude'):
|
||||
qs = qs.select_related('customer')
|
||||
|
||||
qs = qs.prefetch_related(self._positions_prefetch(self.request))
|
||||
return qs
|
||||
|
||||
@@ -384,7 +384,7 @@ def register_default_webhook_events(sender, **kwargs):
|
||||
def notify_webhooks(logentry_ids: list):
|
||||
if not isinstance(logentry_ids, list):
|
||||
logentry_ids = [logentry_ids]
|
||||
qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer').filter(id__in=logentry_ids)
|
||||
qs = LogEntry.all.select_related('event', 'event__organizer', 'organizer_link').filter(id__in=logentry_ids)
|
||||
_org, _at, webhooks = None, None, None
|
||||
for logentry in qs:
|
||||
if not logentry.organizer:
|
||||
|
||||
@@ -28,5 +28,4 @@ from .items import * # noqa
|
||||
from .json import * # noqa
|
||||
from .mail import * # noqa
|
||||
from .orderlist import * # noqa
|
||||
from .reusablemedia import * # noqa
|
||||
from .waitinglist import * # noqa
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
#
|
||||
# This 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 django.dispatch import receiver
|
||||
from django.utils.formats import date_format
|
||||
from django.utils.translation import gettext_lazy as _, pgettext, pgettext_lazy
|
||||
|
||||
from ..exporter import ListExporter, OrganizerLevelExportMixin
|
||||
from ..models import ReusableMedium
|
||||
from ..signals import register_multievent_data_exporters
|
||||
|
||||
|
||||
class ReusableMediaExporter(OrganizerLevelExportMixin, ListExporter):
|
||||
identifier = 'reusablemedia'
|
||||
verbose_name = _('Reusable media')
|
||||
category = pgettext_lazy('export_category', 'Reusable media')
|
||||
description = _('Download a spread sheet with the data of all reusable medias on your account.')
|
||||
|
||||
def iterate_list(self, form_data):
|
||||
media = ReusableMedium.objects.filter(
|
||||
organizer=self.organizer,
|
||||
).select_related(
|
||||
'customer', 'linked_orderposition', 'linked_giftcard',
|
||||
).order_by('created')
|
||||
|
||||
headers = [
|
||||
pgettext('reusable_medium', 'Media type'),
|
||||
pgettext('reusable_medium', 'Identifier'),
|
||||
_('Active'),
|
||||
_('Expiration date'),
|
||||
_('Customer account'),
|
||||
_('Linked ticket'),
|
||||
_('Linked gift card'),
|
||||
_('Notes'),
|
||||
]
|
||||
|
||||
yield headers
|
||||
yield self.ProgressSetTotal(total=media.count())
|
||||
|
||||
for medium in media.iterator(chunk_size=1000):
|
||||
row = [
|
||||
medium.type,
|
||||
medium.identifier,
|
||||
_('Yes') if medium.active else _('No'),
|
||||
date_format(medium.expires, 'SHORT_DATETIME_FORMAT') if medium.expires else '',
|
||||
medium.customer.identifier if medium.customer_id else '',
|
||||
f"{medium.linked_orderposition.order.code}-{medium.linked_orderposition.positionid}" if medium.linked_orderposition_id else '',
|
||||
medium.linked_giftcard.secret if medium.linked_giftcard_id else '',
|
||||
medium.notes,
|
||||
]
|
||||
yield row
|
||||
|
||||
def get_filename(self):
|
||||
return f'{self.organizer.slug}_media'
|
||||
|
||||
|
||||
@receiver(register_multievent_data_exporters, dispatch_uid="multiexporter_reusablemedia")
|
||||
def register_multievent_i_reusable_media_exporter(sender, **kwargs):
|
||||
return ReusableMediaExporter
|
||||
@@ -125,7 +125,7 @@ class NamePartsWidget(forms.MultiWidget):
|
||||
if fname == 'title' and self.titles:
|
||||
widgets.append(Select(attrs=a, choices=[('', '')] + [(d, d) for d in self.titles[1]]))
|
||||
elif fname == 'salutation':
|
||||
widgets.append(Select(attrs=a, choices=[('', '---'), ('empty', '')] + PERSON_NAME_SALUTATIONS))
|
||||
widgets.append(Select(attrs=a, choices=[('', '---')] + PERSON_NAME_SALUTATIONS))
|
||||
else:
|
||||
widgets.append(self.widget(attrs=a))
|
||||
super().__init__(widgets, attrs)
|
||||
@@ -136,10 +136,7 @@ class NamePartsWidget(forms.MultiWidget):
|
||||
data = []
|
||||
for i, field in enumerate(self.scheme['fields']):
|
||||
fname, label, size = field
|
||||
fval = value.get(fname, "")
|
||||
if fname == "salutation" and fname in value and fval == "":
|
||||
fval = "empty"
|
||||
data.append(fval)
|
||||
data.append(value.get(fname, ""))
|
||||
if '_legacy' in value and not data[-1]:
|
||||
data[-1] = value.get('_legacy', '')
|
||||
elif not any(d for d in data) and '_scheme' in value:
|
||||
@@ -193,8 +190,7 @@ class NamePartsFormField(forms.MultiValueField):
|
||||
data = {}
|
||||
data['_scheme'] = self.scheme_name
|
||||
for i, value in enumerate(data_list):
|
||||
key = self.scheme['fields'][i][0]
|
||||
data[key] = value or ''
|
||||
data[self.scheme['fields'][i][0]] = value or ''
|
||||
return data
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -243,7 +239,7 @@ class NamePartsFormField(forms.MultiValueField):
|
||||
d.pop('validators', None)
|
||||
field = forms.ChoiceField(
|
||||
**d,
|
||||
choices=[('', '---'), ('empty', '')] + PERSON_NAME_SALUTATIONS
|
||||
choices=[('', '---')] + PERSON_NAME_SALUTATIONS
|
||||
)
|
||||
else:
|
||||
field = forms.CharField(**defaults)
|
||||
@@ -269,9 +265,6 @@ class NamePartsFormField(forms.MultiValueField):
|
||||
if sum(len(v) for v in value.values() if v) > 250:
|
||||
raise forms.ValidationError(_('Please enter a shorter name.'), code='max_length')
|
||||
|
||||
if value.get("salutation") == "empty":
|
||||
value["salutation"] = ""
|
||||
|
||||
return value
|
||||
|
||||
|
||||
|
||||
@@ -209,10 +209,7 @@ class SplitDateTimePickerWidget(forms.SplitDateTimeWidget):
|
||||
|
||||
date_attrs['placeholder'] = lazy(date_placeholder, str)
|
||||
time_attrs['placeholder'] = lazy(time_placeholder, str)
|
||||
date_attrs['aria-label'] = _('Date')
|
||||
time_attrs['aria-label'] = _('Time')
|
||||
if 'aria-label' in attrs:
|
||||
del attrs['aria-label']
|
||||
|
||||
widgets = (
|
||||
forms.DateInput(attrs=date_attrs, format=date_format),
|
||||
forms.TimeInput(attrs=time_attrs, format=time_format),
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
# Generated by Django 4.2.4 on 2023-12-06 14:53
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("pretixbase", "0253_checkin_info"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="logentry",
|
||||
name="organizer_link",
|
||||
field=models.ForeignKey(
|
||||
db_column="organizer_link_id",
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.PROTECT,
|
||||
to="pretixbase.organizer",
|
||||
),
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name="logentry",
|
||||
old_name="organizer_link",
|
||||
new_name="organizer",
|
||||
),
|
||||
]
|
||||
@@ -115,7 +115,7 @@ class LoggingMixin:
|
||||
kwargs['api_token'] = api_token
|
||||
|
||||
logentry = LogEntry(content_object=self, user=user, action_type=action, event=event,
|
||||
organizer_id=organizer_id, **kwargs)
|
||||
organizer_link_id=organizer_id, **kwargs)
|
||||
if isinstance(data, dict):
|
||||
sensitivekeys = ['password', 'secret', 'api_key']
|
||||
|
||||
|
||||
@@ -280,8 +280,7 @@ class CheckinList(LoggedModel):
|
||||
'<', '<=', '>', '>=', '==', '!=', 'inList', 'isBefore', 'isAfter', 'or', 'and'
|
||||
}
|
||||
allowed_operators = top_level_operators | {
|
||||
'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before', 'entries_days_since',
|
||||
'entries_days_before',
|
||||
'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before'
|
||||
}
|
||||
allowed_vars = {
|
||||
'product', 'variation', 'now', 'now_isoweekday', 'entries_number', 'entries_today', 'entries_days',
|
||||
@@ -310,7 +309,7 @@ class CheckinList(LoggedModel):
|
||||
raise ValidationError(f'Logic variable "{values[0]}" is currently not allowed.')
|
||||
return rules
|
||||
|
||||
if operator in ('entries_since', 'entries_before', 'entries_days_since', 'entries_days_before'):
|
||||
if operator in ('entries_since', 'entries_before'):
|
||||
if len(values) != 1 or "buildTime" not in values[0]:
|
||||
raise ValidationError(f'Operator "{operator}" takes exactly one "buildTime" argument.')
|
||||
|
||||
|
||||
@@ -344,7 +344,7 @@ class Discount(LoggedModel):
|
||||
|
||||
elif self.subevent_mode == self.SUBEVENT_MODE_SAME:
|
||||
def key(idx):
|
||||
return positions[idx][1] or 0 # subevent_id
|
||||
return positions[idx][1] # subevent_id
|
||||
|
||||
# Build groups of candidates with the same subevent, then apply our regular algorithm
|
||||
# to each group
|
||||
|
||||
@@ -775,7 +775,7 @@ class Event(EventMixin, LoggedModel):
|
||||
time(hour=23, minute=59, second=59)
|
||||
), tz)
|
||||
|
||||
def copy_data_from(self, other, skip_meta_data=False):
|
||||
def copy_data_from(self, other):
|
||||
from pretix.presale.style import regenerate_css
|
||||
|
||||
from ..signals import event_copy_data
|
||||
@@ -798,11 +798,10 @@ class Event(EventMixin, LoggedModel):
|
||||
self.save()
|
||||
self.log_action('pretix.object.cloned', data={'source': other.slug, 'source_id': other.pk})
|
||||
|
||||
if not skip_meta_data:
|
||||
for emv in EventMetaValue.objects.filter(event=other):
|
||||
emv.pk = None
|
||||
emv.event = self
|
||||
emv.save(force_insert=True)
|
||||
for emv in EventMetaValue.objects.filter(event=other):
|
||||
emv.pk = None
|
||||
emv.event = self
|
||||
emv.save(force_insert=True)
|
||||
|
||||
for fl in EventFooterLink.objects.filter(event=other):
|
||||
fl.pk = None
|
||||
@@ -1064,7 +1063,7 @@ class Event(EventMixin, LoggedModel):
|
||||
providers[pp.identifier] = pp
|
||||
|
||||
self._cached_payment_providers = OrderedDict(sorted(
|
||||
providers.items(), key=lambda v: (-v[1].priority, str(v[1].verbose_name).title())
|
||||
providers.items(), key=lambda v: (-v[1].priority, str(v[1].verbose_name))
|
||||
))
|
||||
return self._cached_payment_providers
|
||||
|
||||
|
||||
@@ -631,7 +631,7 @@ class Item(LoggedModel):
|
||||
null=True, blank=True, max_length=16,
|
||||
verbose_name=_('Validity'),
|
||||
help_text=_(
|
||||
'When setting up a regular event, or an event series with time slots, you typically do NOT need to change '
|
||||
'When setting up a regular event, or an event series with time slots, you typically to NOT need to change '
|
||||
'this value. The default setting means that the validity time of tickets will not be decided by the '
|
||||
'product, but by the event and check-in configuration. Only use the other options if you need them to '
|
||||
'realize e.g. a booking of a year-long ticket with a dynamic start date. Note that the validity will be '
|
||||
|
||||
@@ -78,7 +78,7 @@ class LogEntry(models.Model):
|
||||
device = models.ForeignKey('Device', null=True, blank=True, on_delete=models.PROTECT)
|
||||
oauth_application = models.ForeignKey('pretixapi.OAuthApplication', null=True, blank=True, on_delete=models.PROTECT)
|
||||
event = models.ForeignKey('Event', null=True, blank=True, on_delete=models.SET_NULL)
|
||||
organizer = models.ForeignKey('Organizer', null=True, blank=True, on_delete=models.PROTECT, db_column='organizer_link_id')
|
||||
organizer_link = models.ForeignKey('Organizer', null=True, blank=True, on_delete=models.PROTECT)
|
||||
action_type = models.CharField(max_length=255)
|
||||
data = models.TextField(default='{}')
|
||||
visible = models.BooleanField(default=True)
|
||||
@@ -123,6 +123,22 @@ class LogEntry(models.Model):
|
||||
typepath = typepath.rsplit('.', 1)[0]
|
||||
return no_type
|
||||
|
||||
@cached_property
|
||||
def organizer(self):
|
||||
from .organizer import Organizer
|
||||
|
||||
if self.organizer_link:
|
||||
return self.organizer_link
|
||||
elif self.event:
|
||||
return self.event.organizer
|
||||
elif hasattr(self.content_object, 'event'):
|
||||
return self.content_object.event.organizer
|
||||
elif hasattr(self.content_object, 'organizer'):
|
||||
return self.content_object.organizer
|
||||
elif isinstance(self.content_object, Organizer):
|
||||
return self.content_object
|
||||
return None
|
||||
|
||||
@cached_property
|
||||
def display_object(self):
|
||||
from . import (
|
||||
|
||||
@@ -2143,12 +2143,6 @@ class OrderRefund(models.Model):
|
||||
self.local_id = (self.order.refunds.aggregate(m=Max('local_id'))['m'] or 0) + 1
|
||||
if 'update_fields' in kwargs:
|
||||
kwargs['update_fields'] = {'local_id'}.union(kwargs['update_fields'])
|
||||
|
||||
if self.state == OrderRefund.REFUND_STATE_DONE and not self.execution_date:
|
||||
self.execution_date = now()
|
||||
if 'update_fields' in kwargs:
|
||||
kwargs['update_fields'] = {'execution_date'}.union(kwargs['update_fields'])
|
||||
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,6 @@ from typing import List, Optional
|
||||
|
||||
from celery.exceptions import MaxRetriesExceededError
|
||||
from django import forms
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import DatabaseError, transaction
|
||||
from django.db.models import Count, Exists, IntegerField, OuterRef, Q, Value
|
||||
@@ -379,9 +378,8 @@ class CartManager:
|
||||
cartsize += sum([op.count for op in self._operations if isinstance(op, self.AddOperation) and not op.addon_to])
|
||||
cartsize -= len([1 for op in self._operations if isinstance(op, self.RemoveOperation) if
|
||||
not op.position.addon_to_id])
|
||||
limit = min(int(self.event.settings.max_items_per_order), settings.PRETIX_MAX_ORDER_SIZE)
|
||||
if cartsize > limit:
|
||||
raise CartError(error_messages['max_items'] % limit)
|
||||
if cartsize > int(self.event.settings.max_items_per_order):
|
||||
raise CartError(error_messages['max_items'] % self.event.settings.max_items_per_order)
|
||||
|
||||
def _check_item_constraints(self, op, current_ops=[]):
|
||||
if isinstance(op, (self.AddOperation, self.ExtendOperation)):
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
# Unless required by applicable law or agreed to in writing, software distributed under the Apache License 2.0 is
|
||||
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations under the License.
|
||||
import logging
|
||||
import os
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from functools import partial, reduce
|
||||
@@ -66,8 +65,6 @@ from pretix.helpers.jsonlogic_query import (
|
||||
MinutesSince, tolerance,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def _build_time(t=None, value=None, ev=None, now_dt=None):
|
||||
now_dt = now_dt or now()
|
||||
@@ -202,7 +199,7 @@ def _logic_explain(rules, ev, rule_data, now_dt=None):
|
||||
'var': values[0]["var"],
|
||||
'rhs': values[1:],
|
||||
}
|
||||
elif any(t in values[0] for t in ("entries_since", "entries_before", "entries_days_since", "entries_days_before")):
|
||||
elif "entries_since" in values[0] or "entries_before" in values[0]:
|
||||
_var_explanations[new_var_name] = {
|
||||
'operator': operator,
|
||||
'var': values[0],
|
||||
@@ -280,13 +277,11 @@ def _logic_explain(rules, ev, rule_data, now_dt=None):
|
||||
var_weights[vname] = (500, 0)
|
||||
var_texts[vname] = _('Wrong entrance gate')
|
||||
elif var in ('entries_number', 'entries_today', 'entries_days', 'minutes_since_last_entry', 'minutes_since_first_entry', 'now_isoweekday') \
|
||||
or (isinstance(var, dict) and any(t in var for t in ("entries_since", "entries_before", "entries_days_since", "entries_days_before"))):
|
||||
or (isinstance(var, dict) and ("entries_since" in var or "entries_before" in var)):
|
||||
w = {
|
||||
'minutes_since_first_entry': 80,
|
||||
'minutes_since_last_entry': 90,
|
||||
'entries_days': 100,
|
||||
'entries_days_since': 105,
|
||||
'entries_days_before': 105,
|
||||
'entries_since': 110,
|
||||
'entries_before': 110,
|
||||
'entries_number': 120,
|
||||
@@ -309,12 +304,10 @@ def _logic_explain(rules, ev, rule_data, now_dt=None):
|
||||
'entries_today': _('number of entries today'),
|
||||
'entries_since': _('number of entries since {datetime}'),
|
||||
'entries_before': _('number of entries before {datetime}'),
|
||||
'entries_days_since': _('number of days with an entry since {datetime}'),
|
||||
'entries_days_before': _('number of days with an entry before {datetime}'),
|
||||
'now_isoweekday': _('week day'),
|
||||
}
|
||||
|
||||
if isinstance(var, dict) and any(t in var for t in ("entries_since", "entries_before", "entries_days_since", "entries_days_before")):
|
||||
if isinstance(var, dict) and ("entries_since" in var or "entries_before" in var):
|
||||
varname = list(var.keys())[0]
|
||||
cutoff = _build_time(*var[varname][0]['buildTime'], ev=ev, now_dt=now_dt).astimezone(ev.timezone)
|
||||
if abs(now_dt - cutoff) < timedelta(hours=12):
|
||||
@@ -414,8 +407,6 @@ def _get_logic_environment(ev, rule_data, now_dt):
|
||||
logic.add_operation('isAfter', lambda t1, t2, tol=None: is_before(t2, t1, tol))
|
||||
logic.add_operation('entries_since', lambda t1: rule_data.entries_since(t1))
|
||||
logic.add_operation('entries_before', lambda t1: rule_data.entries_before(t1))
|
||||
logic.add_operation('entries_days_since', lambda t1: rule_data.entries_days_since(t1))
|
||||
logic.add_operation('entries_days_before', lambda t1: rule_data.entries_days_before(t1))
|
||||
return logic
|
||||
|
||||
|
||||
@@ -473,32 +464,6 @@ class LazyRuleVars:
|
||||
self.__cache['entries_before', cutoff] = self._position.checkins.filter(type=Checkin.TYPE_ENTRY, list=self._clist, datetime__lt=cutoff).count()
|
||||
return self.__cache['entries_before', cutoff]
|
||||
|
||||
def entries_days_since(self, cutoff):
|
||||
tz = self._clist.event.timezone
|
||||
with override(tz):
|
||||
if ('entries_days_since', cutoff) not in self.__cache:
|
||||
self.__cache['entries_days_since', cutoff] = self._position.checkins.filter(
|
||||
type=Checkin.TYPE_ENTRY,
|
||||
list=self._clist,
|
||||
datetime__gte=cutoff
|
||||
).annotate(
|
||||
day=TruncDate('datetime', tzinfo=tz)
|
||||
).values('day').distinct().count()
|
||||
return self.__cache['entries_days_since', cutoff]
|
||||
|
||||
def entries_days_before(self, cutoff):
|
||||
tz = self._clist.event.timezone
|
||||
with override(tz):
|
||||
if ('entries_days_before', cutoff) not in self.__cache:
|
||||
self.__cache['entries_days_before', cutoff] = self._position.checkins.filter(
|
||||
type=Checkin.TYPE_ENTRY,
|
||||
list=self._clist,
|
||||
datetime__lt=cutoff
|
||||
).annotate(
|
||||
day=TruncDate('datetime', tzinfo=tz)
|
||||
).values('day').distinct().count()
|
||||
return self.__cache['entries_days_before', cutoff]
|
||||
|
||||
@cached_property
|
||||
def entries_days(self):
|
||||
tz = self._clist.event.timezone
|
||||
@@ -565,8 +530,7 @@ class SQLLogic:
|
||||
"isBefore": partial(self.comparison_to_q, operator=LowerThan, modifier=partial(tolerance, sign=1)),
|
||||
"isAfter": partial(self.comparison_to_q, operator=GreaterThan, modifier=partial(tolerance, sign=-1)),
|
||||
}
|
||||
self.expression_ops = {'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before',
|
||||
'entries_days_since', 'entries_days_before'}
|
||||
self.expression_ops = {'buildTime', 'objectList', 'lookup', 'var', 'entries_since', 'entries_before'}
|
||||
|
||||
def operation_to_expression(self, rule):
|
||||
if not isinstance(rule, dict):
|
||||
@@ -644,42 +608,6 @@ class SQLLogic:
|
||||
Value(0),
|
||||
output_field=IntegerField()
|
||||
)
|
||||
elif operator == 'entries_days_since':
|
||||
tz = self.list.event.timezone
|
||||
return Coalesce(
|
||||
Subquery(
|
||||
Checkin.objects.filter(
|
||||
position_id=OuterRef('pk'),
|
||||
type=Checkin.TYPE_ENTRY,
|
||||
list_id=self.list.pk,
|
||||
datetime__gte=self.operation_to_expression(values[0]),
|
||||
).annotate(
|
||||
day=TruncDate('datetime', tzinfo=tz)
|
||||
).values('position_id').order_by().annotate(
|
||||
c=Count('day', distinct=True)
|
||||
).values('c')
|
||||
),
|
||||
Value(0),
|
||||
output_field=IntegerField()
|
||||
)
|
||||
elif operator == 'entries_days_before':
|
||||
tz = self.list.event.timezone
|
||||
return Coalesce(
|
||||
Subquery(
|
||||
Checkin.objects.filter(
|
||||
position_id=OuterRef('pk'),
|
||||
type=Checkin.TYPE_ENTRY,
|
||||
list_id=self.list.pk,
|
||||
datetime__lt=self.operation_to_expression(values[0]),
|
||||
).annotate(
|
||||
day=TruncDate('datetime', tzinfo=tz)
|
||||
).values('position_id').order_by().annotate(
|
||||
c=Count('day', distinct=True)
|
||||
).values('c')
|
||||
),
|
||||
Value(0),
|
||||
output_field=IntegerField()
|
||||
)
|
||||
elif operator == 'var':
|
||||
if values[0] == 'now':
|
||||
return Value(now().astimezone(timezone.utc))
|
||||
@@ -1036,16 +964,7 @@ def perform_checkin(op: OrderPosition, clist: CheckinList, given_answers: dict,
|
||||
if type == Checkin.TYPE_ENTRY and clist.rules:
|
||||
rule_data = LazyRuleVars(op, clist, dt, gate=gate)
|
||||
logic = _get_logic_environment(op.subevent or clist.event, rule_data, now_dt=dt)
|
||||
try:
|
||||
logic_result = logic.apply(clist.rules, rule_data)
|
||||
except Exception:
|
||||
logger.exception("Check-in rule evaluation failed")
|
||||
raise CheckInError(
|
||||
_('Evaluation of custom rules has failed.'),
|
||||
'rules',
|
||||
)
|
||||
|
||||
if not logic_result:
|
||||
if not logic.apply(clist.rules, rule_data):
|
||||
if force:
|
||||
force_used = True
|
||||
else:
|
||||
|
||||
@@ -183,7 +183,6 @@ def mail(email: Union[str, Sequence[str]], subject: str, template: Union[str, La
|
||||
if auto_email:
|
||||
headers['X-Auto-Response-Suppress'] = 'OOF, NRN, AutoReply, RN'
|
||||
headers['Auto-Submitted'] = 'auto-generated'
|
||||
headers.setdefault('X-Mailer', 'pretix')
|
||||
|
||||
with language(locale):
|
||||
if isinstance(context, dict) and event:
|
||||
@@ -574,11 +573,8 @@ def mail_send_task(self, *args, to: List[str], subject: str, body: str, html: st
|
||||
except smtplib.SMTPRecipientsRefused as e:
|
||||
smtp_codes = [a[0] for a in e.recipients.values()]
|
||||
|
||||
if not any(c >= 500 for c in smtp_codes) or any(b'Message is too large' in a[1] for a in e.recipients.values()):
|
||||
# This is not a permanent failure (mailbox full, service unavailable), retry later, but with large
|
||||
# intervals. One would think that "Message is too lage" is a permanent failure, but apparently it is not.
|
||||
# We have documented cases of emails to Microsoft returning the error occasionally and then later
|
||||
# allowing the very same email.
|
||||
if not any(c >= 500 for c in smtp_codes):
|
||||
# Not a permanent failure (mailbox full, service unavailable), retry later, but with large intervals
|
||||
try:
|
||||
self.retry(max_retries=5, countdown=[60, 300, 600, 1200, 1800, 1800][self.request.retries])
|
||||
except MaxRetriesExceededError:
|
||||
|
||||
@@ -23,7 +23,6 @@ import csv
|
||||
import io
|
||||
from decimal import Decimal
|
||||
|
||||
from django.conf import settings as django_settings
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.db import transaction
|
||||
from django.utils.timezone import now
|
||||
@@ -92,15 +91,7 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
user = User.objects.get(pk=user)
|
||||
with language(locale, event.settings.region):
|
||||
cols = get_all_columns(event)
|
||||
try:
|
||||
parsed = parse_csv(cf.file, charset=charset)
|
||||
except UnicodeDecodeError as e:
|
||||
raise DataImportError(
|
||||
_(
|
||||
'Error decoding special characters in your file: {message}').format(
|
||||
message=str(e)
|
||||
)
|
||||
)
|
||||
parsed = parse_csv(cf.file, charset=charset)
|
||||
orders = []
|
||||
order = None
|
||||
data = []
|
||||
@@ -125,11 +116,6 @@ def import_orders(event: Event, fileid: str, settings: dict, locale: str, user,
|
||||
)
|
||||
data.append(values)
|
||||
|
||||
if settings['orders'] == 'one' and len(data) > django_settings.PRETIX_MAX_ORDER_SIZE:
|
||||
raise DataImportError(
|
||||
_('Orders cannot have more than %(max)s positions.') % {'max': django_settings.PRETIX_MAX_ORDER_SIZE}
|
||||
)
|
||||
|
||||
# Prepare model objects. Yes, this might consume lots of RAM, but allows us to make the actual SQL transaction
|
||||
# shorter. We'll see what works better in reality…
|
||||
lock_seats = []
|
||||
|
||||
@@ -1512,7 +1512,6 @@ class OrderChangeManager:
|
||||
"You need to select at least %(min)s items of the product %(product)s.",
|
||||
"min"
|
||||
),
|
||||
'max_order_size': gettext_lazy('Orders cannot have more than %(max)s positions.'),
|
||||
}
|
||||
ItemOperation = namedtuple('ItemOperation', ('position', 'item', 'variation'))
|
||||
SubeventOperation = namedtuple('SubeventOperation', ('position', 'subevent'))
|
||||
@@ -2600,14 +2599,6 @@ class OrderChangeManager:
|
||||
self.order.total = total + payment_fee
|
||||
self.order.save()
|
||||
|
||||
def _check_order_size(self):
|
||||
if (len(self.order.positions.all()) + len([op for op in self._operations if isinstance(op, self.AddOperation)])) > settings.PRETIX_MAX_ORDER_SIZE:
|
||||
raise OrderError(
|
||||
self.error_messages['max_order_size'] % {
|
||||
'max': settings.PRETIX_MAX_ORDER_SIZE,
|
||||
}
|
||||
)
|
||||
|
||||
def _payment_fee_diff(self):
|
||||
total = self.order.total + self._totaldiff
|
||||
if self.open_payment:
|
||||
@@ -2748,7 +2739,6 @@ class OrderChangeManager:
|
||||
|
||||
# finally, incorporate difference in payment fees
|
||||
self._payment_fee_diff()
|
||||
self._check_order_size()
|
||||
|
||||
with transaction.atomic():
|
||||
locked_instance = Order.objects.select_for_update(of=OF_SELF).get(pk=self.order.pk)
|
||||
|
||||
@@ -112,7 +112,7 @@ def dictsum(*dicts) -> dict:
|
||||
|
||||
def order_overview(
|
||||
event: Event, subevent: SubEvent=None, date_filter='', date_from=None, date_until=None, fees=False,
|
||||
admission_only=False, base_qs=None, base_fees_qs=None, subevent_date_from=None, subevent_date_until=None
|
||||
admission_only=False, base_qs=None, base_fees_qs=None,
|
||||
) -> Tuple[List[Tuple[ItemCategory, List[Item]]], Dict[str, Tuple[Decimal, Decimal]]]:
|
||||
items = event.items.all().select_related(
|
||||
'category', # for re-grouping
|
||||
@@ -125,11 +125,6 @@ def order_overview(
|
||||
qs = qs.filter(subevent__in=subevent)
|
||||
elif subevent:
|
||||
qs = qs.filter(subevent=subevent)
|
||||
if subevent_date_from:
|
||||
qs = qs.filter(subevent__date_from__gte=subevent_date_from)
|
||||
if subevent_date_until:
|
||||
qs = qs.filter(subevent__date_from__lt=subevent_date_until)
|
||||
|
||||
if admission_only:
|
||||
qs = qs.filter(item__admission=True)
|
||||
items = items.filter(admission=True)
|
||||
@@ -237,7 +232,7 @@ def order_overview(
|
||||
payment_cat_obj.name = _('Fees')
|
||||
payment_items = []
|
||||
|
||||
if subevent is None and not subevent_date_from and not subevent_date_until and fees:
|
||||
if subevent is None and fees:
|
||||
qs = OrderFee.all if base_fees_qs is None else base_fees_qs
|
||||
qs = qs.filter(
|
||||
order__event=event
|
||||
|
||||
@@ -306,11 +306,9 @@ DEFAULTS = {
|
||||
'serializer_class': serializers.IntegerField,
|
||||
'serializer_kwargs': dict(
|
||||
min_value=1,
|
||||
max_value=settings.PRETIX_MAX_ORDER_SIZE,
|
||||
),
|
||||
'form_kwargs': dict(
|
||||
min_value=1,
|
||||
max_value=settings.PRETIX_MAX_ORDER_SIZE,
|
||||
required=True,
|
||||
label=_("Maximum number of items per order"),
|
||||
help_text=_("Add-on products will not be counted.")
|
||||
@@ -2912,25 +2910,6 @@ Your {organizer} team""")) # noqa: W291
|
||||
label=_('Use header image also for events without an individually uploaded logo'),
|
||||
)
|
||||
},
|
||||
'favicon': {
|
||||
'default': None,
|
||||
'type': File,
|
||||
'form_class': ExtFileField,
|
||||
'form_kwargs': dict(
|
||||
label=_('Favicon'),
|
||||
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_FAVICON,
|
||||
max_size=settings.FILE_UPLOAD_MAX_SIZE_FAVICON,
|
||||
help_text=_('If you provide a favicon, we will show it instead of the default pretix icon. '
|
||||
'We recommend a size of at least 200x200px to accommodate most devices.')
|
||||
),
|
||||
'serializer_class': UploadedFileField,
|
||||
'serializer_kwargs': dict(
|
||||
allowed_types=[
|
||||
'image/png', 'image/jpeg', 'image/gif', 'image/x-icon', 'image/vnd.microsoft.icon',
|
||||
],
|
||||
max_size=settings.FILE_UPLOAD_MAX_SIZE_FAVICON,
|
||||
)
|
||||
},
|
||||
'og_image': {
|
||||
'default': None,
|
||||
'type': File,
|
||||
|
||||
+11
-39
@@ -153,47 +153,19 @@ class BaseDataShredder:
|
||||
|
||||
|
||||
def shred_log_fields(logentry, banlist=None, whitelist=None):
|
||||
def _shred(d, banlist, whitelist):
|
||||
shredded = False
|
||||
if whitelist:
|
||||
for k, v in d.items():
|
||||
if k not in whitelist:
|
||||
if isinstance(d[k], list):
|
||||
newlist = []
|
||||
for i in d[k]:
|
||||
if isinstance(i, dict):
|
||||
_shred(i, None, [None])
|
||||
else:
|
||||
i = '█'
|
||||
newlist.append(i)
|
||||
d[k] = newlist
|
||||
elif isinstance(d[k], dict):
|
||||
_shred(d[k], None, [None])
|
||||
elif d[k]:
|
||||
d[k] = '█'
|
||||
shredded = True
|
||||
elif banlist:
|
||||
for k in banlist:
|
||||
if k in d:
|
||||
if isinstance(d[k], list):
|
||||
newlist = []
|
||||
for i in d[k]:
|
||||
if isinstance(i, dict):
|
||||
_shred(i, None, [None])
|
||||
else:
|
||||
i = '█'
|
||||
newlist.append(i)
|
||||
d[k] = newlist
|
||||
elif isinstance(d[k], dict):
|
||||
_shred(d[k], None, [None])
|
||||
elif d[k]:
|
||||
d[k] = '█'
|
||||
shredded = True
|
||||
return shredded
|
||||
|
||||
d = logentry.parsed_data
|
||||
initial_data = copy.copy(d)
|
||||
shredded = _shred(d, banlist, whitelist)
|
||||
shredded = False
|
||||
if whitelist:
|
||||
for k, v in d.items():
|
||||
if k not in whitelist:
|
||||
d[k] = '█'
|
||||
shredded = True
|
||||
elif banlist:
|
||||
for f in banlist:
|
||||
if f in d:
|
||||
d[f] = '█'
|
||||
shredded = True
|
||||
if d != initial_data:
|
||||
logentry.data = json.dumps(d)
|
||||
logentry.shredded = logentry.shredded or shredded
|
||||
|
||||
@@ -65,8 +65,6 @@ ALLOWED_TAGS_SNIPPET = [
|
||||
'i',
|
||||
'strong',
|
||||
'span',
|
||||
'strike',
|
||||
's',
|
||||
# Update doc/user/markdown.rst if you change this!
|
||||
]
|
||||
ALLOWED_TAGS = ALLOWED_TAGS_SNIPPET + [
|
||||
|
||||
@@ -34,7 +34,7 @@ from django.core.exceptions import PermissionDenied, ValidationError
|
||||
from django.core.files.uploadedfile import UploadedFile
|
||||
from django.db import transaction
|
||||
from django.http import HttpResponse, JsonResponse, QueryDict
|
||||
from django.shortcuts import render
|
||||
from django.shortcuts import redirect, render
|
||||
from django.test import RequestFactory
|
||||
from django.utils import timezone, translation
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
@@ -47,7 +47,6 @@ from redis import ResponseError
|
||||
from pretix.base.models import CachedFile, User
|
||||
from pretix.base.services.tasks import ProfiledEventTask
|
||||
from pretix.celery_app import app
|
||||
from pretix.helpers.http import redirect_to_url
|
||||
|
||||
logger = logging.getLogger('pretix.base.tasks')
|
||||
|
||||
@@ -153,7 +152,7 @@ class AsyncMixin:
|
||||
'redirect': self.get_success_url(value),
|
||||
'message': str(self.get_success_message(value))
|
||||
})
|
||||
return redirect_to_url(self.get_success_url(value))
|
||||
return redirect(self.get_success_url(value))
|
||||
|
||||
def error(self, exception):
|
||||
if isinstance(exception, PermissionDenied):
|
||||
@@ -166,7 +165,7 @@ class AsyncMixin:
|
||||
'redirect': self.get_error_url(),
|
||||
'message': str(self.get_error_message(exception))
|
||||
})
|
||||
return redirect_to_url(self.get_error_url())
|
||||
return redirect(self.get_error_url())
|
||||
|
||||
def get_error_message(self, exception):
|
||||
if isinstance(exception, dict) and exception['exc_type'] in self.known_errortypes:
|
||||
@@ -204,7 +203,7 @@ class AsyncAction(AsyncMixin):
|
||||
return self.success(res.info)
|
||||
else:
|
||||
return self.error(res.info)
|
||||
return redirect_to_url(self.get_check_url(res.id, False))
|
||||
return redirect(self.get_check_url(res.id, False))
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if 'async_id' in request.GET and settings.HAS_CELERY:
|
||||
@@ -376,7 +375,7 @@ class AsyncFormView(AsyncMixin, FormView):
|
||||
return self.success(res.info)
|
||||
else:
|
||||
return self.error(res.info)
|
||||
return redirect_to_url(self.get_check_url(res.id, False))
|
||||
return redirect(self.get_check_url(res.id, False))
|
||||
|
||||
|
||||
class AsyncPostView(AsyncMixin, View):
|
||||
@@ -479,4 +478,4 @@ class AsyncPostView(AsyncMixin, View):
|
||||
return self.success(res.info)
|
||||
else:
|
||||
return self.error(res.info)
|
||||
return redirect_to_url(self.get_check_url(res.id, False))
|
||||
return redirect(self.get_check_url(res.id, False))
|
||||
|
||||
@@ -57,7 +57,7 @@ from pretix.base.forms.widgets import (
|
||||
from pretix.base.models import (
|
||||
Checkin, CheckinList, Device, Event, EventMetaProperty, EventMetaValue,
|
||||
Gate, Invoice, InvoiceAddress, Item, Order, OrderPayment, OrderPosition,
|
||||
OrderRefund, Organizer, Question, QuestionAnswer, Quota, SubEvent,
|
||||
OrderRefund, Organizer, Question, QuestionAnswer, SubEvent,
|
||||
SubEventMetaValue, Team, TeamAPIToken, TeamInvite, Voucher,
|
||||
)
|
||||
from pretix.base.signals import register_payment_providers
|
||||
@@ -230,7 +230,6 @@ class OrderFilterForm(FilterForm):
|
||||
('partially_paid', _('Partially paid')),
|
||||
('underpaid', _('Underpaid (but confirmed)')),
|
||||
('pendingpaid', _('Pending (but fully paid)')),
|
||||
('pendingnopayment', _('Pending (but no current payment)')),
|
||||
)),
|
||||
(_('Approval process'), (
|
||||
('na', _('Approved, payment pending')),
|
||||
@@ -328,18 +327,6 @@ class OrderFilterForm(FilterForm):
|
||||
Q(status__in=(Order.STATUS_EXPIRED, Order.STATUS_PENDING)) & Q(pending_sum_t__lte=0)
|
||||
& Q(require_approval=False)
|
||||
)
|
||||
elif s == 'pendingnopayment':
|
||||
qs = qs.exclude(
|
||||
Exists(
|
||||
OrderPayment.objects.filter(
|
||||
order=OuterRef('pk'),
|
||||
state__in=(OrderPayment.PAYMENT_STATE_CREATED, OrderPayment.PAYMENT_STATE_PENDING)
|
||||
)
|
||||
)
|
||||
).filter(
|
||||
status=Order.STATUS_PENDING,
|
||||
require_approval=False,
|
||||
)
|
||||
elif s == 'partially_paid':
|
||||
qs = Order.annotate_overpayments(qs, refunds=False, results=False, sums=True)
|
||||
qs = qs.filter(
|
||||
@@ -591,10 +578,11 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
||||
widget=FilterNullBooleanSelect,
|
||||
label=_('At least one ticket with check-in'),
|
||||
)
|
||||
quota = SafeModelChoiceField(
|
||||
queryset=Quota.objects.none(),
|
||||
label=_('Affected quota'),
|
||||
checkin_attention = forms.NullBooleanField(
|
||||
required=False,
|
||||
widget=FilterNullBooleanSelect,
|
||||
label=_('Requires special attention'),
|
||||
help_text=_('Only matches orders with the attention checkbox set directly for the order, not based on the product.'),
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@@ -679,17 +667,6 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
||||
label=_('Ticket secret'),
|
||||
required=False
|
||||
)
|
||||
self.fields['quota'].queryset = self.event.quotas.all()
|
||||
self.fields['quota'].widget = Select2(
|
||||
attrs={
|
||||
'data-model-select2': 'generic',
|
||||
'data-select2-url': reverse('control:event.items.quotas.select2', kwargs={
|
||||
'event': self.event.slug,
|
||||
'organizer': self.event.organizer.slug,
|
||||
}),
|
||||
}
|
||||
)
|
||||
self.fields['quota'].widget.choices = self.fields['quota'].choices
|
||||
for q in self.event.questions.all():
|
||||
self.fields['question_{}'.format(q.pk)] = forms.CharField(
|
||||
label=q.question,
|
||||
@@ -783,12 +760,6 @@ class EventOrderExpertFilterForm(EventOrderFilterForm):
|
||||
qs = qs.filter(
|
||||
all_positions__secret__icontains=fdata.get('ticket_secret')
|
||||
).distinct()
|
||||
if fdata.get('quota'):
|
||||
quota = fdata['quota']
|
||||
qs = qs.filter(
|
||||
Q(all_positions__item__in=quota.items.all(), all_positions__variation__isnull=True) |
|
||||
Q(all_positions__variation__in=quota.variations.all())
|
||||
).distinct()
|
||||
for q in self.event.questions.all():
|
||||
if fdata.get(f'question_{q.pk}'):
|
||||
answers = QuestionAnswer.objects.filter(
|
||||
|
||||
@@ -614,15 +614,6 @@ class ItemUpdateForm(I18nModelForm):
|
||||
|
||||
self.fields['free_price_suggestion'].widget.attrs['data-display-dependency'] = '#id_free_price'
|
||||
|
||||
self.fields['validity_dynamic_start_choice'] = forms.TypedChoiceField(
|
||||
label=_("Start of validity"),
|
||||
choices=(
|
||||
("False", _("Purchase date")),
|
||||
("True", _("Date chosen by customer")),
|
||||
),
|
||||
coerce=lambda x: x == 'True',
|
||||
)
|
||||
|
||||
qs = self.event.organizer.membership_types.all()
|
||||
if qs:
|
||||
self.fields['require_membership_types'].queryset = qs
|
||||
@@ -670,7 +661,7 @@ class ItemUpdateForm(I18nModelForm):
|
||||
if d.get('grant_membership_type'):
|
||||
if not d['grant_membership_type'].transferable and not d['personalized']:
|
||||
self.add_error(
|
||||
'personalized' if d.get('admission') else 'admission',
|
||||
'personalized' if d['admission'] else 'admission',
|
||||
_("Your product grants a non-transferable membership and should therefore be a personalized "
|
||||
"admission ticket. Otherwise customers might not be able to use the membership later. If you "
|
||||
"want the membership to be non-personalized, set the membership type to be transferable.")
|
||||
|
||||
@@ -705,7 +705,6 @@ class OrderMailForm(forms.Form):
|
||||
)
|
||||
self.fields['attach_invoices'].queryset = order.invoices.all()
|
||||
self._set_field_placeholders('message', ['event', 'order'])
|
||||
self._set_field_placeholders('subject', ['event', 'order'])
|
||||
|
||||
|
||||
class OrderPositionMailForm(OrderMailForm):
|
||||
@@ -721,7 +720,6 @@ class OrderPositionMailForm(OrderMailForm):
|
||||
initial=self.order.event.settings.mail_text_order_custom_mail.localize(self.order.locale),
|
||||
)
|
||||
self._set_field_placeholders('message', ['event', 'order', 'position'])
|
||||
self._set_field_placeholders('subject', ['event', 'order'])
|
||||
|
||||
|
||||
class OrderRefundForm(forms.Form):
|
||||
|
||||
@@ -423,7 +423,6 @@ class OrganizerSettingsForm(SettingsForm):
|
||||
'organizer_link_back',
|
||||
'organizer_logo_image_large',
|
||||
'organizer_logo_image_inherit',
|
||||
'favicon',
|
||||
'giftcard_length',
|
||||
'giftcard_expiry_years',
|
||||
'locales',
|
||||
@@ -465,6 +464,14 @@ class OrganizerSettingsForm(SettingsForm):
|
||||
'can increase the size with the setting below. We recommend not using small details on the picture '
|
||||
'as it will be resized on smaller screens.')
|
||||
)
|
||||
favicon = ExtFileField(
|
||||
label=_('Favicon'),
|
||||
ext_whitelist=settings.FILE_UPLOAD_EXTENSIONS_FAVICON,
|
||||
required=False,
|
||||
max_size=settings.FILE_UPLOAD_MAX_SIZE_FAVICON,
|
||||
help_text=_('If you provide a favicon, we will show it instead of the default pretix icon. '
|
||||
'We recommend a size of at least 200x200px to accommodate most devices.')
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
is_admin = kwargs.pop('is_admin', False)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
from bootstrap3.text import text_value
|
||||
from django.forms import CheckboxInput, CheckboxSelectMultiple, RadioSelect
|
||||
from django.forms import CheckboxInput
|
||||
from django.forms.utils import flatatt
|
||||
from django.utils.html import format_html
|
||||
from django.utils.safestring import mark_safe
|
||||
@@ -30,7 +30,7 @@ from i18nfield.forms import I18nFormField
|
||||
from pretix.base.forms.renderers import FieldRenderer, InlineFieldRenderer
|
||||
|
||||
|
||||
def render_label(content, label_for=None, label_class=None, label_title='', label_id='', optional=False):
|
||||
def render_label(content, label_for=None, label_class=None, label_title='', optional=False):
|
||||
"""
|
||||
Render a label with content
|
||||
"""
|
||||
@@ -41,8 +41,6 @@ def render_label(content, label_for=None, label_class=None, label_title='', labe
|
||||
attrs['class'] = label_class
|
||||
if label_title:
|
||||
attrs['title'] = label_title
|
||||
if label_id:
|
||||
attrs['id'] = label_id
|
||||
|
||||
if text_value(content) == ' ':
|
||||
# Empty label, e.g. checkbox
|
||||
@@ -63,7 +61,6 @@ class ControlFieldRenderer(FieldRenderer):
|
||||
def __init__(self, *args, **kwargs):
|
||||
kwargs['layout'] = 'horizontal'
|
||||
super().__init__(*args, **kwargs)
|
||||
self.is_group_widget = isinstance(self.widget, (CheckboxSelectMultiple, RadioSelect, )) or (self.is_multi_widget and len(self.widget.widgets) > 1)
|
||||
|
||||
def add_label(self, html):
|
||||
label = self.get_label()
|
||||
@@ -76,29 +73,14 @@ class ControlFieldRenderer(FieldRenderer):
|
||||
else:
|
||||
required = self.field.field.required
|
||||
|
||||
if self.is_group_widget:
|
||||
label_for = ""
|
||||
label_id = "legend-{}".format(self.field.html_name)
|
||||
else:
|
||||
label_for = self.field.id_for_label
|
||||
label_id = ""
|
||||
|
||||
html = render_label(
|
||||
label,
|
||||
label_for=label_for,
|
||||
label_for=self.field.id_for_label,
|
||||
label_class=self.get_label_class(),
|
||||
label_id=label_id,
|
||||
optional=not required and not isinstance(self.widget, CheckboxInput)
|
||||
) + html
|
||||
return html
|
||||
|
||||
def wrap_label_and_field(self, html):
|
||||
if self.is_group_widget:
|
||||
attrs = ' role="group" aria-labelledby="legend-{}"'.format(self.field.html_name)
|
||||
else:
|
||||
attrs = ''
|
||||
return '<div class="{klass}"{attrs}>{html}</div>'.format(klass=self.get_form_group_class(), html=html, attrs=attrs)
|
||||
|
||||
|
||||
class BulkEditMixin:
|
||||
|
||||
|
||||
@@ -463,8 +463,7 @@ class RRuleFormSetForm(RRuleForm):
|
||||
|
||||
RRuleFormSet = formset_factory(
|
||||
RRuleFormSetForm,
|
||||
min_num=1, validate_min=True,
|
||||
can_order=False, can_delete=True, extra=0
|
||||
can_order=False, can_delete=True, extra=1
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ from urllib.parse import quote, urljoin, urlparse
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import REDIRECT_FIELD_NAME, logout
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404, resolve_url
|
||||
from django.shortcuts import get_object_or_404, redirect, resolve_url
|
||||
from django.template.response import TemplateResponse
|
||||
from django.urls import get_script_prefix, resolve, reverse
|
||||
from django.utils.encoding import force_str
|
||||
@@ -46,7 +46,6 @@ from django_scopes import scope
|
||||
|
||||
from pretix.base.models import Event, Organizer
|
||||
from pretix.base.models.auth import SuperuserPermissionSet, User
|
||||
from pretix.helpers.http import redirect_to_url
|
||||
from pretix.helpers.security import (
|
||||
SessionInvalid, SessionReauthRequired, assert_session_valid,
|
||||
)
|
||||
@@ -119,7 +118,7 @@ class PermissionMiddleware:
|
||||
|
||||
if hasattr(request, 'organizer'):
|
||||
# If the user is on a organizer's subdomain, he should be redirected to pretix
|
||||
return redirect_to_url(urljoin(settings.SITE_URL, request.get_full_path()))
|
||||
return redirect(urljoin(settings.SITE_URL, request.get_full_path()))
|
||||
if url_name in self.EXCEPTIONS:
|
||||
return self.get_response(request)
|
||||
if not request.user.is_authenticated:
|
||||
@@ -133,14 +132,14 @@ class PermissionMiddleware:
|
||||
return self._login_redirect(request)
|
||||
except SessionReauthRequired:
|
||||
if url_name not in ('user.reauth', 'auth.logout'):
|
||||
return redirect_to_url(reverse('control:user.reauth') + '?next=' + quote(request.get_full_path()))
|
||||
return redirect(reverse('control:user.reauth') + '?next=' + quote(request.get_full_path()))
|
||||
|
||||
if request.user.needs_password_change and url_name not in self.EXCEPTIONS_FORCED_PW_CHANGE:
|
||||
return redirect_to_url(reverse('control:user.settings') + '?next=' + quote(request.get_full_path()))
|
||||
return redirect(reverse('control:user.settings') + '?next=' + quote(request.get_full_path()))
|
||||
|
||||
if not request.user.require_2fa and settings.PRETIX_OBLIGATORY_2FA \
|
||||
and url_name not in self.EXCEPTIONS_2FA and not request.user.needs_password_change:
|
||||
return redirect_to_url(reverse('control:user.settings.2fa'))
|
||||
and url_name not in self.EXCEPTIONS_2FA:
|
||||
return redirect(reverse('control:user.settings.2fa'))
|
||||
|
||||
if 'event' in url.kwargs and 'organizer' in url.kwargs:
|
||||
if url.kwargs['organizer'] == '-' and url.kwargs['event'] == '-':
|
||||
@@ -153,7 +152,7 @@ class PermissionMiddleware:
|
||||
k = dict(url.kwargs)
|
||||
k['organizer'] = ev.organizer.slug
|
||||
k['event'] = ev.slug
|
||||
return redirect_to_url(reverse(url.view_name, kwargs=k, args=url.args))
|
||||
return redirect(reverse(url.view_name, kwargs=k, args=url.args))
|
||||
|
||||
with scope(organizer=None):
|
||||
request.event = Event.objects.filter(
|
||||
@@ -179,7 +178,7 @@ class PermissionMiddleware:
|
||||
"have no permission to administrate it."))
|
||||
k = dict(url.kwargs)
|
||||
k['organizer'] = org.slug
|
||||
return redirect_to_url(reverse(url.view_name, kwargs=k, args=url.args))
|
||||
return redirect(reverse(url.view_name, kwargs=k, args=url.args))
|
||||
|
||||
request.organizer = Organizer.objects.filter(
|
||||
slug=url.kwargs['organizer'],
|
||||
|
||||
@@ -35,11 +35,10 @@
|
||||
from urllib.parse import quote
|
||||
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.shortcuts import redirect
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext as _
|
||||
|
||||
from pretix.helpers.http import redirect_to_url
|
||||
|
||||
|
||||
def current_url(request):
|
||||
if request.GET:
|
||||
@@ -136,7 +135,7 @@ def administrator_permission_required():
|
||||
raise PermissionDenied()
|
||||
if not request.user.has_active_staff_session(request.session.session_key):
|
||||
if request.user.is_staff:
|
||||
return redirect_to_url(reverse('control:user.sudo') + '?next=' + quote(current_url(request)))
|
||||
return redirect(reverse('control:user.sudo') + '?next=' + quote(current_url(request)))
|
||||
raise PermissionDenied(_('You do not have permission to view this content.'))
|
||||
return function(request, *args, **kw)
|
||||
return wrapper
|
||||
|
||||
@@ -1,393 +0,0 @@
|
||||
{% extends "pretixcontrol/event/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load eventurl %}
|
||||
{% load bootstrap3 %}
|
||||
{% load static %}
|
||||
{% load escapejson %}
|
||||
{% load eventsignal %}
|
||||
{% block title %}{{ request.event.name }}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div id="header-area" class="col-lg-8">
|
||||
<h1>
|
||||
{{ request.event.name }}
|
||||
<small>
|
||||
{% if request.event.has_subevents %}
|
||||
{% trans "Event series" %}
|
||||
{% else %}
|
||||
{{ request.event.get_date_range_display }}
|
||||
{% endif %}
|
||||
</small>
|
||||
</h1>
|
||||
|
||||
<div class="helper-space-below">
|
||||
{% trans "Shop URL:" %}
|
||||
<span id="shop_url" class="text-muted">{% abseventurl request.event "presale:event.index" %}</span>
|
||||
<button type="button" class="btn btn-default btn-xs btn-clipboard js-only" data-clipboard-target="#shop_url">
|
||||
<i class="fa fa-clipboard" aria-hidden="true"></i>
|
||||
<span class="sr-only">{% trans "Copy to clipboard" %}</span>
|
||||
</button>
|
||||
<div class="btn-group helper-display-inline-block">
|
||||
<button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" title="{% trans "Create QR code" %}" aria-haspopup="true" aria-expanded="false">
|
||||
<i class="fa fa-qrcode" aria-hidden="true"></i>
|
||||
</button>
|
||||
{% include "pretixcontrol/event/fragment_qr_dropdown.html" with url=0 %}
|
||||
</div>
|
||||
<br>
|
||||
<span id="shop_state" class="shop_state">
|
||||
{{ shop_state.content|safe }}
|
||||
<a href="{{ shop_state.url }}">
|
||||
<button type="button" class="btn btn-default btn-xs btn-wrench js-only" href="{{ shop_state.url }}">
|
||||
<i class="fa fa-wrench" aria-hidden="true"></i>
|
||||
<span class="sr-only">{% trans "Change shop state" %}</span>
|
||||
</button>
|
||||
</a>
|
||||
</span>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Comments ----------------------------------------------------------------------------------------------------->
|
||||
<div class="event-comment col-lg-4">
|
||||
{% trans "Internal comment" %}
|
||||
<form class="form" method="post"
|
||||
action="{% url "control:event.comment" event=request.event.slug organizer=request.event.organizer.slug %}">
|
||||
{% csrf_token %}
|
||||
<div class="row">
|
||||
{% bootstrap_field comment_form.comment layout="horizontal" show_help=True show_label=False horizontal_field_class="col-md-12" %}
|
||||
</div>
|
||||
{% if not comment_form.readonly %}
|
||||
<p class="text-right flip">
|
||||
<button class="btn btn-default">
|
||||
{% trans "Update comment" %}
|
||||
</button>
|
||||
</p>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Comments ----------------------------------------------------------------------------------------------------->
|
||||
|
||||
<!-- Warnings ----------------------------------------------------------------------------------------------------->
|
||||
<div class="row-form-errors">
|
||||
{% if has_overpaid_orders %}
|
||||
<div class="alert alert-warning">
|
||||
{% blocktrans trimmed %}
|
||||
This event contains <strong>overpaid orders</strong>, for example due to duplicate payment attempts.
|
||||
You should review the cases and consider refunding the overpaid amount to the user.
|
||||
{% endblocktrans %}
|
||||
<a href="{% url "control:event.orders" event=request.event.slug organizer=request.event.organizer.slug %}?status=overpaid"
|
||||
class="btn btn-primary">{% trans "Show overpaid orders" %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if has_pending_refunds %}
|
||||
<div class="alert alert-warning">
|
||||
{% blocktrans trimmed %}
|
||||
This event contains <strong>pending refunds</strong> that you should take care of.
|
||||
{% endblocktrans %}
|
||||
<a href="{% url "control:event.orders.refunds" event=request.event.slug organizer=request.event.organizer.slug %}"
|
||||
class="btn btn-primary">{% trans "Show pending refunds" %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if has_cancellation_requests %}
|
||||
<div class="alert alert-warning">
|
||||
{% blocktrans trimmed %}
|
||||
This event contains <strong>requested cancellations</strong> that you should take care of.
|
||||
{% endblocktrans %}
|
||||
<a href="{% url "control:event.orders" event=request.event.slug organizer=request.event.organizer.slug %}?status=rc"
|
||||
class="btn btn-primary">{% trans "Show orders requesting cancellation" %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if has_pending_approvals %}
|
||||
<div class="alert alert-warning">
|
||||
{% blocktrans trimmed %}
|
||||
This event contains <strong>pending approvals</strong> that you should take care of.
|
||||
{% endblocktrans %}
|
||||
<a href="{% url "control:event.orders" event=request.event.slug organizer=request.event.organizer.slug %}?status=pa"
|
||||
class="btn btn-primary">{% trans "Show orders pending approval" %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if has_pending_orders_with_full_payment %}
|
||||
<div class="alert alert-warning">
|
||||
{% blocktrans trimmed %}
|
||||
This event contains <strong>fully paid orders</strong> that are not marked as paid, probably
|
||||
because no quota was left at the time their payment arrived. You should review the cases and consider
|
||||
either refunding the customer or creating more space.
|
||||
{% endblocktrans %}
|
||||
<a href="{% url "control:event.orders" event=request.event.slug organizer=request.event.organizer.slug %}?status=pendingpaid"
|
||||
class="btn btn-primary">{% trans "Show affected orders" %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- Warnings ----------------------------------------------------------------------------------------------------->
|
||||
|
||||
{% eventsignal request.event "pretix.control.signals.event_dashboard_top" request=request %}
|
||||
<!-- Timeline ----------------------------------------------------------------------------------------------------->
|
||||
{% if request.event.has_subevents %}
|
||||
<form class="form-inline helper-display-inline" action="" method="get">
|
||||
{% include "pretixcontrol/event/fragment_subevent_choice_simple.html" %}
|
||||
</form>
|
||||
{% endif %}
|
||||
{% if not request.event.has_subevents or subevent %}
|
||||
{% include "pretixcontrol/event/fragment_timeline.html" %}
|
||||
{% endif %}
|
||||
<!-- Timeline ----------------------------------------------------------------------------------------------------->
|
||||
<!-- Big numbers ---------------------------------------------------------------------------------------------->
|
||||
<div class="dashboard">
|
||||
<div class="widget-container widget-small event-dashboard">
|
||||
<a href="{{ attendees_paid_ordered.url }}" class="widget">
|
||||
{{ attendees_paid_ordered.content|safe }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="widget-container widget-small event-dashboard">
|
||||
<a href="{{ total_revenue.url }}" class="widget">
|
||||
{{ total_revenue.content|safe }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Big numbers -------------------------------------------------------------------------------------------------->
|
||||
<!-- Diagram ------------------------------------------------------------------------------------------------------>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">{% trans "Revenue over time" %}</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div id="rev_chart" class="chart"></div>
|
||||
{% if request.GET.subevent %}
|
||||
<div class="alert alert-info">
|
||||
{% blocktrans trimmed context "subevent" %}
|
||||
If you select a single date, payment method fees will not be listed here as it might not be clear which
|
||||
date they belong to.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<p class="help-block">
|
||||
<small>
|
||||
{% blocktrans trimmed %}
|
||||
Only fully paid orders are counted.
|
||||
Orders paid in multiple payments are shown with the date of their last payment.
|
||||
{% endblocktrans %}
|
||||
</small>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Diagram ------------------------------------------------------------------------------------------------------>
|
||||
<!-- Check-Ins ---------------------------------------------------------------------------------------------------->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">{% trans "Check-In" %}</h3>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-quotas">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
{% trans "Name" %}
|
||||
</th>
|
||||
<th>{% trans "Checked in" %}</th>
|
||||
{% if request.event.has_subevents %}
|
||||
<th>
|
||||
{% trans "Date" context "subevent" %}
|
||||
</th>
|
||||
{% endif %}
|
||||
<th class="iconcol">{% trans "Automated check-in" %}</th>
|
||||
<th>{% trans "Products" %}</th>
|
||||
<th class="action-col-2"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for cl in checkinlists %}
|
||||
<tr>
|
||||
<td>
|
||||
<strong><a
|
||||
href="{% url "control:event.orders.checkinlists.show" organizer=request.event.organizer.slug event=request.event.slug list=cl.id %}">{{ cl.name }}</a></strong>
|
||||
</td>
|
||||
<td>
|
||||
<div class="quotabox availability">
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success progress-bar-{{ cl.percent }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="numbers">
|
||||
{{ cl.checkin_count|default_if_none:"0" }} /
|
||||
{{ cl.position_count|default_if_none:"0" }}
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
{% if request.event.has_subevents %}
|
||||
{% if cl.subevent %}
|
||||
<td>
|
||||
{{ cl.subevent.name }} – {{ cl.subevent.get_date_range_display }}
|
||||
{{ cl.subevent.date_from|date:"TIME_FORMAT" }}
|
||||
</td>
|
||||
{% else %}
|
||||
<td>
|
||||
<em>{% trans "All" %}</em>
|
||||
</td>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<td>
|
||||
{% for channel in cl.auto_checkin_sales_channels %}
|
||||
<span class="fa fa-{{ channel.icon }} text-muted"
|
||||
data-toggle="tooltip" title="{% trans channel.verbose_name %}"></span>
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% if cl.all_products %}
|
||||
<em>{% trans "All" %}</em>
|
||||
{% else %}
|
||||
<ul>
|
||||
{% for item in cl.limit_products.all %}
|
||||
<li>
|
||||
<a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=item.id %}">{{ item }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-right flip">
|
||||
<a href="{% url "control:event.orders.checkinlists.show" organizer=request.event.organizer.slug event=request.event.slug list=cl.id %}"
|
||||
class="btn btn-default btn-sm"><i class="fa fa-eye"></i></a>
|
||||
{% if "can_change_event_settings" in request.eventpermset %}
|
||||
<a href="{% url "control:event.orders.checkinlists.add" organizer=request.event.organizer.slug event=request.event.slug %}?copy_from={{ cl.id }}"
|
||||
class="btn btn-sm btn-default" title="{% trans "Clone" %}" data-toggle="tooltip">
|
||||
<span class="fa fa-copy"></span>
|
||||
</a>
|
||||
<a href="{% url "control:event.orders.checkinlists.simulator" organizer=request.event.organizer.slug event=request.event.slug list=cl.id %}"
|
||||
title="{% trans "Check-in simulator" %}" data-toggle="tooltip"
|
||||
class="btn btn-default btn-sm"><i class="fa fa-flask"></i></a>
|
||||
<a href="{% url "control:event.orders.checkinlists.edit" organizer=request.event.organizer.slug event=request.event.slug list=cl.id %}"
|
||||
class="btn btn-default btn-sm"><i class="fa fa-wrench"></i></a>
|
||||
<a href="{% url "control:event.orders.checkinlists.delete" organizer=request.event.organizer.slug event=request.event.slug list=cl.id %}"
|
||||
class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></a>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Check-Ins ---------------------------------------------------------------------------------------------------->
|
||||
<!-- Quotas ------------------------------------------------------------------------------------------------------->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">{% trans "Quotas" %}</h3>
|
||||
</div>
|
||||
<div class="table-responsive table-quotas">
|
||||
<table class="table table-hover table-quotas">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
{% trans "Name" %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Begin" %}
|
||||
<a href="? url_replace request 'filter-ordering' '-date_from' %}"><i class="fa fa-caret-down"></i></a>
|
||||
<a href="? url_replace request 'filter-ordering' 'date_from' %}"><i class="fa fa-caret-up"></i></a>
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Paid tickets per quota" %}
|
||||
</th>
|
||||
<th>
|
||||
{% trans "Capacity left" %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if request.event.has_subevents and not subevent %}
|
||||
{% for s in subevents %}
|
||||
<tr>
|
||||
<td>
|
||||
<strong><a href="{% url "control:event.subevent" organizer=request.event.organizer.slug event=request.event.slug subevent=s.id %}?returnto={{ request.GET.urlencode|urlencode }}">
|
||||
{{ s.name }}</a></strong><br>
|
||||
<small class="text-muted">
|
||||
#{{ s.pk }}
|
||||
</small>
|
||||
</td>
|
||||
<td>
|
||||
{{ s.get_date_from_display }}<br>
|
||||
<span class="text-muted">
|
||||
{{ s.date_from|date:"l" }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{% for q in s.first_quotas|slice:":3" %}
|
||||
{% include "pretixcontrol/fragment_quota_box_paid.html" with quota=q %}
|
||||
{% endfor %}
|
||||
{% if s.first_quotas|length > 3 %}
|
||||
<a href="{% url "control:event.items.quotas" organizer=request.event.organizer.slug event=request.event.slug %}?subevent={{ s.id }}"
|
||||
class="quotabox-more" data-toggle="tooltip" title="{% trans "More quotas" %}"
|
||||
data-placement="top">
|
||||
···
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% for q in s.first_quotas %}
|
||||
{% include "pretixcontrol/items/fragment_quota_availability.html" with availability=q.cached_avail closed=q.closed %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if subevent %}
|
||||
<tr>
|
||||
<td>
|
||||
<strong><a href="{% url "control:event.subevent" organizer=request.event.organizer.slug event=request.event.slug subevent=subevent.id %}?returnto={{ request.GET.urlencode|urlencode }}">
|
||||
{{ subevent.name }}</a></strong><br>
|
||||
<small class="text-muted">
|
||||
#{{ subevent.pk }}
|
||||
</small>
|
||||
</td>
|
||||
<td>
|
||||
{{ subevent.get_date_from_display }}<br>
|
||||
<span class="text-muted">
|
||||
{{ subevent.date_from|date:"l" }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
{% for q in subevent.first_quotas|slice:":3" %}
|
||||
{% include "pretixcontrol/fragment_quota_box_paid.html" with quota=q %}
|
||||
{% endfor %}
|
||||
{% if subevent.first_quotas|length > 3 %}
|
||||
<a href="{% url "control:event.items.quotas" organizer=request.event.organizer.slug event=request.event.slug %}?subevent={{ subevent.id }}"
|
||||
class="quotabox-more" data-toggle="tooltip" title="{% trans "More quotas" %}"
|
||||
data-placement="top">
|
||||
···
|
||||
</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% for q in subevent.first_quotas %}
|
||||
{% include "pretixcontrol/items/fragment_quota_availability.html" with availability=q.cached_avail closed=q.closed %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Quotas ------------------------------------------------------------------------------------------------------->
|
||||
<!-- Logs --------------------------------------------------------------------------------------------------------->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title">
|
||||
{% trans "Event logs" %}
|
||||
</h3>
|
||||
</div>
|
||||
<ul class="list-group" id="logs_target">
|
||||
<div class="logs-lazy-loading">
|
||||
<span class="fa fa-cog fa-4x"></span>
|
||||
</div>
|
||||
</ul>
|
||||
<div class="panel-footer">
|
||||
<a href="{% url "control:event.log" event=request.event.slug organizer=request.event.organizer.slug %}">
|
||||
{% trans "Show more logs" %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Logs --------------------------------------------------------------------------------------------------------->
|
||||
<script type="application/json" id="rev-data">{{ rev_data|escapejson }}</script>
|
||||
<script type="application/text" id="currency">{{ request.event.currency }}</script>
|
||||
{% endblock %}
|
||||
@@ -209,7 +209,6 @@
|
||||
{% bootstrap_field form.validity_fixed_until layout="control" %}
|
||||
</div>
|
||||
<div data-display-dependency="#{{ form.validity_mode.id_for_label }}" data-display-dependency-value="dynamic">
|
||||
{% bootstrap_field form.validity_dynamic_start_choice layout="control" %}
|
||||
<div class="form-group metadata-group">
|
||||
<label class="col-md-3 control-label">{% trans "Duration" %}</label>
|
||||
<div class="col-md-9">
|
||||
@@ -232,7 +231,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div data-display-dependency="#{{ form.validity_dynamic_start_choice.id_for_label }}" data-display-dependency-value="True">
|
||||
{% bootstrap_field form.validity_dynamic_start_choice layout="control" %}
|
||||
<div data-display-dependency="#{{ form.validity_dynamic_start_choice.id_for_label }}">
|
||||
{% trans "days" as t_days %}
|
||||
{% bootstrap_field form.validity_dynamic_start_choice_day_limit addon_after=t_days layout="control" %}
|
||||
</div>
|
||||
|
||||
@@ -38,8 +38,8 @@ from django.views.generic.base import RedirectView
|
||||
|
||||
from pretix.control.views import (
|
||||
auth, checkin, dashboards, discounts, event, geo, global_settings, item,
|
||||
main, new_dashboard, oauth, orderimport, orders, organizer, pdf, search,
|
||||
shredder, subevents, typeahead, user, users, vouchers, waitinglist,
|
||||
main, oauth, orderimport, orders, organizer, pdf, search, shredder,
|
||||
subevents, typeahead, user, users, vouchers, waitinglist,
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
@@ -239,7 +239,7 @@ urlpatterns = [
|
||||
re_path(r'^search/orders/$', search.OrderSearch.as_view(), name='search.orders'),
|
||||
re_path(r'^search/payments/$', search.PaymentSearch.as_view(), name='search.payments'),
|
||||
re_path(r'^event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include([
|
||||
re_path(r'^$', new_dashboard.IndexView.as_view(), name='event.index'),
|
||||
re_path(r'^$', dashboards.event_index, name='event.index'),
|
||||
re_path(r'^qrcode.(?P<filetype>(png|jpeg|gif|svg))$', event.EventQRCode.as_view(), name='event.qrcode'),
|
||||
re_path(r'^widgets.json$', dashboards.event_index_widgets_lazy, name='event.index.widgets'),
|
||||
re_path(r'^logs/embed$', dashboards.event_index_log_lazy, name='event.index.logs'),
|
||||
|
||||
@@ -87,8 +87,8 @@ def process_login(request, user, keep_logged_in):
|
||||
auth_login(request, user)
|
||||
request.session['pretix_auth_login_time'] = int(time.time())
|
||||
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||
return redirect_to_url(next_url)
|
||||
return redirect('control:index')
|
||||
return redirect(next_url)
|
||||
return redirect(reverse('control:index'))
|
||||
|
||||
|
||||
def login(request):
|
||||
@@ -149,10 +149,7 @@ def register(request):
|
||||
raise PermissionDenied('Registration is disabled')
|
||||
ctx = {}
|
||||
if request.user.is_authenticated:
|
||||
next_url = request.GET.get("next") or reverse("control:index")
|
||||
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||
return redirect_to_url(next_url)
|
||||
return redirect("control:index")
|
||||
return redirect(request.GET.get("next", 'control:index'))
|
||||
if request.method == 'POST':
|
||||
form = RegistrationForm(data=request.POST)
|
||||
if form.is_valid():
|
||||
@@ -259,10 +256,7 @@ class Forgot(TemplateView):
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if request.user.is_authenticated:
|
||||
next_url = request.GET.get("next") or reverse("control:index")
|
||||
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||
return redirect_to_url(next_url)
|
||||
return redirect("control:index")
|
||||
return redirect(request.GET.get("next", 'control:index'))
|
||||
return super().get(request, *args, **kwargs)
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
@@ -335,10 +329,7 @@ class Recover(TemplateView):
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if request.user.is_authenticated:
|
||||
next_url = request.GET.get("next") or reverse("control:index")
|
||||
if next_url and url_has_allowed_host_and_scheme(next_url, allowed_hosts=None):
|
||||
return redirect_to_url(next_url)
|
||||
return redirect("control:index")
|
||||
return redirect(request.GET.get("next", 'control:index'))
|
||||
try:
|
||||
user = User.objects.get(id=self.request.GET.get('id'), is_active=True, auth_backend='native')
|
||||
except User.DoesNotExist:
|
||||
@@ -462,7 +453,7 @@ class Login2FAView(TemplateView):
|
||||
del request.session['pretix_auth_2fa_time']
|
||||
if "next" in request.GET and url_has_allowed_host_and_scheme(request.GET.get("next"), allowed_hosts=None):
|
||||
return redirect_to_url(request.GET.get("next"))
|
||||
return redirect('control:index')
|
||||
return redirect(reverse('control:index'))
|
||||
else:
|
||||
messages.error(request, _('Invalid code, please try again.'))
|
||||
return redirect('control:auth.login.2fa')
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
# 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/>.
|
||||
#
|
||||
import hashlib
|
||||
import logging
|
||||
from urllib.parse import quote
|
||||
|
||||
@@ -37,8 +36,7 @@ logger = logging.getLogger(__name__)
|
||||
class GeoCodeView(LoginRequiredMixin, View):
|
||||
def get(self, request, *args, **kwargs):
|
||||
q = self.request.GET.get('q')
|
||||
cache_key = 'geocode:{}'.format(hashlib.sha256(q.encode()).hexdigest())
|
||||
cd = cache.get(cache_key)
|
||||
cd = cache.get('geocode:{}'.format(q))
|
||||
if cd:
|
||||
return JsonResponse({
|
||||
'success': True,
|
||||
@@ -63,7 +61,7 @@ class GeoCodeView(LoginRequiredMixin, View):
|
||||
'results': []
|
||||
}, status=200)
|
||||
|
||||
cache.set(cache_key, res, timeout=3600 * 6)
|
||||
cache.set('geocode:{}'.format(q), res, timeout=3600 * 6)
|
||||
return JsonResponse({
|
||||
'success': True,
|
||||
'results': res
|
||||
|
||||
@@ -44,7 +44,7 @@ logger = logging.getLogger(__name__)
|
||||
def get_spf_record(hostname):
|
||||
try:
|
||||
r = dns.resolver.Resolver()
|
||||
for resp in r.resolve(hostname, 'TXT'):
|
||||
for resp in r.query(hostname, 'TXT'):
|
||||
data = b''.join(resp.strings).decode()
|
||||
if data.lower().strip().startswith('v=spf1 '): # RFC7208, section 4.5
|
||||
return data
|
||||
|
||||
@@ -1,266 +0,0 @@
|
||||
import datetime
|
||||
import json
|
||||
from decimal import Decimal
|
||||
|
||||
import dateutil
|
||||
from django.db.models import (
|
||||
DateTimeField, F, Max, OuterRef, Prefetch, Q, Subquery, Sum,
|
||||
)
|
||||
from django.db.models.functions import Coalesce
|
||||
from django.urls import reverse
|
||||
from django.utils import formats, timezone
|
||||
from django.utils.timezone import now
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.views.generic import TemplateView
|
||||
|
||||
from pretix.base.channels import get_all_sales_channels
|
||||
from pretix.base.decimal import round_decimal
|
||||
from pretix.base.models import SubEvent
|
||||
from pretix.base.models.orders import (
|
||||
CancellationRequest, Order, OrderPayment, OrderPosition, OrderRefund,
|
||||
)
|
||||
from pretix.base.services.quotas import QuotaAvailability
|
||||
from pretix.base.timeline import timeline_for_event
|
||||
from pretix.control.forms.event import CommentForm
|
||||
from pretix.control.permissions import EventPermissionRequiredMixin
|
||||
from pretix.control.views import ChartContainingView
|
||||
|
||||
NUM_WIDGET = str('<div class="numwidget">'
|
||||
'<span class="num">{num}</span>'
|
||||
'<span class="text"><span class="label-primary">{text}</span></span>'
|
||||
'<span class="text-add">{text_add}</span></div>')
|
||||
|
||||
|
||||
class IndexView(EventPermissionRequiredMixin, ChartContainingView, TemplateView):
|
||||
template_name = 'pretixcontrol/event/new_index.html'
|
||||
permission = 'can_view_orders'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
subevent = None
|
||||
if self.request.GET.get("subevent", "") != "" and self.request.event.has_subevents:
|
||||
i = self.request.GET.get("subevent", "")
|
||||
try:
|
||||
subevent = self.request.event.subevents.get(pk=i)
|
||||
except SubEvent.DoesNotExist:
|
||||
pass
|
||||
|
||||
can_view_orders = self.request.user.has_event_permission(self.request.organizer, self.request.event,
|
||||
'can_view_orders',
|
||||
request=self.request)
|
||||
# can_change_event_settings = self.request.user.has_event_permission(self.request.organizer, self.request.event,
|
||||
# 'can_change_event_settings',
|
||||
# request=self.request)
|
||||
|
||||
ctx = {
|
||||
'subevent': subevent,
|
||||
'comment_form': CommentForm(initial={'comment': self.request.event.comment},
|
||||
readonly=True), # not can_change_event_settings),
|
||||
}
|
||||
|
||||
if subevent:
|
||||
opqs = OrderPosition.objects.filter(subevent=subevent)
|
||||
else:
|
||||
opqs = OrderPosition.objects
|
||||
|
||||
ctx['shop_state'] = {
|
||||
'display_size': 'small',
|
||||
'priority': 1000,
|
||||
'content': '<span class="{cls}">{t1} {state} <span class="fa {icon}"></span></span>'.format(
|
||||
t1=_('Your ticket shop is'),
|
||||
state=_('live') if self.request.event.live and not self.request.event.testmode else (
|
||||
_('live and in test mode') if self.request.event.live else (
|
||||
_('not yet public') if not self.request.event.testmode else (
|
||||
_('in private test mode')
|
||||
)
|
||||
)
|
||||
),
|
||||
icon='fa-check-circle' if self.request.event.live and not self.request.event.testmode else (
|
||||
'fa-warning' if self.request.event.live else (
|
||||
'fa-times-circle' if not self.request.event.testmode else (
|
||||
'fa-lock'
|
||||
)
|
||||
)
|
||||
),
|
||||
cls='live' if self.request.event.live else 'off'
|
||||
),
|
||||
'url': reverse('control:event.live', kwargs={
|
||||
'event': self.request.event.slug,
|
||||
'organizer': self.request.event.organizer.slug
|
||||
})
|
||||
}
|
||||
|
||||
qs = self.request.event.checkin_lists.filter(subevent=subevent)
|
||||
sales_channels = get_all_sales_channels()
|
||||
for cl in qs:
|
||||
if cl.subevent:
|
||||
cl.subevent.event = self.request.event # re-use same event object to make sure settings are cached
|
||||
cl.auto_checkin_sales_channels = [sales_channels[channel] for channel in cl.auto_checkin_sales_channels]
|
||||
ctx['checkinlists'] = qs
|
||||
|
||||
qs = self.request.event.subevents
|
||||
if list:
|
||||
qs = qs.prefetch_related(
|
||||
Prefetch('quotas',
|
||||
queryset=self.request.event.quotas.annotate(s=Coalesce(F('size'), 0)).order_by('-s'),
|
||||
to_attr='first_quotas')
|
||||
)
|
||||
ctx['subevents'] = qs
|
||||
quotas = []
|
||||
for s in ctx['subevents']:
|
||||
s.first_quotas = s.first_quotas[:4]
|
||||
quotas += list(s.first_quotas)
|
||||
|
||||
qa = QuotaAvailability(early_out=False)
|
||||
for q in quotas:
|
||||
qa.queue(q)
|
||||
qa.compute()
|
||||
|
||||
for q in quotas:
|
||||
q.cached_avail = qa.results[q]
|
||||
q.cached_availability_paid_orders = qa.count_paid_orders.get(q, 0)
|
||||
if q.size is not None:
|
||||
q.percent_paid = min(
|
||||
100,
|
||||
round(q.cached_availability_paid_orders / q.size * 100) if q.size > 0 else 100
|
||||
)
|
||||
|
||||
tickc = opqs.filter(
|
||||
order__event=self.request.event, item__admission=True,
|
||||
order__status__in=(Order.STATUS_PAID, Order.STATUS_PENDING),
|
||||
).count()
|
||||
paidc = opqs.filter(
|
||||
order__event=self.request.event, item__admission=True,
|
||||
order__status=Order.STATUS_PAID,
|
||||
).count()
|
||||
ctx['attendees_paid_ordered'] = {
|
||||
'content': NUM_WIDGET.format(
|
||||
num=f'{tickc}',
|
||||
text=_('<span class="fa fa-user icon"></span> Attendees'),
|
||||
text_add=f'{paidc} paid, {tickc - paidc} pending'),
|
||||
'priority': 100,
|
||||
'url': reverse('control:event.orders.overview', kwargs={
|
||||
'event': self.request.event.slug,
|
||||
'organizer': self.request.event.organizer.slug
|
||||
}) + ('?subevent={}'.format(subevent.pk) if subevent else '')
|
||||
}
|
||||
|
||||
if subevent:
|
||||
rev = opqs.filter(
|
||||
order__event=self.request.event, order__status=Order.STATUS_PAID
|
||||
).aggregate(
|
||||
sum=Sum('price')
|
||||
)['sum'] or Decimal('0.00')
|
||||
else:
|
||||
rev = Order.objects.filter(
|
||||
event=self.request.event,
|
||||
status=Order.STATUS_PAID
|
||||
).aggregate(sum=Sum('total'))['sum'] or Decimal('0.00')
|
||||
|
||||
ctx['total_revenue'] = {
|
||||
'content': NUM_WIDGET.format(
|
||||
num='<span class="icon">{currency}</span> {amount}'.format(
|
||||
currency=self.request.event.currency,
|
||||
amount=formats.localize(round_decimal(rev, self.request.event.currency))
|
||||
),
|
||||
text=_('Total revenue'),
|
||||
text_add=''
|
||||
),
|
||||
'priority': 100,
|
||||
'url': reverse('control:event.orders.overview', kwargs={
|
||||
'event': self.request.event.slug,
|
||||
'organizer': self.request.event.organizer.slug
|
||||
}) + ('?subevent={}'.format(subevent.pk) if subevent else '')
|
||||
}
|
||||
|
||||
cache = self.request.event.cache
|
||||
ckey = str(subevent.pk) if subevent else 'all'
|
||||
tz = timezone.get_current_timezone()
|
||||
op_date = OrderPayment.objects.filter(
|
||||
order=OuterRef('order'),
|
||||
state__in=(OrderPayment.PAYMENT_STATE_CONFIRMED, OrderPayment.PAYMENT_STATE_REFUNDED),
|
||||
payment_date__isnull=False
|
||||
).values('order').annotate(
|
||||
m=Max('payment_date')
|
||||
).values(
|
||||
'm'
|
||||
).order_by()
|
||||
p_date = OrderPayment.objects.filter(
|
||||
order=OuterRef('pk'),
|
||||
state__in=(OrderPayment.PAYMENT_STATE_CONFIRMED, OrderPayment.PAYMENT_STATE_REFUNDED),
|
||||
payment_date__isnull=False
|
||||
).values('order').annotate(
|
||||
m=Max('payment_date')
|
||||
).values(
|
||||
'm'
|
||||
).order_by()
|
||||
ctx['rev_data'] = cache.get('statistics_rev_data' + ckey)
|
||||
if not ctx['rev_data']:
|
||||
rev_by_day = {}
|
||||
if subevent:
|
||||
for o in OrderPosition.objects.annotate(
|
||||
payment_date=Subquery(op_date, output_field=DateTimeField())
|
||||
).filter(order__event=self.request.event,
|
||||
subevent=subevent,
|
||||
order__status=Order.STATUS_PAID,
|
||||
payment_date__isnull=False).values('payment_date', 'price'):
|
||||
day = o['payment_date'].astimezone(tz).date()
|
||||
rev_by_day[day] = rev_by_day.get(day, 0) + o['price']
|
||||
else:
|
||||
for o in Order.objects.annotate(
|
||||
payment_date=Subquery(p_date, output_field=DateTimeField())
|
||||
).filter(event=self.request.event,
|
||||
status=Order.STATUS_PAID,
|
||||
payment_date__isnull=False).values('payment_date', 'total'):
|
||||
day = o['payment_date'].astimezone(tz).date()
|
||||
rev_by_day[day] = rev_by_day.get(day, 0) + o['total']
|
||||
|
||||
data = []
|
||||
total = 0
|
||||
for d in dateutil.rrule.rrule(
|
||||
dateutil.rrule.DAILY,
|
||||
dtstart=min(rev_by_day.keys() if rev_by_day else [datetime.date.today()]),
|
||||
until=max(rev_by_day.keys() if rev_by_day else [datetime.date.today()])):
|
||||
d = d.date()
|
||||
rev = float(rev_by_day.get(d, 0))
|
||||
if True: # rev != 0:
|
||||
total += rev
|
||||
data.append({
|
||||
'date': d.strftime('%Y-%m-%d'),
|
||||
'revenue': round(total, 2),
|
||||
})
|
||||
ctx['rev_data'] = json.dumps(data)
|
||||
cache.set('statistics_rev_data' + ckey, ctx['rev_data'])
|
||||
|
||||
ctx['has_overpaid_orders'] = can_view_orders and Order.annotate_overpayments(self.request.event.orders).filter(
|
||||
Q(~Q(status=Order.STATUS_CANCELED) & Q(pending_sum_t__lt=0))
|
||||
| Q(Q(status=Order.STATUS_CANCELED) & Q(pending_sum_rc__lt=0))
|
||||
).exists()
|
||||
ctx['has_pending_orders_with_full_payment'] = can_view_orders and Order.annotate_overpayments(
|
||||
self.request.event.orders).filter(
|
||||
Q(status__in=(Order.STATUS_EXPIRED, Order.STATUS_PENDING)) & Q(pending_sum_t__lte=0) & Q(
|
||||
require_approval=False)
|
||||
).exists()
|
||||
ctx['has_pending_refunds'] = can_view_orders and OrderRefund.objects.filter(
|
||||
order__event=self.request.event,
|
||||
state__in=(OrderRefund.REFUND_STATE_CREATED, OrderRefund.REFUND_STATE_EXTERNAL)
|
||||
).exists()
|
||||
ctx['has_pending_approvals'] = can_view_orders and self.request.event.orders.filter(
|
||||
status=Order.STATUS_PENDING,
|
||||
require_approval=True
|
||||
).exists()
|
||||
ctx['has_cancellation_requests'] = can_view_orders and CancellationRequest.objects.filter(
|
||||
order__event=self.request.event
|
||||
).exists()
|
||||
|
||||
ctx['timeline'] = [
|
||||
{
|
||||
'date': t.datetime.astimezone(self.request.event.timezone).date(),
|
||||
'entry': t,
|
||||
'time': t.datetime.astimezone(self.request.event.timezone)
|
||||
}
|
||||
for t in timeline_for_event(self.request.event, subevent)
|
||||
]
|
||||
ctx['today'] = now().astimezone(self.request.event.timezone).date()
|
||||
ctx['nearly_now'] = now().astimezone(self.request.event.timezone) - datetime.timedelta(seconds=20)
|
||||
# resp['Content-Security-Policy'] = "style-src 'unsafe-inline'"
|
||||
return ctx
|
||||
@@ -50,7 +50,6 @@ from pretix.base.services.orderimport import import_orders, parse_csv
|
||||
from pretix.base.views.tasks import AsyncAction
|
||||
from pretix.control.forms.orderimport import ProcessForm
|
||||
from pretix.control.permissions import EventPermissionRequiredMixin
|
||||
from pretix.helpers.http import redirect_to_url
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
ENCODINGS = (
|
||||
@@ -70,19 +69,19 @@ class ImportView(EventPermissionRequiredMixin, TemplateView):
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
if 'file' not in request.FILES:
|
||||
return redirect_to_url(reverse('control:event.orders.import', kwargs={
|
||||
return redirect(reverse('control:event.orders.import', kwargs={
|
||||
'event': request.event.slug,
|
||||
'organizer': request.organizer.slug,
|
||||
}))
|
||||
if not request.FILES['file'].name.lower().endswith('.csv'):
|
||||
messages.error(request, _('Please only upload CSV files.'))
|
||||
return redirect_to_url(reverse('control:event.orders.import', kwargs={
|
||||
return redirect(reverse('control:event.orders.import', kwargs={
|
||||
'event': request.event.slug,
|
||||
'organizer': request.organizer.slug,
|
||||
}))
|
||||
if request.FILES['file'].size > settings.FILE_UPLOAD_MAX_SIZE_OTHER:
|
||||
messages.error(request, _('Please do not upload files larger than 10 MB.'))
|
||||
return redirect_to_url(reverse('control:event.orders.import', kwargs={
|
||||
return redirect(reverse('control:event.orders.import', kwargs={
|
||||
'event': request.event.slug,
|
||||
'organizer': request.organizer.slug,
|
||||
}))
|
||||
|
||||
@@ -74,11 +74,7 @@ class InList(Func):
|
||||
raise TypeError(f'Dynamic right-hand-site currently not implemented, found {type(self.source_expressions[1])}')
|
||||
rhs, rhs_params = ['%s' for _ in self.source_expressions[1].value], [d for d in self.source_expressions[1].value]
|
||||
|
||||
if rhs:
|
||||
return '%s IN (%s)' % (lhs, ', '.join(rhs)), lhs_params + rhs_params
|
||||
else:
|
||||
# "IN ()" is not considered valid SQL by PostgreSQL (unlike SQLite)
|
||||
return 'FALSE', []
|
||||
return '%s IN (%s)' % (lhs, ', '.join(rhs)), lhs_params + rhs_params
|
||||
|
||||
|
||||
def tolerance(b, tol=None, sign=1):
|
||||
|
||||
@@ -19,11 +19,9 @@
|
||||
# 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/>.
|
||||
#
|
||||
import types
|
||||
from datetime import datetime
|
||||
|
||||
from PIL import Image
|
||||
from requests.adapters import HTTPAdapter
|
||||
|
||||
|
||||
def monkeypatch_vobject_performance():
|
||||
@@ -69,26 +67,6 @@ def monkeypatch_pillow_safer():
|
||||
Image.ID.remove("EPS")
|
||||
|
||||
|
||||
def monkeypatch_requests_timeout():
|
||||
"""
|
||||
The requests package does not by default set a timeout for outgoing HTTP requests. This is dangerous especially since
|
||||
celery tasks have no timeout on the task as a whole (as web requests do), so HTTP requests to a non-responding
|
||||
external service could lead to a clogging of the entire celery queue.
|
||||
"""
|
||||
old_httpadapter_send = HTTPAdapter.send
|
||||
|
||||
def httpadapter_send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None, **kwargs):
|
||||
if timeout is None:
|
||||
timeout = 30
|
||||
return types.MethodType(old_httpadapter_send, self)(
|
||||
request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
HTTPAdapter.send = httpadapter_send
|
||||
|
||||
|
||||
def monkeypatch_all_at_ready():
|
||||
monkeypatch_vobject_performance()
|
||||
monkeypatch_pillow_safer()
|
||||
monkeypatch_requests_timeout()
|
||||
|
||||
@@ -164,9 +164,9 @@ def resize_image(image, size):
|
||||
return image
|
||||
|
||||
|
||||
def create_thumbnail(sourcename, size, formats=None):
|
||||
def create_thumbnail(sourcename, size):
|
||||
source = default_storage.open(sourcename)
|
||||
image = Image.open(BytesIO(source.read()), formats=formats or settings.PILLOW_FORMATS_QUESTIONS_IMAGE)
|
||||
image = Image.open(BytesIO(source.read()), formats=settings.PILLOW_FORMATS_QUESTIONS_IMAGE)
|
||||
try:
|
||||
image.load()
|
||||
except:
|
||||
@@ -208,9 +208,9 @@ def create_thumbnail(sourcename, size, formats=None):
|
||||
return t
|
||||
|
||||
|
||||
def get_thumbnail(source, size, formats=None):
|
||||
def get_thumbnail(source, size):
|
||||
# Assumes files are immutable
|
||||
try:
|
||||
return Thumbnail.objects.get(source=source, size=size)
|
||||
except Thumbnail.DoesNotExist:
|
||||
return create_thumbnail(source, size, formats=formats)
|
||||
return create_thumbnail(source, size)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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"
|
||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -159,15 +159,15 @@ msgstr ""
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -515,44 +515,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -582,40 +582,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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/"
|
||||
@@ -139,9 +139,9 @@ msgid "Continue"
|
||||
msgstr "المتابعة"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "جاري تأكيد الدفع الخاص بك …"
|
||||
|
||||
@@ -163,15 +163,15 @@ msgstr "الطلبات المدفوعة"
|
||||
msgid "Total revenue"
|
||||
msgstr "إجمالي الإيرادات"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "جاري الاتصال بStripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "المجموع"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "جاري الاتصال بالبنك الذي تتعامل معه …"
|
||||
|
||||
@@ -541,44 +541,44 @@ msgstr "QR الدخول"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "لا يمكن تحميل ملف PDF الخلفية للأسباب التالية:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "مجموعة من العناصر"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "عنصر نص"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "منطقة باركود"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "منطقة صورة"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "مدعوم من pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "عنصر"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "تصميم التذكرة"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "فشلت عملية الحفظ."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "حصل خطأ أثناء رفع ملف PDF الخاص بك، يرجى المحاولة مرة أخرى."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "هل تريد أن تغادر المحرر دون حفظ التعديلات؟"
|
||||
|
||||
@@ -608,40 +608,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr "تباين اللون سيئ للخلفية البيضاء، الرجاء اختيار لون غامق."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "البحث في الاستفسارات"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "الكل"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "لا شيء"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "المختارة فقط"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "قم باستخدم اسم مختلف داخليا"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "اضغط لاغلاق الصفحة"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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-"
|
||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -160,15 +160,15 @@ msgstr ""
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -516,44 +516,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Disseny del tiquet"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -583,40 +583,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-09-15 06:00+0000\n"
|
||||
"Last-Translator: Michael <michael.happl@gmx.at>\n"
|
||||
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
||||
msgstr "Pokračovat"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Potvrzuji vaši platbu …"
|
||||
|
||||
@@ -160,15 +160,15 @@ msgstr "Zaplacené objednávky"
|
||||
msgid "Total revenue"
|
||||
msgstr "Celkové příjmy"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Kontaktuji Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Celkem"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Kontaktuji vaši banku …"
|
||||
|
||||
@@ -532,44 +532,44 @@ msgstr "Check-in QR kód"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "Pozadí PDF nemohl být načten:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Skupina objektů"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Textový objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Oblast s QR kódem"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Oblast obrazu"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Poháněno společností pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Design vstupenky"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Uložení se nepodařilo."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "Při nahrávání souboru PDF došlo k problému, zkuste to prosím znovu."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "Opravdu chcete opustit editor bez uložení změn?"
|
||||
|
||||
@@ -602,40 +602,40 @@ msgstr ""
|
||||
"Tato barva je pro text na bílém pozadí špatně kontrastní, zvolte prosím "
|
||||
"tmavší odstín."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Hledaný výraz"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Všechny"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Žádný"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Pouze vybrané"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Interně používat jiný název"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Kliknutím zavřete"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Máte neuložené změny!"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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"
|
||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -160,15 +160,15 @@ msgstr ""
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -516,44 +516,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -583,40 +583,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2022-12-01 17:00+0000\n"
|
||||
"Last-Translator: Mie Frydensbjerg <mif@aarhus.dk>\n"
|
||||
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -140,9 +140,9 @@ msgid "Continue"
|
||||
msgstr "Fortsæt"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Bekræfter din betaling …"
|
||||
|
||||
@@ -164,15 +164,15 @@ msgstr "Betalte bestillinger"
|
||||
msgid "Total revenue"
|
||||
msgstr "Omsætning i alt"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Kontakter Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Kontakter din bank …"
|
||||
|
||||
@@ -552,46 +552,46 @@ msgstr "Check-in QR"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "Baggrunds-pdf'en kunne ikke hentes af følgende grund:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Gruppe af objekter"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Tekstobjekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "QR-kode-område"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
#, fuzzy
|
||||
#| msgid "Barcode area"
|
||||
msgid "Image area"
|
||||
msgstr "QR-kode-område"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Drevet af pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Billetdesign"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Gem fejlede."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "Fejl under upload af pdf. Prøv venligt igen."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
"Er du sikker på at du vil forlade editoren uden at gemme dine ændringer?"
|
||||
@@ -622,40 +622,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Ingen"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Klik for at lukke"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Du har ændringer, der ikke er gemt!"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-11-28 15:36+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
||||
msgstr "Fortfahren"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Zahlung wird bestätigt …"
|
||||
|
||||
@@ -160,15 +160,15 @@ msgstr "Bezahlte Bestellungen"
|
||||
msgid "Total revenue"
|
||||
msgstr "Gesamtumsatz"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Kontaktiere Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Gesamt"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Kontaktiere Ihre Bank …"
|
||||
|
||||
@@ -531,45 +531,45 @@ msgstr "Check-in-QR-Code"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Gruppe von Objekten"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Text-Objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "QR-Code-Bereich"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Bildbereich"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Event-Ticketshop von pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Ticket-Design"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Speichern fehlgeschlagen."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
"Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
"Möchten Sie den Editor wirklich schließen ohne Ihre Änderungen zu speichern?"
|
||||
@@ -604,40 +604,40 @@ msgstr ""
|
||||
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
||||
"Hintergrund. Bitte wählen Sie eine dunklere Farbe."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Suchbegriff"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Keine"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Nur ausgewählte"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr "Geben Sie eine Seitenzahl zwischen 1 und %(max)s ein."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr "Ungültige Seitenzahl."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Intern einen anderen Namen verwenden"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Klicken zum Schließen"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Sie haben ungespeicherte Änderungen!"
|
||||
|
||||
|
||||
@@ -167,7 +167,6 @@ JavaScript
|
||||
JSON
|
||||
Kategoriebeschreibung
|
||||
Key
|
||||
Klarna
|
||||
Kombitickets
|
||||
Kompatibilitätsmodus
|
||||
Konfigurations
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-11-28 15:36+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
||||
@@ -136,9 +136,9 @@ msgid "Continue"
|
||||
msgstr "Fortfahren"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Zahlung wird bestätigt …"
|
||||
|
||||
@@ -160,15 +160,15 @@ msgstr "Bezahlte Bestellungen"
|
||||
msgid "Total revenue"
|
||||
msgstr "Gesamtumsatz"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Kontaktiere Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Gesamt"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Kontaktiere deine Bank …"
|
||||
|
||||
@@ -530,45 +530,45 @@ msgstr "Check-in-QR-Code"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "Die Hintergrund-PDF-Datei konnte nicht geladen werden:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Gruppe von Objekten"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Text-Objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "QR-Code-Bereich"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Bildbereich"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Event-Ticketshop von pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Objekt"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Ticket-Design"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Speichern fehlgeschlagen."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
"Es gab ein Problem beim Hochladen der PDF-Datei, bitte erneut versuchen."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
"Möchtest du den Editor wirklich schließen ohne Ihre Änderungen zu speichern?"
|
||||
@@ -603,40 +603,40 @@ msgstr ""
|
||||
"Diese Farbe hat einen schlechten Kontrast für Text auf einem weißen "
|
||||
"Hintergrund. Bitte wähle eine dunklere Farbe."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Suchbegriff"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Keine"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Nur ausgewählte"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr "Gib eine Seitenzahl zwischen 1 und %(max)s ein."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr "Ungültige Seitenzahl."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Intern einen anderen Namen verwenden"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Klicken zum Schließen"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Du hast ungespeicherte Änderungen!"
|
||||
|
||||
|
||||
@@ -167,7 +167,6 @@ JavaScript
|
||||
JSON
|
||||
Kategoriebeschreibung
|
||||
Key
|
||||
Klarna
|
||||
Kombitickets
|
||||
Kompatibilitätsmodus
|
||||
Konfigurations
|
||||
|
||||
+896
-972
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 15:26+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"
|
||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -159,15 +159,15 @@ msgstr ""
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -515,44 +515,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -582,40 +582,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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/"
|
||||
@@ -141,9 +141,9 @@ msgid "Continue"
|
||||
msgstr "Συνέχεια"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -165,15 +165,15 @@ msgstr "Πληρωμένες παραγγελίες"
|
||||
msgid "Total revenue"
|
||||
msgstr "Συνολικά κέρδη"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Επικοινωνία με το Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Σύνολο"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
#, fuzzy
|
||||
#| msgid "Contacting Stripe …"
|
||||
msgid "Contacting your bank …"
|
||||
@@ -566,46 +566,46 @@ msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
"Το αρχείο φόντου PDF δεν ήταν δυνατό να φορτωθεί για τον ακόλουθο λόγο:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Ομάδα αντικειμένων"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Αντικείμενο κειμένου"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Περιοχή Barcode"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
#, fuzzy
|
||||
#| msgid "Barcode area"
|
||||
msgid "Image area"
|
||||
msgstr "Περιοχή Barcode"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Υποστηρίζεται από το Pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Αντικείμενο"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Σχεδιασμός εισιτηρίων"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Η αποθήκευση απέτυχε."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "Σφάλμα κατά τη μεταφόρτωση του αρχείου PDF, δοκιμάστε ξανά."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
"Θέλετε πραγματικά να αφήσετε τον επεξεργαστή χωρίς να αποθηκεύσετε τις "
|
||||
@@ -642,40 +642,40 @@ msgstr ""
|
||||
"Το χρώμα σας έχει κακή αντίθεση για κείμενο σε λευκό φόντο, επιλέξτε μια πιο "
|
||||
"σκούρα σκιά."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Όλα"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Κανένας"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Χρησιμοποιήστε διαφορετικό όνομα εσωτερικά"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Κάντε κλικ για να κλείσετε"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr ""
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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"
|
||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -159,15 +159,15 @@ msgstr ""
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -515,44 +515,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -582,40 +582,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr ""
|
||||
|
||||
|
||||
+2909
-3822
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-11-07 14:00+0000\n"
|
||||
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Confirmando el pago…"
|
||||
|
||||
@@ -162,15 +162,15 @@ msgstr "Órdenes pagadas"
|
||||
msgid "Total revenue"
|
||||
msgstr "Ingresos totales"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Contactando con Stripe…"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Contactando con el banco…"
|
||||
|
||||
@@ -535,46 +535,46 @@ msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
"El archivo PDF de fondo no ha podido ser cargado debido al siguiente motivo:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Grupo de objetos"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Objeto de texto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Área para código de barras"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Área de imagen"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Proveído por pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Objeto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Diseño del ticket"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "El guardado falló."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
"Ha habido un error mientras se cargaba el archivo PDF, por favor, intente de "
|
||||
"nuevo."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "¿Realmente desea salir del editor sin haber guardado sus cambios?"
|
||||
|
||||
@@ -608,40 +608,40 @@ msgstr ""
|
||||
"Tu color tiene mal contraste para un texto con fondo blanco, por favor, "
|
||||
"escoge un tono más oscuro."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Consultar búsqueda"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Solamente seleccionados"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Usar un nombre diferente internamente"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Click para cerrar"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "¡Tienes cambios sin guardar!"
|
||||
|
||||
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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-"
|
||||
@@ -141,9 +141,9 @@ msgid "Continue"
|
||||
msgstr "Jatka"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Maksuasi vahvistetaan …"
|
||||
|
||||
@@ -165,15 +165,15 @@ msgstr "Maksetut tilaukset"
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Summa"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -538,46 +538,46 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Tekstiobjekti"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Viivakoodialue"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
#, fuzzy
|
||||
#| msgid "Barcode area"
|
||||
msgid "Image area"
|
||||
msgstr "Viivakoodialue"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Tallennus epäonnistui."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -607,40 +607,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Kaikki"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Käytä toista nimeä sisäisesti"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Sulje klikkaamalla"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Sinulla on tallentamattomia muutoksia!"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: French\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-09-11 10:00+0000\n"
|
||||
"Last-Translator: Ronan LE MEILLAT <ronan.le_meillat@highcanfly.club>\n"
|
||||
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
|
||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
||||
msgstr "Continuer"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Confirmation de votre paiement…"
|
||||
|
||||
@@ -159,15 +159,15 @@ msgstr "Commandes payées"
|
||||
msgid "Total revenue"
|
||||
msgstr "Total des revenus"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Communication avec Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Communication avec votre banque …"
|
||||
|
||||
@@ -535,45 +535,45 @@ msgstr ""
|
||||
"Le fichier PDF généré en arrière-plan n'a pas pu être chargé pour la raison "
|
||||
"suivante :"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Groupe d'objets"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Objet texte"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Zone de code-barres"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Zone d'image"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Propulsé par pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Objet"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Conception des billets"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "L'enregistrement a échoué."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
"Erreur lors du téléchargement de votre fichier PDF, veuillez réessayer."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
"Voulez-vous vraiment quitter l'éditeur sans sauvegarder vos modifications ?"
|
||||
@@ -607,40 +607,40 @@ msgstr ""
|
||||
"Votre choix de couleur n'a pas un bon contraste avec du texte sur un fond "
|
||||
"blanc, SVP choisissez un ton plus sombre."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Requête de recherche"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Tous"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Aucun"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Seuls les sélectionnés"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Utiliser un nom différent en interne"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Cliquez pour fermer"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Vous avez des modifications non sauvegardées !"
|
||||
|
||||
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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-"
|
||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Confirmando o pagamento…"
|
||||
|
||||
@@ -162,15 +162,15 @@ msgstr "Pedidos pagados"
|
||||
msgid "Total revenue"
|
||||
msgstr "Ingresos totais"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Contactando con Stripe…"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Contactando co banco…"
|
||||
|
||||
@@ -538,45 +538,45 @@ msgstr "QR de validación"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "O arquivo PDF de fondo non se puido cargar polo motivo seguinte:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Grupo de obxectos"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Obxecto de texto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Área para código de barras"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Área de imaxe"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Desenvolto por Pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Obxecto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Deseño do tícket"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "O gardado fallou."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
"Houbo un erro mentres se cargaba o arquivo PDF. Por favor, inténteo de novo."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "Realmente desexa saír do editor sen gardar os cambios?"
|
||||
|
||||
@@ -610,40 +610,40 @@ msgstr ""
|
||||
"A túa cor ten mal contraste para un texto con fondo branco. Por favor, "
|
||||
"escolle un ton máis escuro."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Consultar unha procura"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Ningún"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Soamente seleccionados"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Usar un nome diferente internamente"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Click para cerrar"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Tes cambios sen gardar!"
|
||||
|
||||
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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/"
|
||||
@@ -137,9 +137,9 @@ msgid "Continue"
|
||||
msgstr "המשך"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "מאמת את התשלום שלך…"
|
||||
|
||||
@@ -161,15 +161,15 @@ msgstr "הזמנות ששולמו"
|
||||
msgid "Total revenue"
|
||||
msgstr "הכנסה כוללת"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "סה\"כ"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "יוצר קשר עם הבנק שלך…"
|
||||
|
||||
@@ -523,44 +523,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -590,40 +590,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -135,9 +135,9 @@ msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr ""
|
||||
|
||||
@@ -159,15 +159,15 @@ msgstr ""
|
||||
msgid "Total revenue"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr ""
|
||||
|
||||
@@ -515,44 +515,44 @@ msgstr ""
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
|
||||
@@ -582,40 +582,40 @@ msgid ""
|
||||
"darker shade."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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-"
|
||||
@@ -141,9 +141,9 @@ msgid "Continue"
|
||||
msgstr "Folytatás"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "A fizetés megerősítése…"
|
||||
|
||||
@@ -165,15 +165,15 @@ msgstr "Kifizetett megrendelések"
|
||||
msgid "Total revenue"
|
||||
msgstr "Teljes bevétel"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Kapcsolatfelvétel Stripe-pal…"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Teljes"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Kapcsolatfelvétel a bankjával…"
|
||||
|
||||
@@ -558,46 +558,46 @@ msgstr "Check in QR"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "A PDF háttér fájl nem tölthető be a következők miatt:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "tárgy csoport"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Szöveg"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Vonalkód terület"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
#, fuzzy
|
||||
#| msgid "Barcode area"
|
||||
msgid "Image area"
|
||||
msgstr "Vonalkód terület"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "pretix által működtetett"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "objektum"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Jegy design"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Mentés sikertelen."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "Hiba a PDF fájl feltöltése közben, próbálja újra."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "Biztosan ki akar lépni a szerkesztőből a változtatások mentése nélkül?"
|
||||
|
||||
@@ -630,40 +630,40 @@ msgstr ""
|
||||
"A választott színek kontrasztja elégtelen, kérjük válassz sötétebb "
|
||||
"árnyalatot."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Összes"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Semmi"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Használj másik nevet"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Bezárásért kattints"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Mentetlen változtatások!"
|
||||
|
||||
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-09-20 14:01+0000\n"
|
||||
"Last-Translator: Mahdia Aliyy <mahdlyy.k@gmail.com>\n"
|
||||
"Language-Team: Indonesian <https://translate.pretix.eu/projects/pretix/"
|
||||
@@ -140,9 +140,9 @@ msgid "Continue"
|
||||
msgstr "Lanjutkan"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Mengonfirmasi pembayaran Anda…"
|
||||
|
||||
@@ -164,15 +164,15 @@ msgstr "Pesanan terbayar"
|
||||
msgid "Total revenue"
|
||||
msgstr "Total pendapatan"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Menghubungi Stripe…"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Menghubungi bank Anda…"
|
||||
|
||||
@@ -538,44 +538,44 @@ msgstr "QR masuk"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "File latar belakang PDF tidak dapat dimuat karena alasan berikut:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Sekelompok objek"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Objek teks"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Area kode batang"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Daerah gambar"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Didukung oleh pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Obyek"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Desain tiket"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Gagal menyimpan."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "Terjadi kesalahan saat mengunggah file PDF Anda, coba lagi."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr ""
|
||||
"Apakah Anda benar-benar ingin keluar dari editor tanpa menyimpan perubahan?"
|
||||
@@ -609,40 +609,40 @@ msgstr ""
|
||||
"Warna Anda memiliki kontras yang buruk untuk teks dengan latar belakang "
|
||||
"putih, harap pilih warna yang lebih gelap."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Permintaan pencarian"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Semua"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Tidak ada"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Hanya dipilih"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Gunakan nama yang berbeda secara internal"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Klik untuk menutup"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Anda memiliki perubahan yang belum disimpan!"
|
||||
|
||||
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+0000\n"
|
||||
"PO-Revision-Date: 2023-05-18 01:00+0000\n"
|
||||
"Last-Translator: M C <micasadmail@gmail.com>\n"
|
||||
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
|
||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
||||
msgstr "Continua"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "Stiamo processando il tuo pagamento …"
|
||||
|
||||
@@ -162,15 +162,15 @@ msgstr "Ordini pagati"
|
||||
msgid "Total revenue"
|
||||
msgstr "Ricavi totali"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "Sto contattando Stripe …"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "Totale"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "Sto contattando la tua banca …"
|
||||
|
||||
@@ -535,44 +535,44 @@ msgstr "Check-in con QR"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "Il file PDF di sfondo non può essere caricato per le seguenti ragioni:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "Gruppo di oggetti"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "Oggetto testo"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "Area codice a barra"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "Area immagini"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Powered by Pretix"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "Oggetto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "Design biglietto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "Salvataggio fallito."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "Errore durante il caricamento del tuo file PDF, prova di nuovo."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "Vuoi davvero abbandonare l'editor senza salvare le modifiche?"
|
||||
|
||||
@@ -604,40 +604,40 @@ msgid ""
|
||||
msgstr ""
|
||||
"Il colore scelto non ha un buon contrasto, per favore scegline uno più scuro."
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "Chiave di ricerca"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "Tutto"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "Nessuno"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "Solo i selezionati"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "Utilizza un nome diverso internamente"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "Clicca per chiudere"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "Hai cambiamenti non salvati!"
|
||||
|
||||
|
||||
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: 2024-01-11 10:07+0000\n"
|
||||
"POT-Creation-Date: 2023-11-28 14:51+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-"
|
||||
@@ -138,9 +138,9 @@ msgid "Continue"
|
||||
msgstr "次へ"
|
||||
|
||||
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:229
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:262
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:280
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:213
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:246
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:264
|
||||
msgid "Confirming your payment …"
|
||||
msgstr "お支払い内容の確認"
|
||||
|
||||
@@ -162,15 +162,15 @@ msgstr "支払い済みの注文"
|
||||
msgid "Total revenue"
|
||||
msgstr "売上合計"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:14
|
||||
msgid "Contacting Stripe …"
|
||||
msgstr "お問い合わせはこちら"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:71
|
||||
msgid "Total"
|
||||
msgstr "合計"
|
||||
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:236
|
||||
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:220
|
||||
msgid "Contacting your bank …"
|
||||
msgstr "銀行へ問い合わせ中…"
|
||||
|
||||
@@ -537,44 +537,44 @@ msgstr "チェックイン用QRコード"
|
||||
msgid "The PDF background file could not be loaded for the following reason:"
|
||||
msgstr "以下の理由によりPDFファイルの読み込みに失敗しました:"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:656
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:648
|
||||
msgid "Group of objects"
|
||||
msgstr "オブジェクトグループ"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:653
|
||||
msgid "Text object"
|
||||
msgstr "テキストオブジェクト"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:663
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:655
|
||||
msgid "Barcode area"
|
||||
msgstr "バーコードエリア"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:657
|
||||
msgid "Image area"
|
||||
msgstr "画像エリア"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:667
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:659
|
||||
msgid "Powered by pretix"
|
||||
msgstr "Pretixのイベントチケット売り場"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:669
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:661
|
||||
msgid "Object"
|
||||
msgstr "オブジェクト"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:673
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:665
|
||||
msgid "Ticket design"
|
||||
msgstr "チケットのデザイン"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:972
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:964
|
||||
msgid "Saving failed."
|
||||
msgstr "保存できませんでした。"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1033
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1083
|
||||
msgid "Error while uploading your PDF file, please try again."
|
||||
msgstr "PDFのアップロード中に問題が発生しました。再試行してください。"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
|
||||
#: pretix/static/pretixcontrol/js/ui/editor.js:1066
|
||||
msgid "Do you really want to leave the editor without saving your changes?"
|
||||
msgstr "変更内容を保存せずに編集を終了しますか?"
|
||||
|
||||
@@ -606,40 +606,40 @@ msgstr ""
|
||||
"このテキストカラーは白い背景とのコントラストがよくありません。暗い色に選び直"
|
||||
"してください。"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:473
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:493
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:468
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:488
|
||||
msgid "Search query"
|
||||
msgstr "検索ワード"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:486
|
||||
msgid "All"
|
||||
msgstr "全"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:492
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:487
|
||||
msgid "None"
|
||||
msgstr "ない"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:496
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:491
|
||||
msgid "Selected only"
|
||||
msgstr "選択したもののみ"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:783
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:778
|
||||
msgid "Enter page number between 1 and %(max)s."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:786
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:781
|
||||
msgid "Invalid page number."
|
||||
msgstr ""
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:944
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:939
|
||||
msgid "Use a different name internally"
|
||||
msgstr "内部で別の名前を使用してください"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:984
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:979
|
||||
msgid "Click to close"
|
||||
msgstr "クリックして閉じる"
|
||||
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1059
|
||||
#: pretix/static/pretixcontrol/js/ui/main.js:1054
|
||||
msgid "You have unsaved changes!"
|
||||
msgstr "保存されていない変更があります!"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user