mirror of
https://github.com/pretix/pretix.git
synced 2025-12-14 13:32:28 +00:00
Compare commits
37 Commits
a11y-widge
...
a11y-add-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0368d548a0 | ||
|
|
1c2df6eaae | ||
|
|
fddeff9530 | ||
|
|
f96e10011a | ||
|
|
a7c80872cd | ||
|
|
587c3f8c8b | ||
|
|
9bc9fd2eb5 | ||
|
|
44ddeac4d1 | ||
|
|
fdb2c0e313 | ||
|
|
1a68c30413 | ||
|
|
68222b2fe3 | ||
|
|
d17777da9b | ||
|
|
498e8a52af | ||
|
|
c7db1eb1d7 | ||
|
|
6d56ed6e46 | ||
|
|
80a5c4ac5b | ||
|
|
51d1d1fbc1 | ||
|
|
37a9ecc61f | ||
|
|
d62152beaf | ||
|
|
2ce9584a6f | ||
|
|
f1fc4cb8a4 | ||
|
|
bf3ee608ba | ||
|
|
6b331888e9 | ||
|
|
225b2452bd | ||
|
|
e7d024b146 | ||
|
|
0af94c3712 | ||
|
|
3007b89d9b | ||
|
|
9ee50a28a1 | ||
|
|
4dc5014947 | ||
|
|
ebf2039a4d | ||
|
|
f201ab8884 | ||
|
|
e20cb7649d | ||
|
|
e6cab37f12 | ||
|
|
0659338392 | ||
|
|
a0f0e0ca48 | ||
|
|
59af0bbfb8 | ||
|
|
6766d649f5 |
@@ -35,19 +35,22 @@ def get_powered_by(request, safelink=True):
|
||||
d = gs.settings.license_check_input
|
||||
if d.get('poweredby_name'):
|
||||
if d.get('poweredby_url'):
|
||||
n = '<a href="{}" target="_blank" rel="noopener">{}</a>'.format(
|
||||
sl(d['poweredby_url']) if safelink else d['poweredby_url'],
|
||||
d['poweredby_name']
|
||||
msg = gettext('<a {a_name_attr}>powered by {name}</a> <a {a_attr}>based on pretix</a>').format(
|
||||
name=d['poweredby_name'],
|
||||
a_name_attr='href="{}" target="_blank" rel="noopener"'.format(
|
||||
sl(d['poweredby_url']) if safelink else d['poweredby_url'],
|
||||
),
|
||||
a_attr='href="{}" target="_blank" rel="noopener"'.format(
|
||||
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
|
||||
)
|
||||
)
|
||||
else:
|
||||
n = d['poweredby_name']
|
||||
|
||||
msg = gettext('powered by {name} based on <a {a_attr}>pretix</a>').format(
|
||||
name=n,
|
||||
a_attr='href="{}" target="_blank" rel="noopener"'.format(
|
||||
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
|
||||
msg = gettext('<a {a_attr}>powered by {name} based on pretix</a>').format(
|
||||
name=d['poweredby_name'],
|
||||
a_attr='href="{}" target="_blank" rel="noopener"'.format(
|
||||
sl('https://pretix.eu') if safelink else 'https://pretix.eu',
|
||||
)
|
||||
)
|
||||
)
|
||||
else:
|
||||
msg = gettext('<a %(a_attr)s>ticketing powered by pretix</a>') % {
|
||||
'a_attr': 'href="{}" target="_blank" rel="noopener"'.format(
|
||||
|
||||
60
src/pretix/base/templatetags/dialog.py
Normal file
60
src/pretix/base/templatetags/dialog.py
Normal file
@@ -0,0 +1,60 @@
|
||||
#
|
||||
# This file is part of pretix (Community Edition).
|
||||
#
|
||||
# Copyright (C) 2014-2020 Raphael Michel and contributors
|
||||
# Copyright (C) 2020-2021 rami.io GmbH and contributors
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
||||
# Public License as published by the Free Software Foundation in version 3 of the License.
|
||||
#
|
||||
# ADDITIONAL TERMS APPLY: Pursuant to Section 7 of the GNU Affero General Public License, additional terms are
|
||||
# applicable granting you additional permissions and placing additional restrictions on your usage of this software.
|
||||
# Please refer to the pretix LICENSE file to obtain the full terms applicable to this work. If you did not receive
|
||||
# this file, see <https://pretix.eu/about/en/license>.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License along with this program. If not, see
|
||||
# <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
from django import template
|
||||
from django.utils.html import format_html
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
from django.utils.translation import gettext_lazy as _ # NOQA
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def dialog(html_id, label, description, *args, **kwargs):
|
||||
format_kwargs = {
|
||||
"id": html_id,
|
||||
"label": label,
|
||||
"description": description,
|
||||
"icon": format_html('<div class="modal-card-icon"><span class="fa fa-{}" aria-hidden="true"></span></div>', kwargs["icon"]) if "icon" in kwargs else "",
|
||||
"alert": mark_safe('role="alertdialog"') if kwargs.get("alert", "False") != "False" else "",
|
||||
}
|
||||
result = """
|
||||
<dialog {alert}
|
||||
id="{id}"
|
||||
aria-labelledby="{id}-label"
|
||||
aria-describedby="{id}-description">
|
||||
<form method="dialog" class="modal-card form-horizontal">
|
||||
{icon}
|
||||
<div class="modal-card-content">
|
||||
<h2 id="{id}-label">{label}</h2>
|
||||
<p id="{id}-description">{description}</p>
|
||||
"""
|
||||
return format_html(result, **format_kwargs)
|
||||
|
||||
|
||||
@register.simple_tag
|
||||
def enddialog(*args, **kwargs):
|
||||
return mark_safe("""
|
||||
</div>
|
||||
</form>
|
||||
</dialog>
|
||||
""")
|
||||
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34519,7 +34519,7 @@ msgid "Add to cart"
|
||||
msgstr "أضف إلى سلة التسوق"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "إذا كنت قد طلبت تذكرة سابقا"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29859,7 +29859,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33955,7 +33955,7 @@ msgid "Add to cart"
|
||||
msgstr "Afegir a la cistella"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Si ja teniu tiquets demanats"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32275,7 +32275,7 @@ msgid "Add to cart"
|
||||
msgstr "Přidat do košíku"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Pokud jste si již vstupenku objednali"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29951,7 +29951,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32689,7 +32689,7 @@ msgid "Add to cart"
|
||||
msgstr "Læg i kurv"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Hvis du allerede har bestilt en billet"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33772,7 +33772,7 @@ msgid "Add to cart"
|
||||
msgstr "Zum Warenkorb hinzufügen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Wenn Sie bereits ein Ticket bestellt haben"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33711,7 +33711,7 @@ msgid "Add to cart"
|
||||
msgstr "Zum Warenkorb hinzufügen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Wenn du bereits ein Ticket bestellt hast"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29858,7 +29858,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -36098,7 +36098,7 @@ msgid "Add to cart"
|
||||
msgstr "Προσθήκη στο καλάθι"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Αν έχετε ήδη αγοράσει κάποιο εισιτήριο"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-04-28 11:06+0000\n"
|
||||
"PO-Revision-Date: 2025-05-07 06:00+0000\n"
|
||||
"PO-Revision-Date: 2025-05-14 02:00+0000\n"
|
||||
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/pretix/"
|
||||
"es/>\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.11.1\n"
|
||||
"X-Generator: Weblate 5.11.4\n"
|
||||
|
||||
#: pretix/_base_settings.py:87
|
||||
msgid "English"
|
||||
@@ -2595,7 +2595,7 @@ msgstr "Vales de compra bloqueados"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py:1135 pretix/control/views/item.py:982
|
||||
msgid "Current user's carts"
|
||||
msgstr "Cesta actual del usuario"
|
||||
msgstr "Carrito actual del usuario"
|
||||
|
||||
#: pretix/base/exporters/orderlist.py:1135
|
||||
msgid "Exited orders"
|
||||
@@ -4244,12 +4244,13 @@ msgid ""
|
||||
"discounted. If you want to grant the discount on all matching products, keep "
|
||||
"this field empty."
|
||||
msgstr ""
|
||||
"Esta opción le permite crear descuentos del tipo \"compre X y obtenga Y "
|
||||
"reducido/gratis\". Por ejemplo, si establece \"Número mínimo de productos "
|
||||
"coincidentes\" en cuatro y este valor en dos, la cesta del cliente se "
|
||||
"dividirá en grupos de cuatro entradas y se descontarán las dos entradas más "
|
||||
"baratos dentro de cada grupo. Si desea otorgar el descuento en todos los "
|
||||
"productos coincidentes, mantenga este campo vacío."
|
||||
"Esta opción le permite crear descuentos del tipo "
|
||||
"\"compre X y obtenga Y reducido/gratis\". Por ejemplo, si establece "
|
||||
"\"Número mínimo de productos coincidentes\" en cuatro y este valor en dos, "
|
||||
"el carrito del cliente se dividirá en grupos de cuatro entradas y se "
|
||||
"descontarán las dos entradas más baratos dentro de cada grupo. Si desea "
|
||||
"otorgar el descuento en todos los productos coincidentes, mantenga este "
|
||||
"campo vacío."
|
||||
|
||||
#: pretix/base/models/discount.py:165
|
||||
msgid "Apply to add-on products"
|
||||
@@ -4719,7 +4720,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/models/items.py:126
|
||||
msgid "Only show if the cart contains one of the following products"
|
||||
msgstr "Sólo se muestra si la cesta contiene uno de los siguientes productos"
|
||||
msgstr "Sólo se muestra el carrito contiene uno de los siguientes productos"
|
||||
|
||||
#: pretix/base/models/items.py:129
|
||||
msgid "Cross-selling condition"
|
||||
@@ -4989,7 +4990,7 @@ msgid ""
|
||||
"many times. If you keep the field empty or set it to 0, there is no special "
|
||||
"limit for this product."
|
||||
msgstr ""
|
||||
"Este producto sólo se puede comprar si se agrega a la cesta por lo menos "
|
||||
"Este producto sólo se puede comprar si se agrega al carrito por lo menos "
|
||||
"esta cantidad de veces. Si deja el campo vacío o lo fija en 0, no hay ningún "
|
||||
"límite especial para este producto."
|
||||
|
||||
@@ -6063,15 +6064,15 @@ msgstr "Posición del pedido"
|
||||
|
||||
#: pretix/base/models/orders.py:3091
|
||||
msgid "Cart ID (e.g. session key)"
|
||||
msgstr "ID de cesta (p. ej. clave de sesión)"
|
||||
msgstr "ID de carrito (p. ej. clave de sesión)"
|
||||
|
||||
#: pretix/base/models/orders.py:3128
|
||||
msgid "Cart position"
|
||||
msgstr "Posición de la cesta"
|
||||
msgstr "Posición del carrito"
|
||||
|
||||
#: pretix/base/models/orders.py:3129
|
||||
msgid "Cart positions"
|
||||
msgstr "Posiciones de la cesta"
|
||||
msgstr "Posiciones del carrito"
|
||||
|
||||
#: pretix/base/models/orders.py:3265
|
||||
msgid "Business customer"
|
||||
@@ -6636,7 +6637,7 @@ msgid ""
|
||||
"of a specific product, you can also select a quota. In this case, all "
|
||||
"products assigned to this quota can be selected."
|
||||
msgstr ""
|
||||
"Este producto añadirá a la cesta del usuario si está usado el vale de "
|
||||
"Este producto añadirá al carrito del usuario si está usado el vale de "
|
||||
"compra. En vez de un producto específico, se puede seleccionar una cuota. En "
|
||||
"este caso, todos los productos que están asignados al esta cuota se pueden "
|
||||
"seleccionar."
|
||||
@@ -7787,7 +7788,7 @@ msgstr "Usted no seleccionó ningún producto."
|
||||
|
||||
#: pretix/base/services/cart.py:105
|
||||
msgid "Unknown cart position."
|
||||
msgstr "Posición de la cesta desconocida."
|
||||
msgstr "Posición del carrito desconocida."
|
||||
|
||||
#: pretix/base/services/cart.py:106
|
||||
msgctxt "subevent"
|
||||
@@ -7821,7 +7822,7 @@ msgid ""
|
||||
"products are affected and have not been added to your cart: %s"
|
||||
msgstr ""
|
||||
"Algunos de los productos que seleccionó ya no están disponibles. Los "
|
||||
"siguientes productos están afectados y no se han agregado a su cesta: %s"
|
||||
"siguientes productos están afectados y no se han agregado a su carrito: %s"
|
||||
|
||||
#: pretix/base/services/cart.py:121
|
||||
#, python-format
|
||||
@@ -7832,7 +7833,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Algunos de los productos que seleccionó ya no están disponibles en la "
|
||||
"cantidad que seleccionó. Los siguientes productos están afectados y no se "
|
||||
"han agregado a su cesta: %s"
|
||||
"han agregado a su carrito: %s"
|
||||
|
||||
#: pretix/base/services/cart.py:126
|
||||
#, python-format
|
||||
@@ -7870,11 +7871,11 @@ msgid_plural ""
|
||||
"We removed %(product)s from your cart as you can not buy less than %(min)s "
|
||||
"items of it."
|
||||
msgstr[0] ""
|
||||
"Eliminamos %(product)s de su cesta ya que no puede comprar menos de %(min)s "
|
||||
"artículo del mismo."
|
||||
"Eliminamos %(product)s de su carrito ya que no puede comprar menos de %(min)"
|
||||
"s artículo del mismo."
|
||||
msgstr[1] ""
|
||||
"Eliminamos %(product)s de su cesta ya que no puede comprar menos de %(min)s "
|
||||
"artículos del mismo."
|
||||
"Eliminamos %(product)s de su carrito ya que no puede comprar menos de %(min)"
|
||||
"s artículos del mismo."
|
||||
|
||||
#: pretix/base/services/cart.py:144 pretix/base/services/orders.py:154
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:167
|
||||
@@ -7900,7 +7901,7 @@ msgid ""
|
||||
"positions have been removed from your cart."
|
||||
msgstr ""
|
||||
"El período de preventa de este evento aún no ha comenzado. Las posiciones "
|
||||
"afectadas han sido eliminadas de su cesta."
|
||||
"afectadas han sido eliminadas de su carrito."
|
||||
|
||||
#: pretix/base/services/cart.py:151 pretix/base/services/orders.py:182
|
||||
msgid ""
|
||||
@@ -7908,7 +7909,7 @@ msgid ""
|
||||
"affected positions have been removed from your cart."
|
||||
msgstr ""
|
||||
"El período de preventa de uno de los eventos de su cesta ha finalizado. Las "
|
||||
"posiciones afectadas han sido eliminadas de su cesta."
|
||||
"posiciones afectadas han sido eliminadas de su carrito."
|
||||
|
||||
#: pretix/base/services/cart.py:153
|
||||
msgid "The entered price is not a number."
|
||||
@@ -7950,11 +7951,11 @@ msgid_plural ""
|
||||
msgstr[0] ""
|
||||
"El vale de compra \"%(voucher)s\" solo se puede utilizar si selecciona al "
|
||||
"menos %(number)s productos coincidentes. Por lo tanto, hemos eliminado "
|
||||
"algunas posiciones de su cesta que ya no se pueden comprar así."
|
||||
"algunas posiciones de su carrito que ya no se pueden comprar así."
|
||||
msgstr[1] ""
|
||||
"Los vale de compra \"%(voucher)s\" solo se pueden utilizar si selecciona al "
|
||||
"menos %(number)s productos coincidentes. Por lo tanto, hemos eliminado "
|
||||
"algunas posiciones de su cesta que ya no se pueden comprar así."
|
||||
"algunas posiciones de su carrito que ya no se pueden comprar así."
|
||||
|
||||
#: pretix/base/services/cart.py:168
|
||||
msgid ""
|
||||
@@ -7971,7 +7972,7 @@ msgid ""
|
||||
"process. You can try to use it again in %d minutes."
|
||||
msgstr ""
|
||||
"Este vale de compra está actualmente bloqueado ya que está contenido en un "
|
||||
"cesta de la compra. Esto puede significar que otra persona está canjeando "
|
||||
"carrito de la compra. Esto puede significar que otra persona está canjeando "
|
||||
"este vale de compra ahora mismo, o que usted intentó canjearlo antes pero no "
|
||||
"completó el proceso de pago. Puede intentar utilizarlo de nuevo en %d "
|
||||
"minutos."
|
||||
@@ -7986,7 +7987,7 @@ msgid ""
|
||||
"Applying a voucher to the whole cart should not be combined with other "
|
||||
"operations."
|
||||
msgstr ""
|
||||
"La aplicación de un vale de compra a todo la cesta no debe combinarse con "
|
||||
"La aplicación de un vale de compra a todo el carrito no debe combinarse con "
|
||||
"otras operaciones."
|
||||
|
||||
#: pretix/base/services/cart.py:178
|
||||
@@ -7994,7 +7995,7 @@ msgid ""
|
||||
"You already used this voucher code. Remove the associated line from your "
|
||||
"cart if you want to use it for a different product."
|
||||
msgstr ""
|
||||
"Ya ha utilizado este vale de compra. Elimine la línea asociada de su cesta "
|
||||
"Ya ha utilizado este vale de compra. Elimine la línea asociada de su carrito "
|
||||
"si desea utilizarlo para un producto diferente."
|
||||
|
||||
#: pretix/base/services/cart.py:181
|
||||
@@ -8015,7 +8016,7 @@ msgid ""
|
||||
"for. If you want to add something new to your cart using that voucher, you "
|
||||
"can do so with the voucher redemption option on the bottom of the page."
|
||||
msgstr ""
|
||||
"No encontramos ninguna posición en su cesta para la que podamos usar este "
|
||||
"No encontramos ninguna posición en su carrito para la que podamos usar este "
|
||||
"vale de compra. Si desea agregar algo nuevo a su cesta usando ese vale de "
|
||||
"compra, puede hacerlo con la opción de canje de vale de compra en la parte "
|
||||
"inferior de la página."
|
||||
@@ -8616,8 +8617,8 @@ msgid ""
|
||||
"The price of some of the items in your cart has changed in the meantime. "
|
||||
"Please see below for details."
|
||||
msgstr ""
|
||||
"El precio de algunos de los artículos en su cesta ha cambiado en el durante "
|
||||
"este tiempo. Por favor vea abajo para más detalles."
|
||||
"El precio de algunos de los artículos en su carrito ha cambiado en el "
|
||||
"durante este tiempo. Por favor vea abajo para más detalles."
|
||||
|
||||
#: pretix/base/services/orders.py:141
|
||||
msgid "An internal error occurred, please try again."
|
||||
@@ -8633,7 +8634,7 @@ msgstr ""
|
||||
|
||||
#: pretix/base/services/orders.py:144
|
||||
msgid "Your cart is empty."
|
||||
msgstr "Su cesta está vacía."
|
||||
msgstr "Su carrito está vacío."
|
||||
|
||||
#: pretix/base/services/orders.py:146
|
||||
#, python-format
|
||||
@@ -8645,10 +8646,10 @@ msgid_plural ""
|
||||
"removed the surplus items from your cart."
|
||||
msgstr[0] ""
|
||||
"No puede seleccionar más de %(max)s artículos del producto %(product)s. "
|
||||
"Eliminamos el artículo sobrante de su cesta."
|
||||
"Eliminamos el artículo sobrante de su carrito."
|
||||
msgstr[1] ""
|
||||
"No puede seleccionar más de %(max)s artículos del producto %(product)s. "
|
||||
"Eliminamos los artículos sobrantes de su cesta."
|
||||
"Eliminamos los artículos sobrantes de su carrito."
|
||||
|
||||
#: pretix/base/services/orders.py:155
|
||||
msgid "The booking period has ended."
|
||||
@@ -8659,7 +8660,7 @@ msgid ""
|
||||
"The voucher code used for one of the items in your cart is not known in our "
|
||||
"database."
|
||||
msgstr ""
|
||||
"El vale de compra utilizado para uno de los artículos de su cesta no es "
|
||||
"El vale de compra utilizado para uno de los artículos de su carrito no es "
|
||||
"conocido en nuestra base de datos."
|
||||
|
||||
#: pretix/base/services/orders.py:163
|
||||
@@ -8668,16 +8669,16 @@ msgid ""
|
||||
"used the maximum number of times allowed. We removed this item from your "
|
||||
"cart."
|
||||
msgstr ""
|
||||
"El vale de compra utilizado para uno de los artículos de su cesta ya ha sido "
|
||||
"utilizado el máximo número de veces permitido. Hemos quitado este artículo "
|
||||
"de su cesta."
|
||||
"El vale de compra utilizado para uno de los artículos de su carrito ya ha "
|
||||
"sido utilizado el máximo número de veces permitido. Hemos quitado este "
|
||||
"artículo de su cesta."
|
||||
|
||||
#: pretix/base/services/orders.py:167
|
||||
msgid ""
|
||||
"The voucher code used for one of the items in your cart has already been too "
|
||||
"often. We adjusted the price of the item in your cart."
|
||||
msgstr ""
|
||||
"El vale de compra utilizado para uno de los artículos de su cesta ya se ha "
|
||||
"El vale de compra utilizado para uno de los artículos de su carrito ya se ha "
|
||||
"utilizado con demasiada frecuencia. Ajustamos el precio del artículo en su "
|
||||
"cesta."
|
||||
|
||||
@@ -8686,16 +8687,16 @@ msgid ""
|
||||
"The voucher code used for one of the items in your cart is expired. We "
|
||||
"removed this item from your cart."
|
||||
msgstr ""
|
||||
"El vale de compra utilizado para uno de los artículos de su cesta ha "
|
||||
"caducado. Hemos quitado este artículo de su cesta."
|
||||
"El vale de compra utilizado para uno de los artículos de su carrito ha "
|
||||
"caducado. Hemos quitado este artículo de su carrito."
|
||||
|
||||
#: pretix/base/services/orders.py:174
|
||||
msgid ""
|
||||
"The voucher code used for one of the items in your cart is not valid for "
|
||||
"this item. We removed this item from your cart."
|
||||
msgstr ""
|
||||
"El vale de compra utilizado para uno de los artículos de su cesta no es "
|
||||
"válido para este artículo. Hemos quitado este artículo de su cesta."
|
||||
"El vale de compra utilizado para uno de los artículos de su carrito no es "
|
||||
"válido para este artículo. Hemos quitado este artículo de su carrito."
|
||||
|
||||
#: pretix/base/services/orders.py:176
|
||||
msgid "You need a valid voucher code to order one of the products."
|
||||
@@ -8706,22 +8707,22 @@ msgid ""
|
||||
"The booking period for one of the events in your cart has not yet started. "
|
||||
"The affected positions have been removed from your cart."
|
||||
msgstr ""
|
||||
"El período de preventa de uno de los eventos de su cesta aún no ha "
|
||||
"comenzado. Las posiciones afectadas han sido eliminadas de su cesta."
|
||||
"El período de preventa de uno de los eventos de su carrito aún no ha "
|
||||
"comenzado. Las posiciones afectadas han sido eliminadas de su carrito."
|
||||
|
||||
#: pretix/base/services/orders.py:185
|
||||
msgid ""
|
||||
"One of the seats in your order was invalid, we removed the position from "
|
||||
"your cart."
|
||||
msgstr ""
|
||||
"Uno de las butacas de su pedido no era válida, la eliminamos de su cesta."
|
||||
"Uno de las butacas de su pedido no era válida, la eliminamos de su carrito."
|
||||
|
||||
#: pretix/base/services/orders.py:186
|
||||
msgid ""
|
||||
"One of the seats in your order has been taken in the meantime, we removed "
|
||||
"the position from your cart."
|
||||
msgstr ""
|
||||
"Una de las butaca de su pedido ha sido ocupada. La eliminamos de su cesta."
|
||||
"Una de las butaca de su pedido ha sido ocupada. La eliminamos de su carrito."
|
||||
|
||||
#: pretix/base/services/orders.py:202
|
||||
#, python-format
|
||||
@@ -9154,8 +9155,8 @@ msgid ""
|
||||
"Independent of your choice, the cart will show gross prices as this is the "
|
||||
"price that needs to be paid."
|
||||
msgstr ""
|
||||
"Independientemente de su elección, el cesta mostrará los precios brutos, ya "
|
||||
"que este es el precio que debe pagarse."
|
||||
"Independientemente de su elección, el carrito mostrará los precios brutos, "
|
||||
"ya que este es el precio que debe pagarse."
|
||||
|
||||
#: pretix/base/settings.py:338
|
||||
msgid "Hide prices on attendee ticket page"
|
||||
@@ -9521,15 +9522,15 @@ msgstr "Período de reserva"
|
||||
msgid ""
|
||||
"The number of minutes the items in a user's cart are reserved for this user."
|
||||
msgstr ""
|
||||
"El número de minutos que los artículos en la cesta de un usuario permanecen "
|
||||
"reservados para un usuario."
|
||||
"El número de minutos que los artículos en el carrito de un usuario "
|
||||
"permanecen reservados para un usuario."
|
||||
|
||||
#: pretix/base/settings.py:807
|
||||
msgid ""
|
||||
"Directly redirect to check-out after a product has been added to the cart."
|
||||
msgstr ""
|
||||
"Redirigir directamente a la compra después de que un producto se haya "
|
||||
"agregado a la cesta."
|
||||
"agregado a la carrito."
|
||||
|
||||
#: pretix/base/settings.py:816
|
||||
msgid "End of presale text"
|
||||
@@ -14675,8 +14676,8 @@ msgid ""
|
||||
"\"inactive\" instead."
|
||||
msgstr ""
|
||||
"La variación \"%s\" no se puede borrar porque ya ha sido pedida por un "
|
||||
"usuario o está actualmente en la cesta de un usuario. En su lugar, configure "
|
||||
"la variación como \"inactiva\"."
|
||||
"usuario o está actualmente en el carrito de un usuario. En su lugar, "
|
||||
"configure la variación como \"inactiva\"."
|
||||
|
||||
#: pretix/control/forms/item.py:994
|
||||
msgid "Use value from product"
|
||||
@@ -19854,7 +19855,7 @@ msgstr "Añadir enlace"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:345
|
||||
msgid "Cart"
|
||||
msgstr "Cesta"
|
||||
msgstr "Carrito"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/event/settings.html:353
|
||||
msgid ""
|
||||
@@ -20284,7 +20285,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Ejemplos: múltiples presentaciones del mismo espectáculo, el mismo concierto "
|
||||
"en múltiples ubicaciones, museos, bibliotecas o piscinas, eventos que deben "
|
||||
"reservarse juntos en una sola cesta."
|
||||
"reservarse juntos en un solo carrito."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/events/create_foundation.html:53
|
||||
msgid ""
|
||||
@@ -20874,7 +20875,7 @@ msgid ""
|
||||
"as add-ons in the cart for this product."
|
||||
msgstr ""
|
||||
"Con los paquetes, puede especificar productos que siempre se agregan "
|
||||
"automáticamente a la cesta como complementos para este producto."
|
||||
"automáticamente al carrito como complementos para este producto."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/item/include_bundles.html:68
|
||||
msgid "Add a new bundled product"
|
||||
@@ -21060,7 +21061,7 @@ msgstr "Condición"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/discount.html:34
|
||||
msgid "Minimum cart content"
|
||||
msgstr "Contenido mínimo de la cesta"
|
||||
msgstr "Contenido mínimo del carrito"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/items/discount.html:43
|
||||
#: pretix/plugins/stripe/templates/pretixplugins/stripe/checkout_payment_form_card.html:53
|
||||
@@ -21156,7 +21157,7 @@ msgid ""
|
||||
"overlapping discounts, the first one in the order of the list below will "
|
||||
"apply."
|
||||
msgstr ""
|
||||
"Un sólo desuento puede aplicarse a los productos de la cesta. Si tiene "
|
||||
"Un sólo desuento puede aplicarse a los productos del carrito. Si tiene "
|
||||
"descuentos superpuestos, se aplicará el primero en el pedido de la lista "
|
||||
"siguiente."
|
||||
|
||||
@@ -25822,7 +25823,7 @@ msgstr ""
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:4
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:6
|
||||
msgid "Delete carts"
|
||||
msgstr "Eliminar cestas"
|
||||
msgstr "Eliminar carrito"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:9
|
||||
#, python-format
|
||||
@@ -25830,7 +25831,7 @@ msgid ""
|
||||
"Are you sure you want to delete any cart positions with voucher "
|
||||
"<strong>%(voucher)s</strong>?"
|
||||
msgstr ""
|
||||
"¿Está seguro de que desea eliminar alguna entrada de la cesta con vale de "
|
||||
"¿Está seguro de que desea eliminar alguna entrada del carrito con vale de "
|
||||
"compra <strong>%(voucher)s</strong>?"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/delete_carts.html:10
|
||||
@@ -25839,7 +25840,7 @@ msgid ""
|
||||
"a purchase. This can be really confusing. Only use this if you know that the "
|
||||
"session is no longer in use."
|
||||
msgstr ""
|
||||
"Esto eliminará silenciosamente productos de la cesta de un usuario que "
|
||||
"Esto eliminará silenciosamente productos del carrito de un usuario que "
|
||||
"actualmente realiza una compra. Esto puede resultar realmente confuso. "
|
||||
"Utilice esto únicamente si sabe que la sesión ya no está en uso."
|
||||
|
||||
@@ -25859,13 +25860,13 @@ msgid ""
|
||||
"This voucher is currently used in %(number)s cart sessions and might not be "
|
||||
"free to use until the cart sessions expire."
|
||||
msgstr ""
|
||||
"Este vale de compra se utiliza actualmente en %(number)s sesiones de la "
|
||||
"cesta y es posible que no sea de uso gratuito hasta que caduque la sesión de "
|
||||
"la cesta."
|
||||
"Este vale de compra se utiliza actualmente en %(number)s sesiones del "
|
||||
"carrito y es posible que no sea de uso gratuito hasta que caduque la sesión "
|
||||
"de la cesta."
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:28
|
||||
msgid "Remove cart positions"
|
||||
msgstr "Eliminar element de la cesta"
|
||||
msgstr "Eliminar elemento del carrito"
|
||||
|
||||
#: pretix/control/templates/pretixcontrol/vouchers/detail.html:43
|
||||
msgid "Voucher link"
|
||||
@@ -32151,7 +32152,7 @@ msgid ""
|
||||
"Your cart includes a product that requires an active membership to be "
|
||||
"selected."
|
||||
msgstr ""
|
||||
"Su cesta incluye un producto que requiere una suscripción activa para ser "
|
||||
"Su carrito incluye un producto que requiere una suscripción activa para ser "
|
||||
"seleccionado."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:489
|
||||
@@ -32187,8 +32188,8 @@ msgid ""
|
||||
"accordingly."
|
||||
msgstr ""
|
||||
"Debido a la dirección de factura que ingresó, necesitamos aplicar una tasa "
|
||||
"impositiva diferente a su compra y el precio de los productos en su cesta ha "
|
||||
"cambiado en consecuencia."
|
||||
"impositiva diferente a su compra y el precio de los productos en su carrito "
|
||||
"ha cambiado en consecuencia."
|
||||
|
||||
#: pretix/presale/checkoutflow.py:1029
|
||||
msgid "Please enter your invoicing address."
|
||||
@@ -32546,7 +32547,7 @@ msgid ""
|
||||
"For some of the products in your cart, you can choose additional options "
|
||||
"before you continue."
|
||||
msgstr ""
|
||||
"Para algunos de los productos en su cesta, usted puede elegir opciones "
|
||||
"Para algunos de los productos en su carrito, usted puede elegir opciones "
|
||||
"adicionales antes de continuar."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_addons.html:16
|
||||
@@ -32554,7 +32555,7 @@ msgid ""
|
||||
"A product in your cart is only sold in combination with add-on products that "
|
||||
"are not available. Please contact the event organizer."
|
||||
msgstr ""
|
||||
"Un producto de su cesta sólo se vende en combinación con productos "
|
||||
"Un producto de su carrito sólo se vende en combinación con productos "
|
||||
"complementarios que no están disponibles. Póngase en contacto con el "
|
||||
"organizador del evento."
|
||||
|
||||
@@ -32602,17 +32603,17 @@ msgstr "Compra"
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:8
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:11
|
||||
msgid "Your cart"
|
||||
msgstr "Su cesta"
|
||||
msgstr "Su carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:28
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:31
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:18
|
||||
msgid "Cart expired"
|
||||
msgstr "La cesta de compra ha expirado"
|
||||
msgstr "El carrito de compra ha expirado"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
|
||||
msgid "Show full cart"
|
||||
msgstr "Mostrar cesta completa"
|
||||
msgstr "Mostrar carrito completo"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:48
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:84
|
||||
@@ -32758,7 +32759,7 @@ msgid ""
|
||||
"Some of the products in your cart can only be purchased if there is an "
|
||||
"active membership on your account."
|
||||
msgstr ""
|
||||
"Algunos productos de la cesta sólo pueden comprarse si existe una "
|
||||
"Algunos productos del carrito sólo pueden comprarse si existe una "
|
||||
"suscripción activa en su cuenta."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/checkout_membership.html:37
|
||||
@@ -32891,7 +32892,7 @@ msgid ""
|
||||
"browser settings accordingly."
|
||||
msgstr ""
|
||||
"Su navegador no acepta cookies de nuestra parte. Sin embargo, necesitamos "
|
||||
"establecer una cookie para recordar quién es usted y qué hay en su cesta. "
|
||||
"establecer una cookie para recordar quién es usted y qué hay en su carrito. "
|
||||
"Por favor, cambie la configuración de su navegador en consecuencia."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:17
|
||||
@@ -33053,7 +33054,7 @@ msgstr "incluido. %(rate)s%% %(name)s"
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:252
|
||||
#, python-format
|
||||
msgid "Add %(item)s, %(var)s to cart"
|
||||
msgstr "Cantidad de %(item)s - %(var)s en la cesta"
|
||||
msgstr "Cantidad de %(item)s - %(var)s en el carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:203
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:349
|
||||
@@ -33092,7 +33093,7 @@ msgstr "Aumentar cantidad"
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:408
|
||||
#, python-format
|
||||
msgid "Add %(item)s to cart"
|
||||
msgstr "Añadir %(item)s a la cesta"
|
||||
msgstr "Añadir %(item)s al carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_addon_choice.html:379
|
||||
msgid "There are no add-ons available for this product."
|
||||
@@ -33214,12 +33215,12 @@ msgstr "Entendido, estamos removiendo eso…"
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:289
|
||||
#, python-format
|
||||
msgid "Remove %(item)s from your cart"
|
||||
msgstr "Eliminar %(item)s de su cesta"
|
||||
msgstr "Eliminar %(item)s de su carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:292
|
||||
#, python-format
|
||||
msgid "Remove one %(item)s from your cart"
|
||||
msgstr "Eliminar un %(item)s de tu cesta"
|
||||
msgstr "Eliminar un %(item)s de tu carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:294
|
||||
#, python-format
|
||||
@@ -33227,7 +33228,7 @@ msgid ""
|
||||
"Remove one %(item)s from your cart. You currently have %(count)s in your "
|
||||
"cart."
|
||||
msgstr ""
|
||||
"Elimina un %(item)s de su cesta. Actualmente tiene %(count)s en su cesta."
|
||||
"Elimina un %(item)s de su carrito. Actualmente tiene %(count)s en su carrito."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:302
|
||||
msgid "We're trying to reserve another one for you!"
|
||||
@@ -33242,13 +33243,13 @@ msgid ""
|
||||
"Once the items are in your cart, you will have %(time)s minutes to complete "
|
||||
"your purchase."
|
||||
msgstr ""
|
||||
"Una vez los elementos están en su cesta, tendrá %(time)s minutos para "
|
||||
"Una vez los elementos están en su carrito, tendrá %(time)s minutos para "
|
||||
"completar la compra."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:322
|
||||
#, python-format
|
||||
msgid "Add one more %(item)s to your cart"
|
||||
msgstr "Añadir un %(item)s más a su cesta"
|
||||
msgstr "Añadir un %(item)s más a su carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:324
|
||||
#, python-format
|
||||
@@ -33256,7 +33257,8 @@ msgid ""
|
||||
"Add one more %(item)s to your cart. You currently have %(count)s in your "
|
||||
"cart."
|
||||
msgstr ""
|
||||
"Agregar un %(item)s más a su cesta. Actualmente tiene %(count)s en su cesta."
|
||||
"Agregar un %(item)s más a su carrito. Actualmente tiene %(count)s en su "
|
||||
"carrito."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:384
|
||||
#: pretix/presale/templates/pretixpresale/event/order_giftcard.html:20
|
||||
@@ -33280,15 +33282,15 @@ msgstr "incl. %(tax_sum)s impuestos"
|
||||
#, python-format
|
||||
msgid "The items in your cart are reserved for you for %(minutes)s minutes."
|
||||
msgstr ""
|
||||
"Los artículos de su cesta están reservados durante %(minutes)ss minutos."
|
||||
"Los artículos de su carrito están reservados durante %(minutes)ss minutos."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:493
|
||||
msgid ""
|
||||
"The items in your cart are no longer reserved for you. You can still "
|
||||
"complete your order as long as they’re available."
|
||||
msgstr ""
|
||||
"Los elementos en su cesta de compras ya no se encuentran reservados. Puedes "
|
||||
"seguir añadiendo más productos mientras estén disponibles."
|
||||
"Los elementos en su carrito de compras ya no se encuentran reservados. "
|
||||
"Puedes seguir añadiendo más productos mientras estén disponibles."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:497
|
||||
msgid "Overview of your ordered products."
|
||||
@@ -33306,7 +33308,7 @@ msgstr "Proceder con la compra"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:63
|
||||
msgid "Empty cart"
|
||||
msgstr "Vaciar cesta"
|
||||
msgstr "Vaciar carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:68
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:246
|
||||
@@ -33316,7 +33318,7 @@ msgstr "Canjear vale de compra"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:71
|
||||
msgid "We're applying this voucher to your cart..."
|
||||
msgstr "Estamos aplicando este vale de compra a su cesta..."
|
||||
msgstr "Estamos aplicando este vale de compra a su carrito..."
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_cart_box.html:79
|
||||
#: pretix/presale/templates/pretixpresale/event/fragment_voucher_form.html:26
|
||||
@@ -33692,11 +33694,11 @@ msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:48
|
||||
msgid "Your cart, general information, add products to your cart"
|
||||
msgstr "Su cesta, información general, añadir productos a su cesta"
|
||||
msgstr "Su carrito, información general, añadir productos a su carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:48
|
||||
msgid "General information, add products to your cart"
|
||||
msgstr "Información general, añadir productos a la cesta"
|
||||
msgstr "Información general, añadir productos al carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:68
|
||||
msgid "Please select a date to redeem your voucher."
|
||||
@@ -33750,10 +33752,10 @@ msgstr "Registrarse"
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:232
|
||||
#: pretix/presale/templates/pretixpresale/event/voucher.html:443
|
||||
msgid "Add to cart"
|
||||
msgstr "Agregar a la cesta"
|
||||
msgstr "Agregar al carrito"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Si ya ha pedido una entrada"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
@@ -34590,8 +34592,8 @@ msgid ""
|
||||
"Functional cookies (e.g. shopping cart, login, payment, language preference) "
|
||||
"and technical cookies (e.g. security purposes)"
|
||||
msgstr ""
|
||||
"Cookies funcionales (por ejemplo, cesta de compras, inicio de sesión, pago, "
|
||||
"preferencia de idioma) y cookies técnicas (por ejemplo, con fines de "
|
||||
"Cookies funcionales (por ejemplo, carrito de compras, inicio de sesión, "
|
||||
"pago, preferencia de idioma) y cookies técnicas (por ejemplo, con fines de "
|
||||
"seguridad)"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/fragment_modals.html:89
|
||||
@@ -34883,26 +34885,26 @@ msgstr "Por favor, introduzca sólo números positivos."
|
||||
#: pretix/presale/views/cart.py:441
|
||||
msgid "We applied the voucher to as many products in your cart as we could."
|
||||
msgstr ""
|
||||
"Aplicamos el vale de compra a tantos productos en su cesta como pudimos."
|
||||
"Aplicamos el vale de compra a tantos productos en su carrito como pudimos."
|
||||
|
||||
#: pretix/presale/views/cart.py:460 pretix/presale/views/cart.py:468
|
||||
msgid ""
|
||||
"The gift card has been saved to your cart. Please continue your checkout."
|
||||
msgstr ""
|
||||
"La tarjeta regalo se ha guardado en su cesta. Continúe con el proceso de "
|
||||
"La tarjeta regalo se ha guardado en su carrito. Continúe con el proceso de "
|
||||
"compra."
|
||||
|
||||
#: pretix/presale/views/cart.py:504
|
||||
msgid "Your cart has been updated."
|
||||
msgstr "Su cesta ha sido actualizada."
|
||||
msgstr "Su carrito ha sido actualizada."
|
||||
|
||||
#: pretix/presale/views/cart.py:507 pretix/presale/views/cart.py:533
|
||||
msgid "Your cart is now empty."
|
||||
msgstr "Su cesta ha sido vaciada."
|
||||
msgstr "Su carrito ha sido vaciada."
|
||||
|
||||
#: pretix/presale/views/cart.py:548
|
||||
msgid "The products have been successfully added to your cart."
|
||||
msgstr "Los productos se han añadido con éxito a su cesta."
|
||||
msgstr "Los productos se han añadido con éxito a su carrito."
|
||||
|
||||
#: pretix/presale/views/cart.py:572 pretix/presale/views/event.py:540
|
||||
#: pretix/presale/views/widget.py:377
|
||||
@@ -34915,8 +34917,8 @@ msgid ""
|
||||
"The gift card has been saved to your cart. Please now select the products "
|
||||
"you want to purchase."
|
||||
msgstr ""
|
||||
"La tarjeta regalo se ha guardado en su cesta. Seleccione ahora los productos "
|
||||
"que desea comprar."
|
||||
"La tarjeta regalo se ha guardado en su carrito. Seleccione ahora los "
|
||||
"productos que desea comprar."
|
||||
|
||||
#: pretix/presale/views/cart.py:739
|
||||
msgctxt "subevent"
|
||||
@@ -34925,7 +34927,7 @@ msgstr "No pudimos encontrar la fecha especificada."
|
||||
|
||||
#: pretix/presale/views/checkout.py:55
|
||||
msgid "Your cart is empty"
|
||||
msgstr "Su cesta está vacía"
|
||||
msgstr "Su carito está vacío"
|
||||
|
||||
#: pretix/presale/views/checkout.py:59
|
||||
msgid "The booking period for this event is over or has not yet started."
|
||||
|
||||
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-04-28 11:08+0000\n"
|
||||
"PO-Revision-Date: 2025-04-29 18:00+0000\n"
|
||||
"Last-Translator: CVZ-es <damien.bremont@casadevelazquez.org>\n"
|
||||
"PO-Revision-Date: 2025-05-14 02:00+0000\n"
|
||||
"Last-Translator: Zona Vip <contacto@zonavip.mx>\n"
|
||||
"Language-Team: Spanish <https://translate.pretix.eu/projects/pretix/"
|
||||
"pretix-js/es/>\n"
|
||||
"Language: es\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.11.1\n"
|
||||
"X-Generator: Weblate 5.11.4\n"
|
||||
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
|
||||
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
|
||||
@@ -706,12 +706,12 @@ msgid ""
|
||||
"The items in your cart are no longer reserved for you. You can still "
|
||||
"complete your order as long as they’re available."
|
||||
msgstr ""
|
||||
"Los elementos en su cesta de compras ya no se encuentran reservados. Puedes "
|
||||
"seguir añadiendo más productos mientras estén disponibles."
|
||||
"Los elementos en su carrito de compras ya no se encuentran reservados. "
|
||||
"Puedes seguir añadiendo más productos mientras estén disponibles."
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:45
|
||||
msgid "Cart expired"
|
||||
msgstr "La cesta de compra ha expirado"
|
||||
msgstr "El carrito de compra ha expirado"
|
||||
|
||||
#: pretix/static/pretixpresale/js/ui/cart.js:50
|
||||
msgid "The items in your cart are reserved for you for one minute."
|
||||
|
||||
@@ -29859,7 +29859,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32099,7 +32099,7 @@ msgid "Add to cart"
|
||||
msgstr "Saskira gehitu"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Dagoeneko sarrera bat eskatu baduzu"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -31848,7 +31848,7 @@ msgid "Add to cart"
|
||||
msgstr "Lisää ostoskoriin"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Jos tilasit jo tuotteita"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29880,7 +29880,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34033,7 +34033,7 @@ msgid "Add to cart"
|
||||
msgstr "Ajouter au panier"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Si vous avez déjà commandé un billet"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -35859,7 +35859,7 @@ msgid "Add to cart"
|
||||
msgstr "Engadir ao pedido"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Se xa pediu unha entrada"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29895,7 +29895,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -30700,7 +30700,7 @@ msgid "Add to cart"
|
||||
msgstr "Dodaj u košaricu"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Ako ste već kupili kartu"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -31023,7 +31023,7 @@ msgid "Add to cart"
|
||||
msgstr "Hozzáadás a kosárhoz"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Ha már rendeltél jegyet"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33865,7 +33865,7 @@ msgid "Add to cart"
|
||||
msgstr "Masukkan ke keranjang"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Jika kamu sudah memesan tiket"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -31883,7 +31883,7 @@ msgid "Add to cart"
|
||||
msgstr "Aggiungi al carrello"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Se hai già prenotato un biglietto"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32867,7 +32867,7 @@ msgid "Add to cart"
|
||||
msgstr "カートに追加"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "すでにチケットを注文済みの場合"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -29862,7 +29862,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32169,7 +32169,7 @@ msgid "Add to cart"
|
||||
msgstr "Pievienot grozam"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Ja jau esat pasūtījis biļeti"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34036,7 +34036,7 @@ msgid "Add to cart"
|
||||
msgstr "Legg til handlekurv"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Har du allerede bestilt billett"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33634,7 +33634,7 @@ msgid "Add to cart"
|
||||
msgstr "Voeg toe aan winkelwagen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Als u al een ticket heeft besteld"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34971,7 +34971,7 @@ msgid "Add to cart"
|
||||
msgstr "Voeg toe aan winkelwagen"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Als je al een kaartje hebt besteld"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33525,7 +33525,7 @@ msgid "Add to cart"
|
||||
msgstr "Dodaj do koszyka"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Jeżeli bilet jest już zamówiony"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -30093,7 +30093,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -30334,7 +30334,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32910,7 +32910,7 @@ msgid "Add to cart"
|
||||
msgstr "Adicionar ao carrinho"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Se você já solicitou um ingresso"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34042,7 +34042,7 @@ msgid "Add to cart"
|
||||
msgstr "Adicionar ao carrinho"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Se já pediste um bilhete"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34887,7 +34887,7 @@ msgid "Add to cart"
|
||||
msgstr "Adaugă în coș"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Dacă ați comandat deja un bilet"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33106,7 +33106,7 @@ msgid "Add to cart"
|
||||
msgstr "Добавить в корзину"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Если вы уже заказали билет"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29992,7 +29992,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32809,7 +32809,7 @@ msgid "Add to cart"
|
||||
msgstr "Pridať do košíka"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Ak ste si už objednali vstupenku"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -32657,7 +32657,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33595,7 +33595,7 @@ msgid "Add to cart"
|
||||
msgstr "Lägg till i bokning"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Om du redan har bokat en biljett"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29859,7 +29859,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -35827,7 +35827,7 @@ msgid "Add to cart"
|
||||
msgstr "Sepete ekle"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Zaten bir bilet sipariş ettiyseniz"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -33579,7 +33579,7 @@ msgid "Add to cart"
|
||||
msgstr "Додати до кошика"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "Якщо Ви вже замовили квиток"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29897,7 +29897,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -29857,7 +29857,7 @@ msgid "Add to cart"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr ""
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -34570,7 +34570,7 @@ msgid "Add to cart"
|
||||
msgstr "添加到购物车"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "如果您已经订了票"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -31796,7 +31796,7 @@ msgid "Add to cart"
|
||||
msgstr "加入購物車"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:253
|
||||
msgid "If you already ordered a ticket"
|
||||
msgid "If you have already ordered a ticket"
|
||||
msgstr "如果你已訂購票"
|
||||
|
||||
#: pretix/presale/templates/pretixpresale/event/index.html:257
|
||||
|
||||
@@ -625,8 +625,22 @@ class PaypalMethod(BasePaymentProvider):
|
||||
}
|
||||
return template.render(ctx)
|
||||
|
||||
@transaction.atomic
|
||||
# We are wrapping the actual _execute_payment() here, since PaymentExceptions
|
||||
# within the atomic transaction would rollback any changes to the payment-object,
|
||||
# this throwing away any logentries and payment.fail()
|
||||
def execute_payment(self, request: HttpRequest, payment: OrderPayment):
|
||||
ex = None
|
||||
with transaction.atomic():
|
||||
try:
|
||||
return self._execute_payment(request, payment)
|
||||
except PaymentException as e:
|
||||
ex = e
|
||||
if ex:
|
||||
raise ex
|
||||
|
||||
return False
|
||||
|
||||
def _execute_payment(self, request: HttpRequest, payment: OrderPayment):
|
||||
payment = OrderPayment.objects.select_for_update(of=OF_SELF).get(pk=payment.pk)
|
||||
if payment.state == OrderPayment.PAYMENT_STATE_CONFIRMED:
|
||||
logger.warning('payment is already confirmed; possible return-view/webhook race-condition')
|
||||
|
||||
@@ -66,6 +66,8 @@ class AuthenticationForm(forms.Form):
|
||||
|
||||
error_messages = {
|
||||
'incomplete': _('You need to fill out all fields.'),
|
||||
'empty_email': _('You need to enter an email address.'),
|
||||
'empty_password': _('You need to enter a password.'),
|
||||
'invalid_login': _(
|
||||
"We have not found an account with this email address and password."
|
||||
),
|
||||
@@ -112,6 +114,10 @@ class AuthenticationForm(forms.Form):
|
||||
else:
|
||||
self.confirm_login_allowed(self.customer_cache)
|
||||
else:
|
||||
if not email:
|
||||
self.add_error("email", self.error_messages['empty_email'])
|
||||
if not password:
|
||||
self.add_error("password", self.error_messages['empty_password'])
|
||||
raise forms.ValidationError(
|
||||
self.error_messages['incomplete'],
|
||||
code='incomplete'
|
||||
|
||||
@@ -94,10 +94,11 @@
|
||||
</a>
|
||||
{% else %}
|
||||
<h1>
|
||||
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}">{{ event.name }}</a>
|
||||
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}" class="no-underline">{{ event.name }}
|
||||
{% if request.event.settings.show_dates_on_frontpage and not event.has_subevents %}
|
||||
<small>{{ event.get_date_range_display_as_html }}</small>
|
||||
<small class="text-muted">{{ event.get_date_range_display_as_html }}</small>
|
||||
{% endif %}
|
||||
</a>
|
||||
</h1>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
@@ -2,15 +2,15 @@
|
||||
{% load icon %}
|
||||
{% load eventurl %}
|
||||
|
||||
<dl class="full-width-list alternating-rows">
|
||||
<div class="event-list full-width-list alternating-rows">
|
||||
{% for subev in subevent_list.subevent_list %}
|
||||
<div class="row">
|
||||
<dt class="col-md-4 col-xs-12">
|
||||
<a href="{% if request.GET.voucher %}{% eventurl event "presale:event.redeem" cart_namespace=cart_namespace %}?voucher={{ request.GET.voucher|urlencode }}&subevent={{ subev.pk }}{% else %}{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}{% endif %}">
|
||||
<article class="row" aria-labelledby="subevent-{{ subev.pk }}-label" aria-describedby="subevent-{{ subev.pk }}-desc">
|
||||
<h3 class="col-md-4 col-xs-12">
|
||||
<a id="subevent-{{ subev.pk }}-label" href="{% if request.GET.voucher %}{% eventurl event "presale:event.redeem" cart_namespace=cart_namespace %}?voucher={{ request.GET.voucher|urlencode }}&subevent={{ subev.pk }}{% else %}{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}{% endif %}">
|
||||
{{ subev.name }}
|
||||
</a>
|
||||
</dt>
|
||||
<dd class="col-md-3 col-xs-12">
|
||||
</h3>
|
||||
<p class="col-md-3 col-xs-12" id="subevent-{{ subev.pk }}-desc">
|
||||
{{ subev.get_date_range_display_as_html }}
|
||||
{% if event.settings.show_times %}
|
||||
<br>
|
||||
@@ -20,13 +20,13 @@
|
||||
<time datetime="{{ subev.date_from.isoformat }}">{{ subev.date_from|date:"TIME_FORMAT" }}</time>
|
||||
</span>
|
||||
{% endif %}
|
||||
</dd>
|
||||
<dd class="col-md-3 col-xs-6">
|
||||
</p>
|
||||
<p class="col-md-3 col-xs-6">
|
||||
<small>
|
||||
{% include "pretixpresale/fragment_event_list_status.html" with event=subev %}
|
||||
</small>
|
||||
</dd>
|
||||
<dd class="col-md-2 col-xs-6 text-right flip">
|
||||
</p>
|
||||
<p class="col-md-2 col-xs-6 text-right flip">
|
||||
<a class="btn btn-primary btn-block" href="{% if request.GET.voucher %}{% eventurl event "presale:event.redeem" cart_namespace=cart_namespace %}?voucher={{ request.GET.voucher|urlencode }}&subevent={{ subev.pk }}{% else %}{% eventurl event "presale:event.index" subevent=subev.id cart_namespace=cart_namespace %}{% endif %}">
|
||||
{% if subev.presale_is_running and subev.best_availability_state == 100 %}
|
||||
{% icon "ticket" %} {% trans "Tickets" %}
|
||||
@@ -34,7 +34,7 @@
|
||||
{% icon "info" %} {% trans "More info" %}
|
||||
{% endif %}
|
||||
</a>
|
||||
</dd>
|
||||
</div>
|
||||
</p>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
{% load thumb %}
|
||||
{% load eventsignal %}
|
||||
{% load rich_text %}
|
||||
{% load icon %}
|
||||
{% load dialog %}
|
||||
|
||||
{% block title %}
|
||||
{% if "year" in request.GET %}
|
||||
@@ -240,6 +242,13 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% if ev.presale_is_running and display_add_to_cart %}
|
||||
{% trans "You didn’t select any ticket." as label_nothing_to_add %}
|
||||
{% trans "Please tick a checkbox or enter a quantity for one of the ticket types to add to the cart." as description_nothing_to_add %}
|
||||
{% dialog "dialog-nothing-to-add" label_nothing_to_add description_nothing_to_add icon="exclamation-circle" %}
|
||||
<p class="modal-card-confirm"><button class="btn btn-primary">{% trans "OK" %}</button></p>
|
||||
{% enddialog %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</main>
|
||||
@@ -252,7 +261,7 @@
|
||||
{% if not cart_namespace %}
|
||||
{% eventsignal event "pretix.presale.signals.front_page_bottom" subevent=subevent request=request %}
|
||||
<aside class="front-page" aria-labelledby="if-you-already-ordered-a-ticket">
|
||||
<h3 id="if-you-already-ordered-a-ticket">{% trans "If you already ordered a ticket" %}</h3>
|
||||
<h3 id="if-you-already-ordered-a-ticket">{% trans "If you have already ordered a ticket" %}</h3>
|
||||
<div class="row">
|
||||
<div class="col-md-8 col-xs-12">
|
||||
<p>
|
||||
|
||||
@@ -9,14 +9,13 @@
|
||||
title="{% trans "View customer account" %}" data-toggle="tooltip">
|
||||
<span class="fa fa-user" aria-hidden="true"></span>
|
||||
{{ request.customer.name|default:request.customer.email }}</a>
|
||||
<a href="{% if request.event_domain %}{% abseventurl request.event "presale:organizer.customer.logout" %}{% else %}{% abseventurl request.organizer "presale:organizer.customer.logout" %}{% endif %}?next={{ request.path|urlencode }}%3F{{ request.META.QUERY_STRING|urlencode }}"
|
||||
aria-label="{% trans "Log out" %}" data-toggle="tooltip" data-placement="left"
|
||||
title="{% trans "Log out" %}">
|
||||
<a href="{% if request.event_domain %}{% abseventurl request.event "presale:organizer.customer.logout" %}{% else %}{% abseventurl request.organizer "presale:organizer.customer.logout" %}{% endif %}?next={{ request.path|urlencode }}%3F{{ request.META.QUERY_STRING|urlencode }}">
|
||||
<span class="fa fa-sign-out" aria-hidden="true"></span>
|
||||
<span class="sr-only">{% trans "Log out" %}</span>
|
||||
{% trans "Log out" %}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="{% abseventurl request.organizer "presale:organizer.customer.login" %}{% if request.resolver_match.url_name != "organizer.customer.login" %}?next={% if request.event_domain %}{{ request.scheme }}://{{ request.get_host }}{% endif %}{{ request.path|urlencode }}%3F{{ request.META.QUERY_STRING|urlencode }}{% endif %}{% if request.event_domain %}&request_cross_domain_customer_auth=true{% endif %}">
|
||||
<span class="fa fa-sign-in" aria-hidden="true"></span>
|
||||
{% trans "Log in" %}</a>
|
||||
|
||||
{% endif %}
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
{% load rich_text %}
|
||||
{% load safelink %}
|
||||
{% load escapejson %}
|
||||
{% load icon %}
|
||||
{% load dialog %}
|
||||
<div id="ajaxerr">
|
||||
</div>
|
||||
<div id="popupmodal" hidden aria-live="polite">
|
||||
@@ -50,89 +52,74 @@
|
||||
{{ cookie_consent_from_widget|json_script:"cookie-consent-from-widget" }}
|
||||
{% endif %}
|
||||
{% if cookie_providers %}
|
||||
<div id="cookie-consent-modal" aria-live="polite">
|
||||
<div class="modal-card">
|
||||
<div class="modal-card-content">
|
||||
<h3 id="cookie-consent-modal-label"></h3>
|
||||
<div id="cookie-consent-modal-description">
|
||||
{% with request.event|default:request.organizer as sh %}
|
||||
<h3>{{ sh.settings.cookie_consent_dialog_title }}</h3>
|
||||
{{ sh.settings.cookie_consent_dialog_text|rich_text }}
|
||||
{% if sh.settings.cookie_consent_dialog_text_secondary %}
|
||||
<div class="text-muted">
|
||||
{{ sh.settings.cookie_consent_dialog_text_secondary|rich_text }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<details id="cookie-consent-details">
|
||||
<summary>
|
||||
<span class="fa fa-fw chevron"></span>
|
||||
{% trans "Adjust settings in detail" %}
|
||||
</summary>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" disabled checked="">
|
||||
{% trans "Required cookies" %}<br>
|
||||
<span class="text-muted">
|
||||
{% trans "Functional cookies (e.g. shopping cart, login, payment, language preference) and technical cookies (e.g. security purposes)" %}
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
{% for cp in cookie_providers %}
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="{{ cp.identifier }}">
|
||||
{{ cp.provider_name }}<br>
|
||||
<span class="text-muted">
|
||||
{% for c in cp.usage_classes %}
|
||||
{% if forloop.counter0 > 0 %}· {% endif %}
|
||||
{% if c.value == 1 %}
|
||||
{% trans "Functionality" context "cookie_usage" %}
|
||||
{% elif c.value == 2 %}
|
||||
{% trans "Analytics" context "cookie_usage" %}
|
||||
{% elif c.value == 3 %}
|
||||
{% trans "Marketing" context "cookie_usage" %}
|
||||
{% elif c.value == 4 %}
|
||||
{% trans "Social features" context "cookie_usage" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if cp.privacy_url %}
|
||||
·
|
||||
<a href="{% safelink cp.privacy_url %}" target="_blank">
|
||||
{% trans "Privacy policy" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</details>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<p>
|
||||
<button type="button" class="btn btn-lg btn-block btn-primary" id="cookie-consent-button-no"
|
||||
data-summary-text="{{ sh.settings.cookie_consent_dialog_button_no }}"
|
||||
data-detail-text="{% trans "Save selection" %}">
|
||||
{{ sh.settings.cookie_consent_dialog_button_no }}
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<p>
|
||||
<button type="button" class="btn btn-lg btn-block btn-primary" id="cookie-consent-button-yes">
|
||||
{{ sh.settings.cookie_consent_dialog_button_yes }}
|
||||
</button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% if sh.settings.privacy_url %}
|
||||
<p class="text-center">
|
||||
<a href="{% safelink sh.settings.privacy_url %}" target="_blank" rel="noopener">{% trans "Privacy policy" %}</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% with request.event|default:request.organizer as sh %}
|
||||
{% dialog "cookie-consent-modal" sh.settings.cookie_consent_dialog_title sh.settings.cookie_consent_dialog_text|rich_text icon="shield" %}
|
||||
{% if sh.settings.cookie_consent_dialog_text_secondary %}
|
||||
<div class="text-muted">
|
||||
{{ sh.settings.cookie_consent_dialog_text_secondary|rich_text }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<details id="cookie-consent-details">
|
||||
<summary>
|
||||
<span class="fa fa-fw chevron"></span>
|
||||
{% trans "Adjust settings in detail" %}
|
||||
</summary>
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" disabled checked="" aira-describedby="cookie-consent-checkbox-required-description">
|
||||
{% trans "Required cookies" %}
|
||||
</label>
|
||||
</div>
|
||||
<div class="help-block" id="cookie-consent-checkbox-required-description">
|
||||
<p>{% trans "Functional cookies (e.g. shopping cart, login, payment, language preference) and technical cookies (e.g. security purposes)" %}</p>
|
||||
</div>
|
||||
{% for cp in cookie_providers %}
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="{{ cp.identifier }}" aira-describedby="cookie-consent-checkbox-{{ cp.identifier }}-description">
|
||||
{{ cp.provider_name }}
|
||||
</label>
|
||||
</div>
|
||||
<div class="help-block" id="cookie-consent-checkbox-{{ cp.identifier }}-description">
|
||||
<p>
|
||||
{% for c in cp.usage_classes %}
|
||||
{% if forloop.counter0 > 0 %}· {% endif %}
|
||||
{% if c.value == 1 %}
|
||||
{% trans "Functionality" context "cookie_usage" %}
|
||||
{% elif c.value == 2 %}
|
||||
{% trans "Analytics" context "cookie_usage" %}
|
||||
{% elif c.value == 3 %}
|
||||
{% trans "Marketing" context "cookie_usage" %}
|
||||
{% elif c.value == 4 %}
|
||||
{% trans "Social features" context "cookie_usage" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if cp.privacy_url %}
|
||||
·
|
||||
<a href="{% safelink cp.privacy_url %}" target="_blank">
|
||||
{% trans "Privacy policy" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</details>
|
||||
<p class="modal-card-confirm modal-card-confirm-spread">
|
||||
<button class="btn btn-lg btn-default" id="cookie-consent-button-no" value="no" autofocus="true"
|
||||
data-summary-text="{{ sh.settings.cookie_consent_dialog_button_no }}"
|
||||
data-detail-text="{% trans "Save selection" %}">
|
||||
{{ sh.settings.cookie_consent_dialog_button_no }}
|
||||
</button>
|
||||
<button class="btn btn-lg btn-primary" id="cookie-consent-button-yes" value="yes">
|
||||
{{ sh.settings.cookie_consent_dialog_button_yes }}
|
||||
</button>
|
||||
</p>
|
||||
{% if sh.settings.privacy_url %}
|
||||
<p class="text-center">
|
||||
<small><a href="{% safelink sh.settings.privacy_url %}" target="_blank" rel="noopener">{% trans "Privacy policy" %}</a></small>
|
||||
</p>
|
||||
{% endif %}
|
||||
{% enddialog %}
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
class="organizer-logo" />
|
||||
</a>
|
||||
{% else %}
|
||||
<h1><a href="{% eventurl organizer "presale:organizer.index" %}">{{ organizer.name }}</a></h1>
|
||||
<h1><a href="{% eventurl organizer "presale:organizer.index" %}" class="no-underline">{{ organizer.name }}</a></h1>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if organizer.settings.locales|length > 1 or request.organizer.settings.customer_accounts %}
|
||||
|
||||
@@ -14,94 +14,91 @@
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% if memberships %}
|
||||
<ul class="full-width-list alternating-rows">
|
||||
<div class="event-list full-width-list alternating-rows">
|
||||
{% for m in memberships %}
|
||||
<li class="row">
|
||||
<dl>
|
||||
<div class="col-xs-5">
|
||||
<dt>
|
||||
{% if m.canceled %}<del>{% endif %}
|
||||
<a href="{% abseventurl request.organizer "presale:organizer.customer.membership" id=m.id %}">
|
||||
{{ m.membership_type.name }}
|
||||
</a>
|
||||
{% if m.canceled %}</del>{% endif %}
|
||||
{% if m.membership_type.transferable %}
|
||||
<span class="text-muted" data-toggle="tooltip" title="{% trans "Membership is transferable" %}">
|
||||
{% icon "users" %}
|
||||
</span>
|
||||
{% endif %}
|
||||
</dt>
|
||||
{% if m.attendee_name %}
|
||||
<dd class="text-muted">
|
||||
{% icon "id-badge" %}
|
||||
<span class="sr-only">{% trans "Attendee name" %}:</span>
|
||||
{{ m.attendee_name }}
|
||||
</dd>
|
||||
<article class="row">
|
||||
<div class="col-xs-5">
|
||||
<h4>
|
||||
{% if m.canceled %}<del>{% endif %}
|
||||
<a href="{% abseventurl request.organizer "presale:organizer.customer.membership" id=m.id %}">
|
||||
{{ m.membership_type.name }}
|
||||
</a>
|
||||
{% if m.canceled %}</del>{% endif %}
|
||||
{% if m.membership_type.transferable %}
|
||||
<span class="text-muted" data-toggle="tooltip" title="{% trans "Membership is transferable" %}">
|
||||
{% icon "users" %}
|
||||
</span>
|
||||
{% endif %}
|
||||
<dd class="text-muted">
|
||||
<small>
|
||||
{% if m.canceled %}
|
||||
{% textbubble "danger" icon="times" %}
|
||||
{% trans "Canceled" %}
|
||||
{% endtextbubble %}
|
||||
{% elif m.expired %}
|
||||
{% icon "minus-square-o" %}
|
||||
{% trans "Expired since" %}
|
||||
<time datetime="{{ m.date_end|date:"Y-m-d H:i" }}">
|
||||
{{ m.date_end|date:"SHORT_DATETIME_FORMAT" }}
|
||||
</time>
|
||||
{% elif m.not_yet_valid %}
|
||||
{% icon "clock-o" %}
|
||||
{% trans "Valid from" %}
|
||||
<time datetime="{{ m.date_start|date:"Y-m-d H:i" }}">
|
||||
{{ m.date_start|date:"SHORT_DATETIME_FORMAT" }}
|
||||
</time>
|
||||
{% else %}
|
||||
{% icon "check" %}
|
||||
{% trans "Valid until" %}
|
||||
<time datetime="{{ m.date_end|date:"Y-m-d H:i" }}">
|
||||
{{ m.date_end|date:"SHORT_DATETIME_FORMAT" }}
|
||||
</time>
|
||||
{% endif %}
|
||||
</small>
|
||||
</dd>
|
||||
{% if m.testmode %}
|
||||
<dd>
|
||||
<small>
|
||||
{% textbubble "warning" %}
|
||||
{% trans "TEST MODE" %}
|
||||
</h4>
|
||||
{% if m.attendee_name %}
|
||||
<p class="text-muted">
|
||||
{% icon "id-badge" %}
|
||||
<span class="sr-only">{% trans "Attendee name" %}:</span>
|
||||
{{ m.attendee_name }}
|
||||
</p>
|
||||
{% endif %}
|
||||
<p class="text-muted">
|
||||
<small>
|
||||
{% if m.canceled %}
|
||||
{% textbubble "danger" icon="times" %}
|
||||
{% trans "Canceled" %}
|
||||
{% endtextbubble %}
|
||||
</small>
|
||||
</dd>
|
||||
{% elif m.expired %}
|
||||
{% icon "minus-square-o" %}
|
||||
{% trans "Expired since" %}
|
||||
<time datetime="{{ m.date_end|date:"Y-m-d H:i" }}">
|
||||
{{ m.date_end|date:"SHORT_DATETIME_FORMAT" }}
|
||||
</time>
|
||||
{% elif m.not_yet_valid %}
|
||||
{% icon "clock-o" %}
|
||||
{% trans "Valid from" %}
|
||||
<time datetime="{{ m.date_start|date:"Y-m-d H:i" }}">
|
||||
{{ m.date_start|date:"SHORT_DATETIME_FORMAT" }}
|
||||
</time>
|
||||
{% else %}
|
||||
{% icon "check" %}
|
||||
{% trans "Valid until" %}
|
||||
<time datetime="{{ m.date_end|date:"Y-m-d H:i" }}">
|
||||
{{ m.date_end|date:"SHORT_DATETIME_FORMAT" }}
|
||||
</time>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-xs-5">
|
||||
<dd>
|
||||
<div class="quotabox full-width">
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success progress-bar-{{ m.percentage_used }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="numbers">
|
||||
{{ m.usages }} /
|
||||
{{ m.membership_type.max_usages|default_if_none:"∞" }}
|
||||
</small>
|
||||
</p>
|
||||
{% if m.testmode %}
|
||||
<p>
|
||||
<small>
|
||||
{% textbubble "warning" %}
|
||||
{% trans "TEST MODE" %}
|
||||
{% endtextbubble %}
|
||||
</small>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-xs-5">
|
||||
<p>
|
||||
<div class="quotabox full-width">
|
||||
<div class="progress">
|
||||
<div class="progress-bar progress-bar-success progress-bar-{{ m.percentage_used }}">
|
||||
</div>
|
||||
</div>
|
||||
</dd>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<dt class="sr-only">{% trans "Actions" %}</dt>
|
||||
<dd class="text-right">
|
||||
<a href="{% abseventurl request.organizer "presale:organizer.customer.membership" id=m.id %}">
|
||||
{% icon "list-ul" %}
|
||||
{% trans "Details" %}
|
||||
</a>
|
||||
</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</li>
|
||||
<div class="numbers">
|
||||
{{ m.usages }} /
|
||||
{{ m.membership_type.max_usages|default_if_none:"∞" }}
|
||||
</div>
|
||||
</div>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<p class="text-right">
|
||||
<a href="{% abseventurl request.organizer "presale:organizer.customer.membership" id=m.id %}">
|
||||
{% icon "list-ul" %}
|
||||
{% trans "Details" %}
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="text-center">{% trans "You don’t have any memberships in your account yet." %}</p>
|
||||
{% endif %}
|
||||
|
||||
@@ -15,65 +15,60 @@
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{% if orders %}
|
||||
<ul class="full-width-list alternating-rows">
|
||||
<div class="event-list full-width-list alternating-rows">
|
||||
{% for o in orders %}
|
||||
<li class="row">
|
||||
<dl>
|
||||
<div class="col-md-4 col-sm-5 col-xs-8">
|
||||
<dt class="sr-only">{% trans "Order" %}</dt>
|
||||
<dd><strong>
|
||||
<a href="{% abseventurl o.event "presale:event.order" order=o.code secret=o.secret %}" target="_blank">
|
||||
{% icon "shopping-cart" %}
|
||||
{{ o.code }}</a>
|
||||
</strong>
|
||||
{% if o.customer_id != customer.pk %}
|
||||
<span class="text-muted" data-toggle="tooltip"
|
||||
title="{% trans "Matched to the account based on the email address." %}">
|
||||
{% icon "compress" %}
|
||||
</span>
|
||||
{% endif %}
|
||||
<small>{% include "pretixpresale/event/fragment_order_status.html" with order=o event=o.event %}</small>
|
||||
</dd>
|
||||
<dd><time datetime="{{ o.datetime|date:"Y-m-d H:i" }}" class="text-muted small">{{ o.datetime|date:"SHORT_DATETIME_FORMAT" }}</time></dd>
|
||||
{% if o.testmode %}
|
||||
<dd>
|
||||
<small>
|
||||
{% textbubble "warning" %}
|
||||
{% trans "TEST MODE" %}
|
||||
{% endtextbubble %}
|
||||
</small>
|
||||
</dd>
|
||||
<article class="row">
|
||||
<div class="col-md-4 col-sm-5 col-xs-8">
|
||||
<h4><strong>
|
||||
<a href="{% abseventurl o.event "presale:event.order" order=o.code secret=o.secret %}" target="_blank">
|
||||
{% icon "shopping-cart" %}
|
||||
{{ o.code }}</a>
|
||||
</strong>
|
||||
{% if o.customer_id != customer.pk %}
|
||||
<span class="text-muted" data-toggle="tooltip"
|
||||
title="{% trans "Matched to the account based on the email address." %}">
|
||||
{% icon "compress" %}
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-2 col-xs-4 text-right">
|
||||
<dt class="sr-only">{% trans "Order total" %}</dt>
|
||||
<dd>{{ o.total|money:o.event.currency }}</dd>
|
||||
<dt class="sr-only">{% trans "Positions" %}</dt>
|
||||
<dd class="text-muted"><small>{% blocktranslate count counter=o.count_positions|default_if_none:0 %}{{ counter }} item{% plural %}{{ counter }} items{% endblocktranslate %}</small>
|
||||
</dd>
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-3 col-xs-8">
|
||||
<dt class="sr-only">{% trans "Event" %}</dt>
|
||||
<dd>
|
||||
{{ o.event }}
|
||||
{% if not o.event.has_subevents and o.event.settings.show_dates_on_frontpage %}
|
||||
<br><small class="text-muted">{{ o.event.get_date_range_display }}</small>
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
<div class="col-sm-2 col-xs-4">
|
||||
<dt class="sr-only">{% trans "Actions" %}</dt>
|
||||
<dd class="text-right">
|
||||
<a href="{% abseventurl o.event "presale:event.order" order=o.code secret=o.secret %}"
|
||||
target="_blank">
|
||||
{% icon "list-ul" %}
|
||||
{% trans "Details" %}
|
||||
</a></dd>
|
||||
</div>
|
||||
</dl>
|
||||
</li>
|
||||
<small>{% include "pretixpresale/event/fragment_order_status.html" with order=o event=o.event %}</small>
|
||||
</h4>
|
||||
<p><time datetime="{{ o.datetime|date:"Y-m-d H:i" }}" class="text-muted small">{{ o.datetime|date:"SHORT_DATETIME_FORMAT" }}</time></p>
|
||||
{% if o.testmode %}
|
||||
<p>
|
||||
<small>
|
||||
{% textbubble "warning" %}
|
||||
{% trans "TEST MODE" %}
|
||||
{% endtextbubble %}
|
||||
</small>
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-2 col-xs-4 text-right">
|
||||
<p>
|
||||
{{ o.total|money:o.event.currency }}
|
||||
<br><span class="text-muted"><small>{% blocktranslate count counter=o.count_positions|default_if_none:0 %}{{ counter }} item{% plural %}{{ counter }} items{% endblocktranslate %}</small>
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-3 col-xs-8">
|
||||
<p>
|
||||
{{ o.event }}
|
||||
{% if not o.event.has_subevents and o.event.settings.show_dates_on_frontpage %}
|
||||
<br><small class="text-muted">{{ o.event.get_date_range_display }}</small>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-sm-2 col-xs-4">
|
||||
<p class="text-right">
|
||||
<a href="{% abseventurl o.event "presale:event.order" order=o.code secret=o.secret %}"
|
||||
target="_blank">
|
||||
{% icon "list-ul" %}
|
||||
{% trans "Details" %}
|
||||
</a></p>
|
||||
</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="text-center">{% trans "You don’t have any orders in your account yet." %}</p>
|
||||
{% endif %}
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
{% endif %}
|
||||
{% if events %}
|
||||
<div class="panel-body">
|
||||
<dl class="full-width-list alternating-rows">
|
||||
<div class="event-list full-width-list alternating-rows">
|
||||
{% for e in events %}{% eventurl e "presale:event.index" as url %}
|
||||
<div class="row">
|
||||
<dt class="col-md-4 col-xs-12"><a href="{{ url }}">{{ e.name }}</a></dt>
|
||||
<dd class="col-md-3 col-xs-12">
|
||||
<article class="row" aria-labelledby="event-{{ e.pk }}-label" aria-describedby="event-{{ e.pk }}-desc">
|
||||
<h3 class="col-md-4 col-xs-12"><a href="{{ url }}" id="event-{{ e.pk }}-label">{{ e.name }}</a></h3>
|
||||
<p class="col-md-3 col-xs-12" id="event-{{ e.pk }}-desc">
|
||||
{% if e.settings.show_dates_on_frontpage %}
|
||||
{% if e.has_subevents %}
|
||||
{% icon "calendar" %} {% trans "Multiple dates" context "subevent" %}
|
||||
@@ -78,13 +78,13 @@
|
||||
{% else %}
|
||||
|
||||
{% endif %}
|
||||
</dd>
|
||||
<dd class="col-md-3 col-xs-6">
|
||||
</p>
|
||||
<p class="col-md-3 col-xs-6">
|
||||
<small>
|
||||
{% include "pretixpresale/fragment_event_list_status.html" with event=e %}
|
||||
</small>
|
||||
</dd>
|
||||
<dd class="col-md-2 col-xs-6 text-right flip">
|
||||
</p>
|
||||
<p class="col-md-2 col-xs-6 text-right flip">
|
||||
<a class="btn btn-primary btn-block" href="{{ url }}{% if e.has_subevents and e.match_by_subevents %}{{ filterquery }}{% endif %}">
|
||||
{% if e.has_subevents %}{% icon "ticket" %} {% trans "Tickets" %}
|
||||
{% elif e.presale_is_running and e.best_availability_state == 100 %}
|
||||
@@ -93,10 +93,10 @@
|
||||
{% icon "info" %} {% trans "More info" %}
|
||||
{% endif %}
|
||||
</a>
|
||||
</dd>
|
||||
</div>
|
||||
</p>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
@@ -262,3 +262,95 @@ svg.svg-icon {
|
||||
@include table-row-variant('info', var(--pretix-brand-info-success-lighten-30), var(--pretix-brand-info-success-lighten-25));
|
||||
@include table-row-variant('warning', var(--pretix-brand-warning-lighten-40), var(--pretix-brand-warning-lighten-35));
|
||||
@include table-row-variant('danger', var(--pretix-brand-danger-lighten-30), var(--pretix-brand-danger-lighten-25));
|
||||
|
||||
|
||||
|
||||
|
||||
dialog {
|
||||
border: none;
|
||||
width: 80%;
|
||||
max-width: 43em;
|
||||
padding: 0;
|
||||
box-shadow: 0 7px 14px 0 rgba(78, 50, 92, 0.1),0 3px 6px 0 rgba(0,0,0,.07);
|
||||
background: white;
|
||||
border-radius: $border-radius-large;
|
||||
|
||||
opacity: 0;
|
||||
transition: opacity .5s allow-discrete;
|
||||
|
||||
.modal-card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-content: stretch;
|
||||
}
|
||||
.modal-card-icon {
|
||||
background: $brand-primary;
|
||||
font-size: 2em;
|
||||
color: white;
|
||||
text-align: center;
|
||||
padding: 3px;
|
||||
}
|
||||
.modal-card-content {
|
||||
padding: 1.5em;
|
||||
}
|
||||
.modal-card-content>*:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.modal-card-content>*:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.modal-card-confirm {
|
||||
margin-top: 2em;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 1em;
|
||||
align-items: center;
|
||||
}
|
||||
.modal-card-confirm-spread {
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
dialog::backdrop {
|
||||
background-color: rgba(255, 255, 255, .5);
|
||||
opacity: 0;
|
||||
transition: opacity .5s allow-discrete;
|
||||
}
|
||||
dialog[open], dialog[open]::backdrop {
|
||||
opacity: 1;
|
||||
}
|
||||
@starting-style {
|
||||
dialog[open], dialog[open]::backdrop {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: $screen-sm-min) {
|
||||
dialog {
|
||||
.modal-card:has(.modal-card-icon) {
|
||||
flex-direction: row;
|
||||
}
|
||||
.modal-card-content {
|
||||
padding: 2em;
|
||||
}
|
||||
.modal-card-icon {
|
||||
font-size: 4em;
|
||||
padding: 6px 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.shake-once {
|
||||
animation: shake .2s;
|
||||
transform: translate3d(0, 0, 0);
|
||||
backface-visibility: hidden;
|
||||
}
|
||||
|
||||
@keyframes shake {
|
||||
0% { transform: skewX(0deg); }
|
||||
20% { transform: skewX(-5deg); }
|
||||
40% { transform: skewX(5deg); }
|
||||
60% { transform: skewX(-5deg); }
|
||||
80% { transform: skewX(5deg); }
|
||||
100% { transform: skewX(0deg); }
|
||||
}
|
||||
|
||||
@@ -277,7 +277,8 @@ var form_handlers = function (el) {
|
||||
fill_field.on("dp.show", show);
|
||||
});
|
||||
|
||||
function luminanace(r, g, b) {
|
||||
function luminance(r, g, b) {
|
||||
// Algorithm defined as https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
|
||||
var a = [r, g, b].map(function (v) {
|
||||
v /= 255;
|
||||
return v <= 0.03928
|
||||
@@ -287,8 +288,9 @@ var form_handlers = function (el) {
|
||||
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
|
||||
}
|
||||
function contrast(rgb1, rgb2) {
|
||||
var l1 = luminanace(rgb1[0], rgb1[1], rgb1[2]) + 0.05,
|
||||
l2 = luminanace(rgb2[0], rgb2[1], rgb2[2]) + 0.05,
|
||||
// Algorithm defined at https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
|
||||
var l1 = luminance(rgb1[0], rgb1[1], rgb1[2]) + 0.05,
|
||||
l2 = luminance(rgb2[0], rgb2[1], rgb2[2]) + 0.05,
|
||||
ratio = l1/l2
|
||||
if (l2 > l1) {ratio = 1/ratio}
|
||||
return ratio.toFixed(1)
|
||||
@@ -327,15 +329,15 @@ var form_handlers = function (el) {
|
||||
var icon, text, cls;
|
||||
if (c > 7) {
|
||||
icon = "fa-check-circle";
|
||||
text = gettext('Your color has great contrast and is very easy to read!');
|
||||
text = gettext('Your color has great contrast and will provide excellent accessibility.');
|
||||
cls = "text-success";
|
||||
} else if (c > 2.5) {
|
||||
} else if (c > 4.5) {
|
||||
icon = "fa-info-circle";
|
||||
text = gettext('Your color has decent contrast and is probably good-enough to read!');
|
||||
text = gettext('Your color has decent contrast and is sufficient for minimum accessibility requirements.');
|
||||
cls = "";
|
||||
} else {
|
||||
icon = "fa-warning";
|
||||
text = gettext('Your color has bad contrast for text on white background, please choose a darker shade.');
|
||||
text = gettext('Your color has insufficient contrast to white. Accessibility of your site will be impacted.');
|
||||
cls = "text-danger";
|
||||
}
|
||||
if ($icon.length === 0) {
|
||||
|
||||
@@ -6,7 +6,7 @@ $(function () {
|
||||
var storage_key = $("#cookie-consent-storage-key").text();
|
||||
var widget_consent = $("#cookie-consent-from-widget").text();
|
||||
var consent_checkboxes = $("#cookie-consent-details input[type=checkbox][name]");
|
||||
var consent_modal = $("#cookie-consent-modal");
|
||||
var consent_modal = document.getElementById("cookie-consent-modal");
|
||||
|
||||
function update_consent(consent, sessionOnly) {
|
||||
if (storage_key && window.sessionStorage && sessionOnly) {
|
||||
@@ -108,25 +108,32 @@ $(function () {
|
||||
|
||||
_set_button_text();
|
||||
if (show_dialog) {
|
||||
// We use .css() instead of .show() because of some weird issue that only occurs in Firefox
|
||||
// and only within the widget.
|
||||
consent_modal.css("display", "block");
|
||||
consent_modal.showModal();
|
||||
consent_modal.addEventListener("cancel", function() {
|
||||
// Dialog was initially shown, interpret Escape as „do not consent to new providers“
|
||||
var consent = {};
|
||||
consent_checkboxes.each(function () {
|
||||
consent[this.name] = storage_val[this.name] || false;
|
||||
});
|
||||
update_consent(consent, false);
|
||||
}, {once : true});
|
||||
}
|
||||
|
||||
$("#cookie-consent-button-yes, #cookie-consent-button-no").on("click", function () {
|
||||
consent_modal.hide();
|
||||
consent_modal.addEventListener("close", function () {
|
||||
if (!consent_modal.returnValue) {// ESC, do not save
|
||||
return;
|
||||
}
|
||||
var consent = {};
|
||||
var consent_all = this.id == "cookie-consent-button-yes";
|
||||
var consent_all = consent_modal.returnValue == "yes";
|
||||
consent_checkboxes.each(function () {
|
||||
consent[this.name] = this.checked = consent_all || this.checked;
|
||||
});
|
||||
if (consent_all) _set_button_text();
|
||||
// Always save explicit consent to permanent storage
|
||||
update_consent(consent, false);
|
||||
});
|
||||
consent_checkboxes.on("change", _set_button_text);
|
||||
$("#cookie-consent-reopen").on("click", function (e) {
|
||||
consent_modal.show()
|
||||
consent_modal.showModal()
|
||||
e.preventDefault()
|
||||
return true
|
||||
})
|
||||
|
||||
@@ -307,8 +307,6 @@ function setup_basics(el) {
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
el.find('[data-toggle="tooltip"]').tooltip();
|
||||
|
||||
// AddOns
|
||||
el.find('.addon-variation-description').hide();
|
||||
el.find('.toggle-variation-description').click(function () {
|
||||
@@ -480,33 +478,21 @@ $(function () {
|
||||
sessionStorage.setItem('scrollpos', window.scrollY);
|
||||
});
|
||||
}
|
||||
var update_cart_form = function () {
|
||||
var is_enabled = $(".product-row input[type=checkbox]:checked, .variations input[type=checkbox]:checked, .product-row input[type=radio]:checked, .variations input[type=radio]:checked").length;
|
||||
if (!is_enabled) {
|
||||
$(".input-item-count").each(function () {
|
||||
if ($(this).val() && $(this).val() !== "0") {
|
||||
is_enabled = true;
|
||||
}
|
||||
});
|
||||
$(".input-seat-selection option").each(function() {
|
||||
if ($(this).val() && $(this).val() !== "" && $(this).prop('selected')) {
|
||||
is_enabled = true;
|
||||
}
|
||||
});
|
||||
$("form:has(#btn-add-to-cart)").on("submit", function(e) {
|
||||
if (
|
||||
(this.classList.contains("has-seating") && this.querySelector("pretix-seating-checkout-button button")) ||
|
||||
this.querySelector("input[type=checkbox]:checked") ||
|
||||
[...this.querySelectorAll(".input-item-count[type=text]")].some(input => input.value && input.value !== "0") // TODO: seating hat noch einen seating-dummy-item-count, das ist Mist!
|
||||
) {
|
||||
// okay, let the submit-event bubble to async-task
|
||||
return;
|
||||
}
|
||||
if (!is_enabled && (!$(".has-seating").length || $("#seating-dummy-item-count").length)) {
|
||||
$("#btn-add-to-cart").prop("disabled", !is_enabled).popover({
|
||||
'content': function () { return gettext("Please enter a quantity for one of the ticket types.") },
|
||||
'placement': 'top',
|
||||
'trigger': 'hover focus'
|
||||
});
|
||||
} else {
|
||||
$("#btn-add-to-cart").prop("disabled", false).popover("destroy")
|
||||
}
|
||||
};
|
||||
update_cart_form();
|
||||
$(".product-row input[type=checkbox], .variations input[type=checkbox], .product-row input[type=radio], .variations input[type=radio], .input-item-count, .input-seat-selection")
|
||||
.on("change mouseup keyup", update_cart_form);
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
document.querySelector("#dialog-nothing-to-add").showModal();
|
||||
});
|
||||
|
||||
$(".table-calendar td.has-events").click(function () {
|
||||
var $grid = $(this).closest("[role='grid']");
|
||||
|
||||
@@ -1171,27 +1171,15 @@ Vue.component('pretix-widget-event-form', {
|
||||
Vue.component('pretix-widget-event-list-filter-field', {
|
||||
template: ('<div class="pretix-widget-event-list-filter-field">'
|
||||
+ '<label :for="id">{{ field.label }}</label>'
|
||||
+ '<select ref="select" :id="id" :name="field.key" @focus="onFocus" @keydown="onKeydown" @click="onChange" :value="currentValue">'
|
||||
+ '<select :id="id" :name="field.key" @change="onChange($event)" :value="currentValue">'
|
||||
+ '<option v-for="choice in field.choices" :value="choice[0]">{{ choice[1] }}</option>'
|
||||
+ '</select>'
|
||||
+ '</div>'),
|
||||
props: {
|
||||
field: Object
|
||||
},
|
||||
data: function() {
|
||||
return {
|
||||
valueOnFocus: ""
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onFocus: function (event) {
|
||||
this.valueOnFocus = this.$refs.select.value;
|
||||
},
|
||||
onChange: function(event) {
|
||||
if (this.valueOnFocus == this.$refs.select.value) {
|
||||
// no change
|
||||
return;
|
||||
}
|
||||
var filterParams = new URLSearchParams(this.$root.filter);
|
||||
if (event.target.value) {
|
||||
filterParams.set(this.field.key, event.target.value);
|
||||
@@ -1202,14 +1190,6 @@ Vue.component('pretix-widget-event-list-filter-field', {
|
||||
this.$root.loading++;
|
||||
this.$root.reload();
|
||||
},
|
||||
onKeydown: function (e) {
|
||||
const keyDown = e.key !== undefined ? e.key : e.keyCode;
|
||||
if ( (keyDown === 'Enter' || keyDown === 13) || (['Spacebar', ' '].indexOf(keyDown) >= 0 || keyDown === 32)) {
|
||||
// (prevent default so the page doesn't scroll when pressing space)
|
||||
e.preventDefault();
|
||||
this.onChange(e);
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
id: function () {
|
||||
@@ -1420,7 +1400,7 @@ Vue.component('pretix-widget-event-week-cell', {
|
||||
});
|
||||
|
||||
Vue.component('pretix-widget-event-calendar-cell', {
|
||||
template: ('<td :class="classObject" @click.prevent.stop="selectDay">'
|
||||
template: ('<td :class="classObject" :role="role" :tabindex="tabindex" v-bind:aria-label="date">'
|
||||
+ '<div class="pretix-widget-event-calendar-day" v-if="day" v-bind:aria-label="date">'
|
||||
+ '{{ daynum }}'
|
||||
+ '</div>'
|
||||
@@ -1432,10 +1412,12 @@ Vue.component('pretix-widget-event-calendar-cell', {
|
||||
day: Object,
|
||||
},
|
||||
methods: {
|
||||
selectDay: function () {
|
||||
selectDay: function (e) {
|
||||
if (!this.day || !this.day.events.length || !this.$parent.$parent.$parent.mobile) {
|
||||
return;
|
||||
}
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if (this.day.events.length === 1) {
|
||||
var ev = this.day.events[0];
|
||||
this.$root.parent_stack.push(this.$root.target_url);
|
||||
@@ -1448,9 +1430,40 @@ Vue.component('pretix-widget-event-calendar-cell', {
|
||||
this.$root.events = this.day.events;
|
||||
this.$root.view = "events";
|
||||
}
|
||||
},
|
||||
onKeyDown: function (e) {
|
||||
var keyDown = e.key !== undefined ? e.key : e.keyCode;
|
||||
if ( (keyDown === 'Enter' || keyDown === 13) || (['Spacebar', ' '].indexOf(keyDown) >= 0 || keyDown === 32)) {
|
||||
// (prevent default so the page doesn't scroll when pressing space)
|
||||
e.preventDefault();
|
||||
this.selectDay(e);
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted: function () {
|
||||
if (this.role == 'button') {
|
||||
this.$el.addEventListener("click", this.selectDay);
|
||||
this.$el.addEventListener("keydown", this.onKeyDown);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
role: function (newValue) {
|
||||
if (newValue == 'button') {
|
||||
this.$el.addEventListener("click", this.selectDay);
|
||||
this.$el.addEventListener("keydown", this.onKeyDown);
|
||||
} else {
|
||||
this.$el.removeEventListener("click", this.selectDay);
|
||||
this.$el.removeEventListener("keydown", this.onKeyDown);
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
role: function () {
|
||||
return (!this.day || !this.day.events.length || !this.$parent.$parent.$parent.mobile) ? 'cell' : 'button';
|
||||
},
|
||||
tabindex: function () {
|
||||
return this.role == 'button' ? '0' : '-1';
|
||||
},
|
||||
daynum: function () {
|
||||
if (!this.day) {
|
||||
return;
|
||||
|
||||
@@ -53,6 +53,15 @@ a.btn, button.btn {
|
||||
}
|
||||
}
|
||||
}
|
||||
.checkbox + .help-block {
|
||||
padding-left: 20px;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
padding-top: $padding-base-vertical;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,22 @@ pre {
|
||||
font-size: $font-size-base;
|
||||
}
|
||||
|
||||
/* make all links in textflow underlined */
|
||||
h1, h2, h3, h4, h5, h6, p, li {
|
||||
a:not(.btn) {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
a.no-underline:link, nav li a:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
a.no-underline:hover, nav li a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.help-block a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
|
||||
/* See https://github.com/pretix/pretix/pull/761 */
|
||||
@@ -274,7 +289,7 @@ body.loading .container {
|
||||
font-size: 120px;
|
||||
color: $brand-primary;
|
||||
}
|
||||
#loadingmodal, #ajaxerr, #cookie-consent-modal, #popupmodal {
|
||||
#loadingmodal, #ajaxerr, #popupmodal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -344,7 +359,7 @@ body.loading .container {
|
||||
}
|
||||
}
|
||||
@media (max-width: 700px) {
|
||||
#loadingmodal, #ajaxerr, #cookie-consent-modal, #popupmodal {
|
||||
#loadingmodal, #ajaxerr, #popupmodal {
|
||||
.modal-card {
|
||||
margin: 25px auto 0;
|
||||
max-height: calc(100vh - 50px - 20px);
|
||||
@@ -593,22 +608,18 @@ h2 .label {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.event-list {
|
||||
margin-bottom: 15px;
|
||||
border-top: 1px solid $table-border-color;
|
||||
|
||||
.row {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
border-bottom: 1px solid $table-border-color;
|
||||
border-left: 1px solid $table-border-color;
|
||||
border-right: 1px solid $table-border-color;
|
||||
.event-list.full-width-list {
|
||||
h3, h4, p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.row > div {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
h3, h4 {
|
||||
font-size: 1em;
|
||||
line-height: 1.25rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
h4 small {
|
||||
font-size: 85%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user