Compare commits

...

14 Commits

Author SHA1 Message Date
Phin Wolkwitz
49b1c61dd1 Move checks to describe function 2025-12-19 13:13:01 +01:00
Phin Wolkwitz
db47f5638e Improve helper function 2025-12-19 12:12:17 +01:00
Phin Wolkwitz
a2dc467d0b Remove iteration over unnecessary transmission types 2025-12-18 16:56:19 +01:00
Phin Wolkwitz
dc1a115863 Hide info from invisible fields in confirmation step 2025-12-17 16:49:46 +01:00
Raphael Michel
d0d7670ca5 Data sync: Allow more flexibility on list separators (#5718) 2025-12-17 16:23:07 +01:00
Richard Schreiber
a17a098b15 Exclude data-dir from code style checks (#5725) 2025-12-17 16:22:42 +01:00
sandra r
40516ab8e0 Translations: Update Galician
Currently translated at 15.9% (983 of 6172 strings)

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

powered by weblate
2025-12-17 16:21:25 +01:00
sandra r
3ca343fabc Translations: Update Galician
Currently translated at 15.9% (982 of 6172 strings)

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

powered by weblate
2025-12-17 16:21:25 +01:00
Lachlan Struthers
7304b7f24b Translations: Update Albanian
Currently translated at 91.3% (232 of 254 strings)

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

powered by weblate
2025-12-17 16:21:25 +01:00
Lachlan Struthers
abaf968103 Translations: Update Albanian
Currently translated at 1.1% (71 of 6172 strings)

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

powered by weblate
2025-12-17 16:21:25 +01:00
Lachlan Struthers
86e2f5a155 Translations: Update Albanian
Currently translated at 69.6% (177 of 254 strings)

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

powered by weblate
2025-12-17 16:21:25 +01:00
Lachlan Struthers
4c64af02c1 Translations: Update Albanian
Currently translated at 0.8% (52 of 6172 strings)

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

powered by weblate
2025-12-17 16:21:25 +01:00
Phin Wolkwitz
11df4398e1 Fix presale date display in calendar (Z#23216645) (#5710)
Fix presale date display in calendar and introduce a template tag
2025-12-17 16:18:59 +01:00
Lukas Bockstaller
2e89fc0a94 Questions: filter answers by dateFrame (Z#23216406) (#5706)
* replace manual form with QuestionFilterForm

* move form to form/item.py

* filter using a dateFrameField

* rename QuestionFilterForm to QuestionAnswerFilterForm

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* pass existing `opqs` into `filter_qs`

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* clean up filters

* fix view errors

* add labels

* display validation failures on field/label

* fix linting issues

* adjust datetime comparisons from lte to lt & gte to gt

* Change filter-form layout similar to order-filter-form

* improve label texts

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* use order constants

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* use Order Constants in Form where possible

* Change phrasing from Subevent to Date

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* include product variations in products filter

* repair time zone comparisons

* fix linting

* move filter form to form/filter.py

* remove references to timezone.utc

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* remove manual class statements

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* removes unnecessary check

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>

* fix datetime comparison

* Add full stop to error message to match style

* unify var-names and code-indent

---------

Co-authored-by: Richard Schreiber <schreiber@pretix.eu>
Co-authored-by: Richard Schreiber <schreiber@rami.io>
2025-12-15 12:46:06 +01:00
20 changed files with 512 additions and 329 deletions

View File

@@ -90,6 +90,7 @@ StaticMapping = namedtuple('StaticMapping', ('id', 'pretix_model', 'external_obj
class OutboundSyncProvider: class OutboundSyncProvider:
max_attempts = 5 max_attempts = 5
list_field_joiner = "," # set to None to keep native lists in properties
def __init__(self, event): def __init__(self, event):
self.event = event self.event = event
@@ -281,7 +282,8 @@ class OutboundSyncProvider:
'Please update value mapping for field "{field_name}" - option "{val}" not assigned' 'Please update value mapping for field "{field_name}" - option "{val}" not assigned'
).format(field_name=key, val=val)]) ).format(field_name=key, val=val)])
val = ",".join(val) if self.list_field_joiner:
val = self.list_field_joiner.join(val)
return val return val
def get_properties(self, inputs: dict, property_mappings: List[dict]): def get_properties(self, inputs: dict, property_mappings: List[dict]):

View File

@@ -71,15 +71,20 @@ def assign_properties(
return out return out
def _add_to_list(out, field_name, current_value, new_item, list_sep): def _add_to_list(out, field_name, current_value, new_item_input, list_sep):
new_item = str(new_item)
if list_sep is not None: if list_sep is not None:
new_item = new_item.replace(list_sep, "") new_items = str(new_item_input).split(list_sep)
current_value = current_value.split(list_sep) if current_value else [] current_value = current_value.split(list_sep) if current_value else []
elif not isinstance(current_value, (list, tuple)): else:
current_value = [str(current_value)] new_items = [str(new_item_input)]
if new_item not in current_value: if not isinstance(current_value, (list, tuple)):
new_list = current_value + [new_item] current_value = [str(current_value)]
new_list = list(current_value)
for new_item in new_items:
if new_item not in current_value:
new_list.append(new_item)
if new_list != current_value:
if list_sep is not None: if list_sep is not None:
new_list = list_sep.join(new_list) new_list = list_sep.join(new_list)
out[field_name] = new_list out[field_name] = new_list

View File

@@ -3526,11 +3526,30 @@ class InvoiceAddress(models.Model):
}) })
return d return d
def describe_transmission(self): def describe_transmission(self, event=None):
# we only need an explicit event if the order is not yet created and we do not want to show unnecessary data to customers
from pretix.base.invoicing.transmission import transmission_types from pretix.base.invoicing.transmission import transmission_types
data = [] data = []
t, __ = transmission_types.get(identifier=self.transmission_type) t, m = transmission_types.get(identifier=self.transmission_type)
d_event = self.order.event if self.order else event
# reusing hack from questions.py for default transmission -- this should at least be fast
if d_event:
if (
t.identifier == "email" and
m in ("transmission_email_other", "transmission_email_address") and
(
d_event.settings.invoice_generate == "False" or
not d_event.settings.invoice_email_attachment
)
):
return data
# we also don't show transmission data if we never showed the corresponding form fields
if not t.invoice_address_form_fields_visible(country=self.country, is_business=self.is_business):
return data
data.append((_("Transmission type"), t.public_name)) data.append((_("Transmission type"), t.public_name))
form_data = t.transmission_info_to_form_data(self.transmission_info or {}) form_data = t.transmission_info_to_form_data(self.transmission_info or {})
for k, f in t.invoice_address_form_fields.items(): for k, f in t.invoice_address_form_fields.items():

View File

@@ -0,0 +1,65 @@
#
# This file is part of pretix (Community Edition).
#
# Copyright (C) 2014-2020 Raphael Michel and contributors
# Copyright (C) 2020-today pretix GmbH and contributors
#
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
# Public License as published by the Free Software Foundation in version 3 of the License.
#
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
# this file, see <https://pretix.eu/about/en/license>.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
# <https://www.gnu.org/licenses/>.
#
from datetime import datetime
from django import template
from django.utils.html import format_html
from django.utils.timezone import get_current_timezone
from pretix.base.i18n import LazyExpiresDate
from pretix.helpers.templatetags.date_fast import date_fast
register = template.Library()
@register.simple_tag
def html_time(value: datetime, dt_format: str = "SHORT_DATE_FORMAT", **kwargs):
"""
Building a <time datetime='{html-datetime}'>{human-readable datetime}</time> html string,
where the html-datetime as well as the human-readable datetime can be set
to a value from django's FORMAT_SETTINGS or "format_expires".
If attr_fmt isnt provided, it will be set to isoformat.
Usage example:
{% html_time event_start "SHORT_DATETIME_FORMAT" %}
or
{% html_time event_start "TIME_FORMAT" attr_fmt="H:i" %}
"""
if value in (None, ''):
return ''
value = value.astimezone(get_current_timezone())
attr_fmt = kwargs["attr_fmt"] if kwargs else None
try:
if not attr_fmt:
date_html = value.isoformat()
else:
date_html = date_fast(value, attr_fmt)
if dt_format == "format_expires":
date_human = LazyExpiresDate(value)
else:
date_human = date_fast(value, dt_format)
return format_html("<time datetime='{}'>{}</time>", date_html, date_human)
except AttributeError:
return ''

View File

@@ -61,6 +61,10 @@ from pretix.base.models import (
SubEvent, SubEventMetaValue, Team, TeamAPIToken, TeamInvite, Voucher, SubEvent, SubEventMetaValue, Team, TeamAPIToken, TeamInvite, Voucher,
) )
from pretix.base.signals import register_payment_providers from pretix.base.signals import register_payment_providers
from pretix.base.timeframes import (
DateFrameField,
resolve_timeframe_to_datetime_start_inclusive_end_exclusive,
)
from pretix.control.forms import SplitDateTimeField from pretix.control.forms import SplitDateTimeField
from pretix.control.forms.widgets import Select2, Select2ItemVarQuota from pretix.control.forms.widgets import Select2, Select2ItemVarQuota
from pretix.control.signals import order_search_filter_q from pretix.control.signals import order_search_filter_q
@@ -1219,6 +1223,129 @@ class OrderPaymentSearchFilterForm(forms.Form):
return qs return qs
class QuestionAnswerFilterForm(forms.Form):
STATUS_VARIANTS = [
("", _("All orders")),
(Order.STATUS_PAID, _("Paid")),
(Order.STATUS_PAID + 'v', _("Paid or confirmed")),
(Order.STATUS_PENDING, _("Pending")),
(Order.STATUS_PENDING + Order.STATUS_PAID, _("Pending or paid")),
("o", _("Pending (overdue)")),
(Order.STATUS_EXPIRED, _("Expired")),
(Order.STATUS_PENDING + Order.STATUS_EXPIRED, _("Pending or expired")),
(Order.STATUS_CANCELED, _("Canceled"))
]
status = forms.ChoiceField(
choices=STATUS_VARIANTS,
required=False,
label=_("Order status"),
)
item = forms.ChoiceField(
choices=[],
required=False,
label=_("Products"),
)
subevent = forms.ModelChoiceField(
queryset=SubEvent.objects.none(),
required=False,
empty_label=pgettext_lazy('subevent', 'All dates'),
label=pgettext_lazy("subevent", "Date"),
)
date_range = DateFrameField(
required=False,
include_future_frames=True,
label=_('Event date'),
)
def __init__(self, *args, **kwargs):
self.event = kwargs.pop('event')
super().__init__(*args, **kwargs)
self.initial['status'] = Order.STATUS_PENDING + Order.STATUS_PAID
choices = [('', _('All products'))]
for i in self.event.items.prefetch_related('variations').all():
variations = list(i.variations.all())
if variations:
choices.append((str(i.pk), _('{product} Any variation').format(product=str(i))))
for v in variations:
choices.append(('%d-%d' % (i.pk, v.pk), '%s %s' % (str(i), v.value)))
else:
choices.append((str(i.pk), str(i)))
self.fields['item'].choices = choices
if self.event.has_subevents:
self.fields["subevent"].queryset = self.event.subevents.all()
self.fields['subevent'].widget = Select2(
attrs={
'data-model-select2': 'event',
'data-select2-url': reverse('control:event.subevents.select2', kwargs={
'event': self.event.slug,
'organizer': self.event.organizer.slug,
}),
'data-placeholder': pgettext_lazy('subevent', 'All dates')
}
)
self.fields['subevent'].widget.choices = self.fields['subevent'].choices
else:
del self.fields['subevent']
def clean(self):
cleaned_data = super().clean()
subevent = cleaned_data.get('subevent')
date_range = cleaned_data.get('date_range')
if subevent is not None and date_range is not None:
d_start, d_end = resolve_timeframe_to_datetime_start_inclusive_end_exclusive(now(), date_range, self.event.timezone)
if (
(d_start and not (d_start <= subevent.date_from)) or
(d_end and not (subevent.date_from < d_end))
):
self.add_error('subevent', pgettext_lazy('subevent', "Date doesn't start in selected date range."))
return cleaned_data
def filter_qs(self, opqs):
fdata = self.cleaned_data
subevent = fdata.get('subevent', None)
date_range = fdata.get('date_range', None)
if subevent is not None:
opqs = opqs.filter(subevent=subevent)
if date_range is not None:
d_start, d_end = resolve_timeframe_to_datetime_start_inclusive_end_exclusive(now(), date_range, self.event.timezone)
opqs = opqs.filter(
subevent__date_from__gte=d_start,
subevent__date_from__lt=d_end
)
s = fdata.get("status", Order.STATUS_PENDING + Order.STATUS_PAID)
if s != "":
if s == Order.STATUS_PENDING:
opqs = opqs.filter(order__status=Order.STATUS_PENDING,
order__expires__lt=now().replace(hour=0, minute=0, second=0))
elif s == Order.STATUS_PENDING + Order.STATUS_PAID:
opqs = opqs.filter(order__status__in=[Order.STATUS_PENDING, Order.STATUS_PAID])
elif s == Order.STATUS_PAID + 'v':
opqs = opqs.filter(
Q(order__status=Order.STATUS_PAID) |
Q(order__status=Order.STATUS_PENDING, order__valid_if_pending=True)
)
elif s == Order.STATUS_PENDING + Order.STATUS_EXPIRED:
opqs = opqs.filter(order__status__in=[Order.STATUS_PENDING, Order.STATUS_EXPIRED])
else:
opqs = opqs.filter(order__status=s)
if s not in (Order.STATUS_CANCELED, ""):
opqs = opqs.filter(canceled=False)
if fdata.get("item", "") != "":
i = fdata.get("item", "")
opqs = opqs.filter(item_id__in=(i,))
return opqs
class SubEventFilterForm(FilterForm): class SubEventFilterForm(FilterForm):
orders = { orders = {
'date_from': 'date_from', 'date_from': 'date_from',

View File

@@ -20,35 +20,20 @@
</div> </div>
<form class="panel-body filter-form" action="" method="get"> <form class="panel-body filter-form" action="" method="get">
<div class="row"> <div class="row">
<div class="col-lg-2 col-sm-6 col-xs-6"> <div class="col-md-2 col-xs-6">
<select name="status" class="form-control"> {% bootstrap_field form.status %}
<option value="" {% if request.GET.status == "" %}selected="selected"{% endif %}>{% trans "All orders" %}</option> </div>
<option value="p" {% if request.GET.status == "p" %}selected="selected"{% endif %}>{% trans "Paid" %}</option> <div class="col-md-3 col-xs-6">
<option value="pv" {% if request.GET.status == "pv" %}selected="selected"{% endif %}>{% trans "Paid or confirmed" %}</option> {% bootstrap_field form.item %}
<option value="n" {% if request.GET.status == "n" %}selected="selected"{% endif %}>{% trans "Pending" %}</option> </div>
<option value="np" {% if request.GET.status == "np" or "status" not in request.GET %}selected="selected"{% endif %}>{% trans "Pending or paid" %}</option> {% if has_subevents %}
<option value="o" {% if request.GET.status == "o" %}selected="selected"{% endif %}>{% trans "Pending (overdue)" %}</option> <div class="col-md-3 col-xs-6">
<option value="e" {% if request.GET.status == "e" %}selected="selected"{% endif %}>{% trans "Expired" %}</option> {% bootstrap_field form.subevent %}
<option value="ne" {% if request.GET.status == "ne" %}selected="selected"{% endif %}>{% trans "Pending or expired" %}</option>
<option value="c" {% if request.GET.status == "c" %}selected="selected"{% endif %}>{% trans "Canceled" %}</option>
</select>
</div> </div>
<div class="col-lg-5 col-sm-6 col-xs-6"> <div class="col-md-4 col-xs-6">
<select name="item" class="form-control"> {% bootstrap_field form.date_range %}
<option value="">{% trans "All products" %}</option>
{% for item in items %}
<option value="{{ item.id }}"
{% if request.GET.item|add:0 == item.id %}selected="selected"{% endif %}>
{{ item.name }}
</option>
{% endfor %}
</select>
</div> </div>
{% if request.event.has_subevents %} {% endif %}
<div class="col-lg-5 col-sm-6 col-xs-6">
{% include "pretixcontrol/event/fragment_subevent_choice_simple.html" %}
</div>
{% endif %}
</div> </div>
<div class="text-right"> <div class="text-right">
<button class="btn btn-primary btn-lg" type="submit"> <button class="btn btn-primary btn-lg" type="submit">

View File

@@ -65,7 +65,7 @@ from pretix.api.serializers.item import (
) )
from pretix.base.forms import I18nFormSet from pretix.base.forms import I18nFormSet
from pretix.base.models import ( from pretix.base.models import (
CartPosition, Item, ItemCategory, ItemProgramTime, ItemVariation, Order, CartPosition, Item, ItemCategory, ItemProgramTime, ItemVariation,
OrderPosition, Question, QuestionAnswer, QuestionOption, Quota, OrderPosition, Question, QuestionAnswer, QuestionOption, Quota,
SeatCategoryMapping, Voucher, SeatCategoryMapping, Voucher,
) )
@@ -74,6 +74,7 @@ from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue
from pretix.base.services.quotas import QuotaAvailability from pretix.base.services.quotas import QuotaAvailability
from pretix.base.services.tickets import invalidate_cache from pretix.base.services.tickets import invalidate_cache
from pretix.base.signals import quota_availability from pretix.base.signals import quota_availability
from pretix.control.forms.filter import QuestionAnswerFilterForm
from pretix.control.forms.item import ( from pretix.control.forms.item import (
CategoryForm, ItemAddOnForm, ItemAddOnsFormSet, ItemBundleForm, CategoryForm, ItemAddOnForm, ItemAddOnsFormSet, ItemBundleForm,
ItemBundleFormSet, ItemCreateForm, ItemMetaValueForm, ItemProgramTimeForm, ItemBundleFormSet, ItemCreateForm, ItemMetaValueForm, ItemProgramTimeForm,
@@ -660,46 +661,26 @@ class QuestionMixin:
return ctx return ctx
class QuestionView(EventPermissionRequiredMixin, QuestionMixin, ChartContainingView, DetailView): class QuestionView(EventPermissionRequiredMixin, ChartContainingView, DetailView):
model = Question model = Question
template_name = 'pretixcontrol/items/question.html' template_name = 'pretixcontrol/items/question.html'
permission = 'can_change_items' permission = 'can_change_items'
template_name_field = 'question' template_name_field = 'question'
@cached_property
def filter_form(self):
return QuestionAnswerFilterForm(event=self.request.event, data=self.request.GET)
def get_answer_statistics(self): def get_answer_statistics(self):
opqs = OrderPosition.objects.filter( opqs = OrderPosition.objects.filter(
order__event=self.request.event, order__event=self.request.event,
) )
if self.filter_form.is_valid():
opqs = self.filter_form.filter_qs(opqs)
qs = QuestionAnswer.objects.filter( qs = QuestionAnswer.objects.filter(
question=self.object, orderposition__isnull=False, question=self.object, orderposition__isnull=False,
) )
if self.request.GET.get("subevent", "") != "":
opqs = opqs.filter(subevent=self.request.GET["subevent"])
s = self.request.GET.get("status", "np")
if s != "":
if s == 'o':
opqs = opqs.filter(order__status=Order.STATUS_PENDING,
order__expires__lt=now().replace(hour=0, minute=0, second=0))
elif s == 'np':
opqs = opqs.filter(order__status__in=[Order.STATUS_PENDING, Order.STATUS_PAID])
elif s == 'pv':
opqs = opqs.filter(
Q(order__status=Order.STATUS_PAID) |
Q(order__status=Order.STATUS_PENDING, order__valid_if_pending=True)
)
elif s == 'ne':
opqs = opqs.filter(order__status__in=[Order.STATUS_PENDING, Order.STATUS_EXPIRED])
else:
opqs = opqs.filter(order__status=s)
if s not in (Order.STATUS_CANCELED, ""):
opqs = opqs.filter(canceled=False)
if self.request.GET.get("item", "") != "":
i = self.request.GET.get("item", "")
opqs = opqs.filter(item_id__in=(i,))
qs = qs.filter(orderposition__in=opqs) qs = qs.filter(orderposition__in=opqs)
op_cnt = opqs.filter(item__in=self.object.items.all()).count() op_cnt = opqs.filter(item__in=self.object.items.all()).count()
@@ -746,9 +727,11 @@ class QuestionView(EventPermissionRequiredMixin, QuestionMixin, ChartContainingV
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
ctx = super().get_context_data() ctx = super().get_context_data()
ctx['items'] = self.object.items.all() ctx['items'] = self.object.items.exists()
ctx['has_subevents'] = self.request.event.has_subevents
stats = self.get_answer_statistics() stats = self.get_answer_statistics()
ctx['stats'], ctx['total'] = stats ctx['stats'], ctx['total'] = stats
ctx['form'] = self.filter_form
return ctx return ctx
def get_object(self, queryset=None) -> Question: def get_object(self, queryset=None) -> Question:

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-27 13:57+0000\n" "POT-Creation-Date: 2025-11-27 13:57+0000\n"
"PO-Revision-Date: 2025-12-05 18:00+0000\n" "PO-Revision-Date: 2025-12-15 20:00+0000\n"
"Last-Translator: sandra r <sandrarial@gestiontickets.online>\n" "Last-Translator: sandra r <sandrarial@gestiontickets.online>\n"
"Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix/" "Language-Team: Galician <https://translate.pretix.eu/projects/pretix/pretix/"
"gl/>\n" "gl/>\n"
@@ -6506,7 +6506,6 @@ msgstr "pendiente"
#: pretix/base/models/orders.py:203 pretix/base/payment.py:570 #: pretix/base/models/orders.py:203 pretix/base/payment.py:570
#: pretix/base/services/invoices.py:581 #: pretix/base/services/invoices.py:581
#, fuzzy
msgid "paid" msgid "paid"
msgstr "pagado" msgstr "pagado"
@@ -6840,9 +6839,8 @@ msgid "This reference will be printed on your invoice for your convenience."
msgstr "Esta referencia imprimirase na súa factura para a súa conveniencia." msgstr "Esta referencia imprimirase na súa factura para a súa conveniencia."
#: pretix/base/models/orders.py:3534 #: pretix/base/models/orders.py:3534
#, fuzzy
msgid "Transmission type" msgid "Transmission type"
msgstr "digo de transacción" msgstr "Medio de contacto"
#: pretix/base/models/orders.py:3632 #: pretix/base/models/orders.py:3632
#: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9 #: pretix/plugins/badges/templates/pretixplugins/badges/control_order_position_buttons.html:9
@@ -9295,10 +9293,10 @@ msgid "Your exported data exceeded the size limit for scheduled exports."
msgstr "" msgstr ""
#: pretix/base/services/invoices.py:116 #: pretix/base/services/invoices.py:116
#, fuzzy, python-brace-format #, python-brace-format
msgctxt "invoice" msgctxt "invoice"
msgid "Please complete your payment before {expire_date}." msgid "Please complete your payment before {expire_date}."
msgstr "Por favor complete su pago antes de {expire_date}." msgstr "Complete o seu pago antes de {expire_date}."
#: pretix/base/services/invoices.py:128 #: pretix/base/services/invoices.py:128
#, python-brace-format #, python-brace-format
@@ -21609,9 +21607,8 @@ msgid "Placed order"
msgstr "Pedido realizado" msgstr "Pedido realizado"
#: pretix/control/templates/pretixcontrol/event/mail.html:93 #: pretix/control/templates/pretixcontrol/event/mail.html:93
#, fuzzy
msgid "Paid order" msgid "Paid order"
msgstr "Orden de pago" msgstr "Pedido pagado"
#: pretix/control/templates/pretixcontrol/event/mail.html:96 #: pretix/control/templates/pretixcontrol/event/mail.html:96
msgid "Free order" msgid "Free order"
@@ -24216,9 +24213,8 @@ msgstr "Sí, aprobar la orden"
#: pretix/control/templates/pretixcontrol/order/index.html:166 #: pretix/control/templates/pretixcontrol/order/index.html:166
#: pretix/presale/templates/pretixpresale/event/order.html:483 #: pretix/presale/templates/pretixpresale/event/order.html:483
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:7 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:7
#, fuzzy
msgid "Cancel order" msgid "Cancel order"
msgstr "Cancelar orden" msgstr "Cancelar a orde"
#: pretix/control/templates/pretixcontrol/order/cancel.html:12 #: pretix/control/templates/pretixcontrol/order/cancel.html:12
#: pretix/control/templates/pretixcontrol/order/deny.html:11 #: pretix/control/templates/pretixcontrol/order/deny.html:11
@@ -24978,9 +24974,8 @@ msgstr "Cambiar"
#: pretix/control/templates/pretixcontrol/order/index.html:1034 #: pretix/control/templates/pretixcontrol/order/index.html:1034
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:90 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:90
#: pretix/presale/templates/pretixpresale/event/order.html:318 #: pretix/presale/templates/pretixpresale/event/order.html:318
#, fuzzy
msgid "ZIP code and city" msgid "ZIP code and city"
msgstr "Código postal y ciudad" msgstr "Código postal e cidade"
#: pretix/control/templates/pretixcontrol/order/index.html:1047 #: pretix/control/templates/pretixcontrol/order/index.html:1047
#, fuzzy #, fuzzy
@@ -25437,9 +25432,8 @@ msgid "Preview refund amount"
msgstr "Reembolso" msgstr "Reembolso"
#: pretix/control/templates/pretixcontrol/orders/cancel.html:88 #: pretix/control/templates/pretixcontrol/orders/cancel.html:88
#, fuzzy
msgid "Cancel all orders" msgid "Cancel all orders"
msgstr "Cancelar orden" msgstr "Cancelar todos os pedidos"
#: pretix/control/templates/pretixcontrol/orders/cancel_confirm.html:13 #: pretix/control/templates/pretixcontrol/orders/cancel_confirm.html:13
#, fuzzy #, fuzzy
@@ -33254,9 +33248,8 @@ msgid "Payment reversed."
msgstr "Pago anulado." msgstr "Pago anulado."
#: pretix/plugins/paypal2/signals.py:62 #: pretix/plugins/paypal2/signals.py:62
#, fuzzy
msgid "Payment pending." msgid "Payment pending."
msgstr "Pago pendiente." msgstr "Pago pendente."
#: pretix/plugins/paypal2/signals.py:63 #: pretix/plugins/paypal2/signals.py:63
#, fuzzy #, fuzzy
@@ -33398,9 +33391,8 @@ msgstr "Por favor, inténtalo de nuevo."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:29 #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pay.html:29
#: pretix/presale/templates/pretixpresale/event/checkout_payment.html:57 #: pretix/presale/templates/pretixpresale/event/checkout_payment.html:57
#, fuzzy
msgid "Please select how you want to pay." msgid "Please select how you want to pay."
msgstr "Por favor, seleccione cómo desea pagar." msgstr "Por favor, seleccione cómo desexa pagar."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html:10 #: pretix/plugins/paypal2/templates/pretixplugins/paypal2/pending.html:10
#, fuzzy #, fuzzy
@@ -34550,7 +34542,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py:337 #: pretix/plugins/stripe/payment.py:337
msgid "Credit card payments" msgid "Credit card payments"
msgstr "Pagos con cartón de crédito" msgstr "Pagos con tarxeta de crédito"
#: pretix/plugins/stripe/payment.py:342 pretix/plugins/stripe/payment.py:1527 #: pretix/plugins/stripe/payment.py:342 pretix/plugins/stripe/payment.py:1527
msgid "iDEAL" msgid "iDEAL"
@@ -35103,18 +35095,12 @@ msgstr "Titular de la cuenta"
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple.html:7 #: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple.html:7
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple_messaging_noform.html:13 #: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple_messaging_noform.html:13
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple_noform.html:5 #: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_simple_noform.html:5
#, fuzzy
#| msgid ""
#| "After you submitted your order, we will redirect you to the payment "
#| "service provider to complete your payment. You will then be redirected "
#| "back here to get your tickets."
msgid "" msgid ""
"After you submitted your order, we will redirect you to the payment service " "After you submitted your order, we will redirect you to the payment service "
"provider to complete your payment. You will then be redirected back here." "provider to complete your payment. You will then be redirected back here."
msgstr "" msgstr ""
"Despois de que enviase o seu pedido, redirixirémoslle ao provedor de " "Despois de enviar o teu pedido, redirixirémoste ao provedor de servizos de "
"servizos de pago para completar o seu pago. A continuación, redirixiráselle " "pagamento para completar o pago. Despois, serás redirixido de novo aquí."
"de novo aquí para obter as súas entradas."
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:9 #: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:9
msgid "" msgid ""
@@ -35490,9 +35476,8 @@ msgid "Download tickets (PDF)"
msgstr "Descargar tickets (PDF)" msgstr "Descargar tickets (PDF)"
#: pretix/plugins/ticketoutputpdf/ticketoutput.py:66 #: pretix/plugins/ticketoutputpdf/ticketoutput.py:66
#, fuzzy
msgid "Download ticket (PDF)" msgid "Download ticket (PDF)"
msgstr "Descargar ticket" msgstr "Descargar ticket (PDF)"
#: pretix/plugins/ticketoutputpdf/views.py:62 #: pretix/plugins/ticketoutputpdf/views.py:62
#, fuzzy #, fuzzy
@@ -35631,7 +35616,6 @@ msgstr ""
"selecciona un método de pago." "selecciona un método de pago."
#: pretix/presale/checkoutflow.py:1393 pretix/presale/views/order.py:679 #: pretix/presale/checkoutflow.py:1393 pretix/presale/views/order.py:679
#, fuzzy
msgid "Please select a payment method." msgid "Please select a payment method."
msgstr "Por favor seleccione un método de pago." msgstr "Por favor seleccione un método de pago."
@@ -36092,9 +36076,8 @@ msgid "Cart expired"
msgstr "O carro da compra caducou" msgstr "O carro da compra caducou"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36 #: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
#, fuzzy
msgid "Show full cart" msgid "Show full cart"
msgstr "Mostrar información" msgstr "Mostrar o carro completo"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:52 #: pretix/presale/templates/pretixpresale/event/checkout_base.html:52
#: pretix/presale/templates/pretixpresale/event/index.html:86 #: pretix/presale/templates/pretixpresale/event/index.html:86
@@ -36186,9 +36169,8 @@ msgstr ""
"un enlace que puede utilizar para pagar." "un enlace que puede utilizar para pagar."
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:215 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:215
#, fuzzy
msgid "Place binding order" msgid "Place binding order"
msgstr "Colocar orden de compra" msgstr "Realizar orde"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:217 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:217
msgid "Submit registration" msgid "Submit registration"
@@ -36787,9 +36769,9 @@ msgstr[0] "Unha entrada"
msgstr[1] "%(num)s entradas" msgstr[1] "%(num)s entradas"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:485 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:485
#, fuzzy, python-format #, python-format
msgid "incl. %(tax_sum)s taxes" msgid "incl. %(tax_sum)s taxes"
msgstr "incl. %(tax_sum)s impuestos" msgstr "incl. %(tax_sum)s IVE"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:505 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:505
#, python-format #, python-format
@@ -37112,9 +37094,8 @@ msgid "Confirmed"
msgstr "Confirmado" msgstr "Confirmado"
#: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:15 #: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:15
#, fuzzy
msgid "Payment pending" msgid "Payment pending"
msgstr "Pago pendiente" msgstr "Pago pendente"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:21 #: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:21
#, fuzzy #, fuzzy
@@ -37138,11 +37119,11 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:131 #: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:131
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:288 #: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:288
#, fuzzy, python-format #, python-format
msgid "%(amount)s× in your cart" msgid "%(amount)s× in your cart"
msgid_plural "%(amount)s× in your cart" msgid_plural "%(amount)s× in your cart"
msgstr[0] "%(count)s elementos" msgstr[0] "%(amount)s× no teu carro"
msgstr[1] "%(count)s elementos" msgstr[1] "%(amount)s× no teu carro"
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:209 #: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:209
#: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:374 #: pretix/presale/templates/pretixpresale/event/fragment_product_list.html:374
@@ -37373,9 +37354,9 @@ msgstr "O seu pedido foi procesado con éxito! Ver abaixo para máis detalles."
#: pretix/presale/templates/pretixpresale/event/order.html:19 #: pretix/presale/templates/pretixpresale/event/order.html:19
#: pretix/presale/templates/pretixpresale/event/order.html:50 #: pretix/presale/templates/pretixpresale/event/order.html:50
#, fuzzy
msgid "We successfully received your payment. See below for details." msgid "We successfully received your payment. See below for details."
msgstr "Hemos recibido con éxito su pago. Ver abajo para más detalles." msgstr ""
"Recibimos o teu pagamento correctamente. Consulta os detalles a continuación."
#: pretix/presale/templates/pretixpresale/event/order.html:35 #: pretix/presale/templates/pretixpresale/event/order.html:35
#, fuzzy #, fuzzy
@@ -37396,24 +37377,18 @@ msgstr ""
"organizador del evento antes de que pueda pagar y completar este pedido." "organizador del evento antes de que pueda pagar y completar este pedido."
#: pretix/presale/templates/pretixpresale/event/order.html:43 #: pretix/presale/templates/pretixpresale/event/order.html:43
#, fuzzy
msgid "Please note that we still await your payment to complete the process." msgid "Please note that we still await your payment to complete the process."
msgstr "Tenga en cuenta que aún esperamos su pago para completar el proceso." msgstr "Ten en conta que aínda agardamos o teu pago para completar o proceso."
#: pretix/presale/templates/pretixpresale/event/order.html:55 #: pretix/presale/templates/pretixpresale/event/order.html:55
#, fuzzy
#| msgid ""
#| "Please bookmark or save the link to this exact page if you want to access "
#| "your order later. We also sent you an email containing the link to the "
#| "address you specified."
msgid "" msgid ""
"Please bookmark or save the link to this exact page if you want to access " "Please bookmark or save the link to this exact page if you want to access "
"your order later. We also sent you an email to the address you specified " "your order later. We also sent you an email to the address you specified "
"containing the link to this page." "containing the link to this page."
msgstr "" msgstr ""
"Por favor, marque ou garde a ligazón a esta páxina exacta se desexa acceder " "Por favor, garda a ligazón a esta páxina exacta se queres acceder ao teu "
"ao seu pedido máis tarde. Tamén lle enviamos un correo electrónico coa " "pedido máis tarde. Tamén che enviamos un correo electrónico ao enderezo que "
"ligazón ao enderezo que vostede especificou." "especificaches coa ligazón a esta páxina."
#: pretix/presale/templates/pretixpresale/event/order.html:59 #: pretix/presale/templates/pretixpresale/event/order.html:59
#, fuzzy #, fuzzy
@@ -37435,9 +37410,9 @@ msgid "View in backend"
msgstr "Ver en el backend" msgstr "Ver en el backend"
#: pretix/presale/templates/pretixpresale/event/order.html:91 #: pretix/presale/templates/pretixpresale/event/order.html:91
#, fuzzy, python-format #, python-format
msgid "A payment of %(total)s is still pending for this order." msgid "A payment of %(total)s is still pending for this order."
msgstr "Un pago de %(total)s todavía está pendiente para esta orden." msgstr "Un pago de %(total)s aínda está pendente para esta orde."
#: pretix/presale/templates/pretixpresale/event/order.html:96 #: pretix/presale/templates/pretixpresale/event/order.html:96
#, fuzzy, python-format #, fuzzy, python-format
@@ -37546,10 +37521,9 @@ msgid "Change your order"
msgstr "Cancelar orden" msgstr "Cancelar orden"
#: pretix/presale/templates/pretixpresale/event/order.html:358 #: pretix/presale/templates/pretixpresale/event/order.html:358
#, fuzzy
msgctxt "action" msgctxt "action"
msgid "Cancel your order" msgid "Cancel your order"
msgstr "Cancelar orden" msgstr "Cancela o teu pedido"
#: pretix/presale/templates/pretixpresale/event/order.html:366 #: pretix/presale/templates/pretixpresale/event/order.html:366
msgid "" msgid ""
@@ -37665,9 +37639,9 @@ msgid "Request cancellation: %(code)s"
msgstr "Pedido cancelado: %(code)s" msgstr "Pedido cancelado: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:15 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:15
#, fuzzy, python-format #, python-format
msgid "Cancel order: %(code)s" msgid "Cancel order: %(code)s"
msgstr "Cancelar orden: %(code)s" msgstr "Cancelar orde: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_cancel.html:38 #: pretix/presale/templates/pretixpresale/event/order_cancel.html:38
msgid "" msgid ""
@@ -37753,14 +37727,12 @@ msgid "Modify order: %(code)s"
msgstr "Modificar pedido: %(code)s" msgstr "Modificar pedido: %(code)s"
#: pretix/presale/templates/pretixpresale/event/order_modify.html:18 #: pretix/presale/templates/pretixpresale/event/order_modify.html:18
#, fuzzy
msgid "" msgid ""
"Modifying your invoice address will not automatically generate a new " "Modifying your invoice address will not automatically generate a new "
"invoice. Please contact us if you need a new invoice." "invoice. Please contact us if you need a new invoice."
msgstr "" msgstr ""
"La modificación de la dirección de facturación no generará automáticamente " "A modificación do enderezo de facturación non xerará automaticamente unha "
"una nueva factura. Póngase en contacto con nosotros si necesita una nueva " "nova factura. Póñase en contacto connosco se precisa unha nova factura."
"factura."
#: pretix/presale/templates/pretixpresale/event/order_modify.html:88 #: pretix/presale/templates/pretixpresale/event/order_modify.html:88
#: pretix/presale/templates/pretixpresale/event/position_modify.html:49 #: pretix/presale/templates/pretixpresale/event/position_modify.html:49
@@ -38609,10 +38581,8 @@ msgid "Your cart is now empty."
msgstr "Baleirouse o seu pedido." msgstr "Baleirouse o seu pedido."
#: pretix/presale/views/cart.py:569 #: pretix/presale/views/cart.py:569
#, fuzzy
#| msgid "Your cart has been updated."
msgid "Your cart timeout was extended." msgid "Your cart timeout was extended."
msgstr "O seu pedido actualizouse." msgstr "Ampliouse o tempo de espera do teu carro."
#: pretix/presale/views/cart.py:584 #: pretix/presale/views/cart.py:584
msgid "The products have been successfully added to your cart." msgid "The products have been successfully added to your cart."

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-27 13:57+0000\n" "POT-Creation-Date: 2025-11-27 13:57+0000\n"
"PO-Revision-Date: 2025-12-09 22:00+0000\n" "PO-Revision-Date: 2025-12-14 00:00+0000\n"
"Last-Translator: Lachlan Struthers <lachlan.struthers@om.org>\n" "Last-Translator: Lachlan Struthers <lachlan.struthers@om.org>\n"
"Language-Team: Albanian <https://translate.pretix.eu/projects/pretix/pretix/" "Language-Team: Albanian <https://translate.pretix.eu/projects/pretix/pretix/"
"sq/>\n" "sq/>\n"
@@ -25,19 +25,19 @@ msgstr "Anglisht"
#: pretix/_base_settings.py:88 #: pretix/_base_settings.py:88
msgid "German" msgid "German"
msgstr "" msgstr "Gjermanisht"
#: pretix/_base_settings.py:89 #: pretix/_base_settings.py:89
msgid "German (informal)" msgid "German (informal)"
msgstr "" msgstr "Gjermanisht (joformale)"
#: pretix/_base_settings.py:90 #: pretix/_base_settings.py:90
msgid "Arabic" msgid "Arabic"
msgstr "" msgstr "Arabisht"
#: pretix/_base_settings.py:91 #: pretix/_base_settings.py:91
msgid "Basque" msgid "Basque"
msgstr "" msgstr "Baskisht"
#: pretix/_base_settings.py:92 #: pretix/_base_settings.py:92
msgid "Catalan" msgid "Catalan"
@@ -2954,7 +2954,7 @@ msgstr ""
#: pretix/plugins/reports/accountingreport.py:105 #: pretix/plugins/reports/accountingreport.py:105
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:67 #: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:67
msgid "All" msgid "All"
msgstr "" msgstr "Të gjitha"
#: pretix/base/exporters/orderlist.py:1329 pretix/control/forms/filter.py:1450 #: pretix/base/exporters/orderlist.py:1329 pretix/control/forms/filter.py:1450
msgid "Live" msgid "Live"
@@ -7434,7 +7434,7 @@ msgstr ""
#: pretix/base/pdf.py:278 pretix/base/pdf.py:307 #: pretix/base/pdf.py:278 pretix/base/pdf.py:307
#: pretix/base/services/checkin.py:362 pretix/control/forms/filter.py:1271 #: pretix/base/services/checkin.py:362 pretix/control/forms/filter.py:1271
msgid "Friday" msgid "Friday"
msgstr "" msgstr "E Premte"
#: pretix/base/pdf.py:282 #: pretix/base/pdf.py:282
msgid "Event end date and time" msgid "Event end date and time"
@@ -8132,27 +8132,27 @@ msgstr ""
#: pretix/base/services/checkin.py:358 pretix/control/forms/filter.py:1267 #: pretix/base/services/checkin.py:358 pretix/control/forms/filter.py:1267
msgid "Monday" msgid "Monday"
msgstr "" msgstr "E Hënë"
#: pretix/base/services/checkin.py:359 pretix/control/forms/filter.py:1268 #: pretix/base/services/checkin.py:359 pretix/control/forms/filter.py:1268
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr "E Martë"
#: pretix/base/services/checkin.py:360 pretix/control/forms/filter.py:1269 #: pretix/base/services/checkin.py:360 pretix/control/forms/filter.py:1269
msgid "Wednesday" msgid "Wednesday"
msgstr "" msgstr "E Mërkurë"
#: pretix/base/services/checkin.py:361 pretix/control/forms/filter.py:1270 #: pretix/base/services/checkin.py:361 pretix/control/forms/filter.py:1270
msgid "Thursday" msgid "Thursday"
msgstr "" msgstr "E Enjte"
#: pretix/base/services/checkin.py:363 pretix/control/forms/filter.py:1272 #: pretix/base/services/checkin.py:363 pretix/control/forms/filter.py:1272
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr "E Shtunë"
#: pretix/base/services/checkin.py:364 pretix/control/forms/filter.py:1273 #: pretix/base/services/checkin.py:364 pretix/control/forms/filter.py:1273
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr "E Diel"
#: pretix/base/services/checkin.py:368 #: pretix/base/services/checkin.py:368
#, python-brace-format #, python-brace-format
@@ -13044,7 +13044,7 @@ msgstr ""
#: pretix/control/forms/filter.py:2052 pretix/control/forms/filter.py:2054 #: pretix/control/forms/filter.py:2052 pretix/control/forms/filter.py:2054
#: pretix/control/forms/filter.py:2620 pretix/control/forms/filter.py:2622 #: pretix/control/forms/filter.py:2620 pretix/control/forms/filter.py:2622
msgid "Search query" msgid "Search query"
msgstr "" msgstr "Kërkim"
#: pretix/control/forms/filter.py:1528 pretix/control/forms/filter.py:1600 #: pretix/control/forms/filter.py:1528 pretix/control/forms/filter.py:1600
#: pretix/control/templates/pretixcontrol/organizers/customer.html:47 #: pretix/control/templates/pretixcontrol/organizers/customer.html:47
@@ -18274,7 +18274,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/device_logs.html:50 #: pretix/control/templates/pretixcontrol/organizers/device_logs.html:50
#: pretix/control/templates/pretixcontrol/organizers/logs.html:80 #: pretix/control/templates/pretixcontrol/organizers/logs.html:80
msgid "No results" msgid "No results"
msgstr "" msgstr "S'ka rezultate"
#: pretix/control/templates/pretixcontrol/event/mail.html:7 #: pretix/control/templates/pretixcontrol/event/mail.html:7
#: pretix/control/templates/pretixcontrol/organizers/mail.html:11 #: pretix/control/templates/pretixcontrol/organizers/mail.html:11
@@ -19326,51 +19326,51 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html:16 #: pretix/control/templates/pretixcontrol/global_sysreport.html:16
msgid "January" msgid "January"
msgstr "" msgstr "Janar"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:17 #: pretix/control/templates/pretixcontrol/global_sysreport.html:17
msgid "February" msgid "February"
msgstr "" msgstr "Shkurt"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:18 #: pretix/control/templates/pretixcontrol/global_sysreport.html:18
msgid "March" msgid "March"
msgstr "" msgstr "Mars"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:19 #: pretix/control/templates/pretixcontrol/global_sysreport.html:19
msgid "April" msgid "April"
msgstr "" msgstr "Prill"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:20 #: pretix/control/templates/pretixcontrol/global_sysreport.html:20
msgid "May" msgid "May"
msgstr "" msgstr "Maj"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:21 #: pretix/control/templates/pretixcontrol/global_sysreport.html:21
msgid "June" msgid "June"
msgstr "" msgstr "Qershor"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:22 #: pretix/control/templates/pretixcontrol/global_sysreport.html:22
msgid "July" msgid "July"
msgstr "" msgstr "Korrik"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:23 #: pretix/control/templates/pretixcontrol/global_sysreport.html:23
msgid "August" msgid "August"
msgstr "" msgstr "Gusht"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:24 #: pretix/control/templates/pretixcontrol/global_sysreport.html:24
msgid "September" msgid "September"
msgstr "" msgstr "Shtator"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:25 #: pretix/control/templates/pretixcontrol/global_sysreport.html:25
msgid "October" msgid "October"
msgstr "" msgstr "Tetor"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:26 #: pretix/control/templates/pretixcontrol/global_sysreport.html:26
msgid "November" msgid "November"
msgstr "" msgstr "Nëntor"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:27 #: pretix/control/templates/pretixcontrol/global_sysreport.html:27
msgid "December" msgid "December"
msgstr "" msgstr "Dhjetor"
#: pretix/control/templates/pretixcontrol/global_sysreport.html:32 #: pretix/control/templates/pretixcontrol/global_sysreport.html:32
msgid "Generate report" msgid "Generate report"
@@ -20098,7 +20098,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/items/question.html:91 #: pretix/control/templates/pretixcontrol/items/question.html:91
msgid "Count" msgid "Count"
msgstr "" msgstr "Sasia"
#: pretix/control/templates/pretixcontrol/items/question.html:92 #: pretix/control/templates/pretixcontrol/items/question.html:92
#, python-format #, python-format
@@ -23098,7 +23098,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html:52 #: pretix/control/templates/pretixcontrol/pdf/index.html:52
msgid "Text box" msgid "Text box"
msgstr "" msgstr "Kutia teksti"
#: pretix/control/templates/pretixcontrol/pdf/index.html:59 #: pretix/control/templates/pretixcontrol/pdf/index.html:59
msgid "QR Code" msgid "QR Code"
@@ -29765,7 +29765,7 @@ msgstr ""
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:23 #: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:23
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr "Dizajni i biletës"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:27 #: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:27
msgid "You can modify the design after you saved this page." msgid "You can modify the design after you saved this page."
@@ -30328,7 +30328,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:27 #: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:27
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:18 #: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:18
msgid "Cart expired" msgid "Cart expired"
msgstr "" msgstr "Shporta juaj u skadua"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36 #: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
msgid "Show full cart" msgid "Show full cart"
@@ -30936,11 +30936,13 @@ msgid ""
"The items in your cart are no longer reserved for you. You can still " "The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available." "complete your order as long as theyre available."
msgstr "" msgstr ""
"Sendet në shportën tuaj nuk janë të rezervuar më për ju. Ju mund t'a "
"përmbushni porosinë tuaj derisa janë ende të disponueshëm."
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:514 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:514
#: pretix/presale/templates/pretixpresale/fragment_modals.html:48 #: pretix/presale/templates/pretixpresale/fragment_modals.html:48
msgid "Renew reservation" msgid "Renew reservation"
msgstr "" msgstr "Rivendosni rezervimin"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:526 #: pretix/presale/templates/pretixpresale/event/fragment_cart.html:526
msgid "Reservation renewed" msgid "Reservation renewed"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-20 10:37+0000\n" "POT-Creation-Date: 2025-11-20 10:37+0000\n"
"PO-Revision-Date: 2025-12-09 22:00+0000\n" "PO-Revision-Date: 2025-12-14 00:00+0000\n"
"Last-Translator: Lachlan Struthers <lachlan.struthers@om.org>\n" "Last-Translator: Lachlan Struthers <lachlan.struthers@om.org>\n"
"Language-Team: Albanian <https://translate.pretix.eu/projects/pretix/" "Language-Team: Albanian <https://translate.pretix.eu/projects/pretix/"
"pretix-js/sq/>\n" "pretix-js/sq/>\n"
@@ -597,356 +597,367 @@ msgstr "Kodi QR për check-in"
#: pretix/static/pretixcontrol/js/ui/editor.js:549 #: pretix/static/pretixcontrol/js/ui/editor.js:549
msgid "The PDF background file could not be loaded for the following reason:" msgid "The PDF background file could not be loaded for the following reason:"
msgstr "" msgstr "Faili bazë PDF nuk mund të shkarkohej për këto arsye:"
#: pretix/static/pretixcontrol/js/ui/editor.js:904 #: pretix/static/pretixcontrol/js/ui/editor.js:904
msgid "Group of objects" msgid "Group of objects"
msgstr "" msgstr "Grupi i sendeve"
#: pretix/static/pretixcontrol/js/ui/editor.js:909 #: pretix/static/pretixcontrol/js/ui/editor.js:909
msgid "Text object (deprecated)" msgid "Text object (deprecated)"
msgstr "" msgstr "Objekt teksti (i dalë nga përdorimi)"
#: pretix/static/pretixcontrol/js/ui/editor.js:911 #: pretix/static/pretixcontrol/js/ui/editor.js:911
msgid "Text box" msgid "Text box"
msgstr "" msgstr "Kutia teksti"
#: pretix/static/pretixcontrol/js/ui/editor.js:913 #: pretix/static/pretixcontrol/js/ui/editor.js:913
msgid "Barcode area" msgid "Barcode area"
msgstr "" msgstr "Zona e barkodit"
#: pretix/static/pretixcontrol/js/ui/editor.js:915 #: pretix/static/pretixcontrol/js/ui/editor.js:915
msgid "Image area" msgid "Image area"
msgstr "" msgstr "Zona për imazhe"
#: pretix/static/pretixcontrol/js/ui/editor.js:917 #: pretix/static/pretixcontrol/js/ui/editor.js:917
msgid "Powered by pretix" msgid "Powered by pretix"
msgstr "" msgstr "Mundësuar nga pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:919 #: pretix/static/pretixcontrol/js/ui/editor.js:919
msgid "Object" msgid "Object"
msgstr "" msgstr "Objekt"
#: pretix/static/pretixcontrol/js/ui/editor.js:923 #: pretix/static/pretixcontrol/js/ui/editor.js:923
msgid "Ticket design" msgid "Ticket design"
msgstr "" msgstr "Dizajni i biletës"
#: pretix/static/pretixcontrol/js/ui/editor.js:1292 #: pretix/static/pretixcontrol/js/ui/editor.js:1292
msgid "Saving failed." msgid "Saving failed."
msgstr "" msgstr "Ruajtja nuk u krye."
#: pretix/static/pretixcontrol/js/ui/editor.js:1361 #: pretix/static/pretixcontrol/js/ui/editor.js:1361
#: pretix/static/pretixcontrol/js/ui/editor.js:1412 #: pretix/static/pretixcontrol/js/ui/editor.js:1412
msgid "Error while uploading your PDF file, please try again." msgid "Error while uploading your PDF file, please try again."
msgstr "" msgstr "Pati gabim në ngarkimin e failit tuaj PDF, ju lutemi, provoni përsëri."
#: pretix/static/pretixcontrol/js/ui/editor.js:1395 #: pretix/static/pretixcontrol/js/ui/editor.js:1395
msgid "Do you really want to leave the editor without saving your changes?" msgid "Do you really want to leave the editor without saving your changes?"
msgstr "" msgstr "A vërtetë dëshironi të dilni nga redaktori pa ruajtur ndryshimet tuaja?"
#: pretix/static/pretixcontrol/js/ui/mail.js:19 #: pretix/static/pretixcontrol/js/ui/mail.js:19
msgid "An error has occurred." msgid "An error has occurred."
msgstr "" msgstr "Një gabim ka ndodhur."
#: pretix/static/pretixcontrol/js/ui/mail.js:52 #: pretix/static/pretixcontrol/js/ui/mail.js:52
msgid "Generating messages …" msgid "Generating messages …"
msgstr "" msgstr "Duke prodhuar mesazhe …"
#: pretix/static/pretixcontrol/js/ui/main.js:69 #: pretix/static/pretixcontrol/js/ui/main.js:69
msgid "Unknown error." msgid "Unknown error."
msgstr "" msgstr "Gabim i panjohur."
#: pretix/static/pretixcontrol/js/ui/main.js:309 #: pretix/static/pretixcontrol/js/ui/main.js:309
msgid "Your color has great contrast and will provide excellent accessibility." msgid "Your color has great contrast and will provide excellent accessibility."
msgstr "" msgstr ""
"Ngjyra juaj ka kontrast shumë të mirë dhe do të ofrojë aksesueshmëri të "
"shkëlqyer."
#: pretix/static/pretixcontrol/js/ui/main.js:313 #: pretix/static/pretixcontrol/js/ui/main.js:313
msgid "" msgid ""
"Your color has decent contrast and is sufficient for minimum accessibility " "Your color has decent contrast and is sufficient for minimum accessibility "
"requirements." "requirements."
msgstr "" msgstr ""
"Ngjyra juaj ka kontrast të mirë dhe përmbush kërkesat minimale të "
"aksesueshmërisë."
#: pretix/static/pretixcontrol/js/ui/main.js:317 #: pretix/static/pretixcontrol/js/ui/main.js:317
msgid "" msgid ""
"Your color has insufficient contrast to white. Accessibility of your site " "Your color has insufficient contrast to white. Accessibility of your site "
"will be impacted." "will be impacted."
msgstr "" msgstr ""
"Ngjyra juaj nuk ka kontrast të mjaftueshëm me të bardhën. Kjo mund të "
"ndikojë në aksesueshmërinë e faqes suaj."
#: pretix/static/pretixcontrol/js/ui/main.js:443 #: pretix/static/pretixcontrol/js/ui/main.js:443
#: pretix/static/pretixcontrol/js/ui/main.js:463 #: pretix/static/pretixcontrol/js/ui/main.js:463
msgid "Search query" msgid "Search query"
msgstr "" msgstr "Kërkim"
#: pretix/static/pretixcontrol/js/ui/main.js:461 #: pretix/static/pretixcontrol/js/ui/main.js:461
msgid "All" msgid "All"
msgstr "" msgstr "Të gjitha"
#: pretix/static/pretixcontrol/js/ui/main.js:462 #: pretix/static/pretixcontrol/js/ui/main.js:462
msgid "None" msgid "None"
msgstr "" msgstr "Asnjë"
#: pretix/static/pretixcontrol/js/ui/main.js:466 #: pretix/static/pretixcontrol/js/ui/main.js:466
msgid "Selected only" msgid "Selected only"
msgstr "" msgstr "Vetëm të zghedhura"
#: pretix/static/pretixcontrol/js/ui/main.js:839 #: pretix/static/pretixcontrol/js/ui/main.js:839
msgid "Enter page number between 1 and %(max)s." msgid "Enter page number between 1 and %(max)s."
msgstr "" msgstr "Shkruani numrin e faqes midis 1 dhe %(max)s."
#: pretix/static/pretixcontrol/js/ui/main.js:842 #: pretix/static/pretixcontrol/js/ui/main.js:842
msgid "Invalid page number." msgid "Invalid page number."
msgstr "" msgstr "Numër faqe i pavlefshëm."
#: pretix/static/pretixcontrol/js/ui/main.js:1000 #: pretix/static/pretixcontrol/js/ui/main.js:1000
msgid "Use a different name internally" msgid "Use a different name internally"
msgstr "" msgstr "Përdorni një emër tjetër brenda sistemit"
#: pretix/static/pretixcontrol/js/ui/main.js:1040 #: pretix/static/pretixcontrol/js/ui/main.js:1040
msgid "Click to close" msgid "Click to close"
msgstr "" msgstr "Shtypni për të mbyllur"
#: pretix/static/pretixcontrol/js/ui/main.js:1121 #: pretix/static/pretixcontrol/js/ui/main.js:1121
msgid "You have unsaved changes!" msgid "You have unsaved changes!"
msgstr "" msgstr "Ju keni ndryshime të paruajtur!"
#: pretix/static/pretixcontrol/js/ui/orderchange.js:25 #: pretix/static/pretixcontrol/js/ui/orderchange.js:25
msgid "Calculating default price…" msgid "Calculating default price…"
msgstr "" msgstr "Duke e llogaritur çmimin e parazgjedhur…"
#: pretix/static/pretixcontrol/js/ui/plugins.js:69 #: pretix/static/pretixcontrol/js/ui/plugins.js:69
msgid "No results" msgid "No results"
msgstr "" msgstr "S'ka rezultate"
#: pretix/static/pretixcontrol/js/ui/question.js:41 #: pretix/static/pretixcontrol/js/ui/question.js:41
msgid "Others" msgid "Others"
msgstr "" msgstr "Të tjera"
#: pretix/static/pretixcontrol/js/ui/question.js:81 #: pretix/static/pretixcontrol/js/ui/question.js:81
msgid "Count" msgid "Count"
msgstr "" msgstr "Sasia"
#: pretix/static/pretixcontrol/js/ui/subevent.js:112 #: pretix/static/pretixcontrol/js/ui/subevent.js:112
msgid "(one more date)" msgid "(one more date)"
msgid_plural "({num} more dates)" msgid_plural "({num} more dates)"
msgstr[0] "" msgstr[0] "(edhe një datë)"
msgstr[1] "" msgstr[1] "(edhe {num} më shumë data)"
#: pretix/static/pretixpresale/js/ui/cart.js:47 #: pretix/static/pretixpresale/js/ui/cart.js:47
msgid "" msgid ""
"The items in your cart are no longer reserved for you. You can still " "The items in your cart are no longer reserved for you. You can still "
"complete your order as long as theyre available." "complete your order as long as theyre available."
msgstr "" msgstr ""
"Sendet në shportën tuaj nuk janë të rezervuar më për ju. Ju mund t'a "
"përmbushni porosinë tuaj derisa janë ende të disponueshëm."
#: pretix/static/pretixpresale/js/ui/cart.js:49 #: pretix/static/pretixpresale/js/ui/cart.js:49
msgid "Cart expired" msgid "Cart expired"
msgstr "" msgstr "Shporta juaj u skadua"
#: pretix/static/pretixpresale/js/ui/cart.js:58 #: pretix/static/pretixpresale/js/ui/cart.js:58
#: pretix/static/pretixpresale/js/ui/cart.js:84 #: pretix/static/pretixpresale/js/ui/cart.js:84
msgid "Your cart is about to expire." msgid "Your cart is about to expire."
msgstr "" msgstr "Shporta juaj do të skadohet së shpejti."
#: pretix/static/pretixpresale/js/ui/cart.js:62 #: pretix/static/pretixpresale/js/ui/cart.js:62
msgid "The items in your cart are reserved for you for one minute." msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes." msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] "" msgstr[0] "Sendet në shportën tuaj janë të rezervuar për ju për një minutë."
msgstr[1] "" msgstr[1] "Sendet në shportën tuaj janë të rezervuar për ju për {num} minuta."
#: pretix/static/pretixpresale/js/ui/cart.js:83 #: pretix/static/pretixpresale/js/ui/cart.js:83
msgid "Your cart has expired." msgid "Your cart has expired."
msgstr "" msgstr "Shporta juaj është skaduar."
#: pretix/static/pretixpresale/js/ui/cart.js:86 #: pretix/static/pretixpresale/js/ui/cart.js:86
msgid "" msgid ""
"The items in your cart are no longer reserved for you. You can still " "The items in your cart are no longer reserved for you. You can still "
"complete your order as long as they're available." "complete your order as long as they're available."
msgstr "" msgstr ""
"Sendet në shportën tuaj nuk janë të rezervuar më për ju. Ju mund t'a "
"përmbushni porosinë derisa janë ende të disponueshëm."
#: pretix/static/pretixpresale/js/ui/cart.js:87 #: pretix/static/pretixpresale/js/ui/cart.js:87
msgid "Do you want to renew the reservation period?" msgid "Do you want to renew the reservation period?"
msgstr "" msgstr "A dëshironi t'a rivendosni periudhën e rezervimit?"
#: pretix/static/pretixpresale/js/ui/cart.js:90 #: pretix/static/pretixpresale/js/ui/cart.js:90
msgid "Renew reservation" msgid "Renew reservation"
msgstr "" msgstr "Rivendosni rezervimin"
#: pretix/static/pretixpresale/js/ui/main.js:194 #: pretix/static/pretixpresale/js/ui/main.js:194
msgid "The organizer keeps %(currency)s %(amount)s" msgid "The organizer keeps %(currency)s %(amount)s"
msgstr "" msgstr "Organizatori mban %(currency)s %(amount)s"
#: pretix/static/pretixpresale/js/ui/main.js:202 #: pretix/static/pretixpresale/js/ui/main.js:202
msgid "You get %(currency)s %(amount)s back" msgid "You get %(currency)s %(amount)s back"
msgstr "" msgstr "Ju merrni %(currency)s %(amount)s kusur"
#: pretix/static/pretixpresale/js/ui/main.js:218 #: pretix/static/pretixpresale/js/ui/main.js:218
msgid "Please enter the amount the organizer can keep." msgid "Please enter the amount the organizer can keep."
msgstr "" msgstr "Ju lutemi të shkruani shumën që mund të mbajë organizatori."
#: pretix/static/pretixpresale/js/ui/main.js:577 #: pretix/static/pretixpresale/js/ui/main.js:577
msgid "Your local time:" msgid "Your local time:"
msgstr "" msgstr "Koha juaj vendase:"
#: pretix/static/pretixpresale/js/walletdetection.js:39 #: pretix/static/pretixpresale/js/walletdetection.js:39
#, fuzzy
msgid "Google Pay" msgid "Google Pay"
msgstr "" msgstr "Google Pay"
#: pretix/static/pretixpresale/js/widget/widget.js:16 #: pretix/static/pretixpresale/js/widget/widget.js:16
msgctxt "widget" msgctxt "widget"
msgid "Quantity" msgid "Quantity"
msgstr "" msgstr "Sasi"
#: pretix/static/pretixpresale/js/widget/widget.js:17 #: pretix/static/pretixpresale/js/widget/widget.js:17
msgctxt "widget" msgctxt "widget"
msgid "Decrease quantity" msgid "Decrease quantity"
msgstr "" msgstr "Ulni sasinë"
#: pretix/static/pretixpresale/js/widget/widget.js:18 #: pretix/static/pretixpresale/js/widget/widget.js:18
msgctxt "widget" msgctxt "widget"
msgid "Increase quantity" msgid "Increase quantity"
msgstr "" msgstr "Rrisni sasinë"
#: pretix/static/pretixpresale/js/widget/widget.js:19 #: pretix/static/pretixpresale/js/widget/widget.js:19
msgctxt "widget" msgctxt "widget"
msgid "Filter events by" msgid "Filter events by"
msgstr "" msgstr "Filtroni ngjarjet nga"
#: pretix/static/pretixpresale/js/widget/widget.js:20 #: pretix/static/pretixpresale/js/widget/widget.js:20
msgctxt "widget" msgctxt "widget"
msgid "Filter" msgid "Filter"
msgstr "" msgstr "Filtri"
#: pretix/static/pretixpresale/js/widget/widget.js:21 #: pretix/static/pretixpresale/js/widget/widget.js:21
msgctxt "widget" msgctxt "widget"
msgid "Price" msgid "Price"
msgstr "" msgstr "Çmimi"
#: pretix/static/pretixpresale/js/widget/widget.js:22 #: pretix/static/pretixpresale/js/widget/widget.js:22
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Original price: %s" msgid "Original price: %s"
msgstr "" msgstr "Çmimi origjinal:%s"
#: pretix/static/pretixpresale/js/widget/widget.js:23 #: pretix/static/pretixpresale/js/widget/widget.js:23
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "New price: %s" msgid "New price: %s"
msgstr "" msgstr "Çmimi i ri:%s"
#: pretix/static/pretixpresale/js/widget/widget.js:24 #: pretix/static/pretixpresale/js/widget/widget.js:24
msgctxt "widget" msgctxt "widget"
msgid "Select" msgid "Select"
msgstr "" msgstr "Zgjidhni"
#: pretix/static/pretixpresale/js/widget/widget.js:25 #: pretix/static/pretixpresale/js/widget/widget.js:25
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Select %s" msgid "Select %s"
msgstr "" msgstr "Zgjidhni%s"
#: pretix/static/pretixpresale/js/widget/widget.js:26 #: pretix/static/pretixpresale/js/widget/widget.js:26
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Select variant %s" msgid "Select variant %s"
msgstr "" msgstr "Zgjidhni variant %s"
#: pretix/static/pretixpresale/js/widget/widget.js:27 #: pretix/static/pretixpresale/js/widget/widget.js:27
msgctxt "widget" msgctxt "widget"
msgid "Sold out" msgid "Sold out"
msgstr "" msgstr "Shitur të gjitha"
#: pretix/static/pretixpresale/js/widget/widget.js:28 #: pretix/static/pretixpresale/js/widget/widget.js:28
msgctxt "widget" msgctxt "widget"
msgid "Buy" msgid "Buy"
msgstr "" msgstr "Blini"
#: pretix/static/pretixpresale/js/widget/widget.js:29 #: pretix/static/pretixpresale/js/widget/widget.js:29
msgctxt "widget" msgctxt "widget"
msgid "Register" msgid "Register"
msgstr "" msgstr "Regjistrohuni"
#: pretix/static/pretixpresale/js/widget/widget.js:30 #: pretix/static/pretixpresale/js/widget/widget.js:30
msgctxt "widget" msgctxt "widget"
msgid "Reserved" msgid "Reserved"
msgstr "" msgstr "Të rezervuar"
#: pretix/static/pretixpresale/js/widget/widget.js:31 #: pretix/static/pretixpresale/js/widget/widget.js:31
msgctxt "widget" msgctxt "widget"
msgid "FREE" msgid "FREE"
msgstr "" msgstr "FALAS"
#: pretix/static/pretixpresale/js/widget/widget.js:32 #: pretix/static/pretixpresale/js/widget/widget.js:32
msgctxt "widget" msgctxt "widget"
msgid "from %(currency)s %(price)s" msgid "from %(currency)s %(price)s"
msgstr "" msgstr "nga %(currency)s %(price)s"
#: pretix/static/pretixpresale/js/widget/widget.js:33 #: pretix/static/pretixpresale/js/widget/widget.js:33
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "Image of %s" msgid "Image of %s"
msgstr "" msgstr "Imazh i %s"
#: pretix/static/pretixpresale/js/widget/widget.js:34 #: pretix/static/pretixpresale/js/widget/widget.js:34
msgctxt "widget" msgctxt "widget"
msgid "incl. %(rate)s% %(taxname)s" msgid "incl. %(rate)s% %(taxname)s"
msgstr "" msgstr "përfsh. %(rate)s% %(taxname)s"
#: pretix/static/pretixpresale/js/widget/widget.js:35 #: pretix/static/pretixpresale/js/widget/widget.js:35
msgctxt "widget" msgctxt "widget"
msgid "plus %(rate)s% %(taxname)s" msgid "plus %(rate)s% %(taxname)s"
msgstr "" msgstr "shtesë %(rate)s% %(taxname)s"
#: pretix/static/pretixpresale/js/widget/widget.js:36 #: pretix/static/pretixpresale/js/widget/widget.js:36
msgctxt "widget" msgctxt "widget"
msgid "incl. taxes" msgid "incl. taxes"
msgstr "" msgstr "përfsh. taksat"
#: pretix/static/pretixpresale/js/widget/widget.js:37 #: pretix/static/pretixpresale/js/widget/widget.js:37
msgctxt "widget" msgctxt "widget"
msgid "plus taxes" msgid "plus taxes"
msgstr "" msgstr "duke shtuar taksat"
#: pretix/static/pretixpresale/js/widget/widget.js:38 #: pretix/static/pretixpresale/js/widget/widget.js:38
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "currently available: %s" msgid "currently available: %s"
msgstr "" msgstr "aktualisht të disponueshëm: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:39 #: pretix/static/pretixpresale/js/widget/widget.js:39
msgctxt "widget" msgctxt "widget"
msgid "Only available with a voucher" msgid "Only available with a voucher"
msgstr "" msgstr "Të disponueshëm vetëm me një kupon"
#: pretix/static/pretixpresale/js/widget/widget.js:40 #: pretix/static/pretixpresale/js/widget/widget.js:40
#: pretix/static/pretixpresale/js/widget/widget.js:43 #: pretix/static/pretixpresale/js/widget/widget.js:43
msgctxt "widget" msgctxt "widget"
msgid "Not yet available" msgid "Not yet available"
msgstr "" msgstr "Të padisponushëm ende"
#: pretix/static/pretixpresale/js/widget/widget.js:41 #: pretix/static/pretixpresale/js/widget/widget.js:41
msgctxt "widget" msgctxt "widget"
msgid "Not available anymore" msgid "Not available anymore"
msgstr "" msgstr "Nuk është të disponueshëm më"
#: pretix/static/pretixpresale/js/widget/widget.js:42 #: pretix/static/pretixpresale/js/widget/widget.js:42
msgctxt "widget" msgctxt "widget"
msgid "Currently not available" msgid "Currently not available"
msgstr "" msgstr "Të padisponueshëm për momentin"
#: pretix/static/pretixpresale/js/widget/widget.js:44 #: pretix/static/pretixpresale/js/widget/widget.js:44
#, javascript-format #, javascript-format
msgctxt "widget" msgctxt "widget"
msgid "minimum amount to order: %s" msgid "minimum amount to order: %s"
msgstr "" msgstr "sasia minimale për porosi: %s"
#: pretix/static/pretixpresale/js/widget/widget.js:45 #: pretix/static/pretixpresale/js/widget/widget.js:45
msgctxt "widget" msgctxt "widget"
msgid "Close ticket shop" msgid "Close ticket shop"
msgstr "" msgstr "Mbyllni dyqanin e biletave"
#: pretix/static/pretixpresale/js/widget/widget.js:46 #: pretix/static/pretixpresale/js/widget/widget.js:46
msgctxt "widget" msgctxt "widget"
msgid "The ticket shop could not be loaded." msgid "The ticket shop could not be loaded."
msgstr "" msgstr "Dyqani i biletave nuk mund të hapej."
#: pretix/static/pretixpresale/js/widget/widget.js:47 #: pretix/static/pretixpresale/js/widget/widget.js:47
msgctxt "widget" msgctxt "widget"
@@ -954,21 +965,23 @@ msgid ""
"There are currently a lot of users in this ticket shop. Please open the shop " "There are currently a lot of users in this ticket shop. Please open the shop "
"in a new tab to continue." "in a new tab to continue."
msgstr "" msgstr ""
"Ka shumë përdorës në dyqanin e biletave tani. Ju lutemi, hapni dyqanin në "
"një skedë të re për të vazhduar."
#: pretix/static/pretixpresale/js/widget/widget.js:49 #: pretix/static/pretixpresale/js/widget/widget.js:49
msgctxt "widget" msgctxt "widget"
msgid "Open ticket shop" msgid "Open ticket shop"
msgstr "" msgstr "Hapni dyqanin e biletave"
#: pretix/static/pretixpresale/js/widget/widget.js:50 #: pretix/static/pretixpresale/js/widget/widget.js:50
msgctxt "widget" msgctxt "widget"
msgid "Checkout" msgid "Checkout"
msgstr "" msgstr "Pagesa"
#: pretix/static/pretixpresale/js/widget/widget.js:51 #: pretix/static/pretixpresale/js/widget/widget.js:51
msgctxt "widget" msgctxt "widget"
msgid "The cart could not be created. Please try again later" msgid "The cart could not be created. Please try again later"
msgstr "" msgstr "Shporta juaj nuk mund të krijohej. Ju lutemi, provoni përsëri më vonë"
#: pretix/static/pretixpresale/js/widget/widget.js:52 #: pretix/static/pretixpresale/js/widget/widget.js:52
msgctxt "widget" msgctxt "widget"
@@ -976,11 +989,14 @@ msgid ""
"We could not create your cart, since there are currently too many users in " "We could not create your cart, since there are currently too many users in "
"this ticket shop. Please click \"Continue\" to retry in a new tab." "this ticket shop. Please click \"Continue\" to retry in a new tab."
msgstr "" msgstr ""
"Nuk mund të krijonim shportën tuaj sepse ka më tepër përdorës në këtë dyqan "
"të biletave. Ju lutemi, shtypni \"Vazhdoni\" të provoni përsëri në një skedë "
"të re."
#: pretix/static/pretixpresale/js/widget/widget.js:54 #: pretix/static/pretixpresale/js/widget/widget.js:54
msgctxt "widget" msgctxt "widget"
msgid "Waiting list" msgid "Waiting list"
msgstr "" msgstr "Lista e pritjes"
#: pretix/static/pretixpresale/js/widget/widget.js:55 #: pretix/static/pretixpresale/js/widget/widget.js:55
msgctxt "widget" msgctxt "widget"
@@ -988,96 +1004,98 @@ msgid ""
"You currently have an active cart for this event. If you select more " "You currently have an active cart for this event. If you select more "
"products, they will be added to your existing cart." "products, they will be added to your existing cart."
msgstr "" msgstr ""
"Ju keni tashmë një shportë aktive për këtë ngjarje. Nëse zgjidhni më shumë "
"produkte, do të shtohen në shportën tuaj aktuale."
#: pretix/static/pretixpresale/js/widget/widget.js:57 #: pretix/static/pretixpresale/js/widget/widget.js:57
msgctxt "widget" msgctxt "widget"
msgid "Resume checkout" msgid "Resume checkout"
msgstr "" msgstr "Vazhdoni pagesën"
#: pretix/static/pretixpresale/js/widget/widget.js:58 #: pretix/static/pretixpresale/js/widget/widget.js:58
msgctxt "widget" msgctxt "widget"
msgid "Redeem a voucher" msgid "Redeem a voucher"
msgstr "" msgstr "Përdorni një kupon"
#: pretix/static/pretixpresale/js/widget/widget.js:59 #: pretix/static/pretixpresale/js/widget/widget.js:59
msgctxt "widget" msgctxt "widget"
msgid "Redeem" msgid "Redeem"
msgstr "" msgstr "Përdorni"
#: pretix/static/pretixpresale/js/widget/widget.js:60 #: pretix/static/pretixpresale/js/widget/widget.js:60
msgctxt "widget" msgctxt "widget"
msgid "Voucher code" msgid "Voucher code"
msgstr "" msgstr "Kodi i kuponit"
#: pretix/static/pretixpresale/js/widget/widget.js:61 #: pretix/static/pretixpresale/js/widget/widget.js:61
msgctxt "widget" msgctxt "widget"
msgid "Close" msgid "Close"
msgstr "" msgstr "Mbyllni"
#: pretix/static/pretixpresale/js/widget/widget.js:62 #: pretix/static/pretixpresale/js/widget/widget.js:62
msgctxt "widget" msgctxt "widget"
msgid "Close checkout" msgid "Close checkout"
msgstr "" msgstr "Kthehuni nga pagesa"
#: pretix/static/pretixpresale/js/widget/widget.js:63 #: pretix/static/pretixpresale/js/widget/widget.js:63
msgctxt "widget" msgctxt "widget"
msgid "You cannot cancel this operation. Please wait for loading to finish." msgid "You cannot cancel this operation. Please wait for loading to finish."
msgstr "" msgstr "Ju nuk mund t'a anuloni këtë veprim. Ju lutemi, prisni për ngarkimin."
#: pretix/static/pretixpresale/js/widget/widget.js:64 #: pretix/static/pretixpresale/js/widget/widget.js:64
msgctxt "widget" msgctxt "widget"
msgid "Continue" msgid "Continue"
msgstr "" msgstr "Vazhdoni"
#: pretix/static/pretixpresale/js/widget/widget.js:65 #: pretix/static/pretixpresale/js/widget/widget.js:65
msgctxt "widget" msgctxt "widget"
msgid "Show variants" msgid "Show variants"
msgstr "" msgstr "Tregoni variantet"
#: pretix/static/pretixpresale/js/widget/widget.js:66 #: pretix/static/pretixpresale/js/widget/widget.js:66
msgctxt "widget" msgctxt "widget"
msgid "Hide variants" msgid "Hide variants"
msgstr "" msgstr "Fshehni variantet"
#: pretix/static/pretixpresale/js/widget/widget.js:67 #: pretix/static/pretixpresale/js/widget/widget.js:67
msgctxt "widget" msgctxt "widget"
msgid "Choose a different event" msgid "Choose a different event"
msgstr "" msgstr "Zgjidhni një ngjarje tjetër"
#: pretix/static/pretixpresale/js/widget/widget.js:68 #: pretix/static/pretixpresale/js/widget/widget.js:68
msgctxt "widget" msgctxt "widget"
msgid "Choose a different date" msgid "Choose a different date"
msgstr "" msgstr "Zgjidhni një datë tjetër"
#: pretix/static/pretixpresale/js/widget/widget.js:69 #: pretix/static/pretixpresale/js/widget/widget.js:69
msgctxt "widget" msgctxt "widget"
msgid "Back" msgid "Back"
msgstr "" msgstr "Kthehuni"
#: pretix/static/pretixpresale/js/widget/widget.js:70 #: pretix/static/pretixpresale/js/widget/widget.js:70
msgctxt "widget" msgctxt "widget"
msgid "Next month" msgid "Next month"
msgstr "" msgstr "Muaji tjetër"
#: pretix/static/pretixpresale/js/widget/widget.js:71 #: pretix/static/pretixpresale/js/widget/widget.js:71
msgctxt "widget" msgctxt "widget"
msgid "Previous month" msgid "Previous month"
msgstr "" msgstr "Muaji i fundit"
#: pretix/static/pretixpresale/js/widget/widget.js:72 #: pretix/static/pretixpresale/js/widget/widget.js:72
msgctxt "widget" msgctxt "widget"
msgid "Next week" msgid "Next week"
msgstr "" msgstr "Java tjetër"
#: pretix/static/pretixpresale/js/widget/widget.js:73 #: pretix/static/pretixpresale/js/widget/widget.js:73
msgctxt "widget" msgctxt "widget"
msgid "Previous week" msgid "Previous week"
msgstr "" msgstr "Java e fundit"
#: pretix/static/pretixpresale/js/widget/widget.js:74 #: pretix/static/pretixpresale/js/widget/widget.js:74
msgctxt "widget" msgctxt "widget"
msgid "Open seat selection" msgid "Open seat selection"
msgstr "" msgstr "Hapni zgjedhjen e sendileve"
#: pretix/static/pretixpresale/js/widget/widget.js:75 #: pretix/static/pretixpresale/js/widget/widget.js:75
msgctxt "widget" msgctxt "widget"
@@ -1086,112 +1104,115 @@ msgid ""
"add yourself to the waiting list. We will then notify if seats are available " "add yourself to the waiting list. We will then notify if seats are available "
"again." "again."
msgstr "" msgstr ""
"Disa ose të gjitha kategoritë e biletave janë të shitura. Nëse dëshironi, "
"mund të shtoheni në listën e pritjes. Ne do t'ju njoftojmë nëse sendile "
"bëhen të disponueshme përsëri."
#: pretix/static/pretixpresale/js/widget/widget.js:76 #: pretix/static/pretixpresale/js/widget/widget.js:76
msgctxt "widget" msgctxt "widget"
msgid "Load more" msgid "Load more"
msgstr "" msgstr "Ngarkoni më shumë"
#: pretix/static/pretixpresale/js/widget/widget.js:78 #: pretix/static/pretixpresale/js/widget/widget.js:78
msgid "Mo" msgid "Mo"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:79 #: pretix/static/pretixpresale/js/widget/widget.js:79
msgid "Tu" msgid "Tu"
msgstr "" msgstr "Ma"
#: pretix/static/pretixpresale/js/widget/widget.js:80 #: pretix/static/pretixpresale/js/widget/widget.js:80
msgid "We" msgid "We"
msgstr "" msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js:81 #: pretix/static/pretixpresale/js/widget/widget.js:81
msgid "Th" msgid "Th"
msgstr "" msgstr "En"
#: pretix/static/pretixpresale/js/widget/widget.js:82 #: pretix/static/pretixpresale/js/widget/widget.js:82
msgid "Fr" msgid "Fr"
msgstr "" msgstr "Pr"
#: pretix/static/pretixpresale/js/widget/widget.js:83 #: pretix/static/pretixpresale/js/widget/widget.js:83
msgid "Sa" msgid "Sa"
msgstr "" msgstr "Sh"
#: pretix/static/pretixpresale/js/widget/widget.js:84 #: pretix/static/pretixpresale/js/widget/widget.js:84
msgid "Su" msgid "Su"
msgstr "" msgstr "Di"
#: pretix/static/pretixpresale/js/widget/widget.js:85 #: pretix/static/pretixpresale/js/widget/widget.js:85
msgid "Monday" msgid "Monday"
msgstr "" msgstr "E Hënë"
#: pretix/static/pretixpresale/js/widget/widget.js:86 #: pretix/static/pretixpresale/js/widget/widget.js:86
msgid "Tuesday" msgid "Tuesday"
msgstr "" msgstr "E Martë"
#: pretix/static/pretixpresale/js/widget/widget.js:87 #: pretix/static/pretixpresale/js/widget/widget.js:87
msgid "Wednesday" msgid "Wednesday"
msgstr "" msgstr "E Mërkurë"
#: pretix/static/pretixpresale/js/widget/widget.js:88 #: pretix/static/pretixpresale/js/widget/widget.js:88
msgid "Thursday" msgid "Thursday"
msgstr "" msgstr "E Enjte"
#: pretix/static/pretixpresale/js/widget/widget.js:89 #: pretix/static/pretixpresale/js/widget/widget.js:89
msgid "Friday" msgid "Friday"
msgstr "" msgstr "E Premte"
#: pretix/static/pretixpresale/js/widget/widget.js:90 #: pretix/static/pretixpresale/js/widget/widget.js:90
msgid "Saturday" msgid "Saturday"
msgstr "" msgstr "E Shtunë"
#: pretix/static/pretixpresale/js/widget/widget.js:91 #: pretix/static/pretixpresale/js/widget/widget.js:91
msgid "Sunday" msgid "Sunday"
msgstr "" msgstr "E Diel"
#: pretix/static/pretixpresale/js/widget/widget.js:94 #: pretix/static/pretixpresale/js/widget/widget.js:94
msgid "January" msgid "January"
msgstr "" msgstr "Janar"
#: pretix/static/pretixpresale/js/widget/widget.js:95 #: pretix/static/pretixpresale/js/widget/widget.js:95
msgid "February" msgid "February"
msgstr "" msgstr "Shkurt"
#: pretix/static/pretixpresale/js/widget/widget.js:96 #: pretix/static/pretixpresale/js/widget/widget.js:96
msgid "March" msgid "March"
msgstr "" msgstr "Mars"
#: pretix/static/pretixpresale/js/widget/widget.js:97 #: pretix/static/pretixpresale/js/widget/widget.js:97
msgid "April" msgid "April"
msgstr "" msgstr "Prill"
#: pretix/static/pretixpresale/js/widget/widget.js:98 #: pretix/static/pretixpresale/js/widget/widget.js:98
msgid "May" msgid "May"
msgstr "" msgstr "Maj"
#: pretix/static/pretixpresale/js/widget/widget.js:99 #: pretix/static/pretixpresale/js/widget/widget.js:99
msgid "June" msgid "June"
msgstr "" msgstr "Qershor"
#: pretix/static/pretixpresale/js/widget/widget.js:100 #: pretix/static/pretixpresale/js/widget/widget.js:100
msgid "July" msgid "July"
msgstr "" msgstr "Korrik"
#: pretix/static/pretixpresale/js/widget/widget.js:101 #: pretix/static/pretixpresale/js/widget/widget.js:101
msgid "August" msgid "August"
msgstr "" msgstr "Gusht"
#: pretix/static/pretixpresale/js/widget/widget.js:102 #: pretix/static/pretixpresale/js/widget/widget.js:102
msgid "September" msgid "September"
msgstr "" msgstr "Shtator"
#: pretix/static/pretixpresale/js/widget/widget.js:103 #: pretix/static/pretixpresale/js/widget/widget.js:103
msgid "October" msgid "October"
msgstr "" msgstr "Tetor"
#: pretix/static/pretixpresale/js/widget/widget.js:104 #: pretix/static/pretixpresale/js/widget/widget.js:104
msgid "November" msgid "November"
msgstr "" msgstr "Nëntor"
#: pretix/static/pretixpresale/js/widget/widget.js:105 #: pretix/static/pretixpresale/js/widget/widget.js:105
msgid "December" msgid "December"
msgstr "" msgstr "Dhjetor"

View File

@@ -1545,6 +1545,8 @@ class ConfirmStep(CartMixin, AsyncAction, TemplateFlowStep):
ctx['invoice_address_asked'] = self.address_asked ctx['invoice_address_asked'] = self.address_asked
ctx['customer'] = self.cart_customer ctx['customer'] = self.cart_customer
ctx['transmission_fields'] = self.invoice_address.describe_transmission(self.event)
self.cart_session['shown_total'] = str(ctx['cart']['total']) self.cart_session['shown_total'] = str(ctx['cart']['total'])
email = self.cart_session.get('contact_form_data', {}).get('email') email = self.cart_session.get('contact_form_data', {}).get('email')

View File

@@ -111,7 +111,7 @@
<dt>{% trans "Internal reference" %}</dt> <dt>{% trans "Internal reference" %}</dt>
<dd>{{ addr.internal_reference }}</dd> <dd>{{ addr.internal_reference }}</dd>
{% endif %} {% endif %}
{% for k, v in addr.describe_transmission %} {% for k, v in transmission_fields %}
<dt>{{ k }}</dt> <dt>{{ k }}</dt>
<dd>{{ v }}</dd> <dd>{{ v }}</dd>
{% endfor %} {% endfor %}

View File

@@ -1,3 +1,4 @@
{% load html_time %}
{% load i18n %} {% load i18n %}
{% load icon %} {% load icon %}
{% load eventurl %} {% load eventurl %}
@@ -21,20 +22,18 @@
{% if event.settings.show_times %} {% if event.settings.show_times %}
<br> <br>
<span data-time="{{ ev.date_from.isoformat }}" data-timezone="{{ request.event.timezone }}"> <span data-time="{{ ev.date_from.isoformat }}" data-timezone="{{ request.event.timezone }}">
{% with time_human=ev.date_from|date:"TIME_FORMAT" time_24=ev.date_from|time:"H:i" %} {% html_time ev.date_from "TIME_FORMAT" attr_fmt="H:i" as time%}
{% blocktrans trimmed with time='<time datetime="'|add:time_24|add:'">'|add:time_human|add:"</time>"|safe %} {% blocktrans with time=time %}
Begin: {{ time }} Begin: {{ time }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</span> </span>
{% if event.settings.show_date_to and ev.date_to %} {% if event.settings.show_date_to and ev.date_to %}
<br> <br>
<span data-time="{{ ev.date_to.isoformat }}" data-timezone="{{ request.event.timezone }}"> <span data-time="{{ ev.date_to.isoformat }}" data-timezone="{{ request.event.timezone }}">
{% with time_human=ev.date_to|date:"TIME_FORMAT" time_24=ev.date_to|time:"H:i" %} {% html_time ev.date_to "TIME_FORMAT" attr_fmt="H:i" as time%}
{% blocktrans trimmed with time='<time datetime="'|add:time_24|add:'">'|add:time_human|add:"</time>"|safe %} {% blocktrans with time=time %}
End: {{ time }} End: {{ time }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</span> </span>
{% endif %} {% endif %}
{% endif %} {% endif %}
@@ -42,19 +41,17 @@
<br> <br>
{% if ev.date_admission|date:"SHORT_DATE_FORMAT" == ev.date_from|date:"SHORT_DATE_FORMAT" %} {% if ev.date_admission|date:"SHORT_DATE_FORMAT" == ev.date_from|date:"SHORT_DATE_FORMAT" %}
<span data-time="{{ ev.date_admission.isoformat }}" data-timezone="{{ request.event.timezone }}"> <span data-time="{{ ev.date_admission.isoformat }}" data-timezone="{{ request.event.timezone }}">
{% with time_human=ev.date_admission|date:"TIME_FORMAT" time_24=ev.date_admission|time:"H:i" %} {% html_time ev.date_admission "TIME_FORMAT" attr_fmt="H:i" as time%}
{% blocktrans trimmed with time='<time datetime="'|add:time_24|add:'">'|add:time_human|add:"</time>"|safe %} {% blocktrans trimmed with time=time %}
Admission: {{ time }} Admission: {{ time }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</span> </span>
{% else %} {% else %}
<span data-time="{{ ev.date_admission.isoformat }}" data-timezone="{{ request.event.timezone }}"> <span data-time="{{ ev.date_admission.isoformat }}" data-timezone="{{ request.event.timezone }}">
{% with datetime_human=ev.date_admission|date:"SHORT_DATETIME_FORMAT" datetime_iso=ev.date_admission|time:"Y-m-d H:i" %} {% html_time ev.date_admission "SHORT_DATETIME_FORMAT" attr_fmt="Y-m-d H:i" as datetime%}
{% blocktrans trimmed with datetime='<time datetime="'|add:datetime_iso|add:'">'|add:datetime_human|add:"</time>"|safe %} {% blocktrans trimmed with datetime=datetime %}
Admission: {{ datetime }} Admission: {{ datetime }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</span> </span>
{% endif %} {% endif %}
{% endif %} {% endif %}

View File

@@ -1,4 +1,5 @@
{% extends "pretixpresale/event/base.html" %} {% extends "pretixpresale/event/base.html" %}
{% load html_time %}
{% load i18n %} {% load i18n %}
{% load bootstrap3 %} {% load bootstrap3 %}
{% load eventsignal %} {% load eventsignal %}
@@ -92,11 +93,10 @@
A payment of {{ total }} is still pending for this order. A payment of {{ total }} is still pending for this order.
{% endblocktrans %}</strong> {% endblocktrans %}</strong>
<strong> <strong>
{% with date_human=order|format_expires|safe date_iso=order.expires|date:"c" %} {% html_time order.expires "format_expires" as date %}
{% blocktrans trimmed with date='<time datetime="'|add:date_iso|add:'">'|add:date_human|add:"</time>"|safe %} {% blocktrans trimmed with date=date %}
Please complete your payment before {{ date }} Please complete your payment before {{ date }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</strong> </strong>
</p> </p>
{% if last_payment %} {% if last_payment %}

View File

@@ -1,3 +1,4 @@
{% load html_time %}
{% load i18n %} {% load i18n %}
{% load date_fast %} {% load date_fast %}
{% load calendarhead %} {% load calendarhead %}
@@ -55,7 +56,7 @@
running running
{% elif event.event.presale_has_ended %} {% elif event.event.presale_has_ended %}
over over
{% elif event.event.settings.presale_start_show_date and event.event.presale_start %} {% elif event.event.settings.presale_start_show_date and event.event.effective_presale_start %}
soon soon
{% else %} {% else %}
soon soon
@@ -108,13 +109,12 @@
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %} <span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %}
{% elif event.event.presale_has_ended %} {% elif event.event.presale_has_ended %}
{% trans "Sale over" %} {% trans "Sale over" %}
{% elif event.event.settings.presale_start_show_date and event.event.presale_start %} {% elif event.event.settings.presale_start_show_date and event.event.effective_presale_start %}
<span class="fa fa-ticket" aria-hidden="true"></span> <span class="fa fa-ticket" aria-hidden="true"></span>
{% with date_human=event.event.presale_start|date_fast:"SHORT_DATE_FORMAT" date_iso=event.event.presale_start|date_fast:"c" %} {% html_time event.event.effective_presale_start "SHORT_DATE_FORMAT" as start_date %}
{% blocktrans with start_date="<time datetime='"|add:date_iso|add:"'>"|add:date_human|add:"</time>"|safe %} {% blocktrans with start_date=start_date %}
from {{ start_date }} from {{ start_date }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
{% else %} {% else %}
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Soon" %} <span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Soon" %}
{% endif %} {% endif %}

View File

@@ -1,3 +1,4 @@
{% load html_time %}
{% load i18n %} {% load i18n %}
{% load eventurl %} {% load eventurl %}
<div class="day-calendar cal-size-{{ raster_to_shortest_ratio }}{% if no_headlines %} no-headlines{% endif %}" <div class="day-calendar cal-size-{{ raster_to_shortest_ratio }}{% if no_headlines %} no-headlines{% endif %}"
@@ -52,7 +53,7 @@
running running
{% elif event.event.presale_has_ended %} {% elif event.event.presale_has_ended %}
over over
{% elif event.event.settings.presale_start_show_date and event.event.presale_start %} {% elif event.event.settings.presale_start_show_date and event.event.effective_presale_start %}
soon soon
{% else %} {% else %}
soon soon
@@ -114,9 +115,10 @@
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %} <span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %}
{% elif event.event.presale_has_ended %} {% elif event.event.presale_has_ended %}
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Sale over" %} <span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Sale over" %}
{% elif event.event.settings.presale_start_show_date and event.event.presale_start %} {% elif event.event.settings.presale_start_show_date and event.event.effective_presale_start %}
<span class="fa fa-ticket" aria-hidden="true"></span> <span class="fa fa-ticket" aria-hidden="true"></span>
{% blocktrans with start_date=event.event.presale_start|date:"SHORT_DATE_FORMAT" %} {% html_time event.event.effective_presale_start "SHORT_DATE_FORMAT" as start_date %}
{% blocktrans with start_date=start_date %}
from {{ start_date }} from {{ start_date }}
{% endblocktrans %} {% endblocktrans %}
{% else %} {% else %}

View File

@@ -1,3 +1,4 @@
{% load html_time %}
{% load i18n %} {% load i18n %}
{% load icon %} {% load icon %}
{% load textbubble %} {% load textbubble %}
@@ -52,11 +53,10 @@
{% endtextbubble %} {% endtextbubble %}
{% if event.settings.presale_start_show_date %} {% if event.settings.presale_start_show_date %}
<br><span class="text-muted"> <br><span class="text-muted">
{% with date_iso=event.effective_presale_start.isoformat date_human=event.effective_presale_start|date:"SHORT_DATE_FORMAT" %} {% html_time event.event.effective_presale_start "SHORT_DATE_FORMAT" as date %}
{% blocktrans trimmed with date='<time datetime="'|add:date_iso|add:'">'|add:date_human|add:"</time>"|safe %} {% blocktrans with date=date %}
Sale starts {{ date }} Sale starts {{ date }}
{% endblocktrans %} {% endblocktrans %}
{% endwith %}
</span> </span>
{% endif %} {% endif %}
{% endif %} {% endif %}

View File

@@ -1,3 +1,4 @@
{% load html_time %}
{% load i18n %} {% load i18n %}
{% load date_fast %} {% load date_fast %}
<div class="week-calendar"> <div class="week-calendar">
@@ -24,7 +25,7 @@
running running
{% elif event.event.presale_has_ended %} {% elif event.event.presale_has_ended %}
over over
{% elif event.event.settings.presale_start_show_date and event.event.presale_start %} {% elif event.event.settings.presale_start_show_date and event.event.effective_presale_start %}
soon soon
{% else %} {% else %}
soon soon
@@ -77,9 +78,10 @@
<span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %} <span class="fa fa-ticket" aria-hidden="true"></span> {% trans "Book now" %}
{% elif event.event.presale_has_ended %} {% elif event.event.presale_has_ended %}
{% trans "Sale over" %} {% trans "Sale over" %}
{% elif event.event.settings.presale_start_show_date and event.event.presale_start %} {% elif event.event.settings.presale_start_show_date and event.event.effective_presale_start %}
<span class="fa fa-ticket" aria-hidden="true"></span> <span class="fa fa-ticket" aria-hidden="true"></span>
{% blocktrans with start_date=event.event.presale_start|date_fast:"SHORT_DATE_FORMAT" %} {% html_time event.event.effective_presale_start "SHORT_DATE_FORMAT" as start_date %}
{% blocktrans with start_date=start_date %}
from {{ start_date }} from {{ start_date }}
{% endblocktrans %} {% endblocktrans %}
{% else %} {% else %}

View File

@@ -471,10 +471,11 @@ class WidgetAPIProductList(EventListMixin, View):
availability['color'] = 'red' availability['color'] = 'red'
availability['text'] = gettext('Sale over') availability['text'] = gettext('Sale over')
availability['reason'] = 'over' availability['reason'] = 'over'
elif event.settings.presale_start_show_date and ev.presale_start: elif event.settings.presale_start_show_date and ev.effective_presale_start:
availability['color'] = 'orange' availability['color'] = 'orange'
availability['text'] = gettext('from %(start_date)s') % { availability['text'] = gettext('from %(start_date)s') % {
'start_date': date_format(ev.presale_start.astimezone(tz or event.timezone), "SHORT_DATE_FORMAT") 'start_date': date_format(ev.effective_presale_start.astimezone(tz or event.timezone),
"SHORT_DATE_FORMAT")
} }
availability['reason'] = 'soon' availability['reason'] = 'soon'
else: else:

View File

@@ -1,7 +1,7 @@
[flake8] [flake8]
ignore = N802,W503,E402,C901,E722,W504,E252,N812,N806,N818,E741 ignore = N802,W503,E402,C901,E722,W504,E252,N812,N806,N818,E741
max-line-length = 160 max-line-length = 160
exclude = migrations,.ropeproject,static,mt940.py,_static,build,make_testdata.py,*/testutils/settings.py,tests/settings.py,pretix/base/models/__init__.py,pretix/base/secretgenerators/pretix_sig1_pb2.py,.eggs/* exclude = data/*,migrations,.ropeproject,static,mt940.py,_static,build,make_testdata.py,*/testutils/settings.py,tests/settings.py,pretix/base/models/__init__.py,pretix/base/secretgenerators/pretix_sig1_pb2.py,.eggs/*
max-complexity = 11 max-complexity = 11
[isort] [isort]
@@ -13,7 +13,7 @@ extra_standard_library = typing,enum,mimetypes
multi_line_output = 5 multi_line_output = 5
line_length = 79 line_length = 79
honor_noqa = true honor_noqa = true
skip_glob = make_testdata.py,wsgi.py,bootstrap,celery_app.py,pretix/settings.py,tests/settings.py,pretix/testutils/settings.py,.eggs/** skip_glob = data/**,make_testdata.py,wsgi.py,bootstrap,celery_app.py,pretix/settings.py,tests/settings.py,pretix/testutils/settings.py,.eggs/**
[tool:pytest] [tool:pytest]
DJANGO_SETTINGS_MODULE = tests.settings DJANGO_SETTINGS_MODULE = tests.settings