mirror of
https://github.com/pretix/pretix.git
synced 2025-12-11 01:22:28 +00:00
Compare commits
23 Commits
a11y-commo
...
a11y-no-un
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcfe9fc85a | ||
|
|
d62152beaf | ||
|
|
2ce9584a6f | ||
|
|
f1fc4cb8a4 | ||
|
|
bf3ee608ba | ||
|
|
6b331888e9 | ||
|
|
225b2452bd | ||
|
|
e7d024b146 | ||
|
|
0af94c3712 | ||
|
|
3007b89d9b | ||
|
|
9ee50a28a1 | ||
|
|
4dc5014947 | ||
|
|
ebf2039a4d | ||
|
|
f201ab8884 | ||
|
|
e20cb7649d | ||
|
|
e6cab37f12 | ||
|
|
0659338392 | ||
|
|
a0f0e0ca48 | ||
|
|
59af0bbfb8 | ||
|
|
6766d649f5 | ||
|
|
c17a090244 | ||
|
|
d103d8782b | ||
|
|
4f4903b00e |
@@ -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(
|
||||
|
||||
@@ -80,4 +80,4 @@ def serve_metrics(request):
|
||||
|
||||
content = "\n".join(output) + "\n"
|
||||
|
||||
return HttpResponse(content)
|
||||
return HttpResponse(content, content_type="text/plain;version=1.0.0;escaping=allow-utf-8")
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{% load compress %}
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
{% load icon %}
|
||||
{% load safelink %}
|
||||
{% load statici18n %}
|
||||
{% load thumb %}
|
||||
@@ -48,38 +47,6 @@
|
||||
<nav id="skip-to-main" role="navigation" aria-label="{% trans "Skip link" context "skip-to-main-nav" %}" class="sr-only on-focus-visible">
|
||||
<p><a href="#content">{% trans "Skip to main content" %}</a></p>
|
||||
</nav>
|
||||
{% comment %}
|
||||
<dialog> needs to be available onload and role-attribute cannot be changed dynamically.
|
||||
Therefore we need two dialogs, one normal (e.g. for status info like "loading") and one
|
||||
alertdialog with a confirm-button.
|
||||
Note: dialog[aria-describedby] is not read out on VoiceOver, so we add both label and
|
||||
description to aria-labelledby.
|
||||
{% endcomment %}
|
||||
<dialog id="dialog-info" aria-labelledby="dialog-info-label dialog-info-description">
|
||||
<div class="modal-card">
|
||||
<div class="modal-card-icon">
|
||||
{% icon "cog big-rotating-icon" %}
|
||||
</div>
|
||||
<div class="modal-card-content">
|
||||
<h2 id="dialog-info-label">Hier die Überschrift</h2>
|
||||
<p id="dialog-info-description">Hier kommt der Text. Danach der Status-Absatz.</p>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
<dialog id="dialog-alert" role="alertdialog" aria-labelledby="dialog-alert-label dialog-alert-description">
|
||||
<div class="modal-card">
|
||||
<div class="modal-card-icon">
|
||||
{% icon "cog big-rotating-icon" %}
|
||||
</div>
|
||||
<div class="modal-card-content">
|
||||
<h2 id="dialog-alert-label">Hier die Überschrift</h2>
|
||||
<p id="dialog-alert-description"></p>
|
||||
</div>
|
||||
</div>
|
||||
<form method="dialog" class="text-right">
|
||||
<button class="btn btn-primary">OK</button>
|
||||
</form>
|
||||
</dialog>
|
||||
<header>
|
||||
{% if ie_deprecation_warning %}
|
||||
<div class="old-browser-warning">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,44 +1,55 @@
|
||||
{% load i18n %}
|
||||
{% load eventurl %}
|
||||
{% load icon %}
|
||||
{% load urlreplace %}
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="col-sm-4 col-xs-2 text-left flip">
|
||||
<li class="text-left flip">
|
||||
{% if subevent_list.has_before %}
|
||||
<a href="?{% url_replace request "date" subevent_list.before|date:"Y-m" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with month=subevent_list.before|date:"F Y" %}Show previous month, {{ month }}{% endblocktrans %}">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
{% icon "arrow-left" %}
|
||||
<span class="hidden-xs">{{ subevent_list.before|date:"F Y" }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="col-sm-4 col-xs-8 text-center">
|
||||
<li class="text-center">
|
||||
<form class="form-inline" method="get" id="monthselform" action="{% eventurl event "presale:event.index" cart_namespace=cart_namespace %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<select name="date" class="form-control" aria-label="{% trans "Select month to show" %}">
|
||||
{% for y in subevent_list.years %}
|
||||
<optgroup label="{{ y }}">
|
||||
{% for m in subevent_list.months %}
|
||||
<option value="{{ y }}-{{ m|date:"m" }}" {% if m.month == subevent_list.date.month and y == subevent_list.date.year %}selected{% endif %}>{{ m|date:"F" }} {{ y }}</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button type="submit" class="js-hidden btn btn-default">
|
||||
{% trans "Go" %}
|
||||
</button>
|
||||
<fieldset>
|
||||
<legend class="sr-only">{% trans "Select a month to display" %}</legend>
|
||||
<div>
|
||||
<label for="calendar-input-date">{% trans "Month" %}</label>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<select name="date" class="form-control" id="calendar-input-date">
|
||||
{% for y in subevent_list.years %}
|
||||
<optgroup label="{{ y }}">
|
||||
{% for m in subevent_list.months %}
|
||||
<option value="{{ y }}-{{ m|date:"m" }}" {% if m.month == subevent_list.date.month and y == subevent_list.date.year %}selected{% endif %}>{{ m|date:"F" }} {{ y }}</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default" aria-label="{% trans "Show month" %}">
|
||||
{% icon "chevron-right" %}
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
<li class="col-sm-4 col-xs-2 text-right flip">
|
||||
<li class="text-right flip">
|
||||
{% if subevent_list.has_after %}
|
||||
<a href="?{% url_replace request "date" subevent_list.after|date:"Y-m" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with month=subevent_list.after|date:"F Y" %}Show next month, {{ month }}{% endblocktrans %}">
|
||||
<span class="hidden-xs">{{ subevent_list.after|date:"F Y" }}</span>
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
{% icon "arrow-right" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
|
||||
@@ -1,63 +1,78 @@
|
||||
{% load i18n %}
|
||||
{% load eventurl %}
|
||||
{% load icon %}
|
||||
{% load urlreplace %}
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="col-sm-4 col-xs-2 text-left flip">
|
||||
<li class="text-left flip">
|
||||
{% if subevent_list.has_before %}
|
||||
<a href="?{% url_replace request "date" subevent_list.before|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.before|date:subevent_list.week_format %}Show previous week, {{ week }}{% endblocktrans %}">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
{% icon "arrow-left" %}
|
||||
<span class="hidden-xs">{{ subevent_list.before|date:subevent_list.week_format }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="col-sm-4 col-xs-8 text-center">
|
||||
<li class="text-center">
|
||||
<form class="form-inline" method="get" id="monthselform" action="{% eventurl event "presale:event.index" cart_namespace=cart_namespace %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<select name="date" class="form-control" aria-label="{% trans "Select week to show" %}">
|
||||
{% for weeks_per_year in subevent_list.weeks %}
|
||||
<optgroup label="{{ weeks_per_year.0.0.year }}">
|
||||
{% for w in weeks_per_year %}
|
||||
<option value="{{ w.0.isocalendar.0 }}-W{{ w.0.isocalendar.1 }}"
|
||||
{% if w.0.isocalendar.0 == subevent_list.date.isocalendar.0 and w.0.isocalendar.1 == subevent_list.date.isocalendar.1 %}selected{% endif %}>
|
||||
{{ w.0|date:subevent_list.week_format }}
|
||||
({{ w.0|date:subevent_list.short_month_day_format }} – {{ w.1|date:subevent_list.short_month_day_format }})
|
||||
</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button type="submit" class="js-hidden btn btn-default">
|
||||
{% trans "Go" %}
|
||||
</button>
|
||||
<fieldset>
|
||||
<legend class="sr-only">{% trans "Select a week to display" %}</legend>
|
||||
<div>
|
||||
<label for="calendar-input-date">{% trans "Week" %}</label>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<select name="date" class="form-control" aria-label="{% trans "Select week to show" %}">
|
||||
{% for weeks_per_year in subevent_list.weeks %}
|
||||
<optgroup label="{{ weeks_per_year.0.0.year }}">
|
||||
{% for w in weeks_per_year %}
|
||||
<option value="{{ w.0.isocalendar.0 }}-W{{ w.0.isocalendar.1 }}"
|
||||
{% if w.0.isocalendar.0 == subevent_list.date.isocalendar.0 and w.0.isocalendar.1 == subevent_list.date.isocalendar.1 %}selected{% endif %}>
|
||||
{{ w.0|date:subevent_list.week_format }}
|
||||
({{ w.0|date:subevent_list.short_month_day_format }} – {{ w.1|date:subevent_list.short_month_day_format }})
|
||||
</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default" aria-label="{% trans "Show week" %}">
|
||||
{% icon "chevron-right" %}
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
<li class="col-sm-4 col-xs-2 text-right flip">
|
||||
<li class="text-right flip">
|
||||
{% if subevent_list.has_after %}
|
||||
<a href="?{% url_replace request "date" subevent_list.after|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.after|date:subevent_list.week_format %}Show next week, {{ week }}{% endblocktrans %}">
|
||||
<span class="hidden-xs">{{ subevent_list.after|date:subevent_list.week_format }}</span>
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
{% icon "arrow-right" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% include "pretixpresale/fragment_week_calendar.html" with show_avail=event.settings.event_list_availability days=subevent_list.days show_names=subevent_list.show_names %}
|
||||
<div class="visible-xs text-center" aria-hidden="true">
|
||||
<a href="?{% url_replace request "date" subevent_list.before|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.before|date:subevent_list.week_format %}Show previous week, {{ week }}{% endblocktrans %}">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
{{ subevent_list.before|date:subevent_list.week_format }}
|
||||
</a>
|
||||
<a href="?{% url_replace request "date" subevent_list.after|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.after|date:subevent_list.week_format %}Show next week, {{ week }}{% endblocktrans %}">
|
||||
{{ subevent_list.after|date:subevent_list.week_format }}
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
<div class="row visible-xs">
|
||||
<div class="col-xs-6 text-left flip">
|
||||
<a href="?{% url_replace request "date" subevent_list.before|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.before|date:subevent_list.week_format %}Show previous week, {{ week }}{% endblocktrans %}">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
<span class="hidden-xs">{{ subevent_list.before|date:subevent_list.week_format }}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-xs-6 text-right flip">
|
||||
<a href="?{% url_replace request "date" subevent_list.after|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{% blocktrans with week=subevent_list.after|date:subevent_list.week_format %}Show next week, {{ week }}{% endblocktrans %}">
|
||||
<span class="hidden-xs">{{ subevent_list.after|date:subevent_list.week_format }}</span>
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
</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>
|
||||
|
||||
@@ -252,7 +252,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>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
{% for d in weeks|iter_weekdays %}
|
||||
<th><span aria-hidden="true">{{ d|date_fast:"D" }}</span><span class="sr-only">{{ d|date_fast:"l" }}</span></th>
|
||||
<th><span aria-hidden="true" class="text-muted">{{ d|date_fast:"D" }}</span><span class="sr-only">{{ d|date_fast:"l" }}</span></th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
{% for f in filter_form.fields %}
|
||||
{% bootstrap_field filter_form|getitem:f %}
|
||||
{% endfor %}
|
||||
<div class="visible-xs"> </div>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<span class="fa fa-filter" aria-hidden="true"></span>
|
||||
{% trans "Filter" %}
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
<div class="modal-card-content">
|
||||
<h3 id="cookie-consent-modal-label"></h3>
|
||||
<div id="cookie-consent-modal-description">
|
||||
<form class="form-horizontal">
|
||||
{% with request.event|default:request.organizer as sh %}
|
||||
<h3>{{ sh.settings.cookie_consent_dialog_title }}</h3>
|
||||
{{ sh.settings.cookie_consent_dialog_text|rich_text }}
|
||||
@@ -70,40 +71,42 @@
|
||||
</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>
|
||||
<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 }}">
|
||||
{{ 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>
|
||||
<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>
|
||||
<div class="row">
|
||||
@@ -130,6 +133,7 @@
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
<form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -1,61 +1,91 @@
|
||||
{% extends "pretixpresale/organizers/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load icon %}
|
||||
{% load rich_text %}
|
||||
{% load eventurl %}
|
||||
{% load urlreplace %}
|
||||
{% block title %}{% trans "Event overview" %}{% endblock %}
|
||||
{% block content %}
|
||||
{% if organizer_homepage_text %}
|
||||
<div>
|
||||
<div class="blank-after">
|
||||
{{ organizer_homepage_text | rich_text }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3>{{ date|date:"F Y" }}</h3>
|
||||
<form class="form-inline" method="get" id="monthselform" action="{% eventurl request.organizer "presale:organizer.index" %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<div class="row">
|
||||
<div class="col-md-5 col-sm-6 col-xs-12 text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="calendar" %}
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-4 col-xs-8 text-center" role="group" aria-label="{% trans "Select month to show" %}">
|
||||
<select name="date" class="form-control" aria-label="{% trans "Month" %}">
|
||||
{% for y in years %}
|
||||
<optgroup label="{{ y }}">
|
||||
{% for m in months %}
|
||||
<option value="{{ y }}-{{ m|date:"m" }}" {% if m.month == date.month and y == date.year %}selected{% endif %}>{{ m|date:"F" }} {{ y }}</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button type="submit" class="js-hidden btn btn-default">
|
||||
{% trans "Go" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-5 col-sm-2 col-xs-4 text-right flip">
|
||||
{% if has_before %}
|
||||
<a href="?{% url_replace request "date" before|date:"Y-m" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ before|date:"F Y" }}">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
<span class="hidden-sm hidden-xs">{{ before|date:"F Y" }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if has_after %}
|
||||
<a href="?{% url_replace request "date" after|date:"Y-m" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ after|date:"F Y" }}">
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
<span class="hidden-sm hidden-xs">{{ after|date:"F Y" }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="blank-after text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="calendar" %}
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title">
|
||||
<strong>
|
||||
{% blocktrans trimmed with month=date|date:"F Y" %}
|
||||
Events in {{ month }}
|
||||
{% endblocktrans %}
|
||||
</strong>
|
||||
</h2>
|
||||
</div>
|
||||
</form>
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
{% include "pretixpresale/fragment_calendar.html" with show_avail=request.organizer.settings.event_list_availability %}
|
||||
|
||||
{% if filter_form.fields %}
|
||||
<div class="panel-subhead">
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="panel-body">
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="text-left flip">
|
||||
{% if has_before %}
|
||||
<a href="?{% url_replace request "date" before|date:"Y-m" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ before|date:"F Y" }}">
|
||||
{% icon "arrow-left" %}
|
||||
<span class="hidden-xs">{{ before|date:"F Y" }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="text-center">
|
||||
<form class="form-inline" method="get" id="monthselform" action="{% eventurl request.organizer "presale:organizer.index" %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<fieldset>
|
||||
<legend class="sr-only">{% trans "Select a month to display" %}</legend>
|
||||
<div>
|
||||
<label for="calendar-input-date">{% trans "Month" %}</label>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<select name="date" class="form-control" id="calendar-input-date">
|
||||
{% for y in years %}
|
||||
<optgroup label="{{ y }}">
|
||||
{% for m in months %}
|
||||
<option value="{{ y }}-{{ m|date:"m" }}" {% if m.month == date.month and y == date.year %}selected{% endif %}>{{ m|date:"F" }} {{ y }}</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default" aria-label="{% trans "Show month" %}">
|
||||
{% icon "chevron-right" %}
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
<li class="text-right flip">
|
||||
{% if has_after %}
|
||||
<a href="?{% url_replace request "date" after|date:"Y-m" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ after|date:"F Y" }}">
|
||||
<span class="hidden-xs">{{ after|date:"F Y" }}</span>
|
||||
{% icon "arrow-right" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% include "pretixpresale/fragment_calendar.html" with show_avail=request.organizer.settings.event_list_availability %}
|
||||
</div>
|
||||
</div>
|
||||
{% if multiple_timezones %}
|
||||
<div class="alert alert-info">
|
||||
{% blocktrans trimmed %}
|
||||
|
||||
@@ -1,68 +1,102 @@
|
||||
{% extends "pretixpresale/organizers/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load icon %}
|
||||
{% load rich_text %}
|
||||
{% load eventurl %}
|
||||
{% load urlreplace %}
|
||||
{% block title %}{% trans "Event overview" %}{% endblock %}
|
||||
{% block content %}
|
||||
{% if organizer_homepage_text %}
|
||||
<div>
|
||||
<div class="blank-after">
|
||||
{{ organizer_homepage_text | rich_text }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3>{{ date|date:"DATE_FORMAT" }}</h3>
|
||||
<form class="form-inline" method="get" id="monthselform"
|
||||
action="{% eventurl request.organizer "presale:organizer.index" %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<div class="row">
|
||||
<div class="col-md-5 col-sm-6 col-xs-12 text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="day" %}
|
||||
<div class="blank-after text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="day" %}
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title">
|
||||
<strong>
|
||||
{% blocktrans trimmed with day=date|date:"DATE_FORMAT" %}
|
||||
Events on {{ day }}
|
||||
{% endblocktrans %}
|
||||
</strong>
|
||||
</h2>
|
||||
</div>
|
||||
{% if filter_form.fields %}
|
||||
<div class="panel-subhead">
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-4 col-xs-8 text-center">
|
||||
<input class="datepickerfield form-control" value="{{ date|date:"SHORT_DATE_FORMAT" }}" name="date">
|
||||
<button type="submit" class="js-hidden btn btn-default">
|
||||
{% trans "Go" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-5 col-sm-2 col-xs-4 text-right flip">
|
||||
{% endif %}
|
||||
<div class="panel-body">
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="text-left flip">
|
||||
{% if has_before %}
|
||||
<a href="?{% url_replace request "date" before.date.isoformat %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ before|date:"SHORT_DATE_FORMAT" }}">
|
||||
{% icon "arrow-left" %}
|
||||
<span class="hidden-xs">{{ before|date:"SHORT_DATE_FORMAT" }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="text-center">
|
||||
<form class="form-inline" method="get" id="monthselform" action="{% eventurl request.organizer "presale:organizer.index" %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<fieldset>
|
||||
<legend class="sr-only">{% trans "Select a date to display" %}</legend>
|
||||
<div>
|
||||
<label for="calendar-input-date">{% trans "Date" %}</label>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<input class="datepickerfield form-control" id="calendar-input-date" value="{{ date|date:"SHORT_DATE_FORMAT" }}" name="date">
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default" aria-label="{% trans "Show date" %}">
|
||||
{% icon "chevron-right" %}
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
<li class="text-right flip">
|
||||
{% if has_after %}
|
||||
<a href="?{% url_replace request "date" after.date.isoformat %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ after|date:"SHORT_DATE_FORMAT" }}">
|
||||
<span class="hidden-xs">{{ after|date:"SHORT_DATE_FORMAT" }}</span>
|
||||
{% icon "arrow-right" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% include "pretixpresale/fragment_day_calendar.html" with show_avail=request.organizer.settings.event_list_availability %}
|
||||
<div class="row visible-xs">
|
||||
{% if has_before %}
|
||||
<div class="col-xs-6 text-left flip">
|
||||
<a href="?{% url_replace request "date" before.date.isoformat %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ before|date:"SHORT_DATE_FORMAT" }}">
|
||||
class="btn btn-default">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
<span class="hidden-sm hidden-xs">{{ before|date:"SHORT_DATE_FORMAT" }}</span>
|
||||
<span class="hidden-xs">{{ before|date:"SHORT_DATE_FORMAT" }}</span>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if has_after %}
|
||||
<div class="col-xs-6 text-right flip{% if not has_before %} col-xs-offset-6{% endif %}">
|
||||
<a href="?{% url_replace request "date" after.date.isoformat %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ after|date:"SHORT_DATE_FORMAT" }}">
|
||||
<span class="hidden-sm hidden-xs">{{ after|date:"SHORT_DATE_FORMAT" }}</span>
|
||||
class="btn btn-default">
|
||||
<span class="hidden-xs">{{ after|date:"SHORT_DATE_FORMAT" }}</span>
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
{% include "pretixpresale/fragment_day_calendar.html" with show_avail=request.organizer.settings.event_list_availability %}
|
||||
<div class="col-sm-4 visible-xs text-center">
|
||||
{% if has_before %}
|
||||
<a href="?{% url_replace request "date" before.date.isoformat %}"
|
||||
class="btn btn-default">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
{{ before|date:"SHORT_DATE_FORMAT" }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if has_after %}
|
||||
<a href="?{% url_replace request "date" after.date.isoformat %}"
|
||||
class="btn btn-default">
|
||||
{{ after|date:"SHORT_DATE_FORMAT" }}
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if multiple_timezones %}
|
||||
|
||||
@@ -1,82 +1,117 @@
|
||||
{% extends "pretixpresale/organizers/base.html" %}
|
||||
{% load i18n %}
|
||||
{% load icon %}
|
||||
{% load rich_text %}
|
||||
{% load eventurl %}
|
||||
{% load urlreplace %}
|
||||
{% block title %}{% trans "Event overview" %}{% endblock %}
|
||||
{% block content %}
|
||||
{% if organizer_homepage_text %}
|
||||
<div>
|
||||
<div class="blank-after">
|
||||
{{ organizer_homepage_text | rich_text }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<h3>{{ date|date:"F Y" }}</h3>
|
||||
<form class="form-inline" method="get" id="monthselform"
|
||||
action="{% eventurl request.organizer "presale:organizer.index" %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-sm-6 col-xs-12 text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="week" %}
|
||||
<div class="blank-after text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="week" %}
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2 class="panel-title">
|
||||
<strong>
|
||||
{% blocktrans trimmed with week=date|date:week_format week_day_from=date|date:short_month_day_format week_day_to=date|date:short_month_day_format %}
|
||||
Events in {{ week }} ({{ week_day_from }} – {{ week_day_to }})
|
||||
{% endblocktrans %}
|
||||
</strong>
|
||||
</h2>
|
||||
</div>
|
||||
{% if filter_form.fields %}
|
||||
<div class="panel-subhead">
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-4 col-xs-8 text-center">
|
||||
<select name="date" class="form-control" aria-label="{% trans "Select week to show" %}">
|
||||
{% for weeks_per_year in weeks %}
|
||||
<optgroup label="{{ weeks_per_year.0.0.year }}">
|
||||
{% for w in weeks_per_year %}
|
||||
<option value="{{ w.0.isocalendar.0 }}-W{{ w.0.isocalendar.1 }}"
|
||||
{% if w.0.isocalendar.0 == date.isocalendar.0 and w.0.isocalendar.1 == date.isocalendar.1 %}selected{% endif %}>
|
||||
{{ w.0|date:week_format }}
|
||||
({{ w.0|date:short_month_day_format }} – {{ w.1|date:short_month_day_format }})
|
||||
</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button type="submit" class="js-hidden btn btn-default">
|
||||
{% trans "Go" %}
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-2 col-xs-4 text-right flip">
|
||||
{% endif %}
|
||||
<div class="panel-body">
|
||||
<nav aria-label="{% trans "calendar navigation" %}">
|
||||
<ul class="row calendar-nav">
|
||||
<li class="text-left flip">
|
||||
{% if has_before %}
|
||||
<a href="?{% url_replace request "date" before|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ before|date:week_format }}">
|
||||
{% icon "arrow-left" %}
|
||||
<span class="hidden-xs">{{ before|date:week_format }}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="text-center">
|
||||
<form class="form-inline" method="get" id="monthselform" action="{% eventurl request.organizer "presale:organizer.index" %}">
|
||||
{% for f, v in request.GET.items %}
|
||||
{% if f != "date" %}
|
||||
<input type="hidden" name="{{ f }}" value="{{ v }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<fieldset>
|
||||
<legend class="sr-only">{% trans "Select a week to display" %}</legend>
|
||||
<div>
|
||||
<label for="calendar-input-date">{% trans "Week" %}</label>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<select name="date" class="form-control" id="calendar-input-date">
|
||||
{% for weeks_per_year in weeks %}
|
||||
<optgroup label="{{ weeks_per_year.0.0.year }}">
|
||||
{% for w in weeks_per_year %}
|
||||
<option value="{{ w.0.isocalendar.0 }}-W{{ w.0.isocalendar.1 }}"
|
||||
{% if w.0.isocalendar.0 == date.isocalendar.0 and w.0.isocalendar.1 == date.isocalendar.1 %}selected{% endif %}>
|
||||
{{ w.0|date:week_format }}
|
||||
({{ w.0|date:short_month_day_format }} – {{ w.1|date:short_month_day_format }})
|
||||
</option>
|
||||
{% endfor %}
|
||||
</optgroup>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default" aria-label="{% trans "Show week" %}">
|
||||
{% icon "chevron-right" %}
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
<li class="text-right flip">
|
||||
{% if has_after %}
|
||||
<a href="?{% url_replace request "date" after|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ after|date:week_format }}">
|
||||
<span class="hidden-xs">{{ after|date:week_format }}</span>
|
||||
{% icon "arrow-right" %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% include "pretixpresale/fragment_week_calendar.html" with show_avail=request.organizer.settings.event_list_availability %}
|
||||
<div class="row visible-sm visible-xs">
|
||||
{% if has_before %}
|
||||
<div class="col-xs-6 text-left flip">
|
||||
<a href="?{% url_replace request "date" before|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ before|date:week_format }}">
|
||||
class="btn btn-default">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
<span class="hidden-sm hidden-xs">{{ before|date:week_format }}</span>
|
||||
{{ before|date:week_format }}
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if has_after %}
|
||||
<div class="col-xs-6 text-right flip">
|
||||
<a href="?{% url_replace request "date" after|date:"o-\WW" %}"
|
||||
class="btn btn-default" data-save-scrollpos aria-label="{{ after|date:week_format }}">
|
||||
<span class="hidden-sm hidden-xs">{{ after|date:week_format }}</span>
|
||||
class="btn btn-default">
|
||||
{{ after|date:week_format }}
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% include "pretixpresale/fragment_event_list_filter.html" with request=request %}
|
||||
{% include "pretixpresale/fragment_week_calendar.html" with show_avail=request.organizer.settings.event_list_availability %}
|
||||
<div class="col-sm-12 visible-sm visible-xs text-center">
|
||||
{% if has_before %}
|
||||
<a href="?{% url_replace request "date" before|date:"o-\WW" %}"
|
||||
class="btn btn-default">
|
||||
<span class="fa fa-arrow-left" aria-hidden="true"></span>
|
||||
{{ before|date:week_format }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if has_after %}
|
||||
<a href="?{% url_replace request "date" after|date:"o-\WW" %}"
|
||||
class="btn btn-default">
|
||||
{{ after|date:week_format }}
|
||||
<span class="fa fa-arrow-right" aria-hidden="true"></span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
{% if multiple_timezones %}
|
||||
<div class="alert alert-info">
|
||||
{% blocktrans trimmed %}
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
@@ -19,17 +19,13 @@
|
||||
<meta property="og:url" content="{% abseventurl organizer "presale:organizer.index" %}"/>
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<div>
|
||||
{% if organizer_homepage_text %}
|
||||
{% if organizer_homepage_text %}
|
||||
<div class="blank-after">
|
||||
{{ organizer_homepage_text | rich_text }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div id="monthselform">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="list" %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="blank-after text-left flip">
|
||||
{% include "pretixpresale/fragment_calendar_nav.html" with date=date request=request style="list" %}
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
@@ -50,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" class="no-underline">{{ 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" %}
|
||||
@@ -82,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 %}
|
||||
@@ -97,10 +93,10 @@
|
||||
{% icon "info" %} {% trans "More info" %}
|
||||
{% endif %}
|
||||
</a>
|
||||
</dd>
|
||||
</div>
|
||||
</p>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
@@ -117,6 +117,7 @@ function async_task_callback(data, jqXHR, status) {
|
||||
$("body").data('ajaxing', false);
|
||||
if (data.redirect) {
|
||||
if (async_task_is_download && data.success) {
|
||||
waitingDialog.hide();
|
||||
if (location.href.indexOf("async_id") !== -1) {
|
||||
history.replaceState({}, "pretix", async_task_old_url);
|
||||
}
|
||||
@@ -130,21 +131,22 @@ function async_task_callback(data, jqXHR, status) {
|
||||
|
||||
if (async_task_is_long) {
|
||||
if (data.started) {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext("Your request is currently being processed."),
|
||||
message: gettext("Depending on the size of the event, this might take up to a few minutes."),
|
||||
});
|
||||
$("#loadingmodal p.status").text(gettext(
|
||||
'Your request is currently being processed. Depending on the size of your event, this might take up to ' +
|
||||
'a few minutes.'
|
||||
));
|
||||
} else {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext("Your request has been queued on the server."),
|
||||
message: gettext("It will soon be processed."),
|
||||
});
|
||||
$("#loadingmodal p.status").text(gettext(
|
||||
'Your request has been queued on the server and will soon be ' +
|
||||
'processed.'
|
||||
));
|
||||
}
|
||||
} else {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext("Your request arrived on the server but we still wait for it to be processed."),
|
||||
message: gettext("If this takes longer than two minutes, please contact us or go back in your browser and try again."),
|
||||
});
|
||||
$("#loadingmodal p.status").text(gettext(
|
||||
'Your request arrived on the server but we still wait for it to be ' +
|
||||
'processed. If this takes longer than two minutes, please contact us or go ' +
|
||||
'back in your browser and try again.'
|
||||
));
|
||||
}
|
||||
if (location.href.indexOf("async_id") === -1) {
|
||||
history.pushState({}, "Waiting", async_task_check_url.replace(/ajax=1/, ''));
|
||||
@@ -155,18 +157,14 @@ function async_task_error(jqXHR, textStatus, errorThrown) {
|
||||
"use strict";
|
||||
$("body").data('ajaxing', false);
|
||||
if (textStatus === "timeout") {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext("The request took too long …"),
|
||||
message: gettext("Please try again."),
|
||||
confirm: true,
|
||||
});
|
||||
alert(gettext("The request took too long. Please try again."));
|
||||
waitingDialog.hide();
|
||||
} else if (jqXHR.responseText.indexOf('<html') > 0) {
|
||||
var respdom = $(jqXHR.responseText);
|
||||
var c = respdom.filter('.container');
|
||||
if (respdom.filter('form') && (respdom.filter('.has-error') || respdom.filter('.alert-danger'))) {
|
||||
// This is a failed form validation, let's just use it
|
||||
window.pretix.dialog.close();
|
||||
// TODO: we need to give feedback regarding the error; either focus an element with error or better output another dialog?
|
||||
waitingDialog.hide();
|
||||
|
||||
if (respdom.filter('#page-wrapper') && $('#page-wrapper').length) {
|
||||
$("#page-wrapper").html(respdom.find("#page-wrapper").html());
|
||||
@@ -188,32 +186,20 @@ function async_task_error(jqXHR, textStatus, errorThrown) {
|
||||
}
|
||||
|
||||
} else if (c.length > 0) {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext('An error occurred.'),
|
||||
message: c.first().text(),
|
||||
confirm: true,
|
||||
});
|
||||
//ajaxErrDialog.show(c.first().html());
|
||||
waitingDialog.hide();
|
||||
ajaxErrDialog.show(c.first().html());
|
||||
} else {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext('An error of type {code} occurred.').replace(/\{code\}/, jqXHR.status),
|
||||
message: gettext("Please try again."),
|
||||
confirm: true,
|
||||
});
|
||||
waitingDialog.hide();
|
||||
alert(gettext('An error of type {code} occurred.').replace(/\{code\}/, jqXHR.status));
|
||||
}
|
||||
} else {
|
||||
if (jqXHR.status >= 400 && jqXHR.status < 500) {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext('An error of type {code} occurred.').replace(/\{code\}/, jqXHR.status),
|
||||
message: gettext("Please try again."),
|
||||
confirm: true,
|
||||
});
|
||||
waitingDialog.hide();
|
||||
alert(gettext('An error of type {code} occurred.').replace(/\{code\}/, jqXHR.status));
|
||||
} else {
|
||||
window.pretix.dialog.open({
|
||||
label: gettext('We currently cannot reach the server.'),
|
||||
message: gettext("Please try again. Error code: {code}").replace(/\{code\}/, jqXHR.status),
|
||||
confirm: true,
|
||||
});
|
||||
waitingDialog.hide();
|
||||
alert(gettext('We currently cannot reach the server. Please try again. ' +
|
||||
'Error code: {code}').replace(/\{code\}/, jqXHR.status));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -238,16 +224,21 @@ $(function () {
|
||||
async_task_is_long = $(this).is("[data-asynctask-long]");
|
||||
async_task_old_url = location.href;
|
||||
$("body").data('ajaxing', true);
|
||||
|
||||
window.pretix.dialog.open({
|
||||
label: this.getAttribute("data-asynctask-headline") || gettext("We are processing your request …"),
|
||||
message: (this.getAttribute("data-asynctask-text") || "") + gettext(
|
||||
'We are currently sending your request to the server. If this takes longer ' +
|
||||
'than one minute, please check your internet connection and then reload ' +
|
||||
'this page and try again.'
|
||||
),
|
||||
icon: 'cog',
|
||||
});
|
||||
if ($(this).is("[data-asynctask-headline]")) {
|
||||
waitingDialog.show($(this).attr("data-asynctask-headline"));
|
||||
} else {
|
||||
waitingDialog.show(gettext('We are processing your request …'));
|
||||
}
|
||||
if ($(this).is("[data-asynctask-text]")) {
|
||||
$("#loadingmodal p.text").text($(this).attr("data-asynctask-text")).show();
|
||||
} else {
|
||||
$("#loadingmodal p.text").hide();
|
||||
}
|
||||
$("#loadingmodal p.status").text(gettext(
|
||||
'We are currently sending your request to the server. If this takes longer ' +
|
||||
'than one minute, please check your internet connection and then reload ' +
|
||||
'this page and try again.'
|
||||
));
|
||||
|
||||
var action = this.action;
|
||||
var formData = new FormData(this);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 () {
|
||||
@@ -380,66 +378,12 @@ function get_label_text_for_id(id) {
|
||||
}).text().trim();
|
||||
}
|
||||
|
||||
|
||||
window.pretix = window.pretix || {};
|
||||
window.pretix.dialog = {
|
||||
close: function() {
|
||||
$("#dialog-alert[open], #dialog-info[open]").each(function() {
|
||||
this.close();
|
||||
});
|
||||
},
|
||||
open: function(opt) {
|
||||
window.pretix.dialog.close();
|
||||
|
||||
const id = "dialog-" + (opt.confirm ? "alert" : "info");
|
||||
const dialog = document.getElementById(id);
|
||||
$("#" + id + "-label").text(opt.label);
|
||||
$("#" + id + "-description").text(opt.message);
|
||||
$(".modal-card-icon .fa", dialog).attr('class', 'fa fa-' + (opt.icon || "exclamation-triangle"));
|
||||
if (opt.confirm) {
|
||||
$("button", dialog).attr("value", opt.confirm.toString()).text(opt.confirm === true ? gettext("OK") : opt.confirm);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
dialog.addEventListener('close', function() {
|
||||
resolve(dialog.returnValue);
|
||||
}, { once: true });
|
||||
|
||||
dialog.showModal();
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$(function () {
|
||||
"use strict";
|
||||
|
||||
$("body").removeClass("nojs");
|
||||
moment.locale($("body").attr("data-datetimelocale"));
|
||||
|
||||
$("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;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
window.pretix.dialog.open({
|
||||
label: gettext("You have not selected any ticket."),
|
||||
message: gettext("Please tick a checkbox or enter a quantity for one of the ticket types to add to the cart."),
|
||||
icon: 'exclamation',
|
||||
confirm: true,
|
||||
}).then((result) => {
|
||||
//console.log("returnValue is", result);
|
||||
// TODO: should we focus the first input/checkbox/variants-button?
|
||||
});
|
||||
});
|
||||
|
||||
var scrollpos = sessionStorage ? sessionStorage.getItem('scrollpos') : 0;
|
||||
if (scrollpos) {
|
||||
window.scrollTo(0, scrollpos);
|
||||
@@ -530,17 +474,37 @@ $(function () {
|
||||
$("[data-save-scrollpos]").on("click submit", function () {
|
||||
sessionStorage.setItem('scrollpos', window.scrollY);
|
||||
});
|
||||
$("#monthselform").on("submit", function () {
|
||||
sessionStorage.setItem('scrollpos', window.scrollY);
|
||||
});
|
||||
}
|
||||
$("#monthselform select").change(function () {
|
||||
if (sessionStorage) sessionStorage.setItem('scrollpos', window.scrollY);
|
||||
this.form.submit();
|
||||
});
|
||||
$("#monthselform input").on("dp.change", function () {
|
||||
if ($(this).data("DateTimePicker")) { // prevent submit after dp init
|
||||
if (sessionStorage) sessionStorage.setItem('scrollpos', window.scrollY);
|
||||
this.form.submit();
|
||||
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;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
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);
|
||||
|
||||
$(".table-calendar td.has-events").click(function () {
|
||||
var $grid = $(this).closest("[role='grid']");
|
||||
|
||||
@@ -1400,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>'
|
||||
@@ -1412,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);
|
||||
@@ -1428,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;
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
width: 14.29%;
|
||||
}
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
font-size: 0.875rem;
|
||||
color: $text-muted;
|
||||
border-bottom: 2px solid $table-border-color;
|
||||
}
|
||||
p {
|
||||
margin-bottom: 3px;
|
||||
@@ -11,6 +13,7 @@
|
||||
.events {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
a.event {
|
||||
--status-bg-color: var(--pretix-brand-primary-tint-90);
|
||||
@@ -97,9 +100,13 @@
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
h3 {
|
||||
margin-top: 0;
|
||||
padding-top: 10px;
|
||||
padding-bottom: 8px;
|
||||
margin-bottom: 8px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
background-color: #fff;
|
||||
}
|
||||
h3 .fa::before {
|
||||
content: $fa-var-caret-right;
|
||||
@@ -112,6 +119,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
.table-calendar .day:nth-child(even) {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
|
||||
.event-list-filter-form {
|
||||
.event-list-filter-form-row {
|
||||
display: flex;
|
||||
@@ -244,7 +255,7 @@
|
||||
}
|
||||
|
||||
.day-calendar a.event {
|
||||
margin: 1px;
|
||||
margin: 0;
|
||||
}
|
||||
.day-calendar a.event .event-time {
|
||||
display: inline;
|
||||
@@ -373,9 +384,20 @@ if concurrency is higher than 9, JavaScript (currently in pretixpresale/js/ui/ma
|
||||
grid-template-rows: repeat(var(--concurrency, 1), auto);
|
||||
}
|
||||
|
||||
|
||||
.day-timeline {
|
||||
--total-concurrency: var(--concurrency);
|
||||
}
|
||||
.day-timeline > li {
|
||||
grid-column: calc(1 + var(--offset-hour, 0)*60/var(--raster-size, 5) + var(--offset-minute, 0)/var(--raster-size, 5)) / span calc(var(--duration-hour, 0)*60/var(--raster-size, 5) + var(--duration-minute, 0)/var(--raster-size, 5));
|
||||
grid-row: var(--concurrency, 1) / span 1;
|
||||
padding: 3px 8px 0;
|
||||
/* add 11px of padding-bottom to the events with --concurrency being the same as --total-concurrency, otherwise 0px */
|
||||
padding-bottom: #{'round(down, calc(11px * var(--concurrency)/var(--total-concurrency)), 11px)'};
|
||||
}
|
||||
|
||||
.day-timeline > li[data-concurrency="1"] {
|
||||
padding-top: 8px;
|
||||
}
|
||||
.day-timeline > li:focus-within {
|
||||
z-index: 2; /* move to front so focus-outline overlays other elements */
|
||||
@@ -385,12 +407,14 @@ if concurrency is higher than 9, JavaScript (currently in pretixpresale/js/ui/ma
|
||||
grid-row: 1 / span var(--concurrency, 1) !important;
|
||||
}
|
||||
.ticks li {
|
||||
padding: 8px 3px 5px;
|
||||
padding: 11px 8px 8px;
|
||||
line-height: 1;
|
||||
border-top-left-radius: $border-radius-base;
|
||||
border-top-right-radius: $border-radius-base;
|
||||
border-bottom: 2px solid $table-border-color;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ticks li:nth-of-type(odd), .tick {
|
||||
.tick {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
.day-timeline:nth-last-of-type(1) li {
|
||||
@@ -422,7 +446,16 @@ if concurrency is higher than 9, JavaScript (currently in pretixpresale/js/ui/ma
|
||||
|
||||
.weekday {
|
||||
flex: 1;
|
||||
margin: 0 5px;
|
||||
padding: 0 8px 8px;
|
||||
}
|
||||
.weekday:nth-child(even) {
|
||||
background-color: $table-bg-accent;
|
||||
}
|
||||
.weekday h3 {
|
||||
margin-left: -8px;
|
||||
margin-right: -8px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
.weekday:first-child {
|
||||
margin-left: 0;
|
||||
|
||||
@@ -240,14 +240,26 @@ div.front-page {
|
||||
}
|
||||
}
|
||||
|
||||
.calendar-nav, .calendar-nav li {
|
||||
.calendar-nav, .calendar-nav > li {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
.calendar-nav li {
|
||||
padding: 10px 0;
|
||||
.calendar-nav > li {
|
||||
padding: 0 0 10px;
|
||||
}
|
||||
.calendar-nav {
|
||||
display: flex;
|
||||
align-items: end;
|
||||
}
|
||||
.calendar-nav > li {
|
||||
width: 60%;
|
||||
}
|
||||
.calendar-nav > li:first-child,
|
||||
.calendar-nav > li:last-child {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
|
||||
.subevent-toggle {
|
||||
display: none;
|
||||
|
||||
@@ -23,6 +23,10 @@ a.btn, button.btn {
|
||||
}
|
||||
}
|
||||
|
||||
.input-group:has(.input-group-btn:last-child) *:not(last-child) {
|
||||
border-right: 0;
|
||||
}
|
||||
|
||||
.panel-title .radio {
|
||||
margin-left: 20px;
|
||||
}
|
||||
@@ -49,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;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ $font-size-h4: ($font-size-base * 1.25) !default;
|
||||
$font-size-h5: $font-size-base !default;
|
||||
$font-size-h6: ($font-size-base * .85) !default;
|
||||
|
||||
$line-height-base: 1.428571429 !default;
|
||||
$line-height-base: 1.43 !default;
|
||||
$line-height-computed: ($font-size-base * $line-height-base) !default;
|
||||
$line-height-large: 1.3333333 !default; // extra decimals for Win 8.1 Chrome
|
||||
$line-height-small: 1.5 !default;
|
||||
@@ -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 */
|
||||
@@ -374,47 +389,6 @@ body.loading .container {
|
||||
-webkit-transition: opacity .5s ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
#dialog-info, #dialog-alert {
|
||||
border: none;
|
||||
background: white;
|
||||
border-radius: $border-radius-large;
|
||||
box-shadow: 0 7px 14px 0 rgba(78, 50, 92, 0.1),0 3px 6px 0 rgba(0,0,0,.07);
|
||||
padding: 20px;
|
||||
|
||||
|
||||
max-width: 32em;
|
||||
max-height: calc(100vh - 100px);
|
||||
overflow-y: auto;
|
||||
|
||||
|
||||
&::backdrop {
|
||||
background: rgba(255, 255, 255, .7);
|
||||
}
|
||||
|
||||
.modal-card {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.modal-card-icon {
|
||||
width: 150px;
|
||||
text-align: center;
|
||||
color: $brand-primary;
|
||||
font-size: 120px;
|
||||
}
|
||||
.modal-card-content {
|
||||
text-align: left;
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
font-size: 1.25em;
|
||||
font-weight: bold;
|
||||
color: $brand-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.typo-alert span[data-typosuggest] {
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
@@ -634,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%;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
margin: 10px 0;
|
||||
background-color: white;
|
||||
border: 2px solid $brand-info;
|
||||
color: $brand-info;
|
||||
color: $state-info-text;
|
||||
border-radius: $alert-border-radius;
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
margin: 10px 0;
|
||||
background-color: white;
|
||||
border: 2px solid $brand-danger;
|
||||
color: $brand-danger;
|
||||
color: $state-danger-text;
|
||||
border-radius: $alert-border-radius;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user