Compare commits

...

22 Commits

Author SHA1 Message Date
Raphael Michel
e54fec3da8 Do not use price suggestion if voucher is used (Z#23155018) 2024-06-03 13:58:21 +02:00
Charlie Lundberg
dd7ee84d29 Translations: Update Swedish
Currently translated at 20.2% (1143 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Jo Siebert
f1e2d1f44c Translations: Update German (informal) (de_Informal)
Currently translated at 100.0% (5634 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Jo Siebert
87a6a58f32 Translations: Update German
Currently translated at 100.0% (5634 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Luan Thien
b2dd56bd41 Translations: Update Vietnamese
Currently translated at 1.5% (90 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Charlie Lundberg
f0ceab2305 Translations: Update Swedish
Currently translated at 19.7% (1113 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
danijossnet
14e3316dd9 Translations: Update Greek
Currently translated at 49.7% (2803 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Luan Thien
eb28fdcba9 Translations: Update Vietnamese
Currently translated at 55.0% (126 of 229 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Luan Thien
49e4a0faa0 Translations: Update Vietnamese
Currently translated at 1.5% (89 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Nikolai
e486089590 Translations: Update Danish
Currently translated at 62.4% (143 of 229 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Nikolai
4bb02d4ad9 Translations: Update Danish
Currently translated at 31.2% (1761 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Luan Thien
8ad852d9cb Translations: Update Vietnamese
Currently translated at 0.8% (46 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Nikolai
868fcfc471 Translations: Update Danish
Currently translated at 30.9% (1745 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Nikolai
d847c9a095 Translations: Update Danish
Currently translated at 30.9% (1744 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Charlie Lundberg
d1c6b22624 Translations: Update Swedish
Currently translated at 19.4% (1093 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
mathbrito
842987f48e Translations: Update Portuguese (Brazil)
Currently translated at 11.7% (664 of 5634 strings)

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

powered by weblate
2024-06-03 12:48:45 +02:00
Jannik
58fc13ed91 Docs: Fix metrics names (#4192) 2024-06-03 12:33:28 +02:00
Raphael Michel
8010d2e6bb Update GitLab CI script 2024-05-31 17:46:45 +02:00
Raphael Michel
1566f54764 VAT ID validation: Fix crash with invalid Norwegian IDs (PRETIXEU-A3J) 2024-05-29 09:31:58 +02:00
Richard Schreiber
9d380557e1 SEO improvements - add h1.sr-only if only header-image is used
* add hidden h1 with event-title if header-image only

* add event-title to alt-attribute of header-image

* add hidden setting for google_site_verification
2024-05-28 09:18:15 +02:00
Martin Gross
5758e0dd68 PPv2 APM: Create referenced PPObjects for APM Orders; enable webhooks to capture them (#3958) 2024-05-27 13:45:37 +02:00
Martin Gross
b4629e24a5 Downgrade requests to 2.31.* again while waiting for 2.33.3 release 2024-05-27 12:11:40 +02:00
20 changed files with 491 additions and 383 deletions

View File

@@ -1,29 +1,30 @@
before_script:
tests:
image:
name: pretix/ci-image
stage: test
before_script:
- pip install -U pip uv
- uv pip install --system -U wheel setuptools
script:
- virtualenv env
- source env/bin/activate
- pip install -U pip wheel setuptools
- XDG_CACHE_HOME=/cache pip3 install -e ".[dev]"
- uv pip install --system -e ".[dev]"
- cd src
- python manage.py check
- make all compress
- py.test --reruns 3 -n 3 tests
tags:
- python3
- PRETIX_CONFIG_FILE=tests/travis_sqlite.cfg py.test --reruns 3 -n 3 tests --maxfail=100
except:
- pypi
pypi:
stage: release
image:
name: pretix/ci-image
before_script:
- cat $PYPIRC > ~/.pypirc
- pip install -U pip uv
- uv pip install --system -U wheel setuptools twine build pretix-plugin-build check-manifest
script:
- cp /keys/.pypirc ~/.pypirc
- virtualenv env
- source env/bin/activate
- pip install -U pip wheel setuptools check-manifest twine
- XDG_CACHE_HOME=/cache pip3 install -e ".[dev]"
- uv pip install --system -e ".[dev]"
- python setup.py sdist
- pip install dist/pretix-*.tar.gz
- uv pip install --system dist/pretix-*.tar.gz
- python -m pretix migrate
- python -m pretix check
- cd src
@@ -33,13 +34,12 @@ pypi:
- python -m build
- twine check dist/*
- twine upload dist/*
tags:
- python3
only:
- pypi
artifacts:
paths:
- src/dist/
stages:
- test
- build

View File

@@ -103,10 +103,10 @@ pretix_celery_tasks_queued_count
pretix_celery_tasks_queued_age_seconds
The age of the longest-waiting in the worker queue in seconds, labeled with ``queue``.
pretix_successful_logins
pretix_logins_successful
Counter. The number of successful backend logins.
pretix_failed_logins
pretix_logins_failed
Counter. The number of failed backend logins, labeled with ``reason``.
.. _metric types: https://prometheus.io/docs/concepts/metric_types/

View File

@@ -91,7 +91,7 @@ dependencies = [
"qrcode==7.4.*",
"redis==5.0.*",
"reportlab==4.2.*",
"requests==2.32.*",
"requests==2.31.*",
"sentry-sdk==1.45.*",
"sepaxml==2.6.*",
"slimit",

View File

@@ -444,7 +444,8 @@ class Item(LoggedModel):
free_price_suggestion = models.DecimalField(
verbose_name=_("Suggested price"),
help_text=_("This price will be used as the default value of the input field. The user can choose a lower "
"value, but not lower than the price this product would have without the free price option."),
"value, but not lower than the price this product would have without the free price option. This "
"will be ignored if a voucher is used that lowers the price."),
max_digits=13, decimal_places=2, null=True, blank=True,
)
tax_rule = models.ForeignKey(
@@ -1086,7 +1087,8 @@ class ItemVariation(models.Model):
free_price_suggestion = models.DecimalField(
verbose_name=_("Suggested price"),
help_text=_("This price will be used as the default value of the input field. The user can choose a lower "
"value, but not lower than the price this product would have without the free price option."),
"value, but not lower than the price this product would have without the free price option. This "
"will be ignored if a voucher is used that lowers the price."),
max_digits=13, decimal_places=2, null=True, blank=True,
)
require_approval = models.BooleanField(

View File

@@ -62,7 +62,10 @@ class VATIDTemporaryError(VATIDError):
def _validate_vat_id_NO(vat_id, country_code):
# Inspired by vat_moss library
vat_id = vat_moss.id.normalize(vat_id)
try:
vat_id = vat_moss.id.normalize(vat_id)
except ValueError:
raise VATIDFinalError(error_messages['invalid'])
if not vat_id or len(vat_id) < 3 or not re.match('^\\d{9}MVA$', vat_id[2:]):
raise VATIDFinalError(error_messages['invalid'])

View File

@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2024-05-01 01:00+0000\n"
"PO-Revision-Date: 2024-05-30 17:00+0000\n"
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/da/"
">\n"
@@ -13,7 +13,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.4.3\n"
"X-Generator: Weblate 5.5.5\n"
#: pretix/_base_settings.py:78
msgid "English"
@@ -844,7 +844,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/organizers/customer_profile.html:20
#, fuzzy
msgid "Customer ID"
msgstr "Kundehandlinger"
msgstr "Kunde ID"
#: pretix/base/exporters/customers.py:65
#: pretix/control/templates/pretixcontrol/organizers/customer.html:31
@@ -2816,7 +2816,7 @@ msgstr "Udløbsdato"
#: pretix/presale/templates/pretixpresale/event/checkout_confirm.html:136
#, fuzzy
msgid "Customer account"
msgstr "Kundehandlinger"
msgstr "Kundekonto"
#: pretix/base/exporters/reusablemedia.py:51 pretix/base/models/media.py:97
#, fuzzy
@@ -8316,7 +8316,7 @@ msgstr "Produkterne er lagt i kurven."
#: pretix/base/services/placeholders.py:525
msgid "Please transfer money to this bank account: 9999-9999-9999-9999"
msgstr ""
msgstr "Overfør venligst beløbet til denne bankkonto: 9999-9999-9999-9999"
#: pretix/base/services/seating.py:61 pretix/base/services/seating.py:128
#, python-format
@@ -11791,7 +11791,6 @@ msgid "All time"
msgstr "Alle"
#: pretix/base/timeline.py:60
#, fuzzy
msgctxt "timeline"
msgid "Your event starts"
msgstr "Arrangements starttidspunkt"
@@ -11814,7 +11813,6 @@ msgid "Start of ticket sales"
msgstr "Start af forsalg"
#: pretix/base/timeline.py:95
#, fuzzy
msgctxt "timeline"
msgid "End of ticket sales"
msgstr "Slut af forsalg"
@@ -12830,9 +12828,8 @@ msgstr "Forsalg slut"
#: pretix/control/forms/filter.py:1629 pretix/control/forms/filter.py:1632
#: pretix/control/forms/filter.py:2265
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/import_form.html:84
#, fuzzy
msgid "Date from"
msgstr "Dato"
msgstr "Dato fra"
#: pretix/control/forms/filter.py:1137 pretix/control/forms/filter.py:1140
#: pretix/control/forms/filter.py:1636 pretix/control/forms/filter.py:1639
@@ -15981,9 +15978,8 @@ msgid "Payments"
msgstr "Betaling"
#: pretix/control/navigation.py:374
#, fuzzy
msgid "User settings"
msgstr "Basisindstillinger"
msgstr "Brugerindstillinger"
#: pretix/control/navigation.py:385
#: pretix/control/templates/pretixcontrol/user/settings.html:16
@@ -15995,9 +15991,8 @@ msgid "2FA"
msgstr ""
#: pretix/control/navigation.py:395
#, fuzzy
msgid "Authorized apps"
msgstr "Kundehandlinger"
msgstr "Autoriserede apps"
#: pretix/control/navigation.py:400
#: pretix/control/templates/pretixcontrol/user/history.html:4
@@ -17116,7 +17111,7 @@ msgstr "Gå til arrangement"
#: pretix/control/templates/pretixcontrol/dashboard.html:15
msgid "Your upcoming events"
msgstr ""
msgstr "Dine kommende arrangementer"
#: pretix/control/templates/pretixcontrol/dashboard.html:20
#: pretix/control/templates/pretixcontrol/events/create_base.html:4
@@ -17130,15 +17125,15 @@ msgstr "Opret arrangement"
#: pretix/control/templates/pretixcontrol/dashboard.html:39
msgid "View all upcoming events"
msgstr ""
msgstr "Vis alle kommende arrangementer"
#: pretix/control/templates/pretixcontrol/dashboard.html:44
msgid "Your most recent events"
msgstr ""
msgstr "Dine fornylig afsluttede arrangementer"
#: pretix/control/templates/pretixcontrol/dashboard.html:60
msgid "View all recent events"
msgstr ""
msgstr "Vis alle afsluttede arrangementer"
#: pretix/control/templates/pretixcontrol/dashboard.html:65
msgid "Your event series"
@@ -18716,8 +18711,8 @@ msgid ""
"The list below shows all events you have administrative access to. Click on "
"the event name to access event details."
msgstr ""
"Listen vises alle arrangementer som du har administratoradgang til. Klik "
"navnet for at se detaljer."
"I listen vises alle arrangementer, som du har administratoradgang til. Klik "
"navnet for at se flere informationer."
#: pretix/control/templates/pretixcontrol/events/index.html:12
#: pretix/control/templates/pretixcontrol/organizers/detail.html:18
@@ -19823,13 +19818,12 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:4
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:6
#: pretix/control/templates/pretixcontrol/user/settings.html:61
#, fuzzy
msgid "Authorized applications"
msgstr "Kundehandlinger"
msgstr "Autoriserede applikationer"
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:9
msgid "Manage your own apps"
msgstr ""
msgstr "Styr dine egne apps"
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:18
msgid "Permissions"
@@ -19837,7 +19831,7 @@ msgstr "Tilladelser"
#: pretix/control/templates/pretixcontrol/oauth/authorized.html:59
msgid "No applications have access to your pretix account."
msgstr ""
msgstr "Der er ingen applikationer, der har adgang til din Pretix-konto."
#: pretix/control/templates/pretixcontrol/order/approve.html:4
#: pretix/control/templates/pretixcontrol/order/approve.html:8
@@ -23496,9 +23490,8 @@ msgid "Change two-factor settings"
msgstr "Ændr tofaktor-indstillinger"
#: pretix/control/templates/pretixcontrol/user/settings.html:65
#, fuzzy
msgid "Show applications"
msgstr "Vis information"
msgstr "Vis applikationer"
#: pretix/control/templates/pretixcontrol/user/settings.html:74
msgid "Show account history"
@@ -29407,7 +29400,6 @@ msgid "Step"
msgstr ""
#: pretix/presale/checkoutflow.py:248
#, fuzzy
msgctxt "checkoutflow"
msgid "Customer account"
msgstr "Kundekonto"
@@ -29546,8 +29538,9 @@ msgid "Save address in my customer account for future purchases"
msgstr ""
#: pretix/presale/forms/checkout.py:158
#, fuzzy
msgid "Save answers to my customer profiles for future purchases"
msgstr ""
msgstr "Gem mine svar i min kundekonto, for at genbruge dem i fremtiden."
#: pretix/presale/forms/checkout.py:165
#, fuzzy
@@ -29861,9 +29854,8 @@ msgid "Cart expired"
msgstr "Kurv udløbet"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:36
#, fuzzy
msgid "Show full cart"
msgstr "Vis information"
msgstr "Vis hele indkøbskurven"
#: pretix/presale/templates/pretixpresale/event/checkout_base.html:48
#: pretix/presale/templates/pretixpresale/event/index.html:78
@@ -31242,7 +31234,6 @@ msgid "Request invoice"
msgstr "Anmod om faktura"
#: pretix/presale/templates/pretixpresale/event/order.html:286
#, fuzzy
msgid "Your information"
msgstr "Dine oplysninger"
@@ -31266,7 +31257,6 @@ msgid "Change your order"
msgstr "Ret din ordre"
#: pretix/presale/templates/pretixpresale/event/order.html:353
#, fuzzy
msgctxt "action"
msgid "Cancel your order"
msgstr "Annuller bestilling"
@@ -31903,7 +31893,7 @@ msgstr "Er du sikker på at du vil slette gruppen?"
#: pretix/presale/templates/pretixpresale/organizers/customer_profile.html:15
#, fuzzy
msgid "Account information"
msgstr "Kontoindstillinger ændret"
msgstr "Kontoinformationer"
#: pretix/presale/templates/pretixpresale/organizers/customer_info.html:11
#, fuzzy
@@ -31945,7 +31935,7 @@ msgstr "Angiv ny adgangskode"
#: pretix/presale/templates/pretixpresale/organizers/customer_profile.html:10
#, fuzzy
msgid "Your account"
msgstr "Din kurv"
msgstr "Din konto"
#: pretix/presale/templates/pretixpresale/organizers/customer_profile.html:23
#, fuzzy

View File

@@ -7,8 +7,8 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-08 13:19+0000\n"
"PO-Revision-Date: 2022-12-01 17:00+0000\n"
"Last-Translator: Mie Frydensbjerg <mif@aarhus.dk>\n"
"PO-Revision-Date: 2024-05-30 17:00+0000\n"
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
"da/>\n"
"Language: da\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14.2\n"
"X-Generator: Weblate 5.5.5\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
@@ -724,10 +724,6 @@ msgid "Cart expired"
msgstr "Kurv udløbet"
#: pretix/static/pretixpresale/js/ui/cart.js:50
#, fuzzy
#| msgid "The items in your cart are reserved for you for one minute."
#| msgid_plural ""
#| "The items in your cart are reserved for you for {num} minutes."
msgid "The items in your cart are reserved for you for one minute."
msgid_plural "The items in your cart are reserved for you for {num} minutes."
msgstr[0] "Varerne i din kurv er reserveret for dig i et minut."

View File

@@ -5,8 +5,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2024-05-24 08:53+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"PO-Revision-Date: 2024-06-03 10:33+0000\n"
"Last-Translator: Jo Siebert <jochen@siebert.ws>\n"
"Language-Team: German <https://translate.pretix.eu/projects/pretix/pretix/de/"
">\n"
"Language: de\n"
@@ -28810,7 +28810,7 @@ msgstr ""
msgid ""
"Please click the \"Pay with PayPal\" button below to start your payment."
msgstr ""
"Bitte klicken Sie auf den \"Mit PayPal bezahlen\" Knopf um mit der Zahlung "
"Bitte klicken Sie auf den \"Mit PayPal bezahlen\" Knopf, um mit der Zahlung "
"zu beginnen."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_form.html:13

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2024-05-24 08:53+0000\n"
"Last-Translator: Raphael Michel <michel@rami.io>\n"
"PO-Revision-Date: 2024-06-03 10:33+0000\n"
"Last-Translator: Jo Siebert <jochen@siebert.ws>\n"
"Language-Team: German (informal) <https://translate.pretix.eu/projects/"
"pretix/pretix/de_Informal/>\n"
"Language: de_Informal\n"
@@ -28759,7 +28759,7 @@ msgstr ""
msgid ""
"Please click the \"Pay with PayPal\" button below to start your payment."
msgstr ""
"Bitte klicke auf den \"Mit PayPal bezahlen\" Knopf um mit der Zahlung zu "
"Bitte klicke auf den \"Mit PayPal bezahlen\" Knopf, um mit der Zahlung zu "
"beginnen."
#: pretix/plugins/paypal2/templates/pretixplugins/paypal2/checkout_payment_form.html:13

View File

@@ -8,16 +8,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2023-07-11 11:38+0000\n"
"Last-Translator: hara metaxa <metaxahara@gmail.com>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/"
">\n"
"PO-Revision-Date: 2024-05-31 15:52+0000\n"
"Last-Translator: danijossnet <danijoss@yahoo.com>\n"
"Language-Team: Greek <https://translate.pretix.eu/projects/pretix/pretix/el/>"
"\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
"X-Generator: Weblate 5.5.5\n"
#: pretix/_base_settings.py:78
msgid "English"
@@ -34388,7 +34388,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:20
#, python-format
msgid "Begin: %(time)s"
msgstr "Ξεκινήστε: %(time)s"
msgstr "Έναρξη: %(time)s"
#: pretix/presale/templates/pretixpresale/event/fragment_event_info.html:29
#, python-format

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2024-02-27 02:00+0000\n"
"Last-Translator: Adriano Lima <adrianocardoso1991@gmail.com>\n"
"PO-Revision-Date: 2024-05-27 21:00+0000\n"
"Last-Translator: mathbrito <mathbrito@users.noreply.translate.pretix.eu>\n"
"Language-Team: Portuguese (Brazil) <https://translate.pretix.eu/projects/"
"pretix/pretix/pt_BR/>\n"
"Language: pt_BR\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.4\n"
"X-Generator: Weblate 5.5.5\n"
#: pretix/_base_settings.py:78
msgid "English"
@@ -9152,18 +9152,20 @@ msgid ""
"The part of your invoice number after your prefix will be filled up with "
"leading zeros up to this length, e.g. INV-001 or INV-00001."
msgstr ""
"A parte do seu número de fatura após o seu prefixo será preenchido com zeros "
"até este comprimento, p.ex. INV-001 ou INV-00001."
#: pretix/base/settings.py:661
msgid "Generate invoices with consecutive numbers"
msgstr ""
msgstr "Gerar faturas com números consecutivos"
#: pretix/base/settings.py:662
msgid "If deactivated, the order code will be used in the invoice number."
msgstr ""
msgstr "Se desativado, o número de pedido será usado como número de fatura."
#: pretix/base/settings.py:671
msgid "Invoice number prefix"
msgstr ""
msgstr "Prefixo do número de fatura"
#: pretix/base/settings.py:672
msgid ""
@@ -24633,19 +24635,19 @@ msgstr ""
#: pretix/plugins/sendmail/views.py:674 pretix/plugins/stripe/views.py:679
#: pretix/plugins/ticketoutputpdf/views.py:132
msgid "We could not save your changes. See below for details."
msgstr ""
msgstr "Não conseguimos salvar suas alterações. Veja detalhes abaixo."
#: pretix/control/views/checkin.py:416 pretix/control/views/checkin.py:453
msgid "The requested list does not exist."
msgstr ""
msgstr "A lista solicitada não existe."
#: pretix/control/views/checkin.py:462
msgid "The selected list has been deleted."
msgstr ""
msgstr "A lista selecionada foi apagada."
#: pretix/control/views/dashboards.py:114
msgid "Attendees (ordered)"
msgstr ""
msgstr "Participantes (com pedidos)"
#: pretix/control/views/dashboards.py:124
msgid "Attendees (paid)"

View File

@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2024-05-23 14:03+0000\n"
"PO-Revision-Date: 2024-06-03 10:33+0000\n"
"Last-Translator: Charlie Lundberg <charlieblundberg@gmail.com>\n"
"Language-Team: Swedish <https://translate.pretix.eu/projects/pretix/pretix/"
"sv/>\n"
@@ -4346,12 +4346,16 @@ msgid ""
"You need to either set a minimum number of matching products or a minimum "
"value."
msgstr ""
"Du kan antingen ställa in ett minsta antal matchande produkter eller ett "
"lägsta värde, inte båda."
#: pretix/base/models/discount.py:206
msgid ""
"You cannot apply the discount only to some of the matched products if you "
"are matching on a minimum value."
msgstr ""
"Du kan inte tillämpa rabatten endast på vissa av de matchade produkterna om "
"du matchar på ett minimivärde."
#: pretix/base/models/discount.py:212
msgid ""
@@ -4608,7 +4612,7 @@ msgstr "Fullständigt namn"
#: pretix/base/models/event.py:1690
#: pretix/control/templates/pretixcontrol/organizers/properties.html:40
msgid "Can be used for filtering"
msgstr ""
msgstr "Kan användas för filtrering"
#: pretix/base/models/event.py:1691
msgid ""
@@ -4616,6 +4620,9 @@ msgid ""
"can also be used for hidden filter parameters in the frontend (e.g. using "
"the widget)."
msgstr ""
"Det här fältet kommer att visas för att filtrera händelser eller rapporter i "
"backend, och det kan också användas för dolda filterparametrar i frontend ("
"t.ex. med hjälp av widgeten)."
#: pretix/base/models/event.py:1701
msgid "A property can either be required or have a default value, not both."
@@ -4630,7 +4637,7 @@ msgstr "Text (flera rader)"
#: pretix/base/models/event.py:1784 pretix/base/models/organizer.py:497
msgid "Link URL"
msgstr ""
msgstr "Länk-URL"
#: pretix/base/models/exports.py:42 pretix/control/navigation.py:227
#: pretix/control/navigation.py:636
@@ -4677,7 +4684,7 @@ msgstr ""
#: pretix/plugins/sendmail/forms.py:58 pretix/plugins/sendmail/forms.py:78
#: pretix/plugins/sendmail/models.py:233
msgid "Message"
msgstr ""
msgstr "Meddelande"
#: pretix/base/models/exports.py:85
#, fuzzy
@@ -4687,7 +4694,7 @@ msgstr "events start tid"
#: pretix/base/models/exports.py:86
msgid "The actual start time might be delayed depending on system load."
msgstr ""
msgstr "Den faktiska starttiden kan vara försenad beroende på systembelastning."
#: pretix/base/models/fields.py:33
msgid "No value can contain the delimiter character."
@@ -4713,7 +4720,7 @@ msgstr "Speciella villkor"
#: pretix/base/models/giftcards.py:219 pretix/base/models/giftcards.py:223
msgid "Manual transaction"
msgstr ""
msgstr "Manuell transaktion"
#: pretix/base/models/invoices.py:185
#, python-format
@@ -4796,7 +4803,7 @@ msgstr "Kund"
#: pretix/base/models/items.py:375
msgid "Dynamic validity"
msgstr ""
msgstr "Dynamisk giltighet"
#: pretix/base/models/items.py:381 pretix/control/forms/item.py:605
#: pretix/control/templates/pretixcontrol/subevents/fragment_unavail_mode_indicator.html:3
@@ -4808,7 +4815,7 @@ msgstr "Denna produkt är just nu inte tillgänglig."
#: pretix/base/models/items.py:382
#: pretix/control/templates/pretixcontrol/subevents/fragment_unavail_mode_indicator.html:5
msgid "Show info text if unavailable"
msgstr ""
msgstr "Visa infotext om den inte är tillgänglig"
#: pretix/base/models/items.py:389 pretix/base/models/items.py:703
msgid "Don't use re-usable media, use regular one-off tickets"
@@ -4816,15 +4823,15 @@ msgstr ""
#: pretix/base/models/items.py:390
msgid "Require an existing medium to be re-used"
msgstr ""
msgstr "Kräv att ett befintligt medium återanvänds"
#: pretix/base/models/items.py:391
msgid "Require a previously unknown medium to be newly added"
msgstr ""
msgstr "Kräv att ett tidigare okänt medium läggs till nyligen"
#: pretix/base/models/items.py:392
msgid "Require either an existing or a new medium to be used"
msgstr ""
msgstr "Kräv att antingen ett befintligt eller ett nytt medium ska användas"
#: pretix/base/models/items.py:408 pretix/base/models/items.py:1363
#: pretix/control/templates/pretixcontrol/items/index.html:40
@@ -4878,6 +4885,9 @@ msgid ""
"can choose a lower value, but not lower than the price this product would "
"have without the free price option."
msgstr ""
"Detta pris kommer att användas som standardvärde för inmatningsfältet. "
"Användaren kan välja ett lägre värde, men inte lägre än det pris som denna "
"produkt skulle ha utan det fria prisalternativet."
#: pretix/base/models/items.py:459
#, fuzzy
@@ -5055,6 +5065,8 @@ msgid ""
"This text will be shown by the check-in app if a ticket of this type is "
"scanned."
msgstr ""
"Denna text kommer att visas av incheckningsappen om en biljett av denna typ "
"skannas."
#: pretix/base/models/items.py:598 pretix/base/models/items.py:1083
msgid ""
@@ -5124,6 +5136,15 @@ msgid ""
"change the settings here later, existing tickets will not be affected by the "
"change but keep their current validity."
msgstr ""
"När du ställer in en vanlig händelse, eller en händelseserie med tidsluckor, "
"behöver du vanligtvis INTE ändra detta värde. Standardinställningen innebär "
"att giltighetstiden för biljetter inte bestäms av produkten, utan av "
"evenemanget och incheckningskonfigurationen. Använd bara de andra "
"alternativen om du behöver dem för att realisera t.ex. en bokning av en "
"årsbiljett med ett dynamiskt startdatum. Observera att giltigheten kommer "
"att lagras med biljetten, så om du ändrar inställningarna här senare kommer "
"befintliga biljetter inte att påverkas av ändringen utan behålla sin "
"nuvarande giltighet."
#: pretix/base/models/items.py:660 pretix/control/forms/item.py:668
#, fuzzy
@@ -5145,23 +5166,23 @@ msgstr "minuter"
#: pretix/base/models/items.py:668
msgid "Hours"
msgstr ""
msgstr "Timmar"
#: pretix/base/models/items.py:672
msgid "Days"
msgstr ""
msgstr "Dagar"
#: pretix/base/models/items.py:676
msgid "Months"
msgstr ""
msgstr "Månader"
#: pretix/base/models/items.py:679
msgid "Customers can select the validity start date"
msgstr ""
msgstr "Kunder kan välja startdatum för giltigheten"
#: pretix/base/models/items.py:680
msgid "If not selected, the validity always starts at the time of purchase."
msgstr ""
msgstr "Om ej valt börjar giltigheten alltid vid köptillfället."
#: pretix/base/models/items.py:685
#, fuzzy
@@ -5171,11 +5192,11 @@ msgstr "Maximalt antal"
#: pretix/base/models/items.py:686
msgid "The selected start date may only be this many days in the future."
msgstr ""
msgstr "Det valda startdatumet kan bara vara så här många dagar i framtiden."
#: pretix/base/models/items.py:692
msgid "Reusable media policy"
msgstr ""
msgstr "Återanvändbar mediepolicy"
#: pretix/base/models/items.py:694
msgid ""
@@ -5186,6 +5207,12 @@ msgid ""
"feature that also requires specific configuration of ticketing and printing "
"settings."
msgstr ""
"Om denna produkt ska lagras på ett återanvändbart fysiskt medium kan du "
"bifoga en policy för fysiskt media. Detta krävs inte för vanliga biljetter, "
"som bara använder en engångs-streckkod, utan endast för produkter som "
"förnybara säsongsbiljetter eller laddningsbara presentkort-armband. Detta är "
"en avancerad funktion som också kräver specifik konfiguration av biljett- "
"och utskriftsinställningar."
#: pretix/base/models/items.py:704
msgid "Reusable media type"
@@ -6712,7 +6739,7 @@ msgstr ""
#: pretix/base/notifications.py:288
#, python-brace-format
msgid "Order {order.code} has been overpaid."
msgstr ""
msgstr "Order {order.code} har blivit överbetald."
#: pretix/base/notifications.py:294
#, python-brace-format
@@ -6721,36 +6748,39 @@ msgstr ""
#: pretix/base/notifications.py:299
msgid "Refund requested"
msgstr ""
msgstr "Återbetalning begärd"
#: pretix/base/notifications.py:300
#, python-brace-format
msgid "You have been requested to issue a refund for {order.code}."
msgstr ""
msgstr "Du har blivit ombedd att utfärda en återbetalning för {order.code}."
#: pretix/base/payment.py:87
msgctxt "payment"
msgid "Apple Pay"
msgstr ""
msgstr "Apple Pay"
#: pretix/base/payment.py:88
#, fuzzy
msgctxt "payment"
msgid "Google Pay"
msgstr ""
msgstr "Google Pay"
#: pretix/base/payment.py:257
#: pretix/presale/templates/pretixpresale/event/order.html:115
msgid "Pay now"
msgstr ""
msgstr "Betala nu"
#: pretix/base/payment.py:331
msgid "Enable payment method"
msgstr ""
msgstr "Aktivera betalningsmetod"
#: pretix/base/payment.py:337
msgid ""
"Users will not be able to choose this payment provider after the given date."
msgstr ""
"Användare kommer inte att kunna välja denna betalningsleverantör efter det "
"angivna datumet."
#: pretix/base/payment.py:343
#, fuzzy
@@ -6761,7 +6791,7 @@ msgstr "Den här produkten kommer inte säljas innan angivet datum."
#: pretix/base/payment.py:348
msgid "Minimum order total"
msgstr ""
msgstr "Minsta ordersumma"
#: pretix/base/payment.py:349
msgid ""
@@ -6769,10 +6799,14 @@ msgid ""
"exceeds the given value. The order total for this purpose may be computed "
"without taking the fees imposed by this payment method into account."
msgstr ""
"Denna betalning kommer endast att vara tillgänglig om ordersumman är lika "
"med eller överstiger det angivna värdet. Ordersumman för detta ändamål kan "
"komma att beräknas utan att ta hänsyn till de avgifter som tas ut av denna "
"betalningsmetod."
#: pretix/base/payment.py:359
msgid "Maximum order total"
msgstr ""
msgstr "Maximal ordersumma"
#: pretix/base/payment.py:360
msgid ""
@@ -6780,22 +6814,26 @@ msgid ""
"the given value. The order total for this purpose may be computed without "
"taking the fees imposed by this payment method into account."
msgstr ""
"Denna betalning kommer endast att vara tillgänglig om ordersumman är lika "
"med eller under det angivna värdet. Ordersumman för detta ändamål kan komma "
"att beräknas utan att ta hänsyn till de avgifter som tas ut av denna "
"betalningsmetod."
#: pretix/base/payment.py:370 pretix/base/payment.py:379
msgid "Additional fee"
msgstr ""
msgstr "Extra avgift"
#: pretix/base/payment.py:371
msgid "Absolute value"
msgstr ""
msgstr "Absolutvärde"
#: pretix/base/payment.py:380
msgid "Percentage of the order total."
msgstr ""
msgstr "Andel av ordersumman."
#: pretix/base/payment.py:386
msgid "Calculate the fee from the total value including the fee."
msgstr ""
msgstr "Beräkna avgiften från det totala värdet inklusive avgiften."
#: pretix/base/payment.py:387
#, python-brace-format
@@ -6805,10 +6843,14 @@ msgid ""
"rel=\"noopener\">Click here for detailed information on what this does.</a> "
"Don't forget to set the correct fees above!"
msgstr ""
"Vi rekommenderar att du aktiverar detta om du vill att dina användare ska "
"betala betalningsavgifterna från din betalningsleverantör. <a href=\""
"{docs_url}\" target=\"_blank\" rel=\"noopener\">Klicka här för detaljerad "
"information om vad detta gör.</a> Glöm inte att ange rätt avgifter ovan!"
#: pretix/base/payment.py:395
msgid "Text on invoices"
msgstr ""
msgstr "Text på fakturor"
#: pretix/base/payment.py:396
msgid ""
@@ -6817,10 +6859,14 @@ msgid ""
"order is paid. If the invoice is generated later, it will show a text "
"stating that it has already been paid."
msgstr ""
"Kommer att skrivas ut precis under betalningssiffrorna och ovanför "
"sluttexten på fakturor. Detta kommer endast att användas om fakturan "
"genereras innan beställningen betalas. Om fakturan genereras senare kommer "
"den att visa en text om att den redan är betald."
#: pretix/base/payment.py:405
msgid "Restrict to countries"
msgstr ""
msgstr "Begränsa till länder"
#: pretix/base/payment.py:407
msgid ""
@@ -6940,6 +6986,10 @@ msgid ""
"It should instruct the user on how to proceed with the payment. You can use "
"the placeholders {order}, {amount}, {currency} and {amount_with_currency}."
msgstr ""
"Denna text kommer att visas på orderbekräftelsesidan för väntande "
"beställningar. Den bör instruera användaren om hur man går vidare med "
"betalningen. Du kan använda platshållarna {order}, {amount}, {currency} och "
"{amount_with_currency}."
#: pretix/base/payment.py:1209 pretix/plugins/banktransfer/payment.py:151
msgid ""
@@ -6949,16 +6999,16 @@ msgstr ""
#: pretix/base/payment.py:1260
msgid "Offsetting"
msgstr ""
msgstr "Förskjutning"
#: pretix/base/payment.py:1274 pretix/control/views/orders.py:1244
msgid "You entered an order that could not be found."
msgstr ""
msgstr "Du angav en beställning som inte kunde hittas."
#: pretix/base/payment.py:1303
#, python-format
msgid "Balanced against orders: %s"
msgstr ""
msgstr "Balanserat mot order: %s"
#: pretix/base/payment.py:1329
#, fuzzy
@@ -6968,27 +7018,27 @@ msgstr "Betalnings metod"
#: pretix/base/payment.py:1346
msgid "In test mode, only test cards will work."
msgstr ""
msgstr "I testläge fungerar endast testkort."
#: pretix/base/payment.py:1428 pretix/base/payment.py:1479
#: pretix/base/payment.py:1522
msgid "You cannot pay with gift cards when buying a gift card."
msgstr ""
msgstr "Du kan inte betala med presentkort vid köp av presentkort."
#: pretix/base/payment.py:1437 pretix/base/payment.py:1487
#: pretix/base/payment.py:1532 pretix/base/payment.py:1534
msgid "This gift card does not support this currency."
msgstr ""
msgstr "Detta presentkort stöder inte denna valuta."
#: pretix/base/payment.py:1440 pretix/base/payment.py:1490
#: pretix/base/payment.py:1540
msgid "This gift card can only be used in test mode."
msgstr ""
msgstr "Detta presentkort kan endast användas i testläge."
#: pretix/base/payment.py:1443 pretix/base/payment.py:1493
#: pretix/base/payment.py:1542
msgid "Only test gift cards can be used in test mode."
msgstr ""
msgstr "Endast testpresentkort kan användas i testläge."
#: pretix/base/payment.py:1446 pretix/base/payment.py:1496
#: pretix/base/payment.py:1544
@@ -6999,31 +7049,35 @@ msgstr "Dina ändringar har sparats."
#: pretix/base/payment.py:1449 pretix/base/payment.py:1499
msgid "All credit on this gift card has been used."
msgstr ""
msgstr "All kredit på detta presentkort har använts."
#: pretix/base/payment.py:1454
msgid "This gift card is already used for your payment."
msgstr ""
msgstr "Detta presentkort används redan för din betalning."
#: pretix/base/payment.py:1469 pretix/base/payment.py:1512
msgid ""
"You entered a voucher instead of a gift card. Vouchers can only be entered "
"on the first page of the shop below the product selection."
msgstr ""
"Du angav en kupong istället för ett presentkort. Kuponger kan endast anges "
"på första sidan i butiken under produkturvalet."
#: pretix/base/payment.py:1472 pretix/base/payment.py:1515
msgid "This gift card is not known."
msgstr ""
msgstr "Detta presentkort är inte känt."
#: pretix/base/payment.py:1474 pretix/base/payment.py:1517
msgid ""
"This gift card can not be redeemed since its code is not unique. Please "
"contact the organizer of this event."
msgstr ""
"Detta presentkort kan inte lösas in eftersom dess kod inte är unik. Kontakta "
"arrangören av detta evenemang."
#: pretix/base/payment.py:1536
msgid "This gift card is not accepted by this event organizer."
msgstr ""
msgstr "Detta presentkort accepteras inte av denna arrangör."
#: pretix/base/payment.py:1538
#, fuzzy
@@ -7036,11 +7090,11 @@ msgstr ""
#: pretix/base/pdf.py:96
msgid "Ticket code (barcode content)"
msgstr ""
msgstr "Biljettkod (streckkodsinnehåll)"
#: pretix/base/pdf.py:108
msgid "Order position number"
msgstr ""
msgstr "Orderpositionsnummer"
#: pretix/base/pdf.py:116
#, fuzzy
@@ -7051,11 +7105,11 @@ msgstr "Beställningsrad"
#: pretix/base/pdf.py:122 pretix/base/services/tickets.py:100
#: pretix/control/views/event.py:795 pretix/control/views/pdf.py:94
msgid "Sample product"
msgstr ""
msgstr "Exempelprodukt"
#: pretix/base/pdf.py:126
msgid "Variation name"
msgstr ""
msgstr "Variationsnamn"
#: pretix/base/pdf.py:127
msgid "Sample variation"
@@ -7209,16 +7263,18 @@ msgstr ""
#: pretix/base/pdf.py:253 pretix/base/pdf.py:279 pretix/base/pdf.py:388
#: pretix/base/pdf.py:412 pretix/base/pdf.py:436 pretix/base/pdf.py:460
#: pretix/base/pdf.py:517 pretix/base/pdf.py:522
#, fuzzy
msgid "2017-05-31"
msgstr ""
msgstr "2017-05-31"
#: pretix/base/pdf.py:260
msgid "Event begin time"
msgstr ""
msgstr "Eventets starttid"
#: pretix/base/pdf.py:261
#, fuzzy
msgid "20:00"
msgstr ""
msgstr "20:00"
#: pretix/base/pdf.py:265
#, fuzzy
@@ -7229,19 +7285,20 @@ msgstr "Evenemangets slutdatum"
#: pretix/base/pdf.py:266 pretix/base/pdf.py:295
#: pretix/base/services/checkin.py:362 pretix/control/forms/filter.py:1160
msgid "Friday"
msgstr ""
msgstr "Fredag"
#: pretix/base/pdf.py:270
msgid "Event end date and time"
msgstr ""
msgstr "Eventets slutdatum och tid"
#: pretix/base/pdf.py:271
msgid "2017-05-31 22:00"
msgstr ""
msgstr "2017-05-31 22:00"
#: pretix/base/pdf.py:287
#, fuzzy
msgid "22:00"
msgstr ""
msgstr "22:00"
#: pretix/base/pdf.py:294
#, fuzzy
@@ -7251,45 +7308,49 @@ msgstr "Evenemangets slutdatum"
#: pretix/base/pdf.py:299
msgid "Event admission date and time"
msgstr ""
msgstr "Datum och tid för tillträde till evenemanget"
#: pretix/base/pdf.py:300 pretix/base/pdf.py:396 pretix/base/pdf.py:420
#: pretix/base/pdf.py:444 pretix/base/pdf.py:468 pretix/base/pdf.py:511
#, fuzzy
msgid "2017-05-31 19:00"
msgstr ""
msgstr "2017-05-31 19:00"
#: pretix/base/pdf.py:307
msgid "Event admission time"
msgstr ""
msgstr "Tillträdestid för evenemang"
#: pretix/base/pdf.py:308 pretix/base/pdf.py:404 pretix/base/pdf.py:428
#: pretix/base/pdf.py:452 pretix/base/pdf.py:476
#, fuzzy
msgid "19:00"
msgstr ""
msgstr "19:00"
#: pretix/base/pdf.py:315
msgid "Event location"
msgstr ""
msgstr "Eventplats"
#: pretix/base/pdf.py:316 pretix/base/settings.py:1118
msgid "Random City"
msgstr ""
msgstr "Slumpmässig stad"
#: pretix/base/pdf.py:335
msgid "Invoice address company"
msgstr ""
msgstr "Fakturaadress företag"
#: pretix/base/pdf.py:341
#, fuzzy
msgid "Sesame Street 42"
msgstr ""
msgstr "Sesame Street 42"
#: pretix/base/pdf.py:346
#, fuzzy
msgid "12345"
msgstr ""
msgstr "12345"
#: pretix/base/pdf.py:351 pretix/base/services/invoices.py:473
msgid "Sample city"
msgstr ""
msgstr "Teststad"
#: pretix/base/pdf.py:355
#, fuzzy
@@ -7305,18 +7366,21 @@ msgid "Sample State"
msgstr "Välj region"
#: pretix/base/pdf.py:361
#, fuzzy
msgid "Atlantis"
msgstr ""
msgstr "Atlantis"
#: pretix/base/pdf.py:365
msgid "List of Add-Ons"
msgstr ""
msgstr "Lista över tillägg"
#: pretix/base/pdf.py:366
msgid ""
"Add-on 1\n"
"2x Add-on 2"
msgstr ""
"Tillägg 1\n"
"2x tillägg 2"
#: pretix/base/pdf.py:372 pretix/control/forms/filter.py:1301
#: pretix/control/forms/filter.py:1303

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-24 08:47+0000\n"
"PO-Revision-Date: 2022-04-25 16:10+0000\n"
"Last-Translator: fsnaix <truonggiangsn@gmail.com>\n"
"PO-Revision-Date: 2024-06-01 01:00+0000\n"
"Last-Translator: Luan Thien <vanthienluan@gmail.com>\n"
"Language-Team: Vietnamese <https://translate.pretix.eu/projects/pretix/"
"pretix/vi/>\n"
"Language: vi\n"
@@ -17,111 +17,111 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.11.2\n"
"X-Generator: Weblate 5.5.5\n"
#: pretix/_base_settings.py:78
msgid "English"
msgstr ""
msgstr "Tiếng Anh"
#: pretix/_base_settings.py:79
msgid "German"
msgstr ""
msgstr "Tiếng Đức"
#: pretix/_base_settings.py:80
msgid "German (informal)"
msgstr ""
msgstr "Tiếng Đức (thân mật)"
#: pretix/_base_settings.py:81
msgid "Arabic"
msgstr ""
msgstr "Tiếng A-rập"
#: pretix/_base_settings.py:82
msgid "Chinese (simplified)"
msgstr ""
msgstr "Tiếng Trung (giản thể)"
#: pretix/_base_settings.py:83
msgid "Chinese (traditional)"
msgstr ""
msgstr "Tiếng Trung Quốc (phồn thể)"
#: pretix/_base_settings.py:84
msgid "Czech"
msgstr ""
msgstr "Tiếng Séc"
#: pretix/_base_settings.py:85
msgid "Danish"
msgstr ""
msgstr "Tiếng Đan Mạch"
#: pretix/_base_settings.py:86
msgid "Dutch"
msgstr ""
msgstr "Tiếng Hà Lan"
#: pretix/_base_settings.py:87
msgid "Dutch (informal)"
msgstr ""
msgstr "Tiếng Hà Lan (thân mật)"
#: pretix/_base_settings.py:88
msgid "French"
msgstr ""
msgstr "Tiếng Pháp"
#: pretix/_base_settings.py:89
msgid "Finnish"
msgstr ""
msgstr "Tiếng Phần Lan"
#: pretix/_base_settings.py:90
msgid "Galician"
msgstr ""
msgstr "Tiếng Galician"
#: pretix/_base_settings.py:91
msgid "Greek"
msgstr ""
msgstr "Tiếng Hy Lạp"
#: pretix/_base_settings.py:92
msgid "Indonesian"
msgstr ""
msgstr "Tiếng Indonesia"
#: pretix/_base_settings.py:93
msgid "Italian"
msgstr ""
msgstr "Tiếng Ý"
#: pretix/_base_settings.py:94
msgid "Latvian"
msgstr ""
msgstr "Tiếng Latvia"
#: pretix/_base_settings.py:95
msgid "Norwegian Bokmål"
msgstr ""
msgstr "Tiếng Na Uy"
#: pretix/_base_settings.py:96
msgid "Polish"
msgstr ""
msgstr "Tiếng Ba Lan"
#: pretix/_base_settings.py:97
msgid "Portuguese (Portugal)"
msgstr ""
msgstr "Tiếng Bồ Đào Nha"
#: pretix/_base_settings.py:98
msgid "Portuguese (Brazil)"
msgstr ""
msgstr "Tiếng Bồ Đào Nha (Brazil)"
#: pretix/_base_settings.py:99
msgid "Romanian"
msgstr ""
msgstr "Tiếng Ru-ma-ni"
#: pretix/_base_settings.py:100
msgid "Russian"
msgstr ""
msgstr "Tiếng Nga"
#: pretix/_base_settings.py:101
msgid "Spanish"
msgstr ""
msgstr "Tiếng Tây Ban Nha"
#: pretix/_base_settings.py:102
msgid "Turkish"
msgstr ""
msgstr "Tiếng Thổ Nhĩ Kỳ"
#: pretix/_base_settings.py:103
msgid "Ukrainian"
msgstr ""
msgstr "Tiếng Ukrainian"
#: pretix/api/auth/devicesecurity.py:31
msgid ""
@@ -203,7 +203,7 @@ msgstr "Giới hạn cho sự kiện"
#: pretix/plugins/banktransfer/refund_export.py:46
#: pretix/plugins/checkinlists/exporters.py:509
msgid "Comment"
msgstr ""
msgstr "Bình luận"
#: pretix/api/serializers/cart.py:168 pretix/api/serializers/order.py:1349
msgid "The product \"{}\" is not assigned to a quota."
@@ -212,7 +212,7 @@ msgstr "Mặt hàng \"{}\" chưa được chỉ định số hàng tồn."
#: pretix/api/serializers/checkin.py:66 pretix/base/models/event.py:1622
#: pretix/base/models/items.py:1822 pretix/base/models/items.py:2080
msgid "One or more items do not belong to this event."
msgstr ""
msgstr "Một hoặc một vài mục không thuộc sự kiện này."
#: pretix/api/serializers/checkin.py:70 pretix/api/serializers/checkin.py:73
#: pretix/base/models/items.py:2091 pretix/base/models/items.py:2094
@@ -233,23 +233,23 @@ msgstr ""
#: pretix/api/serializers/event.py:232 pretix/api/serializers/event.py:531
#, python-brace-format
msgid "Meta data property '{name}' does not exist."
msgstr ""
msgstr "Thuộc tính '{name}' không tồn tại."
#: pretix/api/serializers/event.py:235 pretix/api/serializers/event.py:534
#, python-brace-format
msgid "Meta data property '{name}' does not allow value '{value}'."
msgstr ""
msgstr "Thuộc tính '{name}' không chấp nhận giá trị '{value}'"
#: pretix/api/serializers/event.py:278
#, python-brace-format
msgid "Unknown plugin: '{name}'."
msgstr ""
msgstr "Không có plugin: '{name}'."
#: pretix/api/serializers/item.py:75 pretix/api/serializers/item.py:125
#: pretix/api/serializers/item.py:327
#, python-brace-format
msgid "Item meta data property '{name}' does not exist."
msgstr ""
msgstr "Không tồn tại mục chứa thuộc tính '{name}'."
#: pretix/api/serializers/item.py:184 pretix/control/forms/item.py:1207
msgid "The bundled item must not be the same item as the bundling one."
@@ -407,7 +407,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html:114
#: pretix/control/views/orders.py:1549
msgid "Order canceled"
msgstr ""
msgstr "Đã huỷ đơn hàng"
#: pretix/api/webhooks.py:242 pretix/base/notifications.py:257
msgid "Order reactivated"
@@ -969,7 +969,7 @@ msgstr ""
#: pretix/plugins/checkinlists/exporters.py:806
#: pretix/plugins/checkinlists/exporters.py:807
msgid "Yes"
msgstr ""
msgstr ""
#: pretix/base/exporters/customers.py:100
#: pretix/base/exporters/customers.py:101 pretix/base/exporters/events.py:83
@@ -992,7 +992,7 @@ msgstr ""
#: pretix/plugins/checkinlists/exporters.py:806
#: pretix/plugins/checkinlists/exporters.py:807
msgid "No"
msgstr ""
msgstr "Không"
#: pretix/base/exporters/dekodi.py:42 pretix/base/exporters/invoices.py:66
msgctxt "export_category"
@@ -2081,7 +2081,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:11
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:45
msgid "Product"
msgstr ""
msgstr "Sản phẩm"
#: pretix/base/exporters/orderlist.py:578
#: pretix/base/exporters/orderlist.py:583 pretix/base/forms/questions.py:655
@@ -2433,7 +2433,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/event/cancel.html:20
#: pretix/control/views/item.py:949
msgid "Paid orders"
msgstr ""
msgstr "Đơn hàng đã thanh toán"
#: pretix/base/exporters/orderlist.py:1106 pretix/control/views/item.py:954
msgid "Pending orders"
@@ -2590,7 +2590,7 @@ msgstr ""
#: pretix/plugins/reports/accountingreport.py:104
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/rule_list.html:67
msgid "All"
msgstr ""
msgstr "Tất cả"
#: pretix/base/exporters/orderlist.py:1278 pretix/control/forms/filter.py:1343
msgid "Live"
@@ -3310,7 +3310,7 @@ msgstr ""
#: pretix/base/modelimport_vouchers.py:205 pretix/base/models/items.py:1163
#: pretix/base/models/vouchers.py:263 pretix/base/models/waitinglist.py:99
msgid "Product variation"
msgstr ""
msgstr "Biến thể sản phẩm"
#: pretix/base/modelimport_orders.py:160
#: pretix/base/modelimport_vouchers.py:225
@@ -3693,19 +3693,19 @@ msgstr ""
#: pretix/base/models/checkin.py:341
msgid "Entry"
msgstr ""
msgstr "Vào"
#: pretix/base/models/checkin.py:342
msgid "Exit"
msgstr ""
msgstr "Ra"
#: pretix/base/models/checkin.py:360
msgid "Unknown ticket"
msgstr ""
msgstr "Không nhận ra vé"
#: pretix/base/models/checkin.py:361
msgid "Ticket not paid"
msgstr ""
msgstr "Vé chưa thanh toán"
#: pretix/base/models/checkin.py:362
msgid "Forbidden by custom rule"
@@ -3713,23 +3713,23 @@ msgstr ""
#: pretix/base/models/checkin.py:363
msgid "Ticket code revoked/changed"
msgstr ""
msgstr "Mã vé đã bị thu hồi / thay đổi"
#: pretix/base/models/checkin.py:364
msgid "Information required"
msgstr ""
msgstr "Thông tin được yêu cầu"
#: pretix/base/models/checkin.py:365
msgid "Ticket already used"
msgstr ""
msgstr "Vé đã được sử dụng"
#: pretix/base/models/checkin.py:366
msgid "Ticket type not allowed here"
msgstr ""
msgstr "Loại vé không được chấp nhập ở đây"
#: pretix/base/models/checkin.py:367
msgid "Ticket code is ambiguous on list"
msgstr ""
msgstr "Mã vé không rõ ràng trong danh sách"
#: pretix/base/models/checkin.py:368
msgid "Server error"
@@ -3737,15 +3737,15 @@ msgstr ""
#: pretix/base/models/checkin.py:369
msgid "Ticket blocked"
msgstr ""
msgstr "Vé đã bị khoá"
#: pretix/base/models/checkin.py:370
msgid "Order not approved"
msgstr ""
msgstr "Đơn hàng không được chấp nhận"
#: pretix/base/models/checkin.py:371
msgid "Ticket not valid at this time"
msgstr ""
msgstr "Vé không hợp lệ tại thời điểm này"
#: pretix/base/models/customers.py:55
msgid "Provider name"
@@ -3844,7 +3844,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/organizers/gates.html:16
#: pretix/plugins/checkinlists/exporters.py:754
msgid "Gate"
msgstr ""
msgstr "Cổng"
#: pretix/base/models/devices.py:132
#: pretix/control/templates/pretixcontrol/organizers/devices.html:83
@@ -5225,7 +5225,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_order_status.html:30
#: pretix/presale/templates/pretixpresale/organizers/customer_membership.html:78
msgid "Canceled"
msgstr ""
msgstr "Đã huỷ"
#: pretix/base/models/memberships.py:134
#: pretix/control/templates/pretixcontrol/organizers/customer.html:115
@@ -5742,7 +5742,7 @@ msgstr ""
#: pretix/base/models/vouchers.py:201 pretix/control/views/vouchers.py:119
msgid "Redeemed"
msgstr ""
msgstr "Đã đổi"
#: pretix/base/models/vouchers.py:206
msgid ""
@@ -6758,15 +6758,15 @@ msgstr ""
#: pretix/base/reldate.py:35
msgid "Event start"
msgstr ""
msgstr "Sự kiện bắt đầu"
#: pretix/base/reldate.py:36
msgid "Event end"
msgstr ""
msgstr "Sự kiện kết thúc"
#: pretix/base/reldate.py:37
msgid "Event admission"
msgstr ""
msgstr "Ghi danh sự kiện"
#: pretix/base/reldate.py:38
msgid "Presale start"
@@ -10554,7 +10554,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:355
#: pretix/control/templates/pretixcontrol/subevents/bulk.html:364
msgid "minutes"
msgstr ""
msgstr "phút"
#: pretix/base/templates/pretixbase/forms/widgets/reldatetime.html:23
msgid "at"
@@ -11785,7 +11785,7 @@ msgstr ""
#: pretix/control/forms/filter.py:1953 pretix/control/forms/filter.py:1955
#: pretix/control/forms/filter.py:2523 pretix/control/forms/filter.py:2525
msgid "Search query"
msgstr ""
msgstr "Truy vấn tìm kiếm"
#: pretix/control/forms/filter.py:1423 pretix/control/forms/filter.py:1496
#: pretix/control/templates/pretixcontrol/organizers/customer.html:45
@@ -11906,7 +11906,7 @@ msgstr ""
#: pretix/control/forms/filter.py:2019
msgid "Valid"
msgstr ""
msgstr "Hợp lệ"
#: pretix/control/forms/filter.py:2020
msgid "Unredeemed"
@@ -14831,7 +14831,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/order_pay_change.html:67
#: pretix/presale/templates/pretixpresale/event/position_change.html:29
msgid "Continue"
msgstr ""
msgstr "Tiếp tục"
#: pretix/control/templates/pretixcontrol/auth/oauth_authorization.html:8
msgid "Authorize an application"
@@ -15292,7 +15292,7 @@ msgstr[0] ""
#: pretix/presale/templates/pretixpresale/event/position_change.html:24
#: pretix/presale/templates/pretixpresale/event/position_modify.html:44
msgid "Cancel"
msgstr ""
msgstr "Huỷ"
#: pretix/control/templates/pretixcontrol/checkin/bulk_revert_confirm.html:27
#: pretix/control/templates/pretixcontrol/checkin/list_delete.html:24
@@ -15401,7 +15401,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:14
#: pretix/plugins/checkinlists/exporters.py:755
msgid "Result"
msgstr ""
msgstr "Kết quả"
#: pretix/control/templates/pretixcontrol/checkin/checkins.html:78
#: pretix/control/templates/pretixcontrol/order/index.html:391
@@ -15697,7 +15697,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:68
msgid "Additional information required"
msgstr ""
msgstr "Yêu cầu thông tin bổ sung"
#: pretix/control/templates/pretixcontrol/checkin/simulator.html:70
msgid ""
@@ -18866,7 +18866,7 @@ msgstr ""
#: pretix/plugins/reports/exporters.py:957
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html:449
msgid "Total"
msgstr ""
msgstr "Tổng cộng"
#: pretix/control/templates/pretixcontrol/order/index.html:712
#: pretix/presale/templates/pretixpresale/event/order.html:209
@@ -24712,7 +24712,7 @@ msgstr ""
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:80
msgid "Comment:"
msgstr ""
msgstr "Bình luận:"
#: pretix/plugins/banktransfer/templates/pretixplugins/banktransfer/transaction_list.html:98
msgid "No order code detected"
@@ -24979,7 +24979,7 @@ msgstr ""
#: pretix/plugins/paypal2/payment.py:136 pretix/plugins/paypal2/payment.py:1063
#: pretix/plugins/paypal2/payment.py:1064 pretix/plugins/stripe/payment.py:1915
msgid "PayPal"
msgstr ""
msgstr "PayPal"
#: pretix/plugins/paypal/apps.py:53
msgid ""
@@ -26430,7 +26430,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py:339 pretix/plugins/stripe/payment.py:1591
msgid "giropay"
msgstr ""
msgstr "giropay"
#: pretix/plugins/stripe/payment.py:341 pretix/plugins/stripe/payment.py:349
#: pretix/plugins/stripe/payment.py:357 pretix/plugins/stripe/payment.py:365
@@ -26445,7 +26445,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py:347 pretix/plugins/stripe/payment.py:1627
msgid "iDEAL"
msgstr ""
msgstr "iDEAL"
#: pretix/plugins/stripe/payment.py:355 pretix/plugins/stripe/payment.py:1652
msgid "Alipay"
@@ -26453,11 +26453,11 @@ msgstr ""
#: pretix/plugins/stripe/payment.py:363 pretix/plugins/stripe/payment.py:1664
msgid "Bancontact"
msgstr ""
msgstr "Bancontact"
#: pretix/plugins/stripe/payment.py:371
msgid "SEPA Direct Debit"
msgstr ""
msgstr "Ghi nợ trực tiếp SEPA"
#: pretix/plugins/stripe/payment.py:374
msgid ""
@@ -26485,7 +26485,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py:398
msgid "SOFORT"
msgstr ""
msgstr "SOFORT"
#: pretix/plugins/stripe/payment.py:401
msgid ""
@@ -27114,7 +27114,7 @@ msgstr ""
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:23
msgid "Ticket design"
msgstr ""
msgstr "Thiết kế vé"
#: pretix/plugins/ticketoutputpdf/templates/pretixplugins/ticketoutputpdf/edit.html:27
msgid "You can modify the design after you saved this page."
@@ -29650,7 +29650,7 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/postmessage.html:21
#: pretix/presale/templates/pretixpresale/waiting.html:22
msgid "We are processing your request …"
msgstr ""
msgstr "Chúng tôi đang xử lý yêu cầu …"
#: pretix/presale/utils.py:256 pretix/presale/utils.py:389
#: pretix/presale/utils.py:390
@@ -29956,4 +29956,4 @@ msgstr ""
#: pretix/settings.py:748
msgid "Kosovo"
msgstr ""
msgstr "Kosovo"

View File

@@ -3,83 +3,84 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-05-08 13:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"PO-Revision-Date: 2024-05-30 17:00+0000\n"
"Last-Translator: Luan Thien <vanthienluan@gmail.com>\n"
"Language-Team: Vietnamese <https://translate.pretix.eu/projects/pretix/"
"pretix-js/vi/>\n"
"Language: vi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.5.5\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:56
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:62
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:68
msgid "Marked as paid"
msgstr ""
msgstr "Chuyển thành Đã thanh toán"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js:76
msgid "Comment:"
msgstr ""
msgstr "Bình luận:"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:34
msgid "PayPal"
msgstr ""
msgstr "PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:35
msgid "Venmo"
msgstr ""
msgstr "Venmo"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:36
#: pretix/static/pretixpresale/js/walletdetection.js:38
msgid "Apple Pay"
msgstr ""
msgstr "Apple Pay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:37
msgid "Itaú"
msgstr ""
msgstr "Itaú"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:38
msgid "PayPal Credit"
msgstr ""
msgstr "Tín dụng PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:39
msgid "Credit Card"
msgstr ""
msgstr "Thẻ tín dụng"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:40
msgid "PayPal Pay Later"
msgstr ""
msgstr "PayPal Pay Later"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:41
msgid "iDEAL"
msgstr ""
msgstr "iDEAL"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:42
msgid "SEPA Direct Debit"
msgstr ""
msgstr "Ghi nợ trực tiếp SEPA"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:43
msgid "Bancontact"
msgstr ""
msgstr "Bancontact"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:44
msgid "giropay"
msgstr ""
msgstr "giropay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:45
msgid "SOFORT"
msgstr ""
msgstr "SOFORT"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:46
msgid "eps"
msgstr ""
msgstr "eps"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:47
msgid "MyBank"
@@ -132,7 +133,7 @@ msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:167
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:48
msgid "Continue"
msgstr ""
msgstr "Tiếp tục"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:225
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:244
@@ -141,199 +142,199 @@ msgstr ""
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:317
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:341
msgid "Confirming your payment …"
msgstr ""
msgstr "Xác nhận thanh toán…"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js:254
msgid "Payment method unavailable"
msgstr ""
msgstr "Phương thức thanh toán không khả dụng"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
msgid "Placed orders"
msgstr ""
msgstr "Đặt hàng"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:15
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:39
msgid "Paid orders"
msgstr ""
msgstr "Đơn hàng đã thanh toán"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js:27
msgid "Total revenue"
msgstr ""
msgstr "Tổng doanh thu"
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:15
msgid "Contacting Stripe …"
msgstr ""
msgstr "Đang kết nối Stripe…"
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:72
msgid "Total"
msgstr ""
msgstr "Tổng cộng"
#: pretix/plugins/stripe/static/pretixplugins/stripe/pretix-stripe.js:291
msgid "Contacting your bank …"
msgstr ""
msgstr "Đang kết nối đến ngân hàng…"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:30
msgid "Select a check-in list"
msgstr ""
msgstr "Chọn một danh sách check-in"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:31
msgid "No active check-in lists found."
msgstr ""
msgstr "Không có danh sách check-in nào đang kích hoạt."
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:32
msgid "Switch check-in list"
msgstr ""
msgstr "Chuyển danh sách check-in"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:33
msgid "Search results"
msgstr ""
msgstr "Kết quả tìm kiếm"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:34
msgid "No tickets found"
msgstr ""
msgstr "Không có vé nào được tìm thấy"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:35
msgid "Result"
msgstr ""
msgstr "Kết quả"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:36
msgid "This ticket requires special attention"
msgstr ""
msgstr "Vé này cần được chú ý đặc biệt"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:37
msgid "Switch direction"
msgstr ""
msgstr "Chuyển hướng"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:38
msgid "Entry"
msgstr ""
msgstr "Vào"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:39
msgid "Exit"
msgstr ""
msgstr "Ra"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:40
msgid "Scan a ticket or search and press return…"
msgstr ""
msgstr "Quét mã vé hoặc tìm kiếm và nhấn Enter…"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:41
msgid "Load more"
msgstr ""
msgstr "Tải thêm"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:42
msgid "Valid"
msgstr ""
msgstr "Hợp lệ"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:43
msgid "Unpaid"
msgstr ""
msgstr "Chưa thanh toán"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:44
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:45
msgid "Canceled"
msgstr ""
msgstr "Đã huỷ"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:46
msgid "Redeemed"
msgstr ""
msgstr "Đã đổi"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:47
msgid "Cancel"
msgstr ""
msgstr "Huỷ"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:49
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:58
msgid "Ticket not paid"
msgstr ""
msgstr "Vé chưa thanh toán"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:50
msgid "This ticket is not yet paid. Do you want to continue anyways?"
msgstr ""
msgstr "Vé này chưa được thanh toán. Tiếp tục thực hiện?"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:51
msgid "Additional information required"
msgstr ""
msgstr "Yêu cầu thông tin bổ sung"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:52
msgid "Valid ticket"
msgstr ""
msgstr "Vé hợp lệ"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:53
msgid "Exit recorded"
msgstr ""
msgstr "Đã ghi nhận Rời khỏi"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:54
msgid "Ticket already used"
msgstr ""
msgstr "Vé đã được sử dụng"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:55
msgid "Information required"
msgstr ""
msgstr "Thông tin được yêu cầu"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:56
msgid "Unknown ticket"
msgstr ""
msgstr "Không nhận ra vé"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:57
msgid "Ticket type not allowed here"
msgstr ""
msgstr "Loại vé không được chấp nhập ở đây"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:59
msgid "Entry not allowed"
msgstr ""
msgstr "Không cho phép vào"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:60
msgid "Ticket code revoked/changed"
msgstr ""
msgstr "Mã vé đã bị thu hồi / thay đổi"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:61
msgid "Ticket blocked"
msgstr ""
msgstr "Vé đã bị khoá"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:62
msgid "Ticket not valid at this time"
msgstr ""
msgstr "Vé không hợp lệ tại thời điểm này"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:63
msgid "Order canceled"
msgstr ""
msgstr "Đã huỷ đơn hàng"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:64
msgid "Ticket code is ambiguous on list"
msgstr ""
msgstr "Mã vé không rõ ràng trong danh sách"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:65
msgid "Order not approved"
msgstr ""
msgstr "Đơn hàng không được chấp nhận"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:66
msgid "Checked-in Tickets"
msgstr ""
msgstr "Vé đã check-in"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:67
msgid "Valid Tickets"
msgstr ""
msgstr "Những vé hợp lệ"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:68
msgid "Currently inside"
msgstr ""
msgstr "Hiện đang ở bên trong"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:69
#: pretix/static/pretixcontrol/js/ui/question.js:137
#: pretix/static/pretixpresale/js/ui/questions.js:270
msgid "Yes"
msgstr ""
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/main.js:70
#: pretix/static/pretixcontrol/js/ui/question.js:138
#: pretix/static/pretixpresale/js/ui/questions.js:270
msgid "No"
msgstr ""
msgstr "Không"
#: pretix/static/lightbox/js/lightbox.js:96
msgid "close"
msgstr ""
msgstr "đóng"
#: pretix/static/pretixbase/js/asynctask.js:58
#: pretix/static/pretixbase/js/asynctask.js:135
@@ -341,11 +342,13 @@ msgid ""
"Your request is currently being processed. Depending on the size of your "
"event, this might take up to a few minutes."
msgstr ""
"Yêu cầu của bạn đang được xử lý. Tuỳ thuộc vào quy mô của sự kiện, quá trình "
"có thể mất vài phút."
#: pretix/static/pretixbase/js/asynctask.js:63
#: pretix/static/pretixbase/js/asynctask.js:140
msgid "Your request has been queued on the server and will soon be processed."
msgstr ""
msgstr "Yêu cầu của bạn đã được tiếp nhận và sẽ sớm được xử lý."
#: pretix/static/pretixbase/js/asynctask.js:69
#: pretix/static/pretixbase/js/asynctask.js:146
@@ -354,34 +357,36 @@ msgid ""
"If this takes longer than two minutes, please contact us or go back in your "
"browser and try again."
msgstr ""
"Chúng tôi đã nhận được yêu cầu của bạn nhưng chờ để xử lý. Vui lòng liên hệ "
"cho chúng tôi hoặc thực hiện lại nếu quá trình xử lý kéo dài hơn 2 phút."
#: pretix/static/pretixbase/js/asynctask.js:105
#: pretix/static/pretixbase/js/asynctask.js:193
#: pretix/static/pretixbase/js/asynctask.js:198
#: pretix/static/pretixcontrol/js/ui/mail.js:24
msgid "An error of type {code} occurred."
msgstr ""
msgstr "Đã xảy ra lỗi {code}."
#: pretix/static/pretixbase/js/asynctask.js:108
msgid ""
"We currently cannot reach the server, but we keep trying. Last error code: "
"{code}"
msgstr ""
msgstr "Mất kết nối đến server, đang kết nối lại. Mã lỗi: {code}"
#: pretix/static/pretixbase/js/asynctask.js:160
#: pretix/static/pretixcontrol/js/ui/mail.js:21
msgid "The request took too long. Please try again."
msgstr ""
msgstr "Yêu cầu quá lâu. Vui lòng thực hiện lại."
#: pretix/static/pretixbase/js/asynctask.js:201
#: pretix/static/pretixcontrol/js/ui/mail.js:26
msgid ""
"We currently cannot reach the server. Please try again. Error code: {code}"
msgstr ""
msgstr "Không thể kết nối đến máy chủ. Vui lòng thử lại. Mã lỗi: {code}"
#: pretix/static/pretixbase/js/asynctask.js:230
msgid "We are processing your request …"
msgstr ""
msgstr "Chúng tôi đang xử lý yêu cầu …"
#: pretix/static/pretixbase/js/asynctask.js:238
msgid ""
@@ -389,77 +394,79 @@ msgid ""
"than one minute, please check your internet connection and then reload this "
"page and try again."
msgstr ""
"Đang gửi yêu cầu đến máy chủ. Nếu quá trình này kéo dài hơn 1 phút, vui lòng "
"kiểm tra lại kết nối Internet, tải lại trang và thử lại."
#: pretix/static/pretixbase/js/asynctask.js:301
#: pretix/static/pretixcontrol/js/ui/main.js:71
msgid "Close message"
msgstr ""
msgstr "Đóng tin nhắn"
#: pretix/static/pretixcontrol/js/clipboard.js:23
msgid "Copied!"
msgstr ""
msgstr "Đã sao chép!"
#: pretix/static/pretixcontrol/js/clipboard.js:29
msgid "Press Ctrl-C to copy!"
msgstr ""
msgstr "Nhấn Ctrl-C để sao chép!"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:12
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:18
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:24
msgid "is one of"
msgstr ""
msgstr "là một trong"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:30
msgid "is before"
msgstr ""
msgstr "là trước"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:34
msgid "is after"
msgstr ""
msgstr "là sau"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:40
msgid "="
msgstr ""
msgstr "="
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:99
msgid "Product"
msgstr ""
msgstr "Sản phẩm"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:103
msgid "Product variation"
msgstr ""
msgstr "Biến thể sản phẩm"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:107
msgid "Gate"
msgstr ""
msgstr "Cổng"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:111
msgid "Current date and time"
msgstr ""
msgstr "Ngày và giờ hiện tại"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:115
msgid "Current day of the week (1 = Monday, 7 = Sunday)"
msgstr ""
msgstr "Ngày hiện tại trong tuần (1 = Thứ 2, 7 = Chủ nhật)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:119
msgid "Current entry status"
msgstr ""
msgstr "Trạng thái vào hiện tại"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:123
msgid "Number of previous entries"
msgstr ""
msgstr "Số lượng các mục trước"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:127
msgid "Number of previous entries since midnight"
msgstr ""
msgstr "Số mục trước đó tính từ nửa đêm"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:131
msgid "Number of previous entries since"
msgstr ""
msgstr "Số mục trước từ khi"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:135
msgid "Number of previous entries before"
msgstr ""
msgstr "Số mục trước trước lúc"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:139
msgid "Number of days with a previous entry"
@@ -483,157 +490,159 @@ msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:182
msgid "All of the conditions below (AND)"
msgstr ""
msgstr "Tất cả các điều kiện bên dưới (và)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:183
msgid "At least one of the conditions below (OR)"
msgstr ""
msgstr "Tối thiểu một điều kiện bên dưới (hoặc)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:184
msgid "Event start"
msgstr ""
msgstr "Sự kiện bắt đầu"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:185
msgid "Event end"
msgstr ""
msgstr "Sự kiện kết thúc"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:186
msgid "Event admission"
msgstr ""
msgstr "Ghi danh sự kiện"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:187
msgid "custom date and time"
msgstr ""
msgstr "tuỳ chỉnh ngày và giờ"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:188
msgid "custom time"
msgstr ""
msgstr "tuỷ chỉnh giờ"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:189
msgid "Tolerance (minutes)"
msgstr ""
msgstr "Tolerance (phút)"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:190
msgid "Add condition"
msgstr ""
msgstr "Thêm điều kiện"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:191
msgid "minutes"
msgstr ""
msgstr "phút"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:192
msgid "Duplicate"
msgstr ""
msgstr "Nhân bản"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:193
msgctxt "entry_status"
msgid "present"
msgstr ""
msgstr "có mặt"
#: pretix/static/pretixcontrol/js/ui/checkinrules.js:194
msgctxt "entry_status"
msgid "absent"
msgstr ""
msgstr "vắng"
#: pretix/static/pretixcontrol/js/ui/editor.js:72
msgid "Check-in QR"
msgstr ""
msgstr "Mã QR Check-in"
#: pretix/static/pretixcontrol/js/ui/editor.js:387
msgid "The PDF background file could not be loaded for the following reason:"
msgstr ""
msgstr "Không thể tải ảnh nền từ file PDF vì:"
#: pretix/static/pretixcontrol/js/ui/editor.js:656
msgid "Group of objects"
msgstr ""
msgstr "Nhóm các đối tượng"
#: pretix/static/pretixcontrol/js/ui/editor.js:661
msgid "Text object"
msgstr ""
msgstr "Văn bản"
#: pretix/static/pretixcontrol/js/ui/editor.js:663
msgid "Barcode area"
msgstr ""
msgstr "Vùng mã vạch"
#: pretix/static/pretixcontrol/js/ui/editor.js:665
msgid "Image area"
msgstr ""
msgstr "Vùng ảnh"
#: pretix/static/pretixcontrol/js/ui/editor.js:667
msgid "Powered by pretix"
msgstr ""
msgstr "Được cung cấp bởi pretix"
#: pretix/static/pretixcontrol/js/ui/editor.js:669
msgid "Object"
msgstr ""
msgstr "Đối tượng"
#: pretix/static/pretixcontrol/js/ui/editor.js:673
msgid "Ticket design"
msgstr ""
msgstr "Thiết kế vé"
#: pretix/static/pretixcontrol/js/ui/editor.js:972
msgid "Saving failed."
msgstr ""
msgstr "Không thể lưu."
#: pretix/static/pretixcontrol/js/ui/editor.js:1041
#: pretix/static/pretixcontrol/js/ui/editor.js:1091
msgid "Error while uploading your PDF file, please try again."
msgstr ""
msgstr "Có lỗi xảy ra khi tải file PDF lên, vui lòng thử lại."
#: pretix/static/pretixcontrol/js/ui/editor.js:1074
msgid "Do you really want to leave the editor without saving your changes?"
msgstr ""
msgstr "Bạn thực sự muốn đóng mà không lưu các thay đổi chứ?"
#: pretix/static/pretixcontrol/js/ui/mail.js:19
msgid "An error has occurred."
msgstr ""
msgstr "Đã có lỗi xảy ra."
#: pretix/static/pretixcontrol/js/ui/mail.js:52
msgid "Generating messages …"
msgstr ""
msgstr "Đang tạo lời nhắn…"
#: pretix/static/pretixcontrol/js/ui/main.js:109
msgid "Unknown error."
msgstr ""
msgstr "Lỗi không xác định."
#: pretix/static/pretixcontrol/js/ui/main.js:313
msgid "Your color has great contrast and is very easy to read!"
msgstr ""
msgstr "Bạn đã chọn màu có độ tương phản tốt và dễ đọc!"
#: pretix/static/pretixcontrol/js/ui/main.js:317
msgid "Your color has decent contrast and is probably good-enough to read!"
msgstr ""
msgstr "Bạn đã giảm độ tương phản và có lẽ khá tốt để đọc!"
#: pretix/static/pretixcontrol/js/ui/main.js:321
msgid ""
"Your color has bad contrast for text on white background, please choose a "
"darker shade."
msgstr ""
"Màu của bạn có độ tương phản kém đối với văn bản trên nền trắng, vui lòng "
"chọn màu tối hơn."
#: pretix/static/pretixcontrol/js/ui/main.js:475
#: pretix/static/pretixcontrol/js/ui/main.js:495
msgid "Search query"
msgstr ""
msgstr "Truy vấn tìm kiếm"
#: pretix/static/pretixcontrol/js/ui/main.js:493
msgid "All"
msgstr ""
msgstr "Tất cả"
#: pretix/static/pretixcontrol/js/ui/main.js:494
msgid "None"
msgstr ""
msgstr "Không có"
#: pretix/static/pretixcontrol/js/ui/main.js:498
msgid "Selected only"
msgstr ""
msgstr "Chỉ được chọn"
#: pretix/static/pretixcontrol/js/ui/main.js:828
msgid "Enter page number between 1 and %(max)s."
msgstr ""
msgstr "Nhập số trang từ 1 đến %(max)s."
#: pretix/static/pretixcontrol/js/ui/main.js:831
msgid "Invalid page number."
msgstr ""
msgstr "Số trang không hợp lệ."
#: pretix/static/pretixcontrol/js/ui/main.js:989
msgid "Use a different name internally"

View File

@@ -30,6 +30,7 @@ from django import forms
from django.conf import settings
from django.contrib import messages
from django.core.cache import cache
from django.db import transaction
from django.http import HttpRequest
from django.template.loader import get_template
from django.templatetags.static import static
@@ -54,6 +55,7 @@ from pretix.base.models import Event, Order, OrderPayment, OrderRefund, Quota
from pretix.base.payment import BasePaymentProvider, PaymentException
from pretix.base.services.mail import SendMailException
from pretix.base.settings import SettingsSandbox
from pretix.helpers import OF_SELF
from pretix.helpers.urls import build_absolute_uri as build_global_uri
from pretix.multidomain.urlreverse import build_absolute_uri, eventreverse
from pretix.plugins.paypal2.client.core.environment import (
@@ -585,6 +587,9 @@ class PaypalMethod(BasePaymentProvider):
},
})
response = self.client.execute(paymentreq)
if payment:
ReferencedPayPalObject.objects.get_or_create(order=payment.order, payment=payment, reference=response.result.id)
except IOError as e:
if "RESOURCE_NOT_FOUND" in str(e):
messages.error(request, _('Your payment has failed due to a known issue within PayPal. Please try '
@@ -617,7 +622,13 @@ class PaypalMethod(BasePaymentProvider):
}
return template.render(ctx)
@transaction.atomic
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')
return
try:
if request.session.get('payment_paypal_oid', '') == '':
raise PaymentException(_('We were unable to process your payment. See below for details on how to '

View File

@@ -477,29 +477,35 @@ def webhook(request, *args, **kwargs):
amount=payment.amount - known_sum
)
elif payment.state in (OrderPayment.PAYMENT_STATE_PENDING, OrderPayment.PAYMENT_STATE_CREATED,
OrderPayment.PAYMENT_STATE_CANCELED, OrderPayment.PAYMENT_STATE_FAILED) \
and sale['status'] == 'COMPLETED':
any_captures = False
all_captures_completed = True
for purchaseunit in sale['purchase_units']:
for capture in purchaseunit['payments']['captures']:
try:
ReferencedPayPalObject.objects.get_or_create(order=payment.order, payment=payment,
reference=capture['id'])
except ReferencedPayPalObject.MultipleObjectsReturned:
pass
OrderPayment.PAYMENT_STATE_CANCELED, OrderPayment.PAYMENT_STATE_FAILED):
if sale['status'] == 'COMPLETED':
any_captures = False
all_captures_completed = True
for purchaseunit in sale['purchase_units']:
for capture in purchaseunit['payments']['captures']:
try:
ReferencedPayPalObject.objects.get_or_create(order=payment.order, payment=payment,
reference=capture['id'])
except ReferencedPayPalObject.MultipleObjectsReturned:
pass
if capture['status'] not in ('COMPLETED', 'REFUNDED', 'PARTIALLY_REFUNDED'):
all_captures_completed = False
else:
any_captures = True
if any_captures and all_captures_completed:
if capture['status'] not in ('COMPLETED', 'REFUNDED', 'PARTIALLY_REFUNDED'):
all_captures_completed = False
else:
any_captures = True
if any_captures and all_captures_completed:
try:
payment.info = json.dumps(sale.dict())
payment.save(update_fields=['info'])
payment.confirm()
except Quota.QuotaExceededException:
pass
elif sale['status'] == 'APPROVED':
request.session['payment_paypal_oid'] = payment.info_data['id']
try:
payment.info = json.dumps(sale.dict())
payment.save(update_fields=['info'])
payment.confirm()
except Quota.QuotaExceededException:
pass
payment.payment_provider.execute_payment(request, payment)
except PaymentException as e:
logger.exception('PayPal2 - Could not capture/execute_payment from Webhook: {}'.format(str(e)))
return HttpResponse(status=200)

View File

@@ -19,6 +19,9 @@
{% if social_image %}
<meta property="og:image" content="{{ social_image }}" />
{% endif %}
{% if event.settings.google_site_verification %}
<meta name="google-site-verification" content="{{ event.settings.google_site_verification }}" />
{% endif %}
{{ block.super }}
{% endblock %}
{% block above %}
@@ -68,15 +71,23 @@
{% block page %}
<div class="page-header{% if event_logo %} pager-header-with-logo{% endif %}{% if event_logo and event_logo_image_large %} logo-large{% endif %}">
<div class="{% if not event_logo or not event_logo_image_large %}pull-left flip{% endif %}">
{% if event_logo and not event_logo_show_title %}
<h1 class="sr-only">
{{ event.name }}
{% if request.event.settings.show_dates_on_frontpage and not event.has_subevents %}
<small>{{ event.get_date_range_display_as_html }}</small>
{% endif %}
</h1>
{% endif %}
{% if event_logo and event_logo_image_large %}
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}"
aria-label="{% trans 'Homepage' %}" title="{% trans 'Homepage' %}">
<img src="{{ event_logo|thumb:'1170x5000' }}" alt="" class="event-logo" />
<img src="{{ event_logo|thumb:'1170x5000' }}" alt="{{ event.name }}" class="event-logo" />
</a>
{% elif event_logo %}
<a href="{% eventurl event "presale:event.index" cart_namespace=cart_namespace|default_if_none:"" %}"
aria-label="{% trans 'Homepage' %}" title="{% trans 'Homepage' %}">
<img src="{{ event_logo|thumb:'5000x120' }}" alt="" class="event-logo" />
<img src="{{ event_logo|thumb:'5000x120' }}" alt="{{ event.name }}" class="event-logo" />
</a>
{% else %}
<h1>

View File

@@ -12,6 +12,10 @@
<meta name="robots" content="noindex, nofollow">
{% endif %}
<meta property="og:type" content="website" />
{% if organizer.settings.google_site_verification %}
<meta name="google-site-verification" content="{{ organizer.settings.google_site_verification }}" />
{% endif %}
{{ block.super }}
{% endblock %}
{% block above %}
@@ -39,6 +43,11 @@
{% block page %}
<div class="page-header{% if organizer_logo %} pager-header-with-logo{% endif %}{% if organizer_logo and organizer.settings.organizer_logo_image_large %} logo-large{% endif %}">
<div class="{% if not organizer_logo or not organizer.settings.organizer_logo_image_large %}pull-left flip{% endif %}">
{% if organizer_logo %}
<h1 class="sr-only">
{{ organizer.name }}
</h1>
{% endif %}
{% if organizer_logo and organizer.settings.organizer_logo_image_large %}
<a href="{% eventurl organizer "presale:organizer.index" %}" title="{{ organizer.name }}">
<img src="{{ organizer_logo|thumb:'1170x5000' }}" alt="{{ organizer.name }}"

View File

@@ -348,15 +348,17 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
)
original_price = item_price_override.get(item.pk, item.default_price)
voucher_reduced = False
if voucher:
price = voucher.calculate_price(original_price)
voucher_reduced = price < original_price
include_bundled = not voucher.all_bundles_included
else:
price = original_price
include_bundled = True
item.display_price = item.tax(price, currency=event.currency, include_bundled=include_bundled)
if item.free_price and item.free_price_suggestion is not None:
if item.free_price and item.free_price_suggestion is not None and not voucher_reduced:
item.suggested_price = item.tax(max(price, item.free_price_suggestion), currency=event.currency, include_bundled=include_bundled)
else:
item.suggested_price = item.display_price
@@ -399,8 +401,10 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
)
original_price = var_price_override.get(var.pk, var.price)
voucher_reduced = False
if voucher:
price = voucher.calculate_price(original_price)
voucher_reduced = price < original_price
include_bundled = not voucher.all_bundles_included
else:
price = original_price
@@ -408,10 +412,10 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web', require
var.display_price = var.tax(price, currency=event.currency, include_bundled=include_bundled)
if item.free_price and var.free_price_suggestion is not None:
if item.free_price and var.free_price_suggestion is not None and not voucher_reduced:
var.suggested_price = item.tax(max(price, var.free_price_suggestion), currency=event.currency,
include_bundled=include_bundled)
elif item.free_price and item.free_price_suggestion is not None:
elif item.free_price and item.free_price_suggestion is not None and not voucher_reduced:
var.suggested_price = item.tax(max(price, item.free_price_suggestion), currency=event.currency,
include_bundled=include_bundled)
else:

View File

@@ -20,6 +20,7 @@ DJANGO_SETTINGS_MODULE = tests.settings
addopts = --reruns 3 -rw
filterwarnings =
error
ignore:.*invalid escape sequence.*:
ignore:The 'warn' method is deprecated:DeprecationWarning
ignore::django.utils.deprecation.RemovedInDjango51Warning:django.core.files.storage
ignore:.*index_together.*:django.utils.deprecation.RemovedInDjango51Warning: