Compare commits

...

41 Commits

Author SHA1 Message Date
Raphael Michel
81a16043b3 Add exporter for list of products 2022-07-05 12:22:24 +02:00
Raphael Michel
76e8cc42c2 Update pyjwt requirement from ==2.0.* to ==2.4.* 2022-07-04 11:04:01 +02:00
dependabot[bot]
d22feada57 Bump @babel/core from 7.18.2 to 7.18.6 in /src/pretix/static/npm_dir
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.2 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 11:00:53 +02:00
dependabot[bot]
c792621bcb Bump rollup from 2.75.5 to 2.75.7 in /src/pretix/static/npm_dir
Bumps [rollup](https://github.com/rollup/rollup) from 2.75.5 to 2.75.7.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.75.5...v2.75.7)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 11:00:44 +02:00
Richard Schreiber
d9a58cf27f Fix timezone in email placeholder event_admission_time 2022-07-04 10:58:28 +02:00
dependabot[bot]
79ba2185fd Bump @babel/preset-env in /src/pretix/static/npm_dir
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.2 to 7.18.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 10:18:12 +02:00
dependabot[bot]
fcf4750d5f Bump vue and vue-template-compiler in /src/pretix/static/npm_dir
Bumps [vue](https://github.com/vuejs/core) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.6.14 to 2.7.0
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits)

Updates `vue-template-compiler` from 2.6.14 to 2.7.0
- [Release notes](https://github.com/vuejs/vue/releases)
- [Changelog](https://github.com/vuejs/vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.14...v2.7.0)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: vue-template-compiler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 10:18:01 +02:00
Raphael Michel
5c56139b56 PPv2: Fix crash in error handling of isu_return (PRETIXEU-6ZR) 2022-07-04 09:46:56 +02:00
Raphael Michel
1f8da968ba OrderPayment.fail: Allow to add custom log_data 2022-07-04 09:46:46 +02:00
Raphael Michel
6ee034784d Fix crash in Order.payment_term_last (PRETIXEU-6ZK) 2022-07-04 09:36:55 +02:00
Raphael Michel
1ab701c100 Update texts claiming the Android app cannot to signed barcodes 2022-07-04 09:16:13 +02:00
Raphael Michel
f0661fb11c Bump to 4.12.0.dev0 2022-07-01 10:48:16 +02:00
Raphael Michel
443283de66 Fix check-manifest errors 2022-07-01 10:47:33 +02:00
Raphael Michel
a4a9c07506 Bump version to 4.11.0 2022-07-01 10:36:06 +02:00
Raphael Michel
866cd1f0e5 Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (4760 of 4760 strings)

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

powered by weblate
2022-07-01 10:35:21 +02:00
Raphael Michel
f539bf9b13 Translations: Update German
Currently translated at 100.0% (4760 of 4760 strings)

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

powered by weblate
2022-07-01 10:35:21 +02:00
Raphael Michel
c016bcdb1c Update wordlist for German translation 2022-07-01 10:13:40 +02:00
Raphael Michel
f2fcf8fb11 Update po files
[CI skip]

Signed-off-by: Raphael Michel <michel@rami.io>
2022-07-01 09:50:23 +02:00
Janine Steitz
243a94723e Translations: Update Italian
Currently translated at 18.0% (857 of 4748 strings)

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

powered by weblate
2022-07-01 09:48:34 +02:00
Yang JianCheng
2437692e69 Translations: Update Chinese (Simplified)
Currently translated at 63.1% (2997 of 4748 strings)

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

powered by weblate
2022-07-01 09:48:34 +02:00
Martin Gross
af27154d8d PP/PPv2: Fix display of retry-message on pending captures (Fixes: PRETIXEU-6ZF) 2022-06-29 16:38:34 +02:00
Martin Gross
7f0604ff8b PP/PPv2: Fix display of retry-message on pending captures 2022-06-29 15:41:52 +02:00
Richard Schreiber
20e281d0a4 Fix: handle ProtectedError when deleting a team (Z#23102243) 2022-06-28 10:01:15 +02:00
Richard Schreiber
b8761b3b37 Banktransfer: add help-text to name of account holder 2022-06-28 09:23:19 +02:00
Raphael Michel
ca860f73c2 Include Transaction in Event.delete_all_orders 2022-06-27 12:44:12 +02:00
Hari Har Wolfer
8326f762ab Translations: Update French
Currently translated at 47.7% (2267 of 4748 strings)

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

powered by weblate
2022-06-27 12:42:09 +02:00
Anna-itk
0d8a4c1f4d Translations: Update Danish
Currently translated at 36.2% (1720 of 4748 strings)

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

powered by weblate
2022-06-27 12:42:09 +02:00
fyksen
bfc9773142 Translations: Update Norwegian Bokmål
Currently translated at 100.0% (200 of 200 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nb_NO/

powered by weblate
2022-06-27 12:42:09 +02:00
Mathias Moen
f141a27cc2 Translations: Update Norwegian Bokmål
Currently translated at 100.0% (200 of 200 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nb_NO/

powered by weblate
2022-06-27 12:42:09 +02:00
fyksen
d1c9aa47f5 Translations: Update Norwegian Bokmål
Currently translated at 7.2% (343 of 4748 strings)

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

powered by weblate
2022-06-27 12:42:09 +02:00
Mathias Moen
6fbca2e55f Translations: Update Norwegian Bokmål
Currently translated at 3.6% (175 of 4748 strings)

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

powered by weblate
2022-06-27 12:42:09 +02:00
Mathias Moen
a3eb59de36 Translations: Update Norwegian Bokmål
Currently translated at 3.6% (173 of 4748 strings)

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

powered by weblate
2022-06-27 12:42:09 +02:00
fyksen
e87548becd Translations: Update Norwegian Bokmål
Currently translated at 3.6% (173 of 4748 strings)

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

powered by weblate
2022-06-27 12:42:09 +02:00
Mathias Moen
82a79d9a4a Translations: Update Norwegian Bokmål
Currently translated at 99.5% (199 of 200 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nb_NO/

powered by weblate
2022-06-27 12:42:09 +02:00
fyksen
0200c3b243 Translations: Update Norwegian Bokmål
Currently translated at 99.5% (199 of 200 strings)

Translation: pretix/pretix (JavaScript parts)
Translate-URL: https://translate.pretix.eu/projects/pretix/pretix-js/nb_NO/

powered by weblate
2022-06-27 12:42:09 +02:00
Raphael Michel
5a6b7d783b API: Fix order total after order change operation (#2700) 2022-06-27 12:41:54 +02:00
Raphael Michel
c6c8e00f43 Bank transfer: Fix crash on empty date
Fixes PRETIXEU-6YN
2022-06-27 12:26:15 +02:00
Raphael Michel
127eb08f19 Fix invalid link name
Fixes PRETIXEU-6YM
2022-06-27 12:25:19 +02:00
Raphael Michel
e6e5c8f733 Fix validation of total name length
Fixes PRETIXEU-6XM
2022-06-27 12:15:48 +02:00
Richard Schreiber
e62a5e18a2 PDF render: enable word-wrap on hyphens (Z#23101879) 2022-06-21 10:23:48 +02:00
Richard Schreiber
550cb28a0e PayPal2: improve error-logging in isu_return 2022-06-20 14:27:41 +02:00
97 changed files with 31031 additions and 27692 deletions

View File

@@ -78,7 +78,7 @@ Synchronization setting any
----------------------------------------------- ----------------------------------- ----------------------------------------------------------------------- -----------------------------------------------------------------------
Ticket secrets any Random Signed Random Signed
=============================================== =================================== =================================== =================================== ================================= =====================================
Scenario supported on platforms Android, Desktop, iOS Android, Desktop, iOS Android, Desktop Android, Desktop Android, Desktop
Scenario supported on platforms Android, Desktop, iOS Android, Desktop, iOS Android, Desktop Android, Desktop, iOS Android, Desktop, iOS
Synchronization speed for large data sets slow slow fast fast
Tickets can be scanned yes yes yes no yes
Ticket is valid after sale immediately next sync (~5 minutes) immediately never immediately

View File

@@ -14,6 +14,8 @@ recursive-include pretix/plugins/manualpayment/templates *
recursive-include pretix/plugins/manualpayment/static *
recursive-include pretix/plugins/paypal/templates *
recursive-include pretix/plugins/paypal/static *
recursive-include pretix/plugins/paypal2/templates *
recursive-include pretix/plugins/paypal2/static *
recursive-include pretix/plugins/pretixdroid/templates *
recursive-include pretix/plugins/pretixdroid/static *
recursive-include pretix/plugins/sendmail/templates *

View File

@@ -19,4 +19,4 @@
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
__version__ = "4.11.0.dev0"
__version__ = "4.12.0.dev0"

View File

@@ -475,8 +475,11 @@ def base_placeholders(sender, **kwargs):
),
SimpleFunctionalMailTextPlaceholder(
'event_admission_time', ['event_or_subevent'],
lambda event_or_subevent: date_format(event_or_subevent.date_admission, 'TIME_FORMAT') if event_or_subevent.date_admission else '',
lambda event: date_format(event.date_admission, 'TIME_FORMAT') if event.date_admission else '',
lambda event_or_subevent:
date_format(event_or_subevent.date_admission.astimezone(event_or_subevent.timezone), 'TIME_FORMAT')
if event_or_subevent.date_admission
else '',
lambda event: date_format(event.date_admission.astimezone(event.timezone), 'TIME_FORMAT') if event.date_admission else '',
),
SimpleFunctionalMailTextPlaceholder(
'subevent', ['waiting_list_entry', 'event'],

View File

@@ -23,6 +23,7 @@ from .answers import * # noqa
from .dekodi import * # noqa
from .events import * # noqa
from .invoices import * # noqa
from .items import * # noqa
from .json import * # noqa
from .mail import * # noqa
from .orderlist import * # noqa

View File

@@ -0,0 +1,218 @@
#
# This 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.db.models import Prefetch
from django.dispatch import receiver
from django.utils.formats import date_format
from django.utils.translation import gettext_lazy as _
from openpyxl.styles import Alignment
from openpyxl.utils import get_column_letter
from ..channels import get_all_sales_channels
from ..exporter import ListExporter
from ..models import ItemMetaValue
from ..signals import register_data_exporters
from ...helpers.safe_openpyxl import SafeCell
def _max(a1, a2):
if a1 and a2:
return max(a1, a2)
return a1 or a2
def _min(a1, a2):
if a1 and a2:
return min(a1, a2)
return a1 or a2
class ItemDataExporter(ListExporter):
identifier = 'itemdata'
verbose_name = _('Product data')
def iterate_list(self, form_data):
locales = self.event.settings.locales
scs = get_all_sales_channels()
header = [
_("Product ID"),
_("Variation ID"),
_("Product category"),
_("Internal name"),
]
for l in locales:
header.append(
_("Item name") + f" ({l})"
)
for l in locales:
header.append(
_("Variation") + f" ({l})"
)
header += [
_("Active"),
_("Sales channels"),
_("Default price"),
_("Free price input"),
_("Sales tax"),
_("Is an admission ticket"),
_("Generate tickets"),
_("Waiting list"),
_("Available from"),
_("Available until"),
_("This product can only be bought using a voucher."),
_("This product will only be shown if a voucher matching the product is redeemed."),
_("Buying this product requires approval"),
_("Only sell this product as part of a bundle"),
_("Allow product to be canceled or changed"),
_("Minimum amount per order"),
_("Maximum amount per order"),
_("Requires special attention"),
_("Original price"),
_("This product is a gift card"),
_("Require a valid membership"),
_("Hide without a valid membership"),
]
props = list(self.event.item_meta_properties.all())
for p in props:
header.append(p.name)
if form_data["_format"] == "xlsx":
row = []
for h in header:
c = SafeCell(self.__ws, value=h)
c.alignment = Alignment(wrap_text=True, vertical='top')
row.append(c)
else:
row = header
yield row
for i in self.event.items.prefetch_related(
'variations',
Prefetch(
'meta_values',
ItemMetaValue.objects.select_related('property'),
to_attr='meta_values_cached'
)
).select_related('category', 'tax_rule'):
m = i.meta_data
vars = list(i.variations.all())
if vars:
for v in vars:
row = [
i.pk,
v.pk,
str(i.category) if i.category else "",
i.internal_name or "",
]
for l in locales:
row.append(i.name.localize(l))
for l in locales:
row.append(v.value.localize(l))
row += [
_("Yes") if i.active and v.active else "",
", ".join([str(sn.verbose_name) for s, sn in scs.items() if s in i.sales_channels and s in v.sales_channels]),
v.default_price or i.default_price,
_("Yes") if i.free_price else "",
str(i.tax_rule) if i.tax_rule else "",
_("Yes") if i.admission else "",
_("Yes") if i.generate_tickets else "",
_("Yes") if i.allow_waitinglist else "",
date_format(_max(i.available_from, v.available_from).astimezone(self.timezone),
"SHORT_DATETIME_FORMAT") if i.available_from or v.available_from else "",
date_format(_min(i.available_until, v.available_until).astimezone(self.timezone),
"SHORT_DATETIME_FORMAT") if i.available_until or v.available_until else "",
_("Yes") if i.require_voucher else "",
_("Yes") if i.hide_without_voucher or v.hide_without_voucher else "",
_("Yes") if i.require_approval or v.require_approval else "",
_("Yes") if i.require_bundling else "",
_("Yes") if i.allow_cancel else "",
i.min_per_order if i.min_per_order is not None else "",
i.max_per_order if i.max_per_order is not None else "",
_("Yes") if i.checkin_attention else "",
v.original_price or i.original_price or "",
_("Yes") if i.issue_giftcard else "",
_("Yes") if i.require_membership or v.require_membership else "",
_("Yes") if i.require_membership_hidden or v.require_membership_hidden else "",
]
else:
row = [
i.pk,
"",
str(i.category) if i.category else "",
i.internal_name or "",
]
for l in locales:
row.append(i.name.localize(l))
for l in locales:
row.append("")
row += [
_("Yes") if i.active else "",
", ".join([str(sn.verbose_name) for s, sn in scs.items() if s in i.sales_channels]),
i.default_price,
_("Yes") if i.free_price else "",
str(i.tax_rule) if i.tax_rule else "",
_("Yes") if i.admission else "",
_("Yes") if i.generate_tickets else "",
_("Yes") if i.allow_waitinglist else "",
date_format(i.available_from.astimezone(self.timezone),
"SHORT_DATETIME_FORMAT") if i.available_from else "",
date_format(i.available_until.astimezone(self.timezone),
"SHORT_DATETIME_FORMAT") if i.available_until else "",
_("Yes") if i.require_voucher else "",
_("Yes") if i.hide_without_voucher else "",
_("Yes") if i.require_approval else "",
_("Yes") if i.require_bundling else "",
_("Yes") if i.allow_cancel else "",
i.min_per_order if i.min_per_order is not None else "",
i.max_per_order if i.max_per_order is not None else "",
_("Yes") if i.checkin_attention else "",
i.original_price or "",
_("Yes") if i.issue_giftcard else "",
_("Yes") if i.require_membership else "",
_("Yes") if i.require_membership_hidden else "",
]
row += [
m.get(p.name, '') for p in props
]
yield row
def get_filename(self):
return '{}_products'.format(self.events.first().organizer.slug)
def prepare_xlsx_sheet(self, ws):
self.__ws = ws
ws.freeze_panes = 'A1'
ws.column_dimensions['C'].width = 25
ws.column_dimensions['D'].width = 25
for i in range(len(self.event.settings.locales)):
ws.column_dimensions[get_column_letter(5 + 2 * i + 0)].width = 25
ws.column_dimensions[get_column_letter(5 + 2 * i + 1)].width = 25
ws.column_dimensions[get_column_letter(5 + 2 * len(self.event.settings.locales) + 1)].width = 25
ws.row_dimensions[1].height = 40
@receiver(register_data_exporters, dispatch_uid="exporter_itemdata")
def register_itemdata_exporter(sender, **kwargs):
return ItemDataExporter

View File

@@ -253,7 +253,7 @@ class NamePartsFormField(forms.MultiValueField):
if self.require_all_fields and not all(v for v in value):
raise forms.ValidationError(self.error_messages['incomplete'], code='required')
if sum(len(v) for v in value if v) > 250:
if sum(len(v) for v in value.values() if v) > 250:
raise forms.ValidationError(_('Please enter a shorter name.'), code='max_length')
return value

View File

@@ -608,11 +608,14 @@ class Event(EventMixin, LoggedModel):
return super().presale_has_ended
def delete_all_orders(self, really=False):
from .orders import OrderFee, OrderPayment, OrderPosition, OrderRefund
from .orders import (
OrderFee, OrderPayment, OrderPosition, OrderRefund, Transaction,
)
if not really:
raise TypeError("Pass really=True as a parameter.")
Transaction.objects.filter(order__event=self).delete()
OrderPosition.all.filter(order__event=self, addon_to__isnull=False).delete()
OrderPosition.all.filter(order__event=self).delete()
OrderFee.objects.filter(order__event=self).delete()

View File

@@ -843,7 +843,7 @@ class Order(LockModel, LoggedModel):
if terms:
term_last = min(terms)
else:
term_last = None
return None
else:
term_last = term_last.datetime(self.event).date()
term_last = make_aware(datetime.combine(
@@ -1588,7 +1588,7 @@ class OrderPayment(models.Model):
if status_change:
self.order.create_transactions()
def fail(self, info=None, user=None, auth=None):
def fail(self, info=None, user=None, auth=None, log_data=None):
"""
Marks the order as failed and sets info to ``info``, but only if the order is in ``created`` or ``pending``
state. This is equivalent to setting ``state`` to ``OrderPayment.PAYMENT_STATE_FAILED`` and logging a failure,
@@ -1616,6 +1616,7 @@ class OrderPayment(models.Model):
'local_id': self.local_id,
'provider': self.provider,
'info': info,
'data': log_data,
}, user=user, auth=auth)
def confirm(self, count_waitinglist=True, send_mail=True, force=False, user=None, auth=None, mail_text='',

View File

@@ -831,9 +831,10 @@ class Renderer:
textColor=Color(o['color'][0] / 255, o['color'][1] / 255, o['color'][2] / 255),
alignment=align_map[o['align']]
)
# add an almost-invisible space &hairsp; after hyphens as word-wrap in ReportLab only works on space chars
text = conditional_escape(
self._get_text_content(op, order, o) or "",
).replace("\n", "<br/>\n")
).replace("\n", "<br/>\n").replace("-", "-&hairsp;")
# reportlab does not support RTL, ligature-heavy scripts like Arabic. Therefore, we use ArabicReshaper
# to resolve all ligatures and python-bidi to switch RTL texts.

View File

@@ -143,8 +143,8 @@ class Sig1TicketSecretGenerator(BaseTicketSecretGenerator):
The resulting string is REVERSED, to avoid all secrets of same length beginning with the same 10
characters, which would make it impossible to search for secrets manually.
"""
verbose_name = _('pretix signature scheme 1 (for very large events, does not work with pretixSCAN on iOS and '
'changes semantics of offline scanning please refer to documentation or support for details)')
verbose_name = _('pretix signature scheme 1 (for very large events, changes semantics of offline scanning '
'please refer to documentation or support for details)')
identifier = 'pretix_sig1'
use_revocation_list = True

View File

@@ -2304,6 +2304,11 @@ class OrderChangeManager:
# Do nothing
return
# Clear prefetched objects cache of order. We're going to modify the positions and fees and we have no guarantee
# that every operation tuple points to a position/fee instance that has been fetched from the same object cache,
# so it's dangerous to keep the cache around.
self.order._prefetched_objects_cache = {}
# finally, incorporate difference in payment fees
self._payment_fee_diff()

View File

@@ -48,12 +48,9 @@
Make sure to always use the latest version of our scanning apps for these options to work.
{% endblocktrans %}
<br>
<strong>
{% blocktrans trimmed %}
If you make use of these advanced options, we recommend using our Android and Desktop apps.
Custom check-in rules do not work offline with our iOS scanning app.
{% endblocktrans %}
</strong>
{% blocktrans trimmed %}
If you make use of these advanced options, we recommend using our Android and Desktop apps.
{% endblocktrans %}
</div>
{% bootstrap_field form.allow_multiple_entries layout="control" %}

View File

@@ -10,7 +10,7 @@
<p>{% blocktrans %}You cannot delete the discount <strong>{{ discount }}</strong> because it already has
been used as part of an order.{% endblocktrans %}</p>
<div class="form-group submit-group">
<a href="{% url "control:event.discounts" organizer=request.event.organizer.slug event=request.event.slug %}"
<a href="{% url "control:event.items.discounts" organizer=request.event.organizer.slug event=request.event.slug %}"
class="btn btn-default btn-cancel">
{% trans "Cancel" %}
</a>

View File

@@ -642,15 +642,26 @@ class TeamDeleteView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
def delete(self, request, *args, **kwargs):
success_url = self.get_success_url()
self.object = self.get_object()
if self.is_allowed():
self.object.log_action('pretix.team.deleted', user=self.request.user)
self.object.delete()
messages.success(request, _('The selected team has been deleted.'))
return redirect(success_url)
else:
if not self.is_allowed():
messages.error(request, _('The selected team cannot be deleted.'))
return redirect(success_url)
try:
self.object.log_action('pretix.team.deleted', user=self.request.user)
self.object.delete()
except ProtectedError:
messages.error(
self.request,
_(
'The team could not be deleted as some constraints (e.g. data created by '
'plug-ins) do not allow it.'
)
)
return redirect(success_url)
messages.success(request, _('The selected team has been deleted.'))
return redirect(success_url)
class TeamMemberView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin, DetailView):
template_name = 'pretixcontrol/organizers/team_members.html'

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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/"
@@ -376,7 +376,7 @@ msgstr ""
"نعمل الآن على ارسال طلبك إلى الخادم، إذا أستغرقت العملية أكثر من دقيقة، يرجى "
"التحقق من اتصالك بالإنترنت ثم أعد تحميل الصفحة مرة أخرى."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "أغلق الرسالة"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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-"
@@ -359,7 +359,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2021-12-06 23:00+0000\n"
"Last-Translator: Ondřej Sokol <osokol@treesoft.cz>\n"
"Language-Team: Czech <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -373,7 +373,7 @@ msgstr ""
"prosím zkontrolujte své internetové připojení a znovu načtěte stránku a "
"zkuste to znovu."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Zavřít zprávu"

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-01 13:36+0000\n"
"Last-Translator: Anna-itk <abc@aarhus.dk>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -398,7 +398,7 @@ msgstr ""
"Din forespørgsel bliver sendt til serveren. Hvis det tager mere end et "
"minut, så tjek din internetforbindelse, genindlæs siden og prøv igen."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Luk besked"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-28 18:04+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -374,7 +374,7 @@ msgstr ""
"dauert, prüfen Sie bitte Ihre Internetverbindung. Danach können Sie diese "
"Seite neu laden und es erneut versuchen."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Schließen"

View File

@@ -153,6 +153,7 @@ Kosovo
landesspezifische
Lead
Leaflet
Linktext
loszulegen
Ltd
max

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-28 18:04+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
@@ -373,7 +373,7 @@ msgstr ""
"dauert, prüfe bitte deine Internetverbindung. Danach kannst du diese Seite "
"neu laden und es erneut versuchen."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Schließen"

View File

@@ -153,6 +153,7 @@ Kosovo
landesspezifische
Lead
Leaflet
Linktext
loszulegen
Ltd
max

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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"
@@ -358,7 +358,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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/"
@@ -405,7 +405,7 @@ msgstr ""
"περισσότερο από ένα λεπτό, ελέγξτε τη σύνδεσή σας στο διαδίκτυο και στη "
"συνέχεια επαναλάβετε τη φόρτωση αυτής της σελίδας και δοκιμάστε ξανά."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Κλείσιμο μηνύματος"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2021-11-25 21:00+0000\n"
"Last-Translator: Ismael Menéndez Fernández <ismael.menendez@balidea.com>\n"
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -373,7 +373,7 @@ msgstr ""
"minuto, por favor, revise su conexión a Internet, recargue la página e "
"intente nuevamente."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Cerrar mensaje"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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-"
@@ -375,7 +375,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Sulje viesti"

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: French\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-07 10:40+0000\n"
"Last-Translator: Eva-Maria Obermann <obermann@rami.io>\n"
"Language-Team: French <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -398,7 +398,7 @@ msgstr ""
"d'une minute, veuillez vérifier votre connexion Internet, puis recharger "
"cette page et réessayer."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Fermer le message"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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-"
@@ -373,7 +373,7 @@ msgstr ""
"dun minuto, por favor, revise a súa conexión a Internet, recargue a páxina e "
"inténteo de novo."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Cerrar mensaxe"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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/"
@@ -362,7 +362,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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-"
@@ -398,7 +398,7 @@ msgstr ""
"hosszabb időt vesz igénybe, kérjük ellenőrizze az internetkapcsolatát, "
"frissítse az oldalt és próbálkozzon újra."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Üzenet bezárása"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-05-08 19:00+0000\n"
"Last-Translator: Emanuele Signoretta <signorettae@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -375,7 +375,7 @@ msgstr ""
"più di un minuto si prega di verificare la connessione internet e ricaricare "
"la pagina per riprovare l'invio."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Messaggio di chiusura"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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-"
@@ -372,7 +372,7 @@ msgstr ""
"ターネット接続を確認してください。確認完了後、ウェブページを再度読込み、再試"
"行してください。"
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "閉じる"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-06 03:00+0000\n"
"Last-Translator: Liga V <lerning_by_dreaming@gmx.de>\n"
"Language-Team: Latvian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -374,7 +374,7 @@ msgstr ""
"aizņem ilgāk kā vienu minūti, lūdzu, pārbaudiet savu interneta savienojumu, "
"pārlādējiet šo lapu un mēģiniet vēlreiz."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Aizvērt ziņu"

File diff suppressed because it is too large Load Diff

View File

@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"PO-Revision-Date: 2021-05-31 11:26+0000\n"
"Last-Translator: zackern <zacker@zacker.no>\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-06-20 02:00+0000\n"
"Last-Translator: fyksen <fredrik@fyksen.me>\n"
"Language-Team: Norwegian Bokmål <https://translate.pretix.eu/projects/pretix/"
"pretix-js/nb_NO/>\n"
"Language: nb_NO\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.6\n"
"X-Generator: Weblate 4.12.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -31,103 +31,103 @@ msgstr "Kommentar:"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:34
msgid "PayPal"
msgstr ""
msgstr "PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
msgid "Venmo"
msgstr ""
msgstr "Venmo"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:36
msgid "Apple Pay"
msgstr ""
msgstr "Apple Pay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:37
msgid "Itaú"
msgstr ""
msgstr "Itaú"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:38
msgid "PayPal Credit"
msgstr ""
msgstr "PayPal Credit"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:39
msgid "Credit Card"
msgstr ""
msgstr "Kredittkort"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:40
msgid "PayPal Pay Later"
msgstr ""
msgstr "PayPal Pay Later"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL"
msgstr ""
msgstr "iDEAL"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"
msgstr ""
msgstr "SEPA Direct Debit"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:43
msgid "Bancontact"
msgstr ""
msgstr "Bancontact"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:44
msgid "giropay"
msgstr ""
msgstr "giropay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:45
msgid "SOFORT"
msgstr ""
msgstr "SOFORT"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
msgid "eps"
msgstr ""
msgstr "eps"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
msgid "MyBank"
msgstr ""
msgstr "MyBank"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:48
msgid "Przelewy24"
msgstr ""
msgstr "Przelewy24"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:49
msgid "Verkkopankki"
msgstr ""
msgstr "Verkkopankki"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:50
msgid "PayU"
msgstr ""
msgstr "PayU"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:51
msgid "BLIK"
msgstr ""
msgstr "BLIK"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:52
msgid "Trustly"
msgstr ""
msgstr "Trustly"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:53
msgid "Zimpler"
msgstr ""
msgstr "Zimpler"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:54
msgid "Maxima"
msgstr ""
msgstr "Maxima"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:55
msgid "OXXO"
msgstr ""
msgstr "OXXO"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:56
msgid "Boleto"
msgstr ""
msgstr "Boleto"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:57
msgid "WeChat Pay"
msgstr ""
msgstr "WeChat Pay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:58
msgid "Mercado Pago"
msgstr ""
msgstr "Mercado Pago"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:157
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
@@ -142,7 +142,7 @@ msgstr "Bekrefter betalingen din…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:240
msgid "Payment method unavailable"
msgstr ""
msgstr "Betalingsmetode ikke tilgjengelig"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
@@ -176,7 +176,7 @@ msgstr "Velg en innsjekkingsliste"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:31
msgid "No active check-in lists found."
msgstr "Ingen aktive innsjekkingslister"
msgstr "Ingen aktive innsjekkingslister funnet."
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:32
msgid "Switch check-in list"
@@ -270,13 +270,11 @@ msgstr "Informasjon trengs"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:56
msgid "Unknown ticket"
msgstr ""
msgstr "Ukjent billett"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:57
#, fuzzy
#| msgid "Entry not allowed"
msgid "Ticket type not allowed here"
msgstr "Inngang ikke tillatt"
msgstr "Denne Billettypen er ikke lov ikke her"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:59
msgid "Entry not allowed"
@@ -284,7 +282,7 @@ msgstr "Inngang ikke tillatt"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:60
msgid "Ticket code revoked/changed"
msgstr ""
msgstr "Billettkode tilbakekalt/endret"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:61
msgid "Order canceled"
@@ -304,7 +302,7 @@ msgstr "Inne nå"
#: pretix/static/lightbox/js/lightbox.js:96
msgid "close"
msgstr ""
msgstr "lukk"
#: pretix/static/pretixbase/js/asynctask.js:43
#: pretix/static/pretixbase/js/asynctask.js:120
@@ -312,6 +310,8 @@ msgid ""
"Your request is currently being processed. Depending on the size of your "
"event, this might take up to a few minutes."
msgstr ""
"Din forespørsel blir prosessert. Dette kan ta minutter, men varierer ut fra "
"hvor stort arrangementet er."
#: pretix/static/pretixbase/js/asynctask.js:48
#: pretix/static/pretixbase/js/asynctask.js:125
@@ -334,7 +334,7 @@ msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:183
#: pretix/static/pretixcontrol/js/ui/mail.js:24
msgid "An error of type {code} occurred."
msgstr "En feil oppsto: {code}"
msgstr "En feil av type {code} oppsto."
#: pretix/static/pretixbase/js/asynctask.js:93
msgid ""
@@ -366,8 +366,10 @@ msgid ""
"than one minute, please check your internet connection and then reload this "
"page and try again."
msgstr ""
"Vi sender forespørslene dine til serveren. Hvis dette tar langre tid en ett "
"minutt, sjekk internett koblingen din og deretter last siden og prøv på nytt."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Lukk melding"
@@ -407,323 +409,322 @@ msgstr "Nåværende dato og tid"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:71
msgid "Current day of the week (1 = Monday, 7 = Sunday)"
msgstr ""
msgstr "Gjeldene ukedag (1 = Mandag, 7 = Søndag)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:75
#, fuzzy
msgid "Number of previous entries"
msgstr "Antall tidligere oppføringer"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:79
#, fuzzy
msgid "Number of previous entries since midnight"
msgstr "Antall tidligere oppføringer siden midnatt"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:83
#, fuzzy
msgid "Number of days with a previous entry"
msgstr "Antall dager med en tidligere oppføring"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:87
msgid "Minutes since last entry (-1 on first entry)"
msgstr ""
msgstr "Minutter siden siste oppføring (-1 på første oppføring)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:91
msgid "Minutes since first entry (-1 on first entry)"
msgstr ""
msgstr "Minutter siden første oppføring (-1 på første oppføring)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:112
msgid "All of the conditions below (AND)"
msgstr ""
msgstr "Alle betingelsene nedenfor (AND)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:113
msgid "At least one of the conditions below (OR)"
msgstr ""
msgstr "Minst en av betingelsene nedenfor (OR)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:114
msgid "Event start"
msgstr ""
msgstr "Event start"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:115
msgid "Event end"
msgstr ""
msgstr "Event slutt"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:116
msgid "Event admission"
msgstr ""
msgstr "Event inngang"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:117
msgid "custom date and time"
msgstr ""
msgstr "egendefinert dato og klokkeslett"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:118
msgid "custom time"
msgstr ""
msgstr "egendefinert tid"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:119
msgid "Tolerance (minutes)"
msgstr ""
msgstr "Toleranse (minutter)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:120
msgid "Add condition"
msgstr ""
msgstr "Legg til betingelse"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:121
msgid "minutes"
msgstr ""
msgstr "minutter"
#: pretix/static/pretixcontrol/js/ui/editor.js:71
msgid "Check-in QR"
msgstr ""
msgstr "Sjekk-in QR"
#: pretix/static/pretixcontrol/js/ui/editor.js:382
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
msgstr "PDF bakgrunnsfilen kunne ikke lastes av følgende årsak:"
#: pretix/static/pretixcontrol/js/ui/editor.js:630
msgid "Group of objects"
msgstr ""
msgstr "Gruppe med objekter"
#: pretix/static/pretixcontrol/js/ui/editor.js:636
msgid "Text object"
msgstr ""
msgstr "Tekst objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:638
msgid "Barcode area"
msgstr ""
msgstr "Strekkodeområde"
#: pretix/static/pretixcontrol/js/ui/editor.js:640
msgid "Image area"
msgstr ""
msgstr "Bildeområde"
#: pretix/static/pretixcontrol/js/ui/editor.js:642
msgid "Powered by pretix"
msgstr ""
msgstr "Drevet av pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:644
msgid "Object"
msgstr ""
msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:648
msgid "Ticket design"
msgstr ""
msgstr "Billett design"
#: pretix/static/pretixcontrol/js/ui/editor.js:938
msgid "Saving failed."
msgstr ""
msgstr "Lagring feilet."
#: pretix/static/pretixcontrol/js/ui/editor.js:988
#: pretix/static/pretixcontrol/js/ui/editor.js:1027
msgid "Error while uploading your PDF file, please try again."
msgstr ""
msgstr "Feil ved opplasting av PDF fil, prøv på nytt."
#: pretix/static/pretixcontrol/js/ui/editor.js:1012
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
msgstr "Vil du avslutte editoren uten å lagre endringene?"
#: pretix/static/pretixcontrol/js/ui/mail.js:19
msgid "An error has occurred."
msgstr ""
msgstr "En feil har oppstått."
#: pretix/static/pretixcontrol/js/ui/mail.js:54
msgid "Generating messages …"
msgstr ""
msgstr "Genererer meldinger…"
#: pretix/static/pretixcontrol/js/ui/main.js:107
msgid "Unknown error."
msgstr ""
msgstr "Ukjent feil."
#: pretix/static/pretixcontrol/js/ui/main.js:308
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
msgstr "Fargen du valgte har høy kontrast og er veldig enkel å lese!"
#: pretix/static/pretixcontrol/js/ui/main.js:312
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
msgstr "Fargen du valgte har grei kontrast og er ganske enkel å lese!"
#: pretix/static/pretixcontrol/js/ui/main.js:316
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
msgstr "Fargen du valgte har dårlig kontrast mot hvit, velg en mørkere farge."
#: pretix/static/pretixcontrol/js/ui/main.js:454
msgid "All"
msgstr ""
msgstr "Alle"
#: pretix/static/pretixcontrol/js/ui/main.js:455
msgid "None"
msgstr ""
msgstr "Ingen"
#: pretix/static/pretixcontrol/js/ui/main.js:456
msgid "Search query"
msgstr ""
msgstr "Søkeord"
#: pretix/static/pretixcontrol/js/ui/main.js:459
msgid "Selected only"
msgstr ""
msgstr "Kun valgte"
#: pretix/static/pretixcontrol/js/ui/main.js:886
msgid "Use a different name internally"
msgstr ""
msgstr "Bruk et annet navn internt"
#: pretix/static/pretixcontrol/js/ui/main.js:922
msgid "Click to close"
msgstr ""
msgstr "Klikk for å lukke"
#: pretix/static/pretixcontrol/js/ui/main.js:963
msgid "You have unsaved changes!"
msgstr ""
msgstr "Du har ikke-lagrede endringer!"
#: pretix/static/pretixcontrol/js/ui/orderchange.js:25
msgid "Calculating default price…"
msgstr ""
msgstr "Regner ut standardpris…"
#: pretix/static/pretixcontrol/js/ui/question.js:42
msgid "Others"
msgstr ""
msgstr "Andre"
#: pretix/static/pretixcontrol/js/ui/question.js:82
msgid "Count"
msgstr ""
msgstr "Tell"
#: pretix/static/pretixcontrol/js/ui/question.js:136
#: pretix/static/pretixpresale/js/ui/questions.js:269
msgid "Yes"
msgstr ""
msgstr "Ja"
#: pretix/static/pretixcontrol/js/ui/question.js:137
#: pretix/static/pretixpresale/js/ui/questions.js:269
msgid "No"
msgstr ""
msgstr "Nei"
#: pretix/static/pretixcontrol/js/ui/subevent.js:111
msgid "(one more date)"
msgid_plural "({num} more dates)"
msgstr[0] ""
msgstr[1] ""
msgstr[0] "(en mer dato)"
msgstr[1] "({num} flere datoer)"
#: pretix/static/pretixpresale/js/ui/cart.js:43
msgid ""
"The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available."
msgstr ""
"Varene i handlekurven din er ikke lenger reservert for deg. Du kan fortsatt "
"fullføre bestillingen din så lenge de er tilgjengelige."
#: pretix/static/pretixpresale/js/ui/cart.js:45
msgid "Cart expired"
msgstr ""
msgstr "Handlevognen har utløpt"
#: pretix/static/pretixpresale/js/ui/cart.js:50
msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Varene i handlekurven din er reservert for deg i ett minutt."
msgstr[1] "Varene i handlekurven din er reservert for deg i {num} minutter."
#: pretix/static/pretixpresale/js/ui/main.js:144
msgid "The organizer keeps %(currency)s %(amount)s"
msgstr ""
msgstr "Arrangøren beholder %(currency)s %(beløp)"
#: pretix/static/pretixpresale/js/ui/main.js:152
msgid "You get %(currency)s %(amount)s back"
msgstr ""
msgstr "Du mottar %(currency)s %(amount)s tilbake"
#: pretix/static/pretixpresale/js/ui/main.js:168
msgid "Please enter the amount the organizer can keep."
msgstr ""
msgstr "Vennligst skriv inn beløpet arrangøren kan beholde."
#: pretix/static/pretixpresale/js/ui/main.js:377
msgid "Please enter a quantity for one of the ticket types."
msgstr ""
msgstr "Vennligst skriv inn et antall for en av billetttypene."
#: pretix/static/pretixpresale/js/ui/main.js:413
msgid "required"
msgstr ""
msgstr "nødvendig"
#: pretix/static/pretixpresale/js/ui/main.js:516
#: pretix/static/pretixpresale/js/ui/main.js:535
msgid "Time zone:"
msgstr ""
msgstr "Tidssone:"
#: pretix/static/pretixpresale/js/ui/main.js:526
msgid "Your local time:"
msgstr ""
msgstr "Din lokale tid:"
#: pretix/static/pretixpresale/js/widget/widget.js:17
msgctxt "widget"
msgid "Sold out"
msgstr ""
msgstr "Utsolgt"
#: pretix/static/pretixpresale/js/widget/widget.js:18
msgctxt "widget"
msgid "Buy"
msgstr ""
msgstr "Kjøp"
#: pretix/static/pretixpresale/js/widget/widget.js:19
msgctxt "widget"
msgid "Register"
msgstr ""
msgstr "Registrer"
#: pretix/static/pretixpresale/js/widget/widget.js:20
msgctxt "widget"
msgid "Reserved"
msgstr ""
msgstr "Reservert"
#: pretix/static/pretixpresale/js/widget/widget.js:21
msgctxt "widget"
msgid "FREE"
msgstr ""
msgstr "GRATIS"
#: pretix/static/pretixpresale/js/widget/widget.js:22
msgctxt "widget"
msgid "from %(currency)s %(price)s"
msgstr ""
msgstr "fra %(currency)s %(price)s"
#: pretix/static/pretixpresale/js/widget/widget.js:23
msgctxt "widget"
msgid "incl. %(rate)s% %(taxname)s"
msgstr ""
msgstr "inkl. %(rate)s% %(taxname)s"
#: pretix/static/pretixpresale/js/widget/widget.js:24
msgctxt "widget"
msgid "plus %(rate)s% %(taxname)s"
msgstr ""
msgstr "pluss %(rate)s% %(taxname)s"
#: pretix/static/pretixpresale/js/widget/widget.js:25
msgctxt "widget"
msgid "incl. taxes"
msgstr ""
msgstr "Inkl. skatt"
#: pretix/static/pretixpresale/js/widget/widget.js:26
msgctxt "widget"
msgid "plus taxes"
msgstr ""
msgstr "pluss skatt"
#: pretix/static/pretixpresale/js/widget/widget.js:27
#, javascript-format
msgctxt "widget"
msgid "currently available: %s"
msgstr ""
msgstr "tilgjengelig for øyeblikket: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:28
msgctxt "widget"
msgid "Only available with a voucher"
msgstr ""
msgstr "Kun tilgjengelig med kupong"
#: pretix/static/pretixpresale/js/widget/widget.js:29
#, javascript-format
msgctxt "widget"
msgid "minimum amount to order: %s"
msgstr ""
msgstr "minimumsbeløp for bestilling: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:30
msgctxt "widget"
msgid "Close ticket shop"
msgstr ""
msgstr "Steng billettbutikken"
#: pretix/static/pretixpresale/js/widget/widget.js:31
msgctxt "widget"
msgid "The ticket shop could not be loaded."
msgstr ""
msgstr "Billettbutikken kunne ikke lastes."
#: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget"
@@ -731,16 +732,18 @@ msgid ""
"There are currently a lot of users in this ticket shop. Please open the shop "
"in a new tab to continue."
msgstr ""
"Det er for tiden mange brukere i denne billettbutikken. Åpne butikken i en "
"ny fane for å fortsette."
#: pretix/static/pretixpresale/js/widget/widget.js:34
msgctxt "widget"
msgid "Open ticket shop"
msgstr ""
msgstr "Åpne billettbutikk"
#: pretix/static/pretixpresale/js/widget/widget.js:35
msgctxt "widget"
msgid "The cart could not be created. Please try again later"
msgstr ""
msgstr "Handlekurven kunne ikke opprettes. Vennligst prøv igjen senere"
#: pretix/static/pretixpresale/js/widget/widget.js:36
msgctxt "widget"
@@ -748,11 +751,13 @@ msgid ""
"We could not create your cart, since there are currently too many users in "
"this ticket shop. Please click \"Continue\" to retry in a new tab."
msgstr ""
"Vi kunne ikke opprette din handlekurv, på grunn av for mange brukere i "
"billettshopen. Vennligst klikk «Fortsett» for å prøve på nytt i en ny fane."
#: pretix/static/pretixpresale/js/widget/widget.js:38
msgctxt "widget"
msgid "Waiting list"
msgstr ""
msgstr "Venteliste"
#: pretix/static/pretixpresale/js/widget/widget.js:39
msgctxt "widget"
@@ -760,164 +765,164 @@ msgid ""
"You currently have an active cart for this event. If you select more "
"products, they will be added to your existing cart."
msgstr ""
"Du har allerede en aktiv handlekurv for dette arrangementet. Hvis du velger "
"flere produkter, vil disse bli lagt til i den eksisterende handlekurven."
#: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget"
msgid "Resume checkout"
msgstr ""
msgstr "Gjenoppta kassen"
#: pretix/static/pretixpresale/js/widget/widget.js:42
msgctxt "widget"
msgid "Redeem a voucher"
msgstr ""
msgstr "Løs inn en kupong"
#: pretix/static/pretixpresale/js/widget/widget.js:43
msgctxt "widget"
msgid "Redeem"
msgstr ""
msgstr "Løs inn"
#: pretix/static/pretixpresale/js/widget/widget.js:44
msgctxt "widget"
msgid "Voucher code"
msgstr ""
msgstr "Kupongkode"
#: pretix/static/pretixpresale/js/widget/widget.js:45
msgctxt "widget"
msgid "Close"
msgstr ""
msgstr "Lukk"
#: pretix/static/pretixpresale/js/widget/widget.js:46
msgctxt "widget"
msgid "Continue"
msgstr ""
msgstr "Fortsett"
#: pretix/static/pretixpresale/js/widget/widget.js:47
msgctxt "widget"
msgid "See variations"
msgstr ""
msgstr "Se variasjoner"
#: pretix/static/pretixpresale/js/widget/widget.js:48
msgctxt "widget"
msgid "Choose a different event"
msgstr ""
msgstr "Velg et annet arrangement"
#: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget"
msgid "Choose a different date"
msgstr ""
msgstr "Velg en annen dato"
#: pretix/static/pretixpresale/js/widget/widget.js:50
msgctxt "widget"
msgid "Back"
msgstr ""
msgstr "Tilbake"
#: pretix/static/pretixpresale/js/widget/widget.js:51
msgctxt "widget"
msgid "Next month"
msgstr ""
msgstr "Neste måned"
#: pretix/static/pretixpresale/js/widget/widget.js:52
msgctxt "widget"
msgid "Previous month"
msgstr ""
msgstr "Forrige måned"
#: pretix/static/pretixpresale/js/widget/widget.js:53
msgctxt "widget"
msgid "Next week"
msgstr ""
msgstr "Neste uke"
#: pretix/static/pretixpresale/js/widget/widget.js:54
msgctxt "widget"
msgid "Previous week"
msgstr ""
msgstr "Forrige uke"
#: pretix/static/pretixpresale/js/widget/widget.js:55
msgctxt "widget"
msgid "Open seat selection"
msgstr ""
msgstr "Åpne setevalg"
#: pretix/static/pretixpresale/js/widget/widget.js:56
#, fuzzy
#| msgid "Load more"
msgctxt "widget"
msgid "Load more"
msgstr "Last mer"
#: pretix/static/pretixpresale/js/widget/widget.js:58
msgid "Mo"
msgstr ""
msgstr "Ma"
#: pretix/static/pretixpresale/js/widget/widget.js:59
msgid "Tu"
msgstr ""
msgstr "Ti"
#: pretix/static/pretixpresale/js/widget/widget.js:60
msgid "We"
msgstr ""
msgstr "On"
#: pretix/static/pretixpresale/js/widget/widget.js:61
msgid "Th"
msgstr ""
msgstr "To"
#: pretix/static/pretixpresale/js/widget/widget.js:62
msgid "Fr"
msgstr ""
msgstr "Fr"
#: pretix/static/pretixpresale/js/widget/widget.js:63
msgid "Sa"
msgstr ""
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:64
msgid "Su"
msgstr ""
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:67
msgid "January"
msgstr ""
msgstr "Januar"
#: pretix/static/pretixpresale/js/widget/widget.js:68
msgid "February"
msgstr ""
msgstr "Februar"
#: pretix/static/pretixpresale/js/widget/widget.js:69
msgid "March"
msgstr ""
msgstr "Mars"
#: pretix/static/pretixpresale/js/widget/widget.js:70
msgid "April"
msgstr ""
msgstr "April"
#: pretix/static/pretixpresale/js/widget/widget.js:71
msgid "May"
msgstr ""
msgstr "Mai"
#: pretix/static/pretixpresale/js/widget/widget.js:72
msgid "June"
msgstr ""
msgstr "Juni"
#: pretix/static/pretixpresale/js/widget/widget.js:73
msgid "July"
msgstr ""
msgstr "Juli"
#: pretix/static/pretixpresale/js/widget/widget.js:74
msgid "August"
msgstr ""
msgstr "August"
#: pretix/static/pretixpresale/js/widget/widget.js:75
msgid "September"
msgstr ""
msgstr "September"
#: pretix/static/pretixpresale/js/widget/widget.js:76
msgid "October"
msgstr ""
msgstr "Oktober"
#: pretix/static/pretixpresale/js/widget/widget.js:77
msgid "November"
msgstr ""
msgstr "November"
#: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "December"
msgstr ""
msgstr "Desember"
#~ msgid "Invalid product"
#~ msgstr "Ugyldig produkt"

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2021-10-29 02:00+0000\n"
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -371,7 +371,7 @@ msgstr ""
"Uw aanvraag wordt naar de server verstuurd. Controleer uw internetverbinding "
"en probeer het opnieuw als dit langer dan een minuut duurt."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Sluit bericht"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -357,7 +357,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2021-08-05 04:00+0000\n"
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
@@ -375,7 +375,7 @@ msgstr ""
"Je aanvraag wordt naar de server verstuurd. Controleer je internetverbinding "
"en probeer het opnieuw als dit langer dan een minuut duurt."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Sluit bericht"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2019-09-24 19:00+0000\n"
"Last-Translator: Serge Bazanski <q3k@hackerspace.pl>\n"
"Language-Team: Polish <https://translate.pretix.eu/projects/pretix/pretix-js/"
@@ -403,7 +403,7 @@ msgstr ""
"dłuższego niż minuta prosimy o sprawdzenie łączności z Internetem a "
"następnie o przeładowanie strony i ponowienie próby."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Zamknięcie wiadomości"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -358,7 +358,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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"
@@ -358,7 +358,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2019-03-19 09:00+0000\n"
"Last-Translator: Vitor Reis <vitor.reis7@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
@@ -406,7 +406,7 @@ msgstr ""
"minuto, verifique sua conexão com a internet e, em seguida, recarregue esta "
"página e tente novamente."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Fechar mensagem"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2020-10-27 06:00+0000\n"
"Last-Translator: David Vaz <davidmgvaz@gmail.com>\n"
"Language-Team: Portuguese (Portugal) <https://translate.pretix.eu/projects/"
@@ -389,7 +389,7 @@ msgstr ""
"de um minuto, verifique a sua ligação à Internet e, em seguida, recarregue "
"esta página e tente novamente."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Fechar mensagem"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-04-29 04:00+0000\n"
"Last-Translator: Edd28 <chitu_edy@yahoo.com>\n"
"Language-Team: Romanian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -373,7 +373,7 @@ msgstr ""
"un minut, te rugăm să verifici conexiunea la internet, să reîncarci această "
"pagină și să reîncerci."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Închide mesajul"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2021-08-09 13:10+0000\n"
"Last-Translator: Svyatoslav <slava@digitalarthouse.eu>\n"
"Language-Team: Russian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -401,7 +401,7 @@ msgstr ""
"Отправляем ваш запрос на сервер. Если это займёт больше минуты, проверьте "
"подключение к интернету, затем перезагрузите страницу и повторите попытку."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Закрыть сообщение"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -357,7 +357,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2019-08-27 08:00+0000\n"
"Last-Translator: Bostjan Marusic <bostjan@brokenbones.si>\n"
"Language-Team: Slovenian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -400,7 +400,7 @@ msgstr ""
"preverite vašo internetno povezavo in nato ponovno naložite spletno stran in "
"poskusite znova."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Zapri obvestilo"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-03-03 07:00+0000\n"
"Last-Translator: MaLund13 <mart.lund13@gmail.com>\n"
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -371,7 +371,7 @@ msgstr ""
"kontrollera din internetanslutning och ladda sedan den här sidan och försök "
"igen."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Stäng meddelande"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2018-09-03 06:36+0000\n"
"Last-Translator: Yunus Fırat Pişkin <firat.piskin@idvlabs.com>\n"
"Language-Team: Turkish <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -405,7 +405,7 @@ msgstr ""
"sürerse, lütfen İnternet bağlantınızı kontrol edin ve ardından bu sayfayı "
"tekrar yükleyin ve tekrar deneyin."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Mesajı kapat"

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2022-05-10 02:00+0000\n"
"Last-Translator: Iryna N <in380@nyu.edu>\n"
"Language-Team: Ukrainian <https://translate.pretix.eu/projects/pretix/pretix-"
@@ -376,7 +376,7 @@ msgstr ""
"хвилини, перевірте підключення до Інтернету, а потім перезавантажте цю "
"сторінку та повторіть спробу."
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "Закрити повідомлення"

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+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"
@@ -358,7 +358,7 @@ msgid ""
"page and try again."
msgstr ""
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-06-09 15:47+0000\n"
"POT-Creation-Date: 2022-07-01 07:50+0000\n"
"PO-Revision-Date: 2021-12-03 08:37+0000\n"
"Last-Translator: ExtremeX-BB <qq754163444@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.pretix.eu/projects/"
@@ -376,7 +376,7 @@ msgstr ""
"我们正在将您的请求发送到服务器。如果超过一分钟,请检查您的互联网连接,然后刷"
"新此页面,并重试。"
#: pretix/static/pretixbase/js/asynctask.js:273
#: pretix/static/pretixbase/js/asynctask.js:276
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr "关闭消息"

View File

@@ -80,6 +80,7 @@ class BankTransfer(BasePaymentProvider):
)),
('bank_details_sepa_name', forms.CharField(
label=_('Name of account holder'),
help_text=_('Please note: special characters other than letters, numbers, and some punctuation can cause problems with some banks.'),
widget=forms.TextInput(
attrs={
'data-display-dependency': '#id_payment_banktransfer_bank_details_type_0',

View File

@@ -253,8 +253,8 @@ def _get_unknown_transactions(job: BankImportJob, data: list, event: Event = Non
trans = BankTransaction(event=event, organizer=organizer, import_job=job,
payer=row.get('payer', ''),
reference=row['reference'],
amount=amount, date=row['date'],
reference=row.get('reference', ''),
amount=amount, date=row.get('date', ''),
iban=row.get('iban', ''), bic=row.get('bic', ''))
trans.date_parsed = parse_date(trans.date)

View File

@@ -468,9 +468,12 @@ class Paypal(BasePaymentProvider):
def payment_pending_render(self, request, payment) -> str:
retry = True
try:
if payment.info and payment.info_data['state'] == 'pending':
if (
payment.info
and payment.info_data['transactions'][0]['related_resources'][0]['sale']['state'] == 'pending'
):
retry = False
except KeyError:
except (KeyError, IndexError):
pass
template = get_template('pretixplugins/paypal/pending.html')
ctx = {'request': request, 'event': self.event, 'settings': self.settings,

View File

@@ -698,9 +698,12 @@ class PaypalMethod(BasePaymentProvider):
def payment_pending_render(self, request, payment) -> str:
retry = True
try:
if payment.info and payment.info_data['state'] == 'pending':
if (
payment.info
and payment.info_data['purchase_units'][0]['payments']['captures'][0]['status'] == 'pending'
):
retry = False
except KeyError:
except (KeyError, IndexError):
pass
template = get_template('pretixplugins/paypal2/pending.html')
ctx = {'request': request, 'event': self.event, 'settings': self.settings,

View File

@@ -197,7 +197,10 @@ def isu_return(request, *args, **kwargs):
getparams = ['merchantId', 'merchantIdInPayPal', 'permissionsGranted', 'accountStatus', 'consentStatus', 'productIntentID', 'isEmailConfirmed']
sessionparams = ['payment_paypal_isu_event', 'payment_paypal_isu_tracking_id']
if not any(k in request.GET for k in getparams) or not any(k in request.session for k in sessionparams):
messages.error(request, _('An error occurred during connecting with PayPal, please try again.'))
messages.error(request, _('An error occurred returning from PayPal: request parameters missing. Please try again.'))
missing_getparams = set(getparams) - set(request.GET)
missing_sessionparams = {p for p in sessionparams if p not in request.session}
logger.exception('PayPal2 - Missing params in GET {} and/or Session {}'.format(missing_getparams, missing_sessionparams))
return redirect(reverse('control:index'))
event = get_object_or_404(Event, pk=request.session['payment_paypal_isu_event'])
@@ -222,17 +225,21 @@ def isu_return(request, *args, **kwargs):
response = prov.client.execute(req)
except IOError as e:
messages.error(request, _('An error occurred during connecting with PayPal, please try again.'))
logger.exception('PayPal PartnersMerchantIntegrationsGetRequest: {}'.format(str(e)))
logger.exception('PayPal2 - PartnersMerchantIntegrationsGetRequest: {}'.format(str(e)))
else:
params = ['merchant_id', 'tracking_id', 'payments_receivable', 'primary_email_confirmed']
if not any(k in response.result for k in params):
if 'message' in response.result:
messages.error(request, response.result.message)
logger.exception('PayPal2 - Error-message in response: {}'.format(response.result.message))
else:
messages.error(request, _('An error occurred during connecting with PayPal, please try again.'))
messages.error(request, _('An error occurred returning from PayPal: result parameters missing. Please try again.'))
missing_params = set(params) - set(response.result)
logger.exception('PayPal2 - Missing params {} in response.result'.format(missing_params))
else:
if response.result.tracking_id != request.session['payment_paypal_isu_tracking_id']:
messages.error(request, _('An error occurred during connecting with PayPal, please try again.'))
messages.error(request, _('An error occurred returning from PayPal: session parameter not matching. Please try again.'))
logger.exception('PayPal2 - tracking_id not matching session.payment_paypal_isu_tracking_id')
else:
if request.GET.get("isEmailConfirmed") == "false": # Yes - literal!
messages.warning(

File diff suppressed because it is too large Load Diff

View File

@@ -4,13 +4,13 @@
"private": true,
"scripts": {},
"dependencies": {
"@babel/core": "^7.18.2",
"@babel/preset-env": "^7.18.2",
"@babel/core": "^7.18.6",
"@babel/preset-env": "^7.18.6",
"@rollup/plugin-babel": "^5.3.1",
"@rollup/plugin-node-resolve": "^13.3.0",
"vue": "^2.6.14",
"rollup": "^2.75.5",
"vue": "^2.7.0",
"rollup": "^2.75.7",
"rollup-plugin-vue": "^5.0.1",
"vue-template-compiler": "^2.6.14"
"vue-template-compiler": "^2.7.0"
}
}

View File

@@ -116,6 +116,7 @@ ignore =
tests/plugins/badges/*
tests/plugins/banktransfer/*
tests/plugins/paypal/*
tests/plugins/paypal2/*
tests/plugins/pretixdroid/*
tests/plugins/stripe/*
tests/plugins/sendmail/*

View File

@@ -204,7 +204,7 @@ setup(
'packaging',
'paypalrestsdk==1.13.*',
'paypal-checkout-serversdk==1.0.*',
'PyJWT==2.0.*',
'PyJWT==2.4.*',
'phonenumberslite==8.12.*',
'Pillow==9.1.*',
'protobuf==3.19.*',

View File

@@ -1673,6 +1673,8 @@ def test_order_change_patch(token_client, organizer, event, order, quota):
assert p.item == item2
f.refresh_from_db()
assert f.value == Decimal('10.00')
order.refresh_from_db()
assert order.total == Decimal('109.44')
@pytest.mark.django_db