forked from CGM_Public/pretix_original
Compare commits
30
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a3a6a471e | ||
|
|
f0574755a2 | ||
|
|
4cfedebf3b | ||
|
|
45376dd757 | ||
|
|
0999f41b0c | ||
|
|
565f77d13b | ||
|
|
5ae7a350b0 | ||
|
|
af7d9942f6 | ||
|
|
36efb25b98 | ||
|
|
7a496da945 | ||
|
|
03f1016cc7 | ||
|
|
4d4d2d5fe7 | ||
|
|
98f48e78a8 | ||
|
|
512c9f5301 | ||
|
|
d16c59e86c | ||
|
|
177b0505fd | ||
|
|
01f7a70347 | ||
|
|
3b4c99d450 | ||
|
|
3bb23bb77e | ||
|
|
89da0847ca | ||
|
|
07bed72b5e | ||
|
|
c103288eec | ||
|
|
03648b77b1 | ||
|
|
818d75ddd7 | ||
|
|
20f608caae | ||
|
|
7b3a6d47fc | ||
|
|
d586406c79 | ||
|
|
e214c8cb95 | ||
|
|
81f2b9db30 | ||
|
|
04a6ed20b9 |
@@ -34,7 +34,7 @@ Frontend
|
||||
--------
|
||||
|
||||
.. automodule:: pretix.presale.signals
|
||||
:members: html_head, html_footer, footer_link, front_page_top, front_page_bottom, front_page_bottom_widget, fee_calculation_for_cart, contact_form_fields, question_form_fields, contact_form_fields_overrides, question_form_fields_overrides, checkout_confirm_messages, checkout_confirm_page_content, checkout_all_optional, html_page_header, sass_preamble, sass_postamble, render_seating_plan, checkout_flow_steps, position_info, position_info_top, item_description, global_html_head, global_html_footer, global_html_page_header
|
||||
:members: html_head, html_footer, footer_link, global_footer_link, front_page_top, front_page_bottom, front_page_bottom_widget, fee_calculation_for_cart, contact_form_fields, question_form_fields, contact_form_fields_overrides, question_form_fields_overrides, checkout_confirm_messages, checkout_confirm_page_content, checkout_all_optional, html_page_header, sass_preamble, sass_postamble, render_seating_plan, checkout_flow_steps, position_info, position_info_top, item_description, global_html_head, global_html_footer, global_html_page_header
|
||||
|
||||
|
||||
.. automodule:: pretix.presale.signals
|
||||
|
||||
@@ -88,6 +88,15 @@ website. If you confident to have a good reason for not using SSL, you can overr
|
||||
|
||||
<pretix-widget event="https://pretix.eu/demo/democon/" skip-ssl-check></pretix-widget>
|
||||
|
||||
Always open a new tab
|
||||
---------------------
|
||||
|
||||
If you want the checkout process to always open a new tab regardless of screen size, you can pass the ``disable-iframe``
|
||||
attribute::
|
||||
|
||||
<pretix-widget event="https://pretix.eu/demo/democon/" disable-iframe></pretix-widget>
|
||||
|
||||
|
||||
Pre-selecting a voucher
|
||||
-----------------------
|
||||
|
||||
@@ -197,7 +206,10 @@ should be added to the cart. The syntax of this attribute is ``item_ITEMID=1,ite
|
||||
where ``ITEMID`` are the internal IDs of items to be added and ``VARID`` are the internal IDs of variations of those
|
||||
items, if the items have variations. If you omit the ``items`` attribute, the general start page will be presented.
|
||||
|
||||
Just as the widget, the button supports the optional attributes ``voucher`` and ``skip-ssl-check``.
|
||||
In case you are using an event-series, you will need to specify the subevent for which the item(s) should be put in the
|
||||
cart. This can be done by specifying the ``subevent``-attribute.
|
||||
|
||||
Just as the widget, the button supports the optional attributes ``voucher``, ``disable-iframe``, and ``skip-ssl-check``.
|
||||
|
||||
You can style the button using the ``pretix-button`` CSS class.
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = "3.15.0"
|
||||
__version__ = "3.16.0.dev0"
|
||||
|
||||
@@ -98,6 +98,7 @@ class PretixPosSecurityProfile(AllowListSecurityProfile):
|
||||
('GET', 'api-v1:order-detail'),
|
||||
('DELETE', 'api-v1:orderposition-detail'),
|
||||
('POST', 'api-v1:order-mark_canceled'),
|
||||
('POST', 'api-v1:orderpayment-list'),
|
||||
('POST', 'api-v1:orderrefund-list'),
|
||||
('POST', 'api-v1:orderrefund-done'),
|
||||
('POST', 'api-v1:cartposition-list'),
|
||||
|
||||
@@ -580,6 +580,7 @@ class EventSettingsSerializer(SettingsSerializer):
|
||||
'locale',
|
||||
'region',
|
||||
'last_order_modification_date',
|
||||
'allow_modifications_after_checkin',
|
||||
'show_quota_left',
|
||||
'waiting_list_enabled',
|
||||
'waiting_list_hours',
|
||||
|
||||
@@ -213,6 +213,8 @@ class TeamMemberSerializer(serializers.ModelSerializer):
|
||||
|
||||
class OrganizerSettingsSerializer(SettingsSerializer):
|
||||
default_fields = [
|
||||
'contact_mail',
|
||||
'imprint_url',
|
||||
'organizer_info_text',
|
||||
'event_list_type',
|
||||
'event_list_availability',
|
||||
|
||||
@@ -242,7 +242,10 @@ class MultiSheetListExporter(ListExporter):
|
||||
pass
|
||||
|
||||
def iterate_sheet(self, form_data, sheet):
|
||||
raise NotImplementedError() # noqa
|
||||
if hasattr(self, 'iterate_' + sheet):
|
||||
yield from getattr(self, 'iterate_' + sheet)(form_data)
|
||||
else:
|
||||
raise NotImplementedError() # noqa
|
||||
|
||||
def _render_sheet_csv(self, form_data, sheet, output_file=None, **kwargs):
|
||||
total = 0
|
||||
@@ -288,6 +291,9 @@ class MultiSheetListExporter(ListExporter):
|
||||
n_sheets = len(self.sheets)
|
||||
for i_sheet, (s, l) in enumerate(self.sheets):
|
||||
ws = wb.create_sheet(str(l))
|
||||
if hasattr(self, 'prepare_xlsx_sheet_' + s):
|
||||
getattr(self, 'prepare_xlsx_sheet_' + s)(ws)
|
||||
|
||||
total = 0
|
||||
counter = 0
|
||||
for i, line in enumerate(self.iterate_sheet(form_data, sheet=s)):
|
||||
|
||||
@@ -66,7 +66,7 @@ class InvoiceExporterMixin:
|
||||
)
|
||||
|
||||
def invoices_queryset(self, form_data: dict):
|
||||
qs = Invoice.objects.filter(event__in=self.events)
|
||||
qs = Invoice.objects.filter(event__in=self.events).select_related('order')
|
||||
|
||||
if form_data.get('payment_provider'):
|
||||
qs = qs.annotate(
|
||||
@@ -112,13 +112,13 @@ class InvoiceExporter(InvoiceExporterMixin, BaseExporter):
|
||||
invoice_pdf_task.apply(args=(i.pk,))
|
||||
i.refresh_from_db()
|
||||
i.file.open('rb')
|
||||
zipf.writestr('{}.pdf'.format(i.number), i.file.read())
|
||||
zipf.writestr('{}-{}.pdf'.format(i.number, i.order.code), i.file.read())
|
||||
i.file.close()
|
||||
except FileNotFoundError:
|
||||
invoice_pdf_task.apply(args=(i.pk,))
|
||||
i.refresh_from_db()
|
||||
i.file.open('rb')
|
||||
zipf.writestr('{}.pdf'.format(i.number), i.file.read())
|
||||
zipf.writestr('{}-{}.pdf'.format(i.number, i.order.code), i.file.read())
|
||||
i.file.close()
|
||||
counter += 1
|
||||
if total and counter % max(10, total // 100) == 0:
|
||||
|
||||
@@ -848,11 +848,13 @@ class BaseInvoiceAddressForm(forms.ModelForm):
|
||||
) and len(data.get('name_parts', {})) == 1:
|
||||
# Do not save the country if it is the only field set -- we don't know the user even checked it!
|
||||
self.cleaned_data['country'] = ''
|
||||
|
||||
if data.get('vat_id') and is_eu_country(data.get('country')) and data.get('vat_id')[:2] != cc_to_vat_prefix(str(data.get('country'))):
|
||||
raise ValidationError(_('Your VAT ID does not match the selected country.'))
|
||||
|
||||
if self.validate_vat_id and self.instance.vat_id_validated and 'vat_id' not in self.changed_data:
|
||||
pass
|
||||
elif self.validate_vat_id and data.get('is_business') and is_eu_country(data.get('country')) and data.get('vat_id'):
|
||||
if data.get('vat_id')[:2] != cc_to_vat_prefix(str(data.get('country'))):
|
||||
raise ValidationError(_('Your VAT ID does not match the selected country.'))
|
||||
try:
|
||||
result = vat_moss.id.validate(data.get('vat_id'))
|
||||
if result:
|
||||
|
||||
@@ -16,7 +16,7 @@ class DatePickerWidget(forms.DateInput):
|
||||
date_attrs = dict(attrs)
|
||||
date_attrs.setdefault('class', 'form-control')
|
||||
date_attrs['class'] += ' datepickerfield'
|
||||
date_attrs['autocomplete'] = 'date-picker-do-not-autofill'
|
||||
date_attrs['autocomplete'] = 'off'
|
||||
|
||||
def placeholder():
|
||||
df = date_format or get_format('DATE_INPUT_FORMATS')[0]
|
||||
@@ -37,7 +37,7 @@ class TimePickerWidget(forms.TimeInput):
|
||||
time_attrs = dict(attrs)
|
||||
time_attrs.setdefault('class', 'form-control')
|
||||
time_attrs['class'] += ' timepickerfield'
|
||||
time_attrs['autocomplete'] = 'time-picker-do-not-autofill'
|
||||
time_attrs['autocomplete'] = 'off'
|
||||
|
||||
def placeholder():
|
||||
tf = time_format or get_format('TIME_INPUT_FORMATS')[0]
|
||||
@@ -111,8 +111,8 @@ class SplitDateTimePickerWidget(forms.SplitDateTimeWidget):
|
||||
time_attrs.setdefault('autocomplete', 'off')
|
||||
date_attrs['class'] += ' datepickerfield'
|
||||
time_attrs['class'] += ' timepickerfield'
|
||||
date_attrs['autocomplete'] = 'date-picker-do-not-autofill'
|
||||
time_attrs['autocomplete'] = 'time-picker-do-not-autofill'
|
||||
date_attrs['autocomplete'] = 'off'
|
||||
time_attrs['autocomplete'] = 'off'
|
||||
if min_date:
|
||||
date_attrs['data-min'] = (
|
||||
min_date if isinstance(min_date, date) else min_date.astimezone(get_current_timezone()).date()
|
||||
|
||||
@@ -2,7 +2,6 @@ import copy
|
||||
import hashlib
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import string
|
||||
from collections import Counter
|
||||
from datetime import datetime, time, timedelta
|
||||
@@ -666,6 +665,8 @@ class Order(LockModel, LoggedModel):
|
||||
related to the order. This checks order status and modification deadlines. It also
|
||||
returns ``False`` if there are no questions that can be answered.
|
||||
"""
|
||||
from .checkin import Checkin
|
||||
|
||||
if self.status not in (Order.STATUS_PENDING, Order.STATUS_PAID, Order.STATUS_EXPIRED):
|
||||
return False
|
||||
|
||||
@@ -681,10 +682,21 @@ class Order(LockModel, LoggedModel):
|
||||
|
||||
if modify_deadline is not None and now() > modify_deadline:
|
||||
return False
|
||||
|
||||
positions = list(
|
||||
self.positions.all().annotate(
|
||||
has_checkin=Exists(Checkin.objects.filter(position_id=OuterRef('pk')))
|
||||
).select_related('item').prefetch_related('item__questions')
|
||||
)
|
||||
if not self.event.settings.allow_modifications_after_checkin:
|
||||
for cp in positions:
|
||||
if cp.has_checkin:
|
||||
return False
|
||||
|
||||
if self.event.settings.get('invoice_address_asked', as_type=bool):
|
||||
return True
|
||||
ask_names = self.event.settings.get('attendee_names_asked', as_type=bool)
|
||||
for cp in self.positions.all().prefetch_related('item__questions'):
|
||||
for cp in positions:
|
||||
if (cp.item.admission and ask_names) or cp.item.questions.all():
|
||||
return True
|
||||
|
||||
@@ -1492,7 +1504,7 @@ class OrderPayment(models.Model):
|
||||
OrderRefund.REFUND_STATE_CREATED)
|
||||
).aggregate(s=Sum('amount'))['s'] or Decimal('0.00')
|
||||
if payment_sum - refund_sum < self.order.total:
|
||||
logger.info('Confirmed payment {} but payment sum is {} and refund sum is.'.format(
|
||||
logger.info('Confirmed payment {} but payment sum is {} and refund sum is {}.'.format(
|
||||
self.full_id, payment_sum, refund_sum
|
||||
))
|
||||
return
|
||||
@@ -2320,7 +2332,6 @@ def cachedticket_name(instance, filename: str) -> str:
|
||||
no=instance.order_position.positionid,
|
||||
code=instance.order_position.order.code,
|
||||
secret=secret,
|
||||
ext=os.path.splitext(filename)[1]
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -718,7 +718,7 @@ class BasePaymentProvider:
|
||||
return a very short version of the payment method. Usually, this should return e.g.
|
||||
a transaction ID or account identifier, but no information on status, dates, etc.
|
||||
|
||||
The default implementation falls back to payment_presa_elrender.
|
||||
The default implementation falls back to ``payment_presale_render``.
|
||||
|
||||
:param order: The order object
|
||||
"""
|
||||
|
||||
@@ -327,7 +327,7 @@ def deny_order(order, comment='', user=None, send_mail: bool=True, auth=None):
|
||||
|
||||
|
||||
def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device=None, oauth_application=None,
|
||||
cancellation_fee=None, keep_fees=None):
|
||||
cancellation_fee=None, keep_fees=None, cancel_invoice=True):
|
||||
"""
|
||||
Mark this order as canceled
|
||||
:param order: The order to change
|
||||
@@ -351,9 +351,10 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device
|
||||
if not order.cancel_allowed():
|
||||
raise OrderError(_('You cannot cancel this order.'))
|
||||
invoices = []
|
||||
i = order.invoices.filter(is_cancellation=False).last()
|
||||
if i and not i.refered.exists():
|
||||
invoices.append(generate_cancellation(i))
|
||||
if cancel_invoice:
|
||||
i = order.invoices.filter(is_cancellation=False).last()
|
||||
if i and not i.refered.exists():
|
||||
invoices.append(generate_cancellation(i))
|
||||
|
||||
for position in order.positions.all():
|
||||
for gc in position.issued_gift_cards.all():
|
||||
@@ -403,7 +404,7 @@ def _cancel_order(order, user=None, send_mail: bool=True, api_token=None, device
|
||||
order.cancellation_date = now()
|
||||
order.save(update_fields=['status', 'cancellation_date', 'total'])
|
||||
|
||||
if i:
|
||||
if cancel_invoice and i:
|
||||
invoices.append(generate_invoice(order))
|
||||
else:
|
||||
with order.event.lock():
|
||||
@@ -2152,11 +2153,12 @@ def _try_auto_refund(order, manual_refund=False, allow_partial=False, source=Ord
|
||||
@app.task(base=ProfiledTask, bind=True, max_retries=5, default_retry_delay=1, throws=(OrderError,))
|
||||
@scopes_disabled()
|
||||
def cancel_order(self, order: int, user: int=None, send_mail: bool=True, api_token=None, oauth_application=None,
|
||||
device=None, cancellation_fee=None, try_auto_refund=False, refund_as_giftcard=False, comment=None):
|
||||
device=None, cancellation_fee=None, try_auto_refund=False, refund_as_giftcard=False, comment=None,
|
||||
cancel_invoice=True):
|
||||
try:
|
||||
try:
|
||||
ret = _cancel_order(order, user, send_mail, api_token, device, oauth_application,
|
||||
cancellation_fee)
|
||||
cancellation_fee, cancel_invoice=cancel_invoice)
|
||||
if try_auto_refund:
|
||||
_try_auto_refund(order, refund_as_giftcard=refund_as_giftcard,
|
||||
comment=comment)
|
||||
|
||||
@@ -1082,6 +1082,15 @@ DEFAULTS = {
|
||||
help_text=_('If your event series has more than 50 dates in the future, only the month or week calendar can be used.')
|
||||
),
|
||||
},
|
||||
'allow_modifications_after_checkin': {
|
||||
'default': 'False',
|
||||
'type': bool,
|
||||
'form_class': forms.BooleanField,
|
||||
'serializer_class': serializers.BooleanField,
|
||||
'form_kwargs': dict(
|
||||
label=_("Allow customers to modify their information after they checked in."),
|
||||
)
|
||||
},
|
||||
'last_order_modification_date': {
|
||||
'default': None,
|
||||
'type': RelativeDateWrapper,
|
||||
@@ -2367,6 +2376,22 @@ PERSON_NAME_SCHEMES = OrderedDict([
|
||||
'_scheme': 'full_transcription',
|
||||
},
|
||||
}),
|
||||
('salutation_given_family', {
|
||||
'fields': (
|
||||
('salutation', pgettext_lazy('person_name', 'Salutation'), 1),
|
||||
('given_name', _('Given name'), 2),
|
||||
('family_name', _('Family name'), 2),
|
||||
),
|
||||
'concatenation': lambda d: ' '.join(
|
||||
str(p) for p in (d.get(key, '') for key in ["given_name", "family_name"]) if p
|
||||
),
|
||||
'sample': {
|
||||
'salutation': pgettext_lazy('person_name_sample', 'Mr'),
|
||||
'given_name': pgettext_lazy('person_name_sample', 'John'),
|
||||
'family_name': pgettext_lazy('person_name_sample', 'Doe'),
|
||||
'_scheme': 'salutation_given_family',
|
||||
},
|
||||
}),
|
||||
('salutation_title_given_family', {
|
||||
'fields': (
|
||||
('salutation', pgettext_lazy('person_name', 'Salutation'), 1),
|
||||
|
||||
@@ -101,7 +101,8 @@ def truelink_callback(attrs, new=False):
|
||||
<a href="https://maps.google.com/location/foo">https://maps.google.com</a>
|
||||
"""
|
||||
text = re.sub(r'[^a-zA-Z0-9.\-/_]', '', attrs.get('_text')) # clean up link text
|
||||
href_url = urllib.parse.urlparse(attrs[None, 'href'])
|
||||
url = attrs.get((None, 'href'), '/')
|
||||
href_url = urllib.parse.urlparse(url)
|
||||
if URL_RE.match(text) and href_url.scheme not in ('tel', 'mailto'):
|
||||
# link text looks like a url
|
||||
if text.startswith('//'):
|
||||
|
||||
@@ -457,6 +457,7 @@ class EventSettingsForm(SettingsForm):
|
||||
'banner_text_bottom',
|
||||
'order_email_asked_twice',
|
||||
'last_order_modification_date',
|
||||
'allow_modifications_after_checkin',
|
||||
'checkout_show_copy_answers_button',
|
||||
'primary_color',
|
||||
'theme_color_success',
|
||||
|
||||
@@ -117,6 +117,11 @@ class CancelForm(ConfirmPaymentForm):
|
||||
'in your cancellation fee if you want to keep them. Please always enter a gross value, '
|
||||
'tax will be calculated automatically.'),
|
||||
)
|
||||
cancel_invoice = forms.BooleanField(
|
||||
label=_('Generate cancellation for invoice'),
|
||||
initial=True,
|
||||
required=False
|
||||
)
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
@@ -130,6 +135,8 @@ class CancelForm(ConfirmPaymentForm):
|
||||
self.fields['cancellation_fee'].max_value = prs
|
||||
else:
|
||||
del self.fields['cancellation_fee']
|
||||
if not self.instance.invoices.exists():
|
||||
del self.fields['cancel_invoice']
|
||||
|
||||
def clean_cancellation_fee(self):
|
||||
val = self.cleaned_data['cancellation_fee'] or Decimal('0.00')
|
||||
|
||||
@@ -214,6 +214,8 @@ class DeviceForm(forms.ModelForm):
|
||||
|
||||
class OrganizerSettingsForm(SettingsForm):
|
||||
auto_fields = [
|
||||
'contact_mail',
|
||||
'imprint_url',
|
||||
'organizer_info_text',
|
||||
'event_list_type',
|
||||
'event_list_availability',
|
||||
|
||||
@@ -243,6 +243,7 @@
|
||||
{% bootstrap_field form.presale_end layout="control" %}
|
||||
{% bootstrap_field sform.show_items_outside_presale_period layout="control" %}
|
||||
{% bootstrap_field sform.last_order_modification_date layout="control" %}
|
||||
{% bootstrap_field sform.allow_modifications_after_checkin layout="control" %}
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<legend>{% trans "Display" %}</legend>
|
||||
|
||||
@@ -23,13 +23,16 @@
|
||||
<input type="hidden" name="status" value="c"/>
|
||||
{% bootstrap_form_errors form %}
|
||||
{% bootstrap_field form.send_email layout='' %}
|
||||
{% if form.cancel_invoice %}
|
||||
{% bootstrap_field form.cancel_invoice layout='' %}
|
||||
{% endif %}
|
||||
{% if form.cancellation_fee %}
|
||||
{% bootstrap_field form.cancellation_fee layout='' %}
|
||||
{% endif %}
|
||||
<div class="row checkout-button-row">
|
||||
<div class="col-md-4">
|
||||
<a class="btn btn-block btn-default btn-lg"
|
||||
href="{% url "control:event.order" event=request.event.slug organizer=request.event.organizer.slug code=order.code %}">
|
||||
href="{% url "control:event.order" event=request.event.slug organizer=request.event.organizer.slug code=order.code %}">
|
||||
{% trans "No, take me back" %}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
{% if form.domain %}
|
||||
{% bootstrap_field form.domain layout="control" %}
|
||||
{% endif %}
|
||||
{% bootstrap_field sform.imprint_url layout="control" %}
|
||||
{% bootstrap_field sform.contact_mail layout="control" %}
|
||||
{% bootstrap_field sform.organizer_info_text layout="control" %}
|
||||
{% bootstrap_field sform.event_team_provisioning layout="control" %}
|
||||
</fieldset>
|
||||
|
||||
@@ -151,6 +151,9 @@ class OrderList(OrderSearchMixin, EventPermissionRequiredMixin, PaginationMixin,
|
||||
s = OrderPosition.objects.filter(
|
||||
order=OuterRef('pk')
|
||||
).order_by().values('order').annotate(k=Count('id')).values('k')
|
||||
i = Invoice.objects.filter(
|
||||
order=OuterRef('pk')
|
||||
).order_by().values('order').annotate(k=Count('id')).values('k')
|
||||
annotated = {
|
||||
o['pk']: o
|
||||
for o in
|
||||
@@ -158,6 +161,7 @@ class OrderList(OrderSearchMixin, EventPermissionRequiredMixin, PaginationMixin,
|
||||
pk__in=[o.pk for o in ctx['orders']]
|
||||
).annotate(
|
||||
pcnt=Subquery(s, output_field=IntegerField()),
|
||||
icnt=Subquery(i, output_field=IntegerField()),
|
||||
has_cancellation_request=Exists(CancellationRequest.objects.filter(order=OuterRef('pk')))
|
||||
).values(
|
||||
'pk', 'pcnt', 'is_overpaid', 'is_underpaid', 'is_pending_with_full_payment', 'has_external_refund',
|
||||
@@ -1133,6 +1137,7 @@ class OrderTransition(OrderView):
|
||||
try:
|
||||
cancel_order(self.order.pk, user=self.request.user,
|
||||
send_mail=self.mark_canceled_form.cleaned_data['send_email'],
|
||||
cancel_invoice=self.mark_canceled_form.cleaned_data.get('cancel_invoice', True),
|
||||
cancellation_fee=self.mark_canceled_form.cleaned_data.get('cancellation_fee'))
|
||||
except OrderError as e:
|
||||
messages.error(self.request, str(e))
|
||||
|
||||
@@ -395,7 +395,7 @@ class TeamListView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin, L
|
||||
memcount=Count('members', distinct=True),
|
||||
eventcount=Count('limit_events', distinct=True),
|
||||
invcount=Count('invites', distinct=True)
|
||||
).all()
|
||||
).all().order_by('name')
|
||||
|
||||
|
||||
class TeamCreateView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin, CreateView):
|
||||
|
||||
@@ -5,7 +5,7 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-27 17:45+0000\n"
|
||||
"PO-Revision-Date: 2021-01-27 17:58+0000\n"
|
||||
"PO-Revision-Date: 2021-01-30 19:49+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/de/"
|
||||
">\n"
|
||||
@@ -14,7 +14,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 3.10.3\n"
|
||||
"X-Generator: Weblate 4.4.2\n"
|
||||
"X-Poedit-Bookmarks: -1,-1,904,-1,-1,-1,-1,-1,-1,-1\n"
|
||||
|
||||
#: htmlcov/pretix_control_views_dashboards_py.html:898
|
||||
@@ -10499,6 +10499,8 @@ msgid ""
|
||||
"A repeated password reset has been denied, as the last request was less than "
|
||||
"24 hours ago."
|
||||
msgstr ""
|
||||
"Eine Zurücksetzung des Passworts wurde abgelehnt, da es bereits eine Anfrage "
|
||||
"innerhalb der letzten 24 Stunden gab."
|
||||
|
||||
#: pretix/control/logdisplay.py:362
|
||||
#, python-brace-format
|
||||
@@ -13736,12 +13738,8 @@ msgid "Only available as an add-on product"
|
||||
msgstr "Nur als Zusatzprodukt verfügbar"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:98
|
||||
#, fuzzy
|
||||
#| msgid "Only sell this product as part of a bundle"
|
||||
msgid "Only available as part of a bundle"
|
||||
msgstr ""
|
||||
"Dieses Produkt nicht einzeln verkaufen, sondern nur als Teil eines festen "
|
||||
"Produktpakets"
|
||||
msgstr "Nur als Teil eines festen Pakets verfügbar"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:101
|
||||
msgid "Only visible with a voucher"
|
||||
@@ -14904,16 +14902,12 @@ msgstr ""
|
||||
"haben."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:30
|
||||
#, fuzzy
|
||||
#| msgid "Original payment method"
|
||||
msgid "Refund to original payment method"
|
||||
msgstr "Ursprüngliche Zahlungsmethode"
|
||||
msgstr "Auf das ursprüngliche Zahlungsmittel erstatten"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Payment settings"
|
||||
msgid "Payment details"
|
||||
msgstr "Zahlungseinstellungen"
|
||||
msgstr "Zahlungsdetails"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:37
|
||||
msgid "Amount not refunded"
|
||||
@@ -14921,32 +14915,24 @@ msgstr "Nicht erstatteter Betrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:38
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Refund amount:"
|
||||
msgid "Refund amount"
|
||||
msgstr "Erstattungsbetrag:"
|
||||
msgstr "Erstattungsbetrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:66
|
||||
#, fuzzy
|
||||
#| msgid "Full name"
|
||||
msgid "Full amount"
|
||||
msgstr "Voller Name"
|
||||
msgstr "Voller Betrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:69
|
||||
msgid "This payment method does not support automatic refunds."
|
||||
msgstr "Diese Zahlungsmethode unterstützt keine automatische Erstattung."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:78
|
||||
#, fuzzy
|
||||
#| msgid "Use different payment method"
|
||||
msgid "Refund to a different payment method"
|
||||
msgstr "Andere Zahlungsmethode wählen"
|
||||
msgstr "Erstattung auf anderes Zahlungsmittel"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:84
|
||||
#, fuzzy
|
||||
#| msgid "Rendering option"
|
||||
msgid "Recipient / options"
|
||||
msgstr "Ausgabemodus"
|
||||
msgstr "Empfänger / Optionen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:112
|
||||
msgid "Transfer to other order"
|
||||
@@ -16891,11 +16877,9 @@ msgid "Prefix (optional)"
|
||||
msgstr "Präfix (optional)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:21
|
||||
#, fuzzy
|
||||
#| msgid "Number"
|
||||
msgctxt "number_of_things"
|
||||
msgid "Number"
|
||||
msgstr "Zahl"
|
||||
msgstr "Anzahl"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:25
|
||||
msgid "Generate random codes"
|
||||
@@ -18905,10 +18889,8 @@ msgstr ""
|
||||
"Bestellungen zusätzlich zum Standardtext bezahlt."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:135
|
||||
#, fuzzy
|
||||
#| msgid "All open refunds"
|
||||
msgid "IBAN blocklist for refunds"
|
||||
msgstr "Alle offenen Erstattungen"
|
||||
msgstr "IBAN-Blockliste für Erstattungen"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:138
|
||||
msgid ""
|
||||
@@ -18918,6 +18900,11 @@ msgid ""
|
||||
"country codes such as \"GB\" if you never want to send refunds to IBANs from "
|
||||
"a specific country."
|
||||
msgstr ""
|
||||
"Eine IBAN oder ein IBAN-Prefix pro Zeile. Das System versucht keine "
|
||||
"automatischen Rückerstattungen an diese IBANs zu senden. Dies ist z.B. "
|
||||
"nützlich wenn Sie viele \"weitergeleitete Zahlungen\" von einem "
|
||||
"Zahlungsdienstleister erhalten. Sie können auch Ländercodes wie \"GB\" "
|
||||
"auflisten, wenn Sie nie Erstattungen an britische IBANs anstoßen wollen."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:176
|
||||
msgid "Please fill out your bank account details."
|
||||
@@ -18964,16 +18951,13 @@ msgstr ""
|
||||
"Zahlung gestartet werden."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:349
|
||||
#, fuzzy
|
||||
#| msgid "(optional)"
|
||||
msgid "BIC (optional)"
|
||||
msgstr "(optional)"
|
||||
msgstr "BIC (optional)"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:388
|
||||
#, fuzzy
|
||||
#| msgid "Your input was invalid, please try again."
|
||||
msgid "Your input was invalid, please see below for details."
|
||||
msgstr "Die Eingabe war nicht korrekt, bitte erneut versuchen."
|
||||
msgstr ""
|
||||
"Die Eingabe war nicht korrekt, die Fehler finden Sie im Detail weiter unten."
|
||||
|
||||
#: pretix/plugins/banktransfer/refund_export.py:25
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:5
|
||||
@@ -22620,6 +22604,11 @@ msgid ""
|
||||
"{number} hours. If the email did not arrive, please your check spam folder "
|
||||
"and also double check that you used the correct email address."
|
||||
msgstr ""
|
||||
"Wenn die von Ihnen eingegebene E-Mail-Adresse gültig ist und ein Ticket für "
|
||||
"diese Adresse vorliegt, haben wir Ihnen in den letzten {number} Stunden "
|
||||
"bereits eine E-Mail geschickt. Wenn diese E-Mail nicht ankam, bitte "
|
||||
"überprüfen Sie Ihren Spam-Ordner und überprüfen Sie, dass Sie die richtige E"
|
||||
"-Mail-Adresse verwendet haben."
|
||||
|
||||
#: pretix/presale/views/user.py:49
|
||||
msgid "Your orders for {}"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-27 17:45+0000\n"
|
||||
"PO-Revision-Date: 2021-01-27 17:58+0000\n"
|
||||
"PO-Revision-Date: 2021-01-30 19:49+0000\n"
|
||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
|
||||
"pretix/pretix/de_Informal/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 3.10.3\n"
|
||||
"X-Generator: Weblate 4.4.2\n"
|
||||
|
||||
#: htmlcov/pretix_control_views_dashboards_py.html:898
|
||||
#: pretix/control/templates/pretixcontrol/events/index.html:144
|
||||
@@ -10483,6 +10483,8 @@ msgid ""
|
||||
"A repeated password reset has been denied, as the last request was less than "
|
||||
"24 hours ago."
|
||||
msgstr ""
|
||||
"Eine Zurücksetzung des Passworts wurde abgelehnt, da es bereits eine Anfrage "
|
||||
"innerhalb der letzten 24 Stunden gab."
|
||||
|
||||
#: pretix/control/logdisplay.py:362
|
||||
#, python-brace-format
|
||||
@@ -13714,12 +13716,8 @@ msgid "Only available as an add-on product"
|
||||
msgstr "Nur als Zusatzprodukt verfügbar"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:98
|
||||
#, fuzzy
|
||||
#| msgid "Only sell this product as part of a bundle"
|
||||
msgid "Only available as part of a bundle"
|
||||
msgstr ""
|
||||
"Dieses Produkt nicht einzeln verkaufen, sondern nur als Teil eines festen "
|
||||
"Produktpakets"
|
||||
msgstr "Nur als Teil eines festen Pakets verfügbar"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:101
|
||||
msgid "Only visible with a voucher"
|
||||
@@ -14880,16 +14878,12 @@ msgstr ""
|
||||
"erledigt markieren kannst, wenn du das Geld tatsächlich zurückerstattet hast."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:30
|
||||
#, fuzzy
|
||||
#| msgid "Original payment method"
|
||||
msgid "Refund to original payment method"
|
||||
msgstr "Ursprüngliche Zahlungsmethode"
|
||||
msgstr "Auf das ursprüngliche Zahlungsmittel erstatten"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Payment settings"
|
||||
msgid "Payment details"
|
||||
msgstr "Zahlungseinstellungen"
|
||||
msgstr "Zahlungsdetails"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:37
|
||||
msgid "Amount not refunded"
|
||||
@@ -14897,32 +14891,24 @@ msgstr "Nicht erstatteter Betrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:38
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Refund amount:"
|
||||
msgid "Refund amount"
|
||||
msgstr "Erstattungsbetrag:"
|
||||
msgstr "Erstattungsbetrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:66
|
||||
#, fuzzy
|
||||
#| msgid "Full name"
|
||||
msgid "Full amount"
|
||||
msgstr "Voller Name"
|
||||
msgstr "Voller Betrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:69
|
||||
msgid "This payment method does not support automatic refunds."
|
||||
msgstr "Diese Zahlungsmethode unterstützt keine automatische Erstattung."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:78
|
||||
#, fuzzy
|
||||
#| msgid "Use different payment method"
|
||||
msgid "Refund to a different payment method"
|
||||
msgstr "Andere Zahlungsmethode wählen"
|
||||
msgstr "Erstattung auf anderes Zahlungsmittel"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:84
|
||||
#, fuzzy
|
||||
#| msgid "Rendering option"
|
||||
msgid "Recipient / options"
|
||||
msgstr "Ausgabemodus"
|
||||
msgstr "Empfänger / Optionen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:112
|
||||
msgid "Transfer to other order"
|
||||
@@ -16860,11 +16846,9 @@ msgid "Prefix (optional)"
|
||||
msgstr "Präfix (optional)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:21
|
||||
#, fuzzy
|
||||
#| msgid "Number"
|
||||
msgctxt "number_of_things"
|
||||
msgid "Number"
|
||||
msgstr "Zahl"
|
||||
msgstr "Anzahl"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:25
|
||||
msgid "Generate random codes"
|
||||
@@ -18870,10 +18854,8 @@ msgstr ""
|
||||
"Bestellungen zusätzlich zum Standardtext bezahlt."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:135
|
||||
#, fuzzy
|
||||
#| msgid "All open refunds"
|
||||
msgid "IBAN blocklist for refunds"
|
||||
msgstr "Alle offenen Erstattungen"
|
||||
msgstr "IBAN-Blockliste für Erstattungen"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:138
|
||||
msgid ""
|
||||
@@ -18883,6 +18865,11 @@ msgid ""
|
||||
"country codes such as \"GB\" if you never want to send refunds to IBANs from "
|
||||
"a specific country."
|
||||
msgstr ""
|
||||
"Eine IBAN oder ein IBAN-Prefix pro Zeile. Das System versucht keine "
|
||||
"automatischen Rückerstattungen an diese IBANs zu senden. Dies ist z.B. "
|
||||
"nützlich wenn du viele \"weitergeleitete Zahlungen\" von einem "
|
||||
"Zahlungsdienstleister erhältst. Du kannst auch Ländercodes wie \"GB\" "
|
||||
"auflisten, wenn du nie Erstattungen an britische IBANs anstoßen willst."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:176
|
||||
msgid "Please fill out your bank account details."
|
||||
@@ -18929,16 +18916,13 @@ msgstr ""
|
||||
"Zahlung gestartet werden."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:349
|
||||
#, fuzzy
|
||||
#| msgid "(optional)"
|
||||
msgid "BIC (optional)"
|
||||
msgstr "(optional)"
|
||||
msgstr "BIC (optional)"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:388
|
||||
#, fuzzy
|
||||
#| msgid "Your input was invalid, please try again."
|
||||
msgid "Your input was invalid, please see below for details."
|
||||
msgstr "Die Eingabe war nicht korrekt, bitte erneut versuchen."
|
||||
msgstr ""
|
||||
"Die Eingabe war nicht korrekt, die Fehler findest du im Detail weiter unten."
|
||||
|
||||
#: pretix/plugins/banktransfer/refund_export.py:25
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:5
|
||||
@@ -22571,6 +22555,11 @@ msgid ""
|
||||
"{number} hours. If the email did not arrive, please your check spam folder "
|
||||
"and also double check that you used the correct email address."
|
||||
msgstr ""
|
||||
"Wenn die von dir eingegebene E-Mail-Adresse gültig ist und ein Ticket für "
|
||||
"diese Adresse vorliegt, haben wir dir in den letzten {number} Stunden "
|
||||
"bereits eine E-Mail geschickt. Wenn diese E-Mail nicht ankam, bitte "
|
||||
"überprüfe deinen Spam-Ordner und überprüfe, dass du die richtige E-Mail-"
|
||||
"Adresse verwendet hast."
|
||||
|
||||
#: pretix/presale/views/user.py:49
|
||||
msgid "Your orders for {}"
|
||||
|
||||
@@ -7,10 +7,10 @@ msgstr ""
|
||||
"Project-Id-Version: 1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-27 17:45+0000\n"
|
||||
"PO-Revision-Date: 2021-01-13 05:00+0000\n"
|
||||
"PO-Revision-Date: 2021-01-29 11:23+0000\n"
|
||||
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
|
||||
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/"
|
||||
">\n"
|
||||
"Language-Team: Dutch <https://translate.pretix.eu/projects/pretix/pretix/nl/>"
|
||||
"\n"
|
||||
"Language: nl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -954,7 +954,7 @@ msgstr "Inclusief betaalde bedragen"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py:64
|
||||
msgid "Show multiple choice answers grouped in one column"
|
||||
msgstr ""
|
||||
msgstr "Toon antwoorden voor meerkeuzevragen gegroepeerd in één kolom"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py:148
|
||||
#: pretix/base/exporters/orderlist.py:309
|
||||
@@ -2882,7 +2882,7 @@ msgstr "Vraag bij inchecken in plaats van bij het kopen van een ticket"
|
||||
|
||||
#: pretix/base/models/items.py:1072
|
||||
msgid "Not supported by all check-in apps for all question types."
|
||||
msgstr ""
|
||||
msgstr "Niet al onze incheckapps ondersteunen dit voor alle vraagsoorten."
|
||||
|
||||
#: pretix/base/models/items.py:1076
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html:66
|
||||
@@ -3318,10 +3318,8 @@ msgstr "Extern"
|
||||
|
||||
#: pretix/base/models/orders.py:1720
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:191
|
||||
#, fuzzy
|
||||
#| msgid "Refund only"
|
||||
msgid "Refund reason"
|
||||
msgstr "Betaal alleen"
|
||||
msgstr "Reden voor de terugbetaling"
|
||||
|
||||
#: pretix/base/models/orders.py:1721
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:192
|
||||
@@ -3329,6 +3327,8 @@ msgstr "Betaal alleen"
|
||||
msgid ""
|
||||
"May be shown to the end user or used e.g. as part of a payment reference."
|
||||
msgstr ""
|
||||
"Deze tekst kan aan de gebruiker getoond worden, bijvoorbeeld als deel van de "
|
||||
"betalingsinformatie."
|
||||
|
||||
#: pretix/base/models/orders.py:1831
|
||||
msgid "Payment fee"
|
||||
@@ -4845,10 +4845,8 @@ msgstr ""
|
||||
|
||||
#: pretix/base/services/cancelevent.py:200
|
||||
#: pretix/base/services/cancelevent.py:258
|
||||
#, fuzzy
|
||||
#| msgid "Event created"
|
||||
msgid "Event canceled"
|
||||
msgstr "Evenement aangemaakt"
|
||||
msgstr "Evenement geannuleerd"
|
||||
|
||||
#: pretix/base/services/cart.py:52 pretix/base/services/orders.py:73
|
||||
msgid ""
|
||||
@@ -6621,7 +6619,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/settings.py:1238
|
||||
msgid "Step size for reduction amount"
|
||||
msgstr ""
|
||||
msgstr "Stapgrootte voor lagere terugbetaling"
|
||||
|
||||
#: pretix/base/settings.py:1239
|
||||
msgid ""
|
||||
@@ -6629,6 +6627,10 @@ msgid ""
|
||||
"set this to e.g. 10, they will only be able to choose values in increments "
|
||||
"of 10."
|
||||
msgstr ""
|
||||
"Standaard kunnen klanten een willekeurig bedrag invoeren dat van de "
|
||||
"terugbetaling wordt afgetrokken. Als u deze waarde bijvoorbeeld op 10 "
|
||||
"instelt zullen klanten alleen bedragen kunnen kiezen die een meervoud van 10 "
|
||||
"zijn."
|
||||
|
||||
#: pretix/base/settings.py:1249
|
||||
msgid ""
|
||||
@@ -8794,16 +8796,12 @@ msgid "Order placed before"
|
||||
msgstr "Bestelling geplaatst voor"
|
||||
|
||||
#: pretix/control/forms/filter.py:468
|
||||
#, fuzzy
|
||||
#| msgid "Order payments and refunds"
|
||||
msgid "Minimal sum of payments and refunds"
|
||||
msgstr "Betalingen en terugbetalingen van bestelling"
|
||||
msgstr "Minimale som van betalingen en terugbetalingen"
|
||||
|
||||
#: pretix/control/forms/filter.py:473
|
||||
#, fuzzy
|
||||
#| msgid "Order payments and refunds"
|
||||
msgid "Maximal sum of payments and refunds"
|
||||
msgstr "Betalingen en terugbetalingen van bestelling"
|
||||
msgstr "Maximale som van betalingen en terugbetalingen"
|
||||
|
||||
#: pretix/control/forms/filter.py:515 pretix/control/forms/filter.py:520
|
||||
#: pretix/control/forms/filter.py:546 pretix/control/forms/filter.py:551
|
||||
@@ -9516,10 +9514,6 @@ msgid "Automatically refund money if possible"
|
||||
msgstr "Geld automatisch terugbetalen indien mogelijk"
|
||||
|
||||
#: pretix/control/forms/orders.py:619
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Create manual refund if the payment method odes not support automatic "
|
||||
#| "refunds"
|
||||
msgid ""
|
||||
"Create manual refund if the payment method does not support automatic refunds"
|
||||
msgstr ""
|
||||
@@ -10201,6 +10195,8 @@ msgid ""
|
||||
"The email address has been confirmed to be working (the user clicked on a "
|
||||
"link in the email for the first time)."
|
||||
msgstr ""
|
||||
"Het e-mailadres is gecontroleerd (de gebruiker heeft op een link in een naar "
|
||||
"de gebruiker verzonden mail geklikt)."
|
||||
|
||||
#: pretix/control/logdisplay.py:297
|
||||
#, python-brace-format
|
||||
@@ -10481,6 +10477,8 @@ msgid ""
|
||||
"A repeated password reset has been denied, as the last request was less than "
|
||||
"24 hours ago."
|
||||
msgstr ""
|
||||
"Een herhaald wachtwoordherstelverzoek is geweigerd, omdat het vorige verzoek "
|
||||
"minder dan 24 uur geleden was."
|
||||
|
||||
#: pretix/control/logdisplay.py:362
|
||||
#, python-brace-format
|
||||
@@ -12282,6 +12280,8 @@ msgid ""
|
||||
"Your shop is already live, however the following issues would normally "
|
||||
"prevent your shop to go live:"
|
||||
msgstr ""
|
||||
"Uw winkel staat al live, maar de volgende problemen zouden normaal gesproken "
|
||||
"verhinderen dat uw winkel live kan worden gezet:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/live.html:37
|
||||
#: pretix/control/templates/pretixcontrol/event/live.html:56
|
||||
@@ -13710,10 +13710,8 @@ msgid "Only available as an add-on product"
|
||||
msgstr "Alleen beschikbaar als add-onproduct"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:98
|
||||
#, fuzzy
|
||||
#| msgid "Only sell this product as part of a bundle"
|
||||
msgid "Only available as part of a bundle"
|
||||
msgstr "Verkoop dit product alleen als deel van een bundel"
|
||||
msgstr "Alleen beschikbaar als deel van een bundel"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:101
|
||||
msgid "Only visible with a voucher"
|
||||
@@ -14457,10 +14455,8 @@ msgstr ""
|
||||
"kunt u de bestelling handmatig als verlopen markeren."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:104
|
||||
#, fuzzy
|
||||
#| msgid "Refund order"
|
||||
msgid "Refund for overpayment"
|
||||
msgstr "Bestelling terugbetalen"
|
||||
msgstr "Terugbetaling voor overbetaling"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:106
|
||||
#, python-format
|
||||
@@ -14873,16 +14869,12 @@ msgstr ""
|
||||
"heeft overgemaakt naar de klant."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:30
|
||||
#, fuzzy
|
||||
#| msgid "Original payment method"
|
||||
msgid "Refund to original payment method"
|
||||
msgstr "Oorspronkelijke betalingsmethode"
|
||||
msgstr "Terugbetalen naar oorspronkelijke betalingsmethode"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Payment settings"
|
||||
msgid "Payment details"
|
||||
msgstr "Betalingsinstellingen"
|
||||
msgstr "Betalingsdetails"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:37
|
||||
msgid "Amount not refunded"
|
||||
@@ -14890,32 +14882,24 @@ msgstr "Bedrag niet terugbetaald"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:38
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Refund amount:"
|
||||
msgid "Refund amount"
|
||||
msgstr "Terug te betalen bedrag:"
|
||||
msgstr "Terug te betalen bedrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:66
|
||||
#, fuzzy
|
||||
#| msgid "Full name"
|
||||
msgid "Full amount"
|
||||
msgstr "Volledige naam"
|
||||
msgstr "Volledige bedrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:69
|
||||
msgid "This payment method does not support automatic refunds."
|
||||
msgstr "Deze betalingsmethode ondersteunt geen automatische terugbetalingen."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:78
|
||||
#, fuzzy
|
||||
#| msgid "Use different payment method"
|
||||
msgid "Refund to a different payment method"
|
||||
msgstr "Gebruik een andere betaalmethode"
|
||||
msgstr "Terugbetalen naar een andere betalingsmethode"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:84
|
||||
#, fuzzy
|
||||
#| msgid "Rendering option"
|
||||
msgid "Recipient / options"
|
||||
msgstr "Weergaveoptie"
|
||||
msgstr "Ontvanger / opties"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:112
|
||||
msgid "Transfer to other order"
|
||||
@@ -16080,24 +16064,17 @@ msgid "Step 1: Download data"
|
||||
msgstr "Stap 1: Download gegevens"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:17
|
||||
#, fuzzy
|
||||
#| msgid "Step 1: Download data"
|
||||
msgid "(Optional) Step 1: Download data"
|
||||
msgstr "Stap 1: Download gegevens"
|
||||
msgstr "(Optioneel) Stap 1: Download gegevens"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:20
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You are about to permanently delete data from the server, even though you "
|
||||
#| "might be required to keep some of this data on file. You should therefore "
|
||||
#| "download the following file and store it in a safe place:"
|
||||
msgid ""
|
||||
"You are about to permanently delete data from the server, even though you "
|
||||
"might be required to keep some of this data on file. You can therefore "
|
||||
"download the following file and store it in a safe place:"
|
||||
msgstr ""
|
||||
"U gaat gegevens permanent van de server verwijderen, ook al bent u mogelijk "
|
||||
"verplicht om sommige van deze gegevens te bewaren. U moet hierom het "
|
||||
"verplicht om sommige van deze gegevens te bewaren. U kunt hierom het "
|
||||
"volgende bestand downloaden en op een veilige plaats bewaren:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:29
|
||||
@@ -16105,10 +16082,8 @@ msgid "Download data"
|
||||
msgstr "Download gegevens"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:34
|
||||
#, fuzzy
|
||||
#| msgid "Step 3: Confirm deletion"
|
||||
msgid "Step 2: Confirm deletion"
|
||||
msgstr "Stap 3: Bevestig verwijdering"
|
||||
msgstr "Stap 2: Bevestig verwijdering"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:36
|
||||
#, python-format
|
||||
@@ -16128,10 +16103,8 @@ msgid "Event short name"
|
||||
msgstr "Korte naam evenement"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:46
|
||||
#, fuzzy
|
||||
#| msgid "Step 2: Confirm download"
|
||||
msgid "Step 3: Confirm download"
|
||||
msgstr "Stap 2: Bevestig download"
|
||||
msgstr "Stap 3: Bevestig download"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:48
|
||||
msgid ""
|
||||
@@ -16266,54 +16239,37 @@ msgid "Times"
|
||||
msgstr "Tijden"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:339
|
||||
#, fuzzy
|
||||
#| msgctxt "timeline"
|
||||
#| msgid "Start of ticket sales"
|
||||
msgid "Start of first slot"
|
||||
msgstr "Begin van de ticketverkoop"
|
||||
msgstr "Begin van eerste tijdsslot"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:345
|
||||
#, fuzzy
|
||||
#| msgctxt "timeline"
|
||||
#| msgid "End of ticket sales"
|
||||
msgid "End of time slots"
|
||||
msgstr "Einde van de ticketverkoop"
|
||||
msgstr "Einde van tijdsslots"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:351
|
||||
#, fuzzy
|
||||
#| msgid "Length of gift card codes"
|
||||
msgid "Length of slots"
|
||||
msgstr "Lengte van cadeauboncodes"
|
||||
msgstr "Lengte van elk tijdsslot"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:355
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:364
|
||||
#, fuzzy
|
||||
#| msgid "in minutes"
|
||||
msgid "minutes"
|
||||
msgstr "in minuten"
|
||||
msgstr "minuten"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:360
|
||||
msgid "Break between slots"
|
||||
msgstr ""
|
||||
msgstr "Pauze tussen tijdsslots"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:370
|
||||
#, fuzzy
|
||||
#| msgctxt "payment_state"
|
||||
#| msgid "created"
|
||||
msgid "Create"
|
||||
msgstr "aangemaakt"
|
||||
msgstr "Aanmaken"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:377
|
||||
#, fuzzy
|
||||
#| msgid "Add a new time slot"
|
||||
msgid "Add a single time slot"
|
||||
msgstr "Voeg een nieuw tijdsslot toe"
|
||||
msgstr "Nieuw tijdsslot toevoegen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:379
|
||||
#, fuzzy
|
||||
#| msgid "Add a new time slot"
|
||||
msgid "Add many time slots"
|
||||
msgstr "Voeg een nieuw tijdsslot toe"
|
||||
msgstr "Meerdere tijdsslots toevoegen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:502
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:144
|
||||
@@ -16879,11 +16835,9 @@ msgid "Prefix (optional)"
|
||||
msgstr "Voorvoegsel (optioneel)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:21
|
||||
#, fuzzy
|
||||
#| msgid "Number"
|
||||
msgctxt "number_of_things"
|
||||
msgid "Number"
|
||||
msgstr "Getal"
|
||||
msgstr "Aantal"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:25
|
||||
msgid "Generate random codes"
|
||||
@@ -17085,6 +17039,8 @@ msgid ""
|
||||
"Currently, no vouchers will be sent since your event is not live or is not "
|
||||
"selling tickets."
|
||||
msgstr ""
|
||||
"Momenteel zullen er geen vouchers worden verzonden, omdat uw evenement niet "
|
||||
"live is of geen tickets verkoopt."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:41
|
||||
msgid ""
|
||||
@@ -18131,12 +18087,8 @@ msgid "The selected exporter was not found."
|
||||
msgstr "De gekozen exporteerder was niet gevonden."
|
||||
|
||||
#: pretix/control/views/orders.py:2117
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "There was a problem processing your input. See below for error details."
|
||||
msgid "There was a problem processing your input:"
|
||||
msgstr ""
|
||||
"Er was een probleem met het verwerken van uw invoer. Zie onder voor details."
|
||||
msgstr "Er is een probleem opgetreden bij het verwerken van uw invoer:"
|
||||
|
||||
#: pretix/control/views/orders.py:2213
|
||||
msgid "All orders have been canceled."
|
||||
@@ -18892,10 +18844,8 @@ msgstr ""
|
||||
"bevestigingspagina voor openstaande bestellingen."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:135
|
||||
#, fuzzy
|
||||
#| msgid "All open refunds"
|
||||
msgid "IBAN blocklist for refunds"
|
||||
msgstr "Alle openstaande terugbetalingen"
|
||||
msgstr "IBAN-blokkadelijst voor terugbetalingen"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:138
|
||||
msgid ""
|
||||
@@ -18905,6 +18855,12 @@ msgid ""
|
||||
"country codes such as \"GB\" if you never want to send refunds to IBANs from "
|
||||
"a specific country."
|
||||
msgstr ""
|
||||
"Voer hier één IBAN of IBAN-prefix per regel in. Het systeem zal niet "
|
||||
"proberen om terugbetalingen te sturen naar deze rekeningnummers. Dit kan "
|
||||
"handig zijn als u bijvoorbeeld een groot aantal \"doorgestuurde betalingen\" "
|
||||
"ontvangt van een derde partij zoals een betalingsprovider. U kunt hier ook "
|
||||
"landcodes zoals \"GB\" invullen als u nooit automatisch terugbetalingen wilt "
|
||||
"overmaken naar IBANs uit een bepaald land."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:176
|
||||
msgid "Please fill out your bank account details."
|
||||
@@ -18940,10 +18896,9 @@ msgid "Invalid IBAN/BIC"
|
||||
msgstr "Ongeldig IBAN/BIC"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:313
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Bank account type"
|
||||
#, python-brace-format
|
||||
msgid "Bank account {iban}"
|
||||
msgstr "Bankrekeningtype"
|
||||
msgstr "Bankrekening {iban}"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:329
|
||||
msgid "Can only create a bank transfer refund from an existing payment."
|
||||
@@ -18952,16 +18907,12 @@ msgstr ""
|
||||
"betaling gestart worden."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:349
|
||||
#, fuzzy
|
||||
#| msgid "(optional)"
|
||||
msgid "BIC (optional)"
|
||||
msgstr "(optioneel)"
|
||||
msgstr "BIC (optioneel)"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:388
|
||||
#, fuzzy
|
||||
#| msgid "Your input was invalid, please try again."
|
||||
msgid "Your input was invalid, please see below for details."
|
||||
msgstr "Uw invoer was ongeldig, probeer het opnieuw."
|
||||
msgstr "Uw invoer was ongeldig, zie hieronder voor details."
|
||||
|
||||
#: pretix/plugins/banktransfer/refund_export.py:25
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:5
|
||||
@@ -20537,10 +20488,9 @@ msgstr "onbekende naam"
|
||||
#: pretix/plugins/stripe/payment.py:949 pretix/plugins/stripe/payment.py:1001
|
||||
#: pretix/plugins/stripe/payment.py:1116 pretix/plugins/stripe/payment.py:1268
|
||||
#: pretix/plugins/stripe/payment.py:1371
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Bank account type"
|
||||
#, python-brace-format
|
||||
msgid "Bank account at {bank}"
|
||||
msgstr "Bankrekeningtype"
|
||||
msgstr "Bankrekening bij {bank}"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:957
|
||||
msgid "iDEAL via Stripe"
|
||||
@@ -20583,10 +20533,9 @@ msgid "Spain"
|
||||
msgstr "Spanje"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1193
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Bank account details"
|
||||
#, python-brace-format
|
||||
msgid "Bank account {iban} at {bank}"
|
||||
msgstr "Bankrekeninginformatie"
|
||||
msgstr "Bankrekening {iban} bij {bank}"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1204
|
||||
msgid "EPS via Stripe"
|
||||
@@ -22161,6 +22110,8 @@ msgstr ""
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:161
|
||||
msgid "The following payment methods will be used to refund the money to you:"
|
||||
msgstr ""
|
||||
"De volgende betalingsmethoden zullen worden gebruikt om uw terugbetaling uit "
|
||||
"te voeren:"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:141
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:172
|
||||
@@ -22551,10 +22502,8 @@ msgid "You chose an invalid cancellation fee."
|
||||
msgstr "U heeft een ongeldig bedrag voor de annuleringskosten gekozen."
|
||||
|
||||
#: pretix/presale/views/order.py:869
|
||||
#, fuzzy
|
||||
#| msgid "Any customer"
|
||||
msgid "Canceled by customer"
|
||||
msgstr "Iedere klant"
|
||||
msgstr "Geannuleerd door klant"
|
||||
|
||||
#: pretix/presale/views/order.py:880
|
||||
msgid "The cancellation has been requested."
|
||||
@@ -22595,6 +22544,11 @@ msgid ""
|
||||
"{number} hours. If the email did not arrive, please your check spam folder "
|
||||
"and also double check that you used the correct email address."
|
||||
msgstr ""
|
||||
"Als het e-mailadres dat u invoerde geldig is en is gekoppeld aan een ticket "
|
||||
"hebben we u in de afgelopen {number} uur al een link naar uw ticket "
|
||||
"gestuurd. Controleer als u nog geen mail heeft ontvangen of het bericht "
|
||||
"misschien in uw ongewenste e-mail terecht is gekomen en of u het juiste e-"
|
||||
"mailadres heeft ingevuld."
|
||||
|
||||
#: pretix/presale/views/user.py:49
|
||||
msgid "Your orders for {}"
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-27 17:45+0000\n"
|
||||
"PO-Revision-Date: 2021-01-13 05:00+0000\n"
|
||||
"PO-Revision-Date: 2021-01-29 11:23+0000\n"
|
||||
"Last-Translator: Maarten van den Berg <maartenberg1@gmail.com>\n"
|
||||
"Language-Team: Dutch (informal) <https://translate.pretix.eu/projects/pretix/"
|
||||
"pretix/nl_Informal/>\n"
|
||||
@@ -955,7 +955,7 @@ msgstr "Inclusief betaalde bedragen"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py:64
|
||||
msgid "Show multiple choice answers grouped in one column"
|
||||
msgstr ""
|
||||
msgstr "Toon antwoorden voor meerkeuzevragen gegroepeerd in één kolom"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py:148
|
||||
#: pretix/base/exporters/orderlist.py:309
|
||||
@@ -2883,7 +2883,7 @@ msgstr "Vraag bij inchecken in plaats van bij het kopen van een kaartje"
|
||||
|
||||
#: pretix/base/models/items.py:1072
|
||||
msgid "Not supported by all check-in apps for all question types."
|
||||
msgstr ""
|
||||
msgstr "Niet al onze incheckapps ondersteunen dit voor alle vraagsoorten."
|
||||
|
||||
#: pretix/base/models/items.py:1076
|
||||
#: pretix/control/templates/pretixcontrol/items/questions.html:66
|
||||
@@ -3319,10 +3319,8 @@ msgstr "Extern"
|
||||
|
||||
#: pretix/base/models/orders.py:1720
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:191
|
||||
#, fuzzy
|
||||
#| msgid "Refund only"
|
||||
msgid "Refund reason"
|
||||
msgstr "Betaal alleen"
|
||||
msgstr "Reden voor de terugbetaling"
|
||||
|
||||
#: pretix/base/models/orders.py:1721
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:192
|
||||
@@ -3330,6 +3328,8 @@ msgstr "Betaal alleen"
|
||||
msgid ""
|
||||
"May be shown to the end user or used e.g. as part of a payment reference."
|
||||
msgstr ""
|
||||
"Deze tekst kan aan de gebruiker getoond worden, bijvoorbeeld als deel van de "
|
||||
"betalingsinformatie."
|
||||
|
||||
#: pretix/base/models/orders.py:1831
|
||||
msgid "Payment fee"
|
||||
@@ -4844,10 +4844,8 @@ msgstr ""
|
||||
|
||||
#: pretix/base/services/cancelevent.py:200
|
||||
#: pretix/base/services/cancelevent.py:258
|
||||
#, fuzzy
|
||||
#| msgid "Event created"
|
||||
msgid "Event canceled"
|
||||
msgstr "Evenement aangemaakt"
|
||||
msgstr "Evenement geannuleerd"
|
||||
|
||||
#: pretix/base/services/cart.py:52 pretix/base/services/orders.py:73
|
||||
msgid ""
|
||||
@@ -6621,7 +6619,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/settings.py:1238
|
||||
msgid "Step size for reduction amount"
|
||||
msgstr ""
|
||||
msgstr "Stapgrootte voor lagere terugbetaling"
|
||||
|
||||
#: pretix/base/settings.py:1239
|
||||
msgid ""
|
||||
@@ -6629,6 +6627,10 @@ msgid ""
|
||||
"set this to e.g. 10, they will only be able to choose values in increments "
|
||||
"of 10."
|
||||
msgstr ""
|
||||
"Standaard kunnen klanten een willekeurig bedrag invoeren dat van de "
|
||||
"terugbetaling wordt afgetrokken. Als je deze waarde bijvoorbeeld op 10 "
|
||||
"instelt zullen klanten alleen bedragen kunnen kiezen die een meervoud van 10 "
|
||||
"zijn."
|
||||
|
||||
#: pretix/base/settings.py:1249
|
||||
msgid ""
|
||||
@@ -8787,16 +8789,12 @@ msgid "Order placed before"
|
||||
msgstr "Bestelling geplaatst voor"
|
||||
|
||||
#: pretix/control/forms/filter.py:468
|
||||
#, fuzzy
|
||||
#| msgid "Order payments and refunds"
|
||||
msgid "Minimal sum of payments and refunds"
|
||||
msgstr "Betalingen en terugbetalingen van bestelling"
|
||||
msgstr "Minimale som van betalingen en terugbetalingen"
|
||||
|
||||
#: pretix/control/forms/filter.py:473
|
||||
#, fuzzy
|
||||
#| msgid "Order payments and refunds"
|
||||
msgid "Maximal sum of payments and refunds"
|
||||
msgstr "Betalingen en terugbetalingen van bestelling"
|
||||
msgstr "Maximale som van betalingen en terugbetalingen"
|
||||
|
||||
#: pretix/control/forms/filter.py:515 pretix/control/forms/filter.py:520
|
||||
#: pretix/control/forms/filter.py:546 pretix/control/forms/filter.py:551
|
||||
@@ -9508,10 +9506,6 @@ msgid "Automatically refund money if possible"
|
||||
msgstr "Geld automatisch terugbetalen indien mogelijk"
|
||||
|
||||
#: pretix/control/forms/orders.py:619
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Create manual refund if the payment method odes not support automatic "
|
||||
#| "refunds"
|
||||
msgid ""
|
||||
"Create manual refund if the payment method does not support automatic refunds"
|
||||
msgstr ""
|
||||
@@ -10192,6 +10186,8 @@ msgid ""
|
||||
"The email address has been confirmed to be working (the user clicked on a "
|
||||
"link in the email for the first time)."
|
||||
msgstr ""
|
||||
"Het e-mailadres is gecontroleerd (de gebruiker heeft op een link in een naar "
|
||||
"de gebruiker verzonden mail geklikt)."
|
||||
|
||||
#: pretix/control/logdisplay.py:297
|
||||
#, python-brace-format
|
||||
@@ -10472,6 +10468,8 @@ msgid ""
|
||||
"A repeated password reset has been denied, as the last request was less than "
|
||||
"24 hours ago."
|
||||
msgstr ""
|
||||
"Een herhaald wachtwoordherstelverzoek is geweigerd, omdat het vorige verzoek "
|
||||
"minder dan 24 uur geleden was."
|
||||
|
||||
#: pretix/control/logdisplay.py:362
|
||||
#, python-brace-format
|
||||
@@ -12273,6 +12271,8 @@ msgid ""
|
||||
"Your shop is already live, however the following issues would normally "
|
||||
"prevent your shop to go live:"
|
||||
msgstr ""
|
||||
"Je winkel staat al live, maar de volgende problemen zouden normaal gesproken "
|
||||
"verhinderen dat je winkel live kan worden gezet:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/live.html:37
|
||||
#: pretix/control/templates/pretixcontrol/event/live.html:56
|
||||
@@ -13702,10 +13702,8 @@ msgid "Only available as an add-on product"
|
||||
msgstr "Alleen beschikbaar als add-onproduct"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:98
|
||||
#, fuzzy
|
||||
#| msgid "Only sell this product as part of a bundle"
|
||||
msgid "Only available as part of a bundle"
|
||||
msgstr "Verkoop dit product alleen als deel van een bundel"
|
||||
msgstr "Alleen beschikbaar als deel van een bundel"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/index.html:101
|
||||
msgid "Only visible with a voucher"
|
||||
@@ -14450,10 +14448,8 @@ msgstr ""
|
||||
"kan je de bestelling handmatig als verlopen markeren."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:104
|
||||
#, fuzzy
|
||||
#| msgid "Refund order"
|
||||
msgid "Refund for overpayment"
|
||||
msgstr "Bestelling terugbetalen"
|
||||
msgstr "Terugbetaling voor overbetaling"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/index.html:106
|
||||
#, python-format
|
||||
@@ -14866,16 +14862,12 @@ msgstr ""
|
||||
"daadwerkelijk het geld hebt overgemaakt naar de klant."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:30
|
||||
#, fuzzy
|
||||
#| msgid "Original payment method"
|
||||
msgid "Refund to original payment method"
|
||||
msgstr "Oorspronkelijke betalingsmethode"
|
||||
msgstr "Terugbetalen naar oorspronkelijke betalingsmethode"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Payment settings"
|
||||
msgid "Payment details"
|
||||
msgstr "Betalingsinstellingen"
|
||||
msgstr "Betalingsdetails"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:37
|
||||
msgid "Amount not refunded"
|
||||
@@ -14883,32 +14875,24 @@ msgstr "Bedrag niet terugbetaald"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:38
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Refund amount:"
|
||||
msgid "Refund amount"
|
||||
msgstr "Terug te betalen bedrag:"
|
||||
msgstr "Terug te betalen bedrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:66
|
||||
#, fuzzy
|
||||
#| msgid "Full name"
|
||||
msgid "Full amount"
|
||||
msgstr "Volledige naam"
|
||||
msgstr "Volledige bedrag"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:69
|
||||
msgid "This payment method does not support automatic refunds."
|
||||
msgstr "Deze betalingsmethode ondersteunt geen automatische terugbetalingen."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:78
|
||||
#, fuzzy
|
||||
#| msgid "Link to enable payment method"
|
||||
msgid "Refund to a different payment method"
|
||||
msgstr "Link om betalingsmethode in te schakelen"
|
||||
msgstr "Terugbetalen naar een andere betalingsmethode"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:84
|
||||
#, fuzzy
|
||||
#| msgid "Rendering option"
|
||||
msgid "Recipient / options"
|
||||
msgstr "Weergaveoptie"
|
||||
msgstr "Ontvanger / opties"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/order/refund_choose.html:112
|
||||
msgid "Transfer to other order"
|
||||
@@ -16073,24 +16057,17 @@ msgid "Step 1: Download data"
|
||||
msgstr "Stap 1: Download gegevens"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:17
|
||||
#, fuzzy
|
||||
#| msgid "Step 1: Download data"
|
||||
msgid "(Optional) Step 1: Download data"
|
||||
msgstr "Stap 1: Download gegevens"
|
||||
msgstr "(Optioneel) Stap 1: Download gegevens"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:20
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "You are about to permanently delete data from the server, even though you "
|
||||
#| "might be required to keep some of this data on file. You should therefore "
|
||||
#| "download the following file and store it in a safe place:"
|
||||
msgid ""
|
||||
"You are about to permanently delete data from the server, even though you "
|
||||
"might be required to keep some of this data on file. You can therefore "
|
||||
"download the following file and store it in a safe place:"
|
||||
msgstr ""
|
||||
"Je gaat gegevens permanent van de server verwijderen, ook al ben je mogelijk "
|
||||
"verplicht om sommige van deze gegevens te bewaren. Je moet hierom het "
|
||||
"verplicht om sommige van deze gegevens te bewaren. Je kan hierom het "
|
||||
"volgende bestand downloaden en op een veilige plaats bewaren:"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:29
|
||||
@@ -16098,10 +16075,8 @@ msgid "Download data"
|
||||
msgstr "Download gegevens"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:34
|
||||
#, fuzzy
|
||||
#| msgid "Step 3: Confirm deletion"
|
||||
msgid "Step 2: Confirm deletion"
|
||||
msgstr "Stap 3: Bevestig verwijdering"
|
||||
msgstr "Stap 2: Bevestig verwijdering"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:36
|
||||
#, python-format
|
||||
@@ -16121,10 +16096,8 @@ msgid "Event short name"
|
||||
msgstr "Korte naam evenement"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:46
|
||||
#, fuzzy
|
||||
#| msgid "Step 2: Confirm download"
|
||||
msgid "Step 3: Confirm download"
|
||||
msgstr "Stap 2: Bevestig download"
|
||||
msgstr "Stap 3: Bevestig download"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/shredder/download.html:48
|
||||
msgid ""
|
||||
@@ -16259,54 +16232,37 @@ msgid "Times"
|
||||
msgstr "Tijden"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:339
|
||||
#, fuzzy
|
||||
#| msgctxt "timeline"
|
||||
#| msgid "Start of ticket sales"
|
||||
msgid "Start of first slot"
|
||||
msgstr "Begin van de kaartverkoop"
|
||||
msgstr "Begin van eerste tijdsslot"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:345
|
||||
#, fuzzy
|
||||
#| msgctxt "timeline"
|
||||
#| msgid "End of ticket sales"
|
||||
msgid "End of time slots"
|
||||
msgstr "Einde van de kaartverkoop"
|
||||
msgstr "Einde van tijdsslots"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:351
|
||||
#, fuzzy
|
||||
#| msgid "Length of gift card codes"
|
||||
msgid "Length of slots"
|
||||
msgstr "Lengte van cadeauboncodes"
|
||||
msgstr "Lengte van elk tijdsslot"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:355
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:364
|
||||
#, fuzzy
|
||||
#| msgid "in minutes"
|
||||
msgid "minutes"
|
||||
msgstr "in minuten"
|
||||
msgstr "minuten"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:360
|
||||
msgid "Break between slots"
|
||||
msgstr ""
|
||||
msgstr "Pauze tussen tijdsslots"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:370
|
||||
#, fuzzy
|
||||
#| msgctxt "payment_state"
|
||||
#| msgid "created"
|
||||
msgid "Create"
|
||||
msgstr "aangemaakt"
|
||||
msgstr "Aanmaken"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:377
|
||||
#, fuzzy
|
||||
#| msgid "Add a new time slot"
|
||||
msgid "Add a single time slot"
|
||||
msgstr "Voeg een nieuw tijdsslot toe"
|
||||
msgstr "Nieuw tijdsslot toevoegen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:379
|
||||
#, fuzzy
|
||||
#| msgid "Add a new time slot"
|
||||
msgid "Add many time slots"
|
||||
msgstr "Voeg een nieuw tijdsslot toe"
|
||||
msgstr "Meerdere nieuwe tijdsslots toevoegen"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:502
|
||||
#: pretix/control/templates/pretixcontrol/subevents/detail.html:144
|
||||
@@ -16873,11 +16829,9 @@ msgid "Prefix (optional)"
|
||||
msgstr "Voorvoegsel (optioneel)"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:21
|
||||
#, fuzzy
|
||||
#| msgid "Number"
|
||||
msgctxt "number_of_things"
|
||||
msgid "Number"
|
||||
msgstr "Getal"
|
||||
msgstr "Aantal"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html:25
|
||||
msgid "Generate random codes"
|
||||
@@ -17080,6 +17034,8 @@ msgid ""
|
||||
"Currently, no vouchers will be sent since your event is not live or is not "
|
||||
"selling tickets."
|
||||
msgstr ""
|
||||
"Momenteel zullen er geen vouchers worden verzonden, omdat je evenement niet "
|
||||
"live is of geen kaartjes verkoopt."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/waitinglist/index.html:41
|
||||
msgid ""
|
||||
@@ -18126,12 +18082,8 @@ msgid "The selected exporter was not found."
|
||||
msgstr "De gekozen exporteerder was niet gevonden."
|
||||
|
||||
#: pretix/control/views/orders.py:2117
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "There was a problem processing your input. See below for error details."
|
||||
msgid "There was a problem processing your input:"
|
||||
msgstr ""
|
||||
"Er was een probleem met het verwerken van je invoer. Zie onder voor details."
|
||||
msgstr "Er is een probleem opgetreden bij het verwerken van je invoer:"
|
||||
|
||||
#: pretix/control/views/orders.py:2213
|
||||
msgid "All orders have been canceled."
|
||||
@@ -18888,10 +18840,8 @@ msgstr ""
|
||||
"bevestigingspagina voor openstaande bestellingen."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:135
|
||||
#, fuzzy
|
||||
#| msgid "All open refunds"
|
||||
msgid "IBAN blocklist for refunds"
|
||||
msgstr "Alle openstaande terugbetalingen"
|
||||
msgstr "IBAN-blokkadelijst voor terugbetalingen"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:138
|
||||
msgid ""
|
||||
@@ -18901,6 +18851,12 @@ msgid ""
|
||||
"country codes such as \"GB\" if you never want to send refunds to IBANs from "
|
||||
"a specific country."
|
||||
msgstr ""
|
||||
"Voer hier één IBAN of IBAN-prefix per regel in. Het systeem zal niet "
|
||||
"proberen om terugbetalingen te sturen naar deze rekeningnummers. Dit kan "
|
||||
"handig zijn als je bijvoorbeeld een groot aantal \"doorgestuurde betalingen\""
|
||||
" ontvangt van een derde partij zoals een betalingsprovider. Je kan hier ook "
|
||||
"landcodes zoals \"GB\" of \"NL\" invullen als je nooit automatisch "
|
||||
"terugbetalingen wilt overmaken naar IBANs uit een bepaald land."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:176
|
||||
msgid "Please fill out your bank account details."
|
||||
@@ -18936,10 +18892,9 @@ msgid "Invalid IBAN/BIC"
|
||||
msgstr "Ongeldig IBAN/BIC"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:313
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Bank account type"
|
||||
#, python-brace-format
|
||||
msgid "Bank account {iban}"
|
||||
msgstr "Bankrekeningtype"
|
||||
msgstr "Bankrekening {iban}"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:329
|
||||
msgid "Can only create a bank transfer refund from an existing payment."
|
||||
@@ -18948,16 +18903,12 @@ msgstr ""
|
||||
"betaling gestart worden."
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:349
|
||||
#, fuzzy
|
||||
#| msgid "(optional)"
|
||||
msgid "BIC (optional)"
|
||||
msgstr "(optioneel)"
|
||||
msgstr "BIC (optioneel)"
|
||||
|
||||
#: pretix/plugins/banktransfer/payment.py:388
|
||||
#, fuzzy
|
||||
#| msgid "Your input was invalid, please try again."
|
||||
msgid "Your input was invalid, please see below for details."
|
||||
msgstr "Je invoer was ongeldig, probeer het opnieuw."
|
||||
msgstr "Je invoer was ongeldig, zie hieronder voor details."
|
||||
|
||||
#: pretix/plugins/banktransfer/refund_export.py:25
|
||||
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/control.html:5
|
||||
@@ -20533,10 +20484,9 @@ msgstr "onbekende naam"
|
||||
#: pretix/plugins/stripe/payment.py:949 pretix/plugins/stripe/payment.py:1001
|
||||
#: pretix/plugins/stripe/payment.py:1116 pretix/plugins/stripe/payment.py:1268
|
||||
#: pretix/plugins/stripe/payment.py:1371
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Bank account type"
|
||||
#, python-brace-format
|
||||
msgid "Bank account at {bank}"
|
||||
msgstr "Bankrekeningtype"
|
||||
msgstr "Bankrekening bij {bank}"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:957
|
||||
msgid "iDEAL via Stripe"
|
||||
@@ -20579,10 +20529,9 @@ msgid "Spain"
|
||||
msgstr "Spanje"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1193
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Bank account details"
|
||||
#, python-brace-format
|
||||
msgid "Bank account {iban} at {bank}"
|
||||
msgstr "Bankrekeninginformatie"
|
||||
msgstr "Bankrekening {iban} bij {bank}"
|
||||
|
||||
#: pretix/plugins/stripe/payment.py:1204
|
||||
msgid "EPS via Stripe"
|
||||
@@ -22159,6 +22108,8 @@ msgstr ""
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:161
|
||||
msgid "The following payment methods will be used to refund the money to you:"
|
||||
msgstr ""
|
||||
"De volgende betalingsmethoden zullen worden gebruikt om je terugbetaling uit "
|
||||
"te voeren:"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:141
|
||||
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:172
|
||||
@@ -22549,10 +22500,8 @@ msgid "You chose an invalid cancellation fee."
|
||||
msgstr "Je hebt een ongeldig bedrag voor de annuleringskosten gekozen."
|
||||
|
||||
#: pretix/presale/views/order.py:869
|
||||
#, fuzzy
|
||||
#| msgid "Any customer"
|
||||
msgid "Canceled by customer"
|
||||
msgstr "Iedere klant"
|
||||
msgstr "Geannuleerd door klant"
|
||||
|
||||
#: pretix/presale/views/order.py:880
|
||||
msgid "The cancellation has been requested."
|
||||
@@ -22593,6 +22542,11 @@ msgid ""
|
||||
"{number} hours. If the email did not arrive, please your check spam folder "
|
||||
"and also double check that you used the correct email address."
|
||||
msgstr ""
|
||||
"Als het e-mailadres dat je invoerde geldig is en is gekoppeld aan een "
|
||||
"kaartje hebben we je in de afgelopen {number} uur al een link naar je "
|
||||
"kaartje gestuurd. Controleer als je nog geen mail hebt ontvangen of het "
|
||||
"bericht misschien in je ongewenste e-mail terecht is gekomen en of je het "
|
||||
"juiste e-mailadres hebt ingevuld."
|
||||
|
||||
#: pretix/presale/views/user.py:49
|
||||
msgid "Your orders for {}"
|
||||
|
||||
@@ -581,7 +581,7 @@ class OrderTaxListReport(MultiSheetListExporter):
|
||||
|
||||
if date_until:
|
||||
if isinstance(date_until, str):
|
||||
date_from = parse(date_until).date()
|
||||
date_until = parse(date_until).date()
|
||||
if isinstance(date_until, date):
|
||||
date_until = make_aware(datetime.combine(
|
||||
date_until + timedelta(days=1),
|
||||
|
||||
@@ -695,7 +695,7 @@ class PaymentStep(CartMixin, TemplateFlowStep):
|
||||
@cached_property
|
||||
def provider_forms(self):
|
||||
providers = []
|
||||
for provider in self.request.event.get_payment_providers().values():
|
||||
for provider in sorted(self.request.event.get_payment_providers().values(), key=lambda p: str(p.public_name)):
|
||||
if not provider.is_enabled or not self._is_allowed(provider, self.request):
|
||||
continue
|
||||
fee = provider.calculate_fee(self._total_order_value)
|
||||
|
||||
@@ -14,8 +14,8 @@ from pretix.helpers.i18n import (
|
||||
|
||||
from ..base.i18n import get_language_without_region
|
||||
from .signals import (
|
||||
footer_link, global_html_footer, global_html_head, global_html_page_header,
|
||||
html_footer, html_head, html_page_header,
|
||||
footer_link, global_footer_link, global_html_footer, global_html_head,
|
||||
global_html_page_header, html_footer, html_head, html_page_header,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -65,6 +65,11 @@ def _default_context(request):
|
||||
_html_head.append(response)
|
||||
for receiver, response in global_html_footer.send(None, request=request):
|
||||
_html_foot.append(response)
|
||||
for receiver, response in global_footer_link.send(None, request=request):
|
||||
if isinstance(response, list):
|
||||
_footer += response
|
||||
else:
|
||||
_footer.append(response)
|
||||
|
||||
if hasattr(request, 'event') and get_scope():
|
||||
for receiver, response in html_head.send(request.event, request=request):
|
||||
|
||||
@@ -105,6 +105,14 @@ are expected to return a dictionary containing the keys ``label`` and ``url``.
|
||||
As with all plugin signals, the ``sender`` keyword argument will contain the event.
|
||||
"""
|
||||
|
||||
global_footer_link = Signal(
|
||||
providing_args=["request"]
|
||||
)
|
||||
"""
|
||||
The signal ``pretix.presale.signals.global_footer_link`` allows you to add links to the footer of any page. You
|
||||
are expected to return a dictionary containing the keys ``label`` and ``url``.
|
||||
"""
|
||||
|
||||
checkout_confirm_messages = EventPluginSignal()
|
||||
"""
|
||||
This signal is sent out to retrieve short messages that need to be acknowledged by the user before the
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
{% load static %}
|
||||
{% load thumb %}
|
||||
{% load eventurl %}
|
||||
{% load safelink %}
|
||||
{% block thetitle %}
|
||||
{% block title %}{% endblock %}{% if url_name != "organizer.index" %} :: {% endif %}{{ organizer.name }}
|
||||
{% endblock %}
|
||||
@@ -64,4 +65,11 @@
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
{% block footer %}
|
||||
{% if not request.event and request.organizer.settings.contact_mail %}
|
||||
<a href="mailto:{{ request.organizer.settings.contact_mail }}">{% trans "Contact event organizer" %}</a> ·
|
||||
{% endif %}
|
||||
{% if not request.event and request.organizer.settings.imprint_url %}
|
||||
<a href="{% safelink request.organizer.settings.imprint_url %}" target="_blank" rel="noopener">{% trans "Imprint" %}</a>
|
||||
·
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
+515
-241
File diff suppressed because it is too large
Load Diff
+4
-5
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
//! moment-timezone.js
|
||||
//! version : 0.5.31
|
||||
//! version : 0.5.32
|
||||
//! Copyright (c) JS Foundation and other contributors
|
||||
//! license : MIT
|
||||
//! github.com/moment/moment-timezone
|
||||
@@ -29,7 +29,7 @@
|
||||
// return moment;
|
||||
// }
|
||||
|
||||
var VERSION = "0.5.31",
|
||||
var VERSION = "0.5.32",
|
||||
zones = {},
|
||||
links = {},
|
||||
countries = {},
|
||||
|
||||
+12347
-6211
File diff suppressed because it is too large
Load Diff
@@ -1503,7 +1503,7 @@ var shared_root_computed = {
|
||||
return form_target
|
||||
},
|
||||
useIframe: function () {
|
||||
return Math.min(screen.width, window.innerWidth) >= 800 && (this.skip_ssl || site_is_secure());
|
||||
return !this.disable_iframe && Math.min(screen.width, window.innerWidth) >= 800 && (this.skip_ssl || site_is_secure());
|
||||
},
|
||||
showPrices: function () {
|
||||
var has_priced = false;
|
||||
@@ -1574,6 +1574,7 @@ var create_widget = function (element) {
|
||||
var subevent = element.attributes.subevent ? element.attributes.subevent.value : null;
|
||||
var style = element.attributes.style ? element.attributes.style.value : null;
|
||||
var skip_ssl = element.attributes["skip-ssl-check"] ? true : false;
|
||||
var disable_iframe = element.attributes["disable-iframe"] ? true : false;
|
||||
var disable_vouchers = element.attributes["disable-vouchers"] ? true : false;
|
||||
var widget_data = JSON.parse(JSON.stringify(window.PretixWidget.widget_data));
|
||||
var filter = element.attributes.filter ? element.attributes.filter.value : null;
|
||||
@@ -1611,6 +1612,7 @@ var create_widget = function (element) {
|
||||
voucher_explanation_text: null,
|
||||
show_variations_expanded: false,
|
||||
skip_ssl: skip_ssl,
|
||||
disable_iframe: disable_iframe,
|
||||
style: style,
|
||||
error: null,
|
||||
weeks: null,
|
||||
@@ -1652,6 +1654,7 @@ var create_button = function (element) {
|
||||
var subevent = element.attributes.subevent ? element.attributes.subevent.value : null;
|
||||
var raw_items = element.attributes.items ? element.attributes.items.value : "";
|
||||
var skip_ssl = element.attributes["skip-ssl-check"] ? true : false;
|
||||
var disable_iframe = element.attributes["disable-iframe"] ? true : false;
|
||||
var button_text = element.innerHTML;
|
||||
var widget_data = JSON.parse(JSON.stringify(window.PretixWidget.widget_data));
|
||||
for (var i = 0; i < element.attributes.length; i++) {
|
||||
@@ -1682,6 +1685,7 @@ var create_button = function (element) {
|
||||
subevent: subevent,
|
||||
is_button: true,
|
||||
skip_ssl: skip_ssl,
|
||||
disable_iframe: disable_iframe,
|
||||
voucher_code: voucher,
|
||||
items: items,
|
||||
error: null,
|
||||
@@ -1728,7 +1732,7 @@ window.PretixWidget.buildWidgets = function () {
|
||||
});
|
||||
};
|
||||
|
||||
window.PretixWidget.open = function (target_url, voucher, subevent, items, widget_data, skip_ssl_check) {
|
||||
window.PretixWidget.open = function (target_url, voucher, subevent, items, widget_data, skip_ssl_check, disable_iframe) {
|
||||
if (!target_url.match(/\/$/)) {
|
||||
target_url += "/";
|
||||
}
|
||||
@@ -1749,6 +1753,7 @@ window.PretixWidget.open = function (target_url, voucher, subevent, items, widge
|
||||
subevent: subevent || null,
|
||||
is_button: true,
|
||||
skip_ssl: skip_ssl_check || false,
|
||||
disable_iframe: disable_iframe || false,
|
||||
voucher_code: voucher || null,
|
||||
items: items || [],
|
||||
error: null,
|
||||
|
||||
Vendored
+11398
-9490
File diff suppressed because it is too large
Load Diff
Vendored
+3
-3
File diff suppressed because one or more lines are too long
@@ -11,7 +11,7 @@ django-compressor==2.4.*
|
||||
django-hierarkey==1.0.*,>=1.0.4
|
||||
django-filter==2.2.*
|
||||
django-scopes==1.2.*
|
||||
reportlab>=3.5.18*
|
||||
reportlab>=3.5.18
|
||||
PyPDF2==1.26.*
|
||||
Pillow==7.*
|
||||
django-libsass==0.8
|
||||
@@ -32,7 +32,7 @@ dj-static
|
||||
csscompressor
|
||||
django-markup
|
||||
markdown==3.3.*
|
||||
bleach>=3.1.4,<3.2.0
|
||||
bleach==3.3.*
|
||||
sentry-sdk==0.14.*
|
||||
babel
|
||||
django-i18nfield>=1.7.0
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@ setup(
|
||||
'csscompressor',
|
||||
'django-markup',
|
||||
'markdown==3.3.*',
|
||||
'bleach>=3.1.4,<3.2.0',
|
||||
'bleach==3.3.*',
|
||||
'sentry-sdk==0.14.*',
|
||||
'babel',
|
||||
'paypalrestsdk==1.13.*',
|
||||
|
||||
+158
-158
File diff suppressed because it is too large
Load Diff
@@ -178,11 +178,11 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
assert len(doc.select(".cart-row")) > 0
|
||||
assert "pending" in doc.select(".label-warning")[0].text.lower()
|
||||
assert "Peter" in response.rendered_content
|
||||
assert "Lukas" not in response.rendered_content
|
||||
assert "Peter" in response.content.decode()
|
||||
assert "Lukas" not in response.content.decode()
|
||||
|
||||
def test_ticket_detail(self):
|
||||
response = self.client.get(
|
||||
@@ -190,11 +190,11 @@ class OrdersTest(BaseOrdersTest):
|
||||
self.ticket_pos.positionid, self.ticket_pos.web_secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
assert len(doc.select(".cart-row")) > 0
|
||||
assert "pending" in doc.select(".label-warning")[0].text.lower()
|
||||
assert "Peter" in response.rendered_content
|
||||
assert "Lukas" not in response.rendered_content
|
||||
assert "Peter" in response.content.decode()
|
||||
assert "Lukas" not in response.content.decode()
|
||||
|
||||
def test_orders_modify_invalid(self):
|
||||
self.order.status = Order.STATUS_CANCELED
|
||||
@@ -212,7 +212,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/modify' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret))
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertEqual(len(doc.select('input[name="%s-attendee_name_parts_0"]' % self.ticket_pos.id)), 1)
|
||||
|
||||
# Not all fields filled out, expect success
|
||||
@@ -234,17 +234,17 @@ class OrdersTest(BaseOrdersTest):
|
||||
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/modify' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret))
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertEqual(len(doc.select('input[name="%s-attendee_name_parts_0"]' % self.ticket_pos.id)), 1)
|
||||
assert "Peter" in response.rendered_content
|
||||
assert "Lukas" not in response.rendered_content
|
||||
assert "Peter" in response.content.decode()
|
||||
assert "Lukas" not in response.content.decode()
|
||||
|
||||
# Not all required fields filled out, expect failure
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/modify' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
'%s-attendee_name_parts_0' % self.ticket_pos.id: '',
|
||||
}, follow=True)
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertGreaterEqual(len(doc.select('.has-error')), 1)
|
||||
|
||||
response = self.client.post(
|
||||
@@ -264,7 +264,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/modify' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret))
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertEqual(len(doc.select('input[name="%s-question_%s"]' % (
|
||||
self.ticket_pos.id, self.question.id))), 1)
|
||||
|
||||
@@ -288,7 +288,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
|
||||
response = self.client.get('/%s/%s/order/%s/%s/modify' % (self.orga.slug, self.event.slug, self.order.code,
|
||||
self.order.secret))
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertEqual(len(doc.select('input[name="%s-question_%s"]' % (
|
||||
self.ticket_pos.id, self.question.id))), 1)
|
||||
|
||||
@@ -297,7 +297,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/modify' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
'%s-question_%s' % (self.ticket_pos.id, self.question.id): '',
|
||||
}, follow=True)
|
||||
doc = BeautifulSoup(response.rendered_content, "lxml")
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertGreaterEqual(len(doc.select('.has-error')), 1)
|
||||
|
||||
response = self.client.post(
|
||||
@@ -361,7 +361,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
r = self.client.post(
|
||||
'/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
}, follow=True)
|
||||
assert 'btn-danger' not in r.rendered_content
|
||||
assert 'btn-danger' not in r.content.decode()
|
||||
self.client.post(
|
||||
'/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
}, follow=True)
|
||||
@@ -438,8 +438,8 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert 'manually' not in response.rendered_content
|
||||
assert "gift card" in response.rendered_content
|
||||
assert 'manually' not in response.content.decode()
|
||||
assert "gift card" in response.content.decode()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
'giftcard': 'true'
|
||||
@@ -448,7 +448,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code,
|
||||
self.order.secret),
|
||||
target_status_code=200)
|
||||
assert "gift card" in response.rendered_content
|
||||
assert "gift card" in response.content.decode()
|
||||
self.order.refresh_from_db()
|
||||
assert self.order.status == Order.STATUS_PAID
|
||||
assert self.order.total == Decimal('3.00')
|
||||
@@ -469,8 +469,8 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert 'manually' not in response.rendered_content
|
||||
assert "gift card" in response.rendered_content
|
||||
assert 'manually' not in response.content.decode()
|
||||
assert "gift card" in response.content.decode()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
'giftcard': 'false'
|
||||
@@ -479,7 +479,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code,
|
||||
self.order.secret),
|
||||
target_status_code=200)
|
||||
assert "gift card" in response.rendered_content
|
||||
assert "gift card" in response.content.decode()
|
||||
self.order.refresh_from_db()
|
||||
assert self.order.status == Order.STATUS_PAID
|
||||
assert self.order.total == Decimal('3.00')
|
||||
@@ -499,7 +499,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert 'manually' not in response.rendered_content
|
||||
assert 'manually' not in response.content.decode()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
}, follow=True)
|
||||
@@ -577,13 +577,13 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert 'cancellation fee of <strong>€3.00</strong>' in response.rendered_content
|
||||
assert 'cancellation fee of <strong>€3.00</strong>' in response.content.decode()
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/cancel' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
assert 'manually' in response.rendered_content
|
||||
assert '20.00' in response.rendered_content
|
||||
assert 'manually' in response.content.decode()
|
||||
assert '20.00' in response.content.decode()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/cancel/do' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret), {
|
||||
}, follow=True)
|
||||
@@ -610,7 +610,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{}, follow=True)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_invoice_create_duplicate(self):
|
||||
self.event.settings.set('invoice_generate', 'user')
|
||||
@@ -619,7 +619,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{}, follow=True)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_invoice_create_wrong_secret(self):
|
||||
self.event.settings.set('invoice_generate', 'user')
|
||||
@@ -635,7 +635,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{}, follow=True)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
with scopes_disabled():
|
||||
assert not self.order.invoices.exists()
|
||||
|
||||
@@ -647,7 +647,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/invoice' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{}, follow=True)
|
||||
assert 'alert-success' in response.rendered_content
|
||||
assert 'alert-success' in response.content.decode()
|
||||
with scopes_disabled():
|
||||
assert self.order.invoices.exists()
|
||||
|
||||
@@ -787,7 +787,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_pay_wrong_payment_state(self):
|
||||
with scopes_disabled():
|
||||
@@ -801,19 +801,19 @@ class OrdersTest(BaseOrdersTest):
|
||||
p.pk),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/%d/confirm' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret,
|
||||
p.pk),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/%d/complete' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret,
|
||||
p.pk),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_pay_wrong_order_state(self):
|
||||
self.order.status = Order.STATUS_PAID
|
||||
@@ -829,19 +829,19 @@ class OrdersTest(BaseOrdersTest):
|
||||
p.pk),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/%d/confirm' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret,
|
||||
p.pk),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/%d/complete' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret,
|
||||
p.pk),
|
||||
follow=True
|
||||
)
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_pay_change_link(self):
|
||||
self.order.status = Order.STATUS_PAID
|
||||
@@ -856,7 +856,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
follow=True
|
||||
)
|
||||
assert '/pay/change' not in response.rendered_content
|
||||
assert '/pay/change' not in response.content.decode()
|
||||
self.order.status = Order.STATUS_PENDING
|
||||
self.order.save()
|
||||
p.state = OrderPayment.PAYMENT_STATE_PENDING
|
||||
@@ -865,14 +865,14 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
follow=True
|
||||
)
|
||||
assert '/pay/change' in response.rendered_content
|
||||
assert '/pay/change' in response.content.decode()
|
||||
p.provider = 'testdummy'
|
||||
p.save()
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
follow=True
|
||||
)
|
||||
assert '/pay/change' not in response.rendered_content
|
||||
assert '/pay/change' not in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_partial(self):
|
||||
self.event.settings.set('payment_banktransfer__enabled', True)
|
||||
@@ -890,8 +890,8 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
)
|
||||
assert 'Test dummy' in response.rendered_content
|
||||
assert '+ €1.30' in response.rendered_content
|
||||
assert 'Test dummy' in response.content.decode()
|
||||
assert '+ €1.30' in response.content.decode()
|
||||
self.client.post(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{
|
||||
@@ -933,8 +933,8 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
)
|
||||
assert 'Test dummy' in response.rendered_content
|
||||
assert '+ €1.30' in response.rendered_content
|
||||
assert 'Test dummy' in response.content.decode()
|
||||
assert '+ €1.30' in response.content.decode()
|
||||
self.client.post(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{
|
||||
@@ -1033,8 +1033,8 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
)
|
||||
assert 'Test dummy' in response.rendered_content
|
||||
assert '- €1.40' in response.rendered_content
|
||||
assert 'Test dummy' in response.content.decode()
|
||||
assert '- €1.40' in response.content.decode()
|
||||
self.client.post(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{
|
||||
@@ -1068,8 +1068,8 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
)
|
||||
assert 'Test dummy' in response.rendered_content
|
||||
assert '+ €12.00' in response.rendered_content
|
||||
assert 'Test dummy' in response.content.decode()
|
||||
assert '+ €12.00' in response.content.decode()
|
||||
self.client.post(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{
|
||||
@@ -1101,7 +1101,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
)
|
||||
assert 'Gift card' in response.rendered_content
|
||||
assert 'Gift card' in response.content.decode()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{
|
||||
@@ -1146,7 +1146,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'giftcard': gc.secret
|
||||
}
|
||||
)
|
||||
assert "You cannot pay with gift cards when buying a gift card." in response.rendered_content
|
||||
assert "You cannot pay with gift cards when buying a gift card." in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_giftcard_wrong_currency(self):
|
||||
with scopes_disabled():
|
||||
@@ -1159,7 +1159,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'giftcard': gc.secret
|
||||
}
|
||||
)
|
||||
assert "This gift card does not support this currency." in response.rendered_content
|
||||
assert "This gift card does not support this currency." in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_giftcard_in_test_mode(self):
|
||||
with scopes_disabled():
|
||||
@@ -1174,7 +1174,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'giftcard': gc.secret
|
||||
}
|
||||
)
|
||||
assert "Only test gift cards can be used in test mode." in response.rendered_content
|
||||
assert "Only test gift cards can be used in test mode." in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_giftcard_not_in_test_mode(self):
|
||||
with scopes_disabled():
|
||||
@@ -1187,7 +1187,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'giftcard': gc.secret
|
||||
}
|
||||
)
|
||||
assert "This gift card can only be used in test mode." in response.rendered_content
|
||||
assert "This gift card can only be used in test mode." in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_giftcard_empty(self):
|
||||
with scopes_disabled():
|
||||
@@ -1199,7 +1199,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'giftcard': gc.secret
|
||||
}
|
||||
)
|
||||
assert "All credit on this gift card has been used." in response.rendered_content
|
||||
assert "All credit on this gift card has been used." in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_giftcard_wrong_organizer(self):
|
||||
with scopes_disabled():
|
||||
@@ -1214,7 +1214,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'giftcard': gc.secret
|
||||
}
|
||||
)
|
||||
assert "This gift card is not known." in response.rendered_content
|
||||
assert "This gift card is not known." in response.content.decode()
|
||||
|
||||
def test_change_paymentmethod_giftcard(self):
|
||||
with scopes_disabled():
|
||||
@@ -1228,7 +1228,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
response = self.client.get(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
)
|
||||
assert 'Gift card' in response.rendered_content
|
||||
assert 'Gift card' in response.content.decode()
|
||||
response = self.client.post(
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret),
|
||||
{
|
||||
@@ -1275,7 +1275,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/' % (self.orga.slug, self.event.slug, self.order.code, self.order.secret)
|
||||
)
|
||||
assert response.status_code == 200
|
||||
match = re.search(r"\?token=([^'\"&]+)", response.rendered_content)
|
||||
match = re.search(r"\?token=([^'\"&]+)", response.content.decode())
|
||||
assert match
|
||||
|
||||
response = self.client.get(
|
||||
@@ -1349,7 +1349,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
f'op-{self.ticket_pos.pk}-itemvar': f'{self.ticket.pk}',
|
||||
}, follow=True)
|
||||
assert response.status_code == 200
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
shirt_pos.variation = self.shirt_blue
|
||||
shirt_pos.price = Decimal('12.00')
|
||||
@@ -1387,7 +1387,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
follow=True
|
||||
)
|
||||
shirt_pos.refresh_from_db()
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
assert shirt_pos.variation == self.shirt_blue
|
||||
assert shirt_pos.price == Decimal('14.00')
|
||||
|
||||
@@ -1412,7 +1412,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
f'op-{self.ticket_pos.pk}-itemvar': f'{self.ticket.pk}',
|
||||
}, follow=True)
|
||||
assert response.status_code == 200
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
shirt_pos.variation = self.shirt_blue
|
||||
shirt_pos.price = Decimal('12.00')
|
||||
@@ -1450,7 +1450,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
follow=True
|
||||
)
|
||||
shirt_pos.refresh_from_db()
|
||||
assert 'alert-success' in response.rendered_content
|
||||
assert 'alert-success' in response.content.decode()
|
||||
assert shirt_pos.variation == self.shirt_red
|
||||
assert shirt_pos.price == Decimal('14.00')
|
||||
|
||||
@@ -1475,7 +1475,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
f'op-{self.ticket_pos.pk}-itemvar': f'{self.ticket.pk}',
|
||||
}, follow=True)
|
||||
assert response.status_code == 200
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_change_variation_require_same_product(self):
|
||||
self.event.settings.change_allow_user_variation = True
|
||||
@@ -1498,7 +1498,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
f'op-{self.ticket_pos.pk}-itemvar': f'{self.ticket.pk}',
|
||||
}, follow=True)
|
||||
assert response.status_code == 200
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
def test_change_variation_require_quota(self):
|
||||
self.event.settings.change_allow_user_variation = True
|
||||
@@ -1526,7 +1526,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
f'op-{self.ticket_pos.pk}-itemvar': f'{self.ticket.pk}',
|
||||
}, follow=True)
|
||||
assert response.status_code == 200
|
||||
assert 'alert-danger' in response.rendered_content
|
||||
assert 'alert-danger' in response.content.decode()
|
||||
|
||||
q.variations.add(self.shirt_blue)
|
||||
|
||||
@@ -1574,7 +1574,7 @@ class OrdersTest(BaseOrdersTest):
|
||||
'/%s/%s/order/%s/%s/pay/change' % (self.orga.slug, self.event.slug, self.order.code,
|
||||
self.order.secret),
|
||||
target_status_code=200)
|
||||
assert 'The order has been changed. You can now proceed by paying the open amount of €2.00.' in response.rendered_content
|
||||
assert 'The order has been changed. You can now proceed by paying the open amount of €2.00.' in response.content.decode()
|
||||
shirt_pos.refresh_from_db()
|
||||
assert shirt_pos.variation == self.shirt_red
|
||||
assert shirt_pos.price == Decimal('14.00')
|
||||
|
||||
Reference in New Issue
Block a user