Compare commits

..
Author SHA1 Message Date
Richard Schreiber 6a5079b689 Update orders.rst 2026-08-05 10:20:15 +02:00
Richard Schreiber a70d7afa6d Fix API-docs example for addon_to on order-change 2026-08-05 09:27:33 +02:00
16 changed files with 444 additions and 503 deletions
+2 -2
View File
@@ -2038,7 +2038,7 @@ Manipulating individual positions
* ``order`` (mandatory, specified as a string mapping to a ``code``)
* ``addon_to`` (optional, specified as an integer mapping to the ``positionid`` of the parent position)
* ``addon_to`` (optional, specified as an integer mapping to ``positionid`` - the number of the position within the order, see :ref:`_order-position-resource` - of the parent position)
* ``item`` (mandatory)
@@ -2348,7 +2348,7 @@ otherwise, such as splitting an order or changing fees.
"subevent": 562,
"seat": "seat-guid-2",
"price": "99.99",
"addon_to": 12374,
"addon_to": 1,
"attendee_name": "Peter",
}
],
+2 -2
View File
@@ -48,9 +48,9 @@ dependencies = [
"django-hijack==3.7.*",
"django-i18nfield==1.11.*",
"django-libsass==0.9",
"django-localflavor==5.1",
"django-localflavor==5.0",
"django-markup",
"django-oauth-toolkit==3.4.*",
"django-oauth-toolkit==2.3.*",
"django-otp==1.7.*",
"django-phonenumber-field==8.5.*",
"django-querytagger==0.0.3",
+1 -25
View File
@@ -20,11 +20,8 @@
# <https://www.gnu.org/licenses/>.
#
import logging
from datetime import timedelta
from django.contrib.auth.models import AnonymousUser
from django.db import DatabaseError
from django.utils.timezone import now
from django_scopes import scopes_disabled
from rest_framework import exceptions
from rest_framework.authentication import TokenAuthentication
@@ -33,7 +30,6 @@ from pretix.api.auth.devicesecurity import (
FullAccessSecurityProfile, get_all_security_profiles,
)
from pretix.base.models import Device
from pretix.base.models.devices import DeviceLastSeen
logger = logging.getLogger(__name__)
@@ -46,7 +42,7 @@ class DeviceTokenAuthentication(TokenAuthentication):
model = self.get_model()
try:
with scopes_disabled():
device = model.objects.select_related('organizer', 'last_seen').get(api_token=key)
device = model.objects.select_related('organizer').get(api_token=key)
except model.DoesNotExist:
raise exceptions.AuthenticationFailed('Invalid token.')
@@ -57,7 +53,6 @@ class DeviceTokenAuthentication(TokenAuthentication):
logging.warning(f'Connection attempt of revoked device {device.pk}.')
raise exceptions.AuthenticationFailed('Device access has been revoked.')
self._update_last_seen(device)
return AnonymousUser(), device
def authenticate(self, request):
@@ -68,22 +63,3 @@ class DeviceTokenAuthentication(TokenAuthentication):
if not profile.is_allowed(request):
raise exceptions.PermissionDenied('Request denied by device security profile.')
return r
def _update_last_seen(self, device: Device):
try:
try:
last_seen_obj = device.last_seen
except DeviceLastSeen.DoesNotExist:
# First request from device, create model, ignore result. Use get_or_create to be safe
# against concurrent create requests
DeviceLastSeen.objects.get_or_create(device=device, last_seen=now())
else:
if now() - last_seen_obj.last_seen < timedelta(seconds=10):
# We don't need to know the last seen info of a device to more precision than this,
# so we can avoid some database writes if the device is bursting a lot of requests.
return
last_seen_obj.last_seen = now()
last_seen_obj.save(update_fields=["last_seen"])
except DatabaseError:
# Do not stop the request from happening
logger.exception("Database error while updating last_seen")
@@ -1,43 +0,0 @@
# Generated by Django 5.2.16 on 2026-08-05 08:00
import django.db.models.deletion
from django.db import migrations, models
import pretix.helpers.database
class Migration(migrations.Migration):
dependencies = [
("pretixbase", "0306_alter_eventmetaproperty_unique_together"),
]
operations = [
migrations.CreateModel(
name="DeviceLastSeen",
fields=[
(
"id",
models.BigAutoField(
auto_created=True, primary_key=True, serialize=False
),
),
("last_seen", models.DateTimeField(auto_now=True)),
(
"device",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
to="pretixbase.device",
),
),
],
),
migrations.AddIndex(
model_name="devicelastseen",
index=pretix.helpers.database.BrinIndexIgnoredOnSQLite(
models.F("last_seen"),
autosummarize=True,
name="pretixbase_device_last_seen",
),
),
]
-20
View File
@@ -32,7 +32,6 @@ from pretix.base.models import LoggedModel
from pretix.base.permissions import (
AnyPermissionOf, assert_valid_event_permission,
)
from pretix.helpers import BrinIndexIgnoredOnSQLite
@scopes_disabled()
@@ -288,22 +287,3 @@ class Device(LoggedModel):
return self.get_events_with_any_permission()
else:
return self.organizer.events.none()
class DeviceLastSeen(models.Model):
# This is a separate model since we expect it to get A LOT of writes and PostgreSQL always
# writes full rows and then needs to update all indexes on the row, so this is going to save a
# lot of write traffic on the databse
device = models.OneToOneField("Device", on_delete=models.CASCADE, related_name="last_seen")
last_seen = models.DateTimeField(auto_now=True)
class Meta:
indexes = [
BrinIndexIgnoredOnSQLite(
# BRIN indexes are highly efficient on lots of updates, especially of chronological data
# and especially if we later want to query them by range, as we likely want to.
"last_seen",
name="pretixbase_device_last_seen",
autosummarize=True
)
]
+3 -11
View File
@@ -801,10 +801,11 @@ def get_available_placeholders(event, base_parameters, rich=False):
return params
def prepare_sample_context_for_preview(placeholder_to_sample):
def get_sample_context(event, context_parameters, rich=True):
context_dict = {}
lbl = _('This value will be replaced based on dynamic parameters.')
for k, sample in placeholder_to_sample.items():
for k, v in get_available_placeholders(event, context_parameters, rich=rich).items():
sample = v.render_sample(event)
if isinstance(sample, PlainHtmlAlternativeString):
context_dict[k] = PlainHtmlAlternativeString(
'<{el} class="placeholder" title="{title}">{plain}</{el}>'.format(
@@ -829,12 +830,3 @@ def prepare_sample_context_for_preview(placeholder_to_sample):
escape(sample)
))
return context_dict
def get_sample_context(event, context_parameters, rich=True):
return prepare_sample_context_for_preview(
{
k: v.render_sample(event)
for k, v in get_available_placeholders(event, context_parameters, rich=rich).items()
}
)
+2 -2
View File
@@ -269,8 +269,8 @@ class MailSettingsSetupView(TemplateView):
if settings.MAIL_CUSTOM_SENDER_DMARC_REQUIRED:
dmarc_record = get_dmarc_record(hostname)
if not dmarc_record:
dmarc_warning = _(
'We did not find a DMARC record for your domain. This means that there is a very high chance '
spf_warning = _(
'We did not find DMARC record for your domain. This means that there is a very high chance '
'most of the emails will be rejected or marked as spam. You should update the DNS settings '
'of your domain.'
)
+1 -1
View File
@@ -382,7 +382,7 @@ class OrderOverpaidRefundBulkActionView(BaseOrderBulkActionView):
'provider': refund.provider,
}, user=self.request.user)
payment.payment_provider.execute_refund(refund)
return bool(proposals)
return True
except (ValueError, PaymentException):
return False
+10 -6
View File
@@ -108,7 +108,6 @@ from pretix.base.services.export import (
init_organizer_exporters, multiexport, scheduled_organizer_export,
)
from pretix.base.services.mail import mail, prefix_subject
from pretix.base.services.placeholders import prepare_sample_context_for_preview
from pretix.base.templatetags.rich_text import markdown_compile_email
from pretix.base.views.tasks import AsyncAction
from pretix.control.forms.exports import ScheduledOrganizerExportForm
@@ -346,11 +345,16 @@ class MailSettingsPreview(OrganizerPermissionRequiredMixin, View):
# get all supported placeholders with dummy values
def placeholders(self, item):
ctx = prepare_sample_context_for_preview(
MailSettingsForm(obj=self.request.organizer)._get_sample_context(
MailSettingsForm.base_context[item]
)
)
ctx = {}
for p, s in MailSettingsForm(obj=self.request.organizer)._get_sample_context(
MailSettingsForm.base_context[item]).items():
if s.strip().startswith('*'):
ctx[p] = s
else:
ctx[p] = '<span class="placeholder" title="{}">{}</span>'.format(
_('This value will be replaced based on dynamic parameters.'),
s
)
return self.SafeDict(ctx)
def post(self, request, *args, **kwargs):
-19
View File
@@ -22,7 +22,6 @@
import contextlib
from django.conf import settings
from django.contrib.postgres.indexes import BrinIndex
from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured
from django.db import connection, transaction
from django.db.models import (
@@ -286,21 +285,3 @@ def get_deterministic_ordering(model, ordering):
# on the primary key to provide total ordering.
ordering.append("-pk")
return ordering
class IgnoreOnSQLiteMixin:
# Mixin to allow defining PostgreSQL-specific indexes that will just not be created
# on SQLite. SQLite is supported for testing only anyways!
def create_sql(self, model, schema_editor, *args, **kwargs):
if "sqlite" in settings.DATABASES["default"]["ENGINE"]:
return ""
return super().create_sql(model, schema_editor, *args, **kwargs)
def remove_sql(self, model, schema_editor, **kwargs):
if "sqlite" in settings.DATABASES["default"]["ENGINE"]:
return ""
return super().remove_sql(model, schema_editor, **kwargs)
class BrinIndexIgnoredOnSQLite(IgnoreOnSQLiteMixin, BrinIndex):
pass
+211 -133
View File
@@ -4,10 +4,10 @@ msgstr ""
"Project-Id-Version: 1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
"PO-Revision-Date: 2026-07-31 18:00+0000\n"
"PO-Revision-Date: 2026-07-27 17:00+0000\n"
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/"
"da/>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix/da/"
">\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -1381,8 +1381,10 @@ msgid "Membership type"
msgstr "Medlemskabstype"
#: pretix/base/exporters/customers.py
#, fuzzy
#| msgid "Purchase time"
msgid "Purchase ticket"
msgstr "Køb billet"
msgstr "Købsdato"
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
#: pretix/base/exporters/waitinglist.py pretix/base/forms/questions.py
@@ -1399,8 +1401,10 @@ msgid "Start date"
msgstr "Starttidspunkt"
#: pretix/base/exporters/customers.py
#, fuzzy
#| msgid "Start time from"
msgid "Start time"
msgstr "Starttidspunkt"
msgstr "Starttidspunkt fra"
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
#: pretix/base/exporters/waitinglist.py pretix/base/models/memberships.py
@@ -1413,8 +1417,10 @@ msgid "End date"
msgstr "Sluttidspunkt"
#: pretix/base/exporters/customers.py
#, fuzzy
#| msgid "End: %(time)s"
msgid "End time"
msgstr "Sluttidspunkt"
msgstr "Slut: %(time)s"
#: pretix/base/exporters/dekodi.py pretix/base/exporters/invoices.py
msgctxt "export_category"
@@ -4635,12 +4641,16 @@ msgid "This event is remote or partially remote."
msgstr "Dette arrangement afholdes online eller delvist online."
#: pretix/base/models/event.py
#, fuzzy
#| msgid ""
#| "This will be used to let users know if the event is in a different "
#| "timezone and lets us calculate users local times."
msgid ""
"This will be used to let users know if the event is in a different timezone, "
"and to let us calculate the local time of a user."
msgstr ""
"Dette vil blive brugt til at informere brugerne om, hvorvidt begivenheden "
"finder sted i en anden tidszone, og til at beregne brugerens lokale tid."
"finder sted i en anden tidszone, og til at beregne brugernes lokale tid."
#: pretix/base/models/event.py pretix/base/models/organizer.py
#: pretix/control/navigation.py
@@ -5462,6 +5472,14 @@ msgid "Reusable media policy"
msgstr "Politik for genanvendelige medier"
#: pretix/base/models/items.py
#, fuzzy
#| msgid ""
#| "If this product should be stored on a re-usable physical medium, you can "
#| "attach a physical media policy. This is not required for regular tickets, "
#| "which just use a one-time barcode, but only for products like renewable "
#| "season tickets or re-chargeable gift card wristbands. This is an advanced "
#| "feature that also requires specific configuration of ticketing and "
#| "printing settings."
msgid ""
"If this product should be stored on a reusable physical medium, you can "
"attach a physical media policy. This is not required for regular tickets, "
@@ -5470,12 +5488,12 @@ msgid ""
"feature that also requires specific configuration of ticketing and printing "
"settings."
msgstr ""
"Hvis dette produkt skal opbevares på et genanvendeligt fysisk medium, kan du "
"knytte en politik for fysiske medier til det. Dette er ikke påkrævet for "
"almindelige billetter, som blot bruger en engangsstregkode, men gælder kun "
"for produkter som sæsonkort, der kan fornyes, eller gavekortarmbånd, som kan "
"blive genopladet. Dette er en avanceret funktion, der også kræver en "
"specifik konfiguration af billet- og udskrivningsindstillingerne."
"Hvis dette produkt skal opbevares på et genanvendeligt fysisk medie, kan du "
"vedhæfte en politik for fysiske medier. Dette er ikke nødvendigt for "
"almindelige billetter, som bare bruger en engangs-stregkode, men kun for "
"produkter som f.eks. fornyelige sæsonkort eller genopladelige gavekort-"
"armbånd. Dette er en avanceret funktion, som også kræver en specifik "
"konfiguration af billet- og printindstillinger."
#: pretix/base/models/items.py
msgid "Reusable media type"
@@ -5519,9 +5537,6 @@ msgid ""
"prior to their usage. Therefore, the selected media policy does not make "
"sense for this media type."
msgstr ""
"Den valgte medietype kræver, at alle medier registreres i systemet, inden de "
"tages i brug. Derfor giver den valgte mediepolitik ikke mening for denne "
"medietype."
#: pretix/base/models/items.py
msgid ""
@@ -6075,16 +6090,18 @@ msgstr "afvist"
#: pretix/base/models/media.py
msgctxt "reusable_medium"
msgid "Claim token"
msgstr "Hent token"
msgstr ""
#: pretix/base/models/media.py
msgctxt "reusable_medium"
msgid "Label"
msgstr "Etiket"
msgstr ""
#: pretix/base/models/media.py
#, fuzzy
#| msgid "Linked ticket"
msgid "Linked tickets"
msgstr "Sammenkædede billetter"
msgstr "Forbundet billet"
#: pretix/base/models/media.py
msgid ""
@@ -6092,9 +6109,6 @@ msgid ""
"validity. If multiple tickets are valid at once, this will lead to failed "
"check-ins."
msgstr ""
"Hvis du linker til mere end én billet, skal du sikre dig, at der ikke er "
"nogen overlapning i gyldighedsperioden. Hvis flere billetter er gyldige på "
"samme tid, vil det medføre, at check-in mislykkes."
#: pretix/base/models/memberships.py
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html
@@ -7554,8 +7568,6 @@ msgid ""
"This payment provider exists for historical purposes only and is no longer "
"usable."
msgstr ""
"Denne betalingsudbyder findes udelukkende af historiske årsager og kan ikke "
"længere benyttes."
#: pretix/base/pdf.py
msgid "Ticket code (barcode content)"
@@ -7790,12 +7802,15 @@ msgid "Atlantis"
msgstr "Eksempelland"
#: pretix/base/pdf.py
#, fuzzy
msgid "Invoice custom recipient field"
msgstr "Brugerdefineret modtagerfelt på fakturaen"
msgstr "Fakturamodtager:"
#: pretix/base/pdf.py
#, fuzzy
#| msgid "Custom recipient field label"
msgid "Custom recipient field"
msgstr "Brugerdefineret modtagerfelt"
msgstr "Brugerdefineret etiket til modtagerfelt"
#: pretix/base/pdf.py
msgid "List of Add-Ons"
@@ -8237,7 +8252,7 @@ msgstr "Arrangement aflyst"
#: pretix/base/services/cancelevent.py
msgid "Confirm event cancellation and bulk refund"
msgstr "Bekræft aflysning af begivenhed og samlet refusion"
msgstr ""
#: pretix/base/services/cart.py pretix/base/services/modelimport.py
#: pretix/base/services/orders.py
@@ -8766,15 +8781,13 @@ msgstr "Du skal svare på spørgsmål for at gennemføre dette tjek-ind."
#: pretix/base/services/checkin.py
msgid "Ticket needs to be exchanged to a suitable medium."
msgstr "Billetten skal ombyttes til et passende medium."
msgstr ""
#: pretix/base/services/checkin.py
msgid ""
"This ticket has already been exchanged for a reusable medium that now needs "
"to be used instead."
msgstr ""
"Denne billet er allerede blevet ombyttet til et genanvendeligt medium, som "
"nu skal bruges i stedet."
#: pretix/base/services/checkin.py
msgid "This ticket has already been redeemed."
@@ -8805,8 +8818,9 @@ msgid "Your export did not contain any data."
msgstr "Din eksport indeholdt ingen data."
#: pretix/base/services/export.py
#, fuzzy
msgid "Scheduled export failed"
msgstr "Den planlagte eksport mislykkedes"
msgstr "Start eksport"
#: pretix/base/services/export.py
msgid "Permission denied."
@@ -8933,44 +8947,60 @@ msgid "You are receiving this email because you placed an order for {event}."
msgstr "Du modtager denne e-mail, fordi du har afgivet en ordre til {event}."
#: pretix/base/services/media.py
#, fuzzy
#| msgid "Invalid input type."
msgid "Invalid medium type."
msgstr "Ugyldig medietype."
msgstr "Ugyldig indtastning."
#: pretix/base/services/media.py
#, fuzzy
#| msgid "The selected media type is not enabled in your organizer settings."
msgid "Medium type is not enabled for organizer."
msgstr "Medie-typen er ikke aktiveret for arrangøren."
msgstr "Den valgte medietype er ikke aktiveret i dine arrangør-indstillinger."
#: pretix/base/services/media.py
msgid "Incorrect medium type for product."
msgstr "Forkert medietype for produktet."
msgstr ""
#: pretix/base/services/media.py
#, fuzzy
#| msgid "This ticket has already been redeemed."
msgid "Ticket is already exchanged for reusable medium."
msgstr "Billetten er allerede ombyttet til et genanvendeligt medium."
msgstr "Denne billet er allerede blevet indløst."
#: pretix/base/services/media.py
#, fuzzy
#| msgid "Reusable Medium ID"
msgid "Reusable medium not found."
msgstr "Genanvendeligt medie blev ikke fundet."
msgstr "ID for genanvendeligt medie"
#: pretix/base/services/media.py
#, fuzzy
#| msgid "The reusable medium has been created."
msgid "Reusable medium is inactive or expired."
msgstr "Det genanvendelige medium er inaktivt eller udløbet."
msgstr "Det genanvendelige medie er blevet oprettet."
#: pretix/base/services/media.py
#, fuzzy
#| msgid "The reusable medium has been created."
msgid "Reusable medium not found and could not be created."
msgstr "Genanvendeligt medie blev ikke fundet og kunne ikke oprettes."
msgstr "Det genanvendelige medie er blevet oprettet."
#: pretix/base/services/media.py
#, fuzzy
#| msgid "Reusable media type"
msgid "Reusable medium already exists."
msgstr "Det genanvendelige medie findes allerede."
msgstr "Genanvendelig medietype"
#: pretix/base/services/media.py
#, fuzzy
#| msgid "The reusable medium has been created."
msgid "Reusable medium could not be created."
msgstr "Det var ikke muligt at oprette det genanvendelige medie."
msgstr "Det genanvendelige medie er blevet oprettet."
#: pretix/base/services/media.py
msgid "Product does not support medium exchange."
msgstr "Produktet understøtter ikke udskiftning af medier."
msgstr ""
#: pretix/base/services/memberships.py
#, python-brace-format
@@ -9134,7 +9164,6 @@ msgstr "En voucher kan ikke oprettes uden kode."
msgid ""
"Voucher codes must be unique. Code \"{code}\" already exists in this import."
msgstr ""
"Kuponkoder skal være unikke. Koden \"{code}\" findes allerede i denne import."
#: pretix/base/services/modelimport.py
#, python-brace-format
@@ -9143,19 +9172,13 @@ msgid ""
msgid_plural ""
"Voucher codes must be unique. Import contains existing voucher codes {code}."
msgstr[0] ""
"Rabatkoder skal være unikke. Importen indeholder den eksisterende rabatkode "
"{code}."
msgstr[1] ""
"Rabatkoder skal være unikke. Importen indeholder de eksisterende rabatkoder "
"{code}."
#: pretix/base/services/modelimport.py
msgid ""
"Vouchers could not be imported, probably due to a voucher code already being "
"in use."
msgstr ""
"Rabatkoder kunne ikke importeres, sandsynligvis fordi en kuponkode allerede "
"var i brug."
#: pretix/base/services/orders.py
msgid ""
@@ -9439,12 +9462,16 @@ msgstr ""
"gavekort."
#: pretix/base/services/orders.py
#, fuzzy
#| msgid ""
#| "You cannot change the price of a position that has been used to issue a "
#| "gift card."
msgid ""
"You cannot change the ticket secret of a position that has been used to "
"issue a gift card."
msgstr ""
"Du kan ikke ændre billetkoden for en position, der er blevet brugt til at "
"udstede et gavekort."
"Du kan ikke ændre prisen af en post, som er blevet brugt til at udstede et "
"gavekort."
#: pretix/base/services/orders.py
#, python-brace-format
@@ -9531,9 +9558,10 @@ msgid "Something happened in your event after the export, please try again."
msgstr "Der skete noget i din begivenhed efter eksporten, prøv venligst igen."
#: pretix/base/services/shredder.py
#, python-format
#, fuzzy, python-format
#| msgid "Data shredding completed"
msgid "Data shredding completed for %(event)s"
msgstr "Datadestruktion for %(event)s er afsluttet"
msgstr "Makulering af data afsluttet"
#: pretix/base/services/stats.py
msgid "Uncategorized"
@@ -9710,24 +9738,29 @@ msgstr ""
"ind under købet."
#: pretix/base/settings.py
#, fuzzy
#| msgid "Activate re-usable media"
msgid "Activate reusable media"
msgstr "Aktiver genanvendelige medier"
#: pretix/base/settings.py
#, fuzzy
#| msgid ""
#| "The re-usable media feature allows you to connect tickets and gift cards "
#| "with physical media such as wristbands or chip cards that may be re-used "
#| "for different tickets or gift cards later."
msgid ""
"The reusable media feature allows you to connect tickets and gift cards with "
"physical media such as wristbands or chip cards that may be reused for "
"different tickets or gift cards later."
msgstr ""
"Med funktionen \"Genanvendelige medier\" kan du knytte billetter og gavekort "
"til fysiske medier som armbånd eller chipkort, som senere kan genbruges "
"til andre billetter eller gavekort."
"Funktionen \"Genanvendelige medier\" gør det muligt at forbinde billetter og "
"voucher med fysiske medier som armbånd eller chipkort, der kan genbruges til "
"andre billetter eller voucher senere."
#: pretix/base/settings.py
msgid "Enforce the usage of issued reusable media for check-in"
msgstr ""
"Gennemtving, at der udelukkende anvendes de udleverede genanvendelige medier "
"ved check-in"
#: pretix/base/settings.py
msgid ""
@@ -9735,10 +9768,6 @@ msgid ""
"medium has been created and linked to a ticket. Keeping this option turned "
"off will treat the reusable medium and ticket as equals."
msgstr ""
"Hvis denne indstilling er aktiveret, accepteres en billetstregkode ikke "
"længere, hvis der er oprettet et genanvendeligt medie, som er knyttet til en "
"billet. Hvis denne indstilling forbliver deaktiveret, behandles det "
"genanvendelige medie og billetten på samme måde."
#: pretix/base/settings.py
msgid "Length of barcodes"
@@ -11307,8 +11336,10 @@ msgid "We'll show this publicly to allow attendees to contact you."
msgstr "Vi vil vise dette offentligt, så deltagerne kan kontakte dig."
#: pretix/base/settings.py
#, fuzzy
#| msgid "Contact"
msgid "Contact URL"
msgstr "Kontakt-URL"
msgstr "Kontakt"
#: pretix/base/settings.py
msgid ""
@@ -11316,9 +11347,6 @@ msgid ""
"the email address above. Please note that you still need to add a contact "
"email address that will be shared with all emails you send."
msgstr ""
"Hvis du indstiller dette, vil kontaktlinket i sidefoden pege hertil i stedet "
"for at bruge ovenstående e-mailadresse. Bemærk, at du stadig skal tilføje en "
"kontakt-e-mailadresse, som vil blive angivet i alle de e-mails, du sender."
#: pretix/base/settings.py pretix/control/forms/event.py
msgid "Imprint URL"
@@ -13185,19 +13213,30 @@ msgstr ""
"os."
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
#, fuzzy
#| msgid ""
#| "You have requested us to cancel an event which includes a larger bulk-"
#| "refund:"
msgid "You requested to cancel an event that involves a large bulk refund:"
msgstr ""
"Du har anmodet om at annullere en begivenhed, der medfører en stor samlet "
"Du har bedt os om at aflyse et arrangement, der indebærer en større samlet "
"refusion:"
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
#, fuzzy
#| msgid "Estimated refund amount"
msgid "Estimated refund"
msgstr "Anslået tilbagebetaling"
msgstr "Anslået refusionsbeløb"
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
#, fuzzy
#| msgid ""
#| "Please confirm that you want to proceed by coping the following "
#| "confirmation code into the cancellation form:"
msgid "To confirm, paste the following code into the cancellation form:"
msgstr ""
"For at bekræfte skal du indsætte følgende kode i afbestillingsformularen:"
"Bekræft venligst, at du ønsker at fortsætte ved at indsætte følgende "
"bekræftelseskode i afmeldingsformularen:"
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
#, python-format
@@ -13205,8 +13244,6 @@ msgid ""
"Don't share this code with anyone. The %(instance)s team will never ask you "
"for it."
msgstr ""
"Del ikke denne kode med nogen. %(instance)s-teamet vil aldrig bede dig om "
"den."
#: pretix/base/templates/pretixbase/email/cancel_confirm.txt
#: pretix/base/templates/pretixbase/email/export_failed.txt
@@ -13215,8 +13252,6 @@ msgid ""
"Thanks, \n"
"The %(instance)s Team"
msgstr ""
"Tak, \n"
"%(instance)s-teamet"
#: pretix/base/templates/pretixbase/email/email_footer.html
#, python-format
@@ -13224,38 +13259,51 @@ msgid "powered by <a %(a_attr)s>pretix</a>"
msgstr "drevet af <a %(a_attr)s>pretix</a>"
#: pretix/base/templates/pretixbase/email/export_failed.txt
#, fuzzy
#| msgid "Your export failed."
msgid "Your scheduled export failed."
msgstr "Din planlagte eksport mislykkedes."
msgstr "Din eksport mislykkedes."
#: pretix/base/templates/pretixbase/email/export_failed.txt
#: pretix/control/templates/pretixcontrol/event/tax_edit.html
#, fuzzy
msgid "Reason"
msgstr "Begrundelse"
msgstr "Tilbagebetal bestilling"
#: pretix/base/templates/pretixbase/email/export_failed.txt
#, fuzzy
#| msgid "If your export fails five times in a row, it will no longer be sent."
msgid "If an export fails five times in a row, we'll stop sending it."
msgstr ""
"Hvis en eksport mislykkes fem gange i træk, vil vi stoppe med at sende den."
"Hvis din eksport mislykkes fem gange i træk, vil den ikke længere blive "
"sendt."
#: pretix/base/templates/pretixbase/email/export_failed.txt
#, fuzzy
#| msgid "You can request to cancel this order."
msgid "You can adjust or remove this export here:"
msgstr "Du kan ændre eller fjerne denne eksport her:"
msgstr "Du kan anmode om at annullere denne bestilling."
#: pretix/base/templates/pretixbase/email/notification.html
#: pretix/base/templates/pretixbase/email/notification.txt
#, fuzzy
#| msgid "You receive these emails based on your notification settings."
msgid "You're receiving this email based on your notification settings."
msgstr ""
"Du modtager denne e-mail i henhold til dine indstillinger for meddelelser."
"Du modtager disse e-mails i henhold til dine indstillinger for "
"notifikationer."
#: pretix/base/templates/pretixbase/email/notification.html
#: pretix/base/templates/pretixbase/email/notification.txt
#, fuzzy
msgid "Manage settings"
msgstr "Administrer indstillinger"
msgstr "Basisindstillinger"
#: pretix/base/templates/pretixbase/email/notification.html
#: pretix/base/templates/pretixbase/email/notification.txt
#, fuzzy
msgid "Disable all notifications"
msgstr "Deaktiver alle notifikationer"
msgstr "E-mailnotifikationer"
#: pretix/base/templates/pretixbase/email/order_details.html
msgid ""
@@ -13314,7 +13362,25 @@ msgid "Contact"
msgstr "Kontakt"
#: pretix/base/templates/pretixbase/email/shred_completed.txt
#, python-format
#, fuzzy, python-format
#| msgid ""
#| "Hello,\n"
#| "\n"
#| "we hereby confirm that the following data shredding job has been "
#| "completed:\n"
#| "\n"
#| "Organizer: %(organizer)s\n"
#| "\n"
#| "Event: %(event)s\n"
#| "\n"
#| "Data selection: %(shredders)s\n"
#| "\n"
#| "Start time: %(start_time)s (new data added after this time might not have "
#| "been deleted)\n"
#| "\n"
#| "Best regards,\n"
#| "\n"
#| "Your %(instance)s team\n"
msgid ""
"Hello,\n"
"\n"
@@ -13332,19 +13398,20 @@ msgid ""
msgstr ""
"Hej,\n"
"\n"
"Følgende datadestruktionsopgave er afsluttet:\n"
"vi bekræfter hermed, at følgende datadestruktionsopgave er afsluttet:\n"
"\n"
"- Arrangør: %(organizer)s\n"
"- Begivenhed: %(event)s\n"
"- Dataudvælgelse: %(shredders)s\n"
"- Starttidspunkt: %(start_time)s\n"
"Arrangør: %(organizer)s\n"
"\n"
"Data, der er tilføjet til begivenheden efter starttidspunktet, er muligvis "
"ikke blevet slettet.\n"
"Begivenhed: %(event)s\n"
"\n"
"Med venlig hilsen, \n"
"Dataudvælgelse: %(shredders)s\n"
"\n"
"%(instance)s-teamet\n"
"Starttidspunkt: %(start_time)s (nye data tilføjet efter dette tidspunkt er "
"muligvis ikke blevet slettet)\n"
"\n"
"Med venlig hilsen,\n"
"\n"
"Dit %(instance)s-team\n"
#: pretix/base/templates/pretixbase/forms/widgets/checkbox_sales_channel_option.html
msgid ""
@@ -13376,23 +13443,22 @@ msgstr "%(number)s dage %(relation)s %(relation_to)s på %(time_of_day)s"
#: pretix/base/templates/pretixbase/framebreak.html
#: pretix/presale/templates/pretixpresale/event/cookies.html
msgid "Please continue in a new tab"
msgstr "Fortsæt venligst i en ny fane"
msgstr ""
#: pretix/base/templates/pretixbase/framebreak.html
msgid "For security reasons, the following step is only possible in a new tab."
msgstr ""
"Af sikkerhedsmæssige årsager kan det følgende trin kun udføres i en ny fane."
#: pretix/base/templates/pretixbase/framebreak.html
msgid ""
"If the new tab did not open automatically, please click the following button:"
msgstr ""
"Hvis den nye fane ikke åbnede automatisk, skal du klikke på følgende knap:"
#: pretix/base/templates/pretixbase/framebreak.html
#: pretix/presale/templates/pretixpresale/event/cookies.html
#, fuzzy
msgid "Continue in new tab"
msgstr "Fortsæt i en ny fane"
msgstr "Opret gruppe"
#: pretix/base/templates/pretixbase/redirect.html
msgid "Redirect"
@@ -15118,11 +15184,13 @@ msgstr "Søg efter e-mailadresse eller emne"
#: pretix/control/templates/pretixcontrol/order/index.html
#: pretix/control/templates/pretixcontrol/orders/refunds.html
msgid "Source"
msgstr "Kilde"
msgstr ""
#: pretix/control/forms/filter.py
#, fuzzy
#| msgid "All vouchers"
msgid "All sources"
msgstr "Alle kilder"
msgstr "Alle vouchere"
#: pretix/control/forms/filter.py
msgid "Team actions"
@@ -15133,16 +15201,21 @@ msgid "Customer actions"
msgstr "Kundehandlinger"
#: pretix/control/forms/filter.py
#, fuzzy
#| msgid "Device status"
msgid "Device actions"
msgstr "Enhedshandlinger"
msgstr "Enhedsstatus"
#: pretix/control/forms/filter.py
#, fuzzy
#| msgid "Order email"
msgid "User email"
msgstr "Brugerens e-mailadresse"
msgstr "Bestillings-e-mail"
#: pretix/control/forms/filter.py pretix/control/navigation.py
#, fuzzy
msgid "All users"
msgstr "Alle brugere"
msgstr "Alle vouchere"
#: pretix/control/forms/global_settings.py
msgid "Additional footer text"
@@ -16651,34 +16724,40 @@ msgid ""
"because at least one of the selected vouchers has already been redeemed "
"%(max_redeemed)s times."
msgstr ""
"Du kan ikke reducere det maksimale antal indløsninger til %(max_usages)s, da "
"mindst én af de valgte kuponer allerede er blevet indløst %(max_redeemed)s "
"gange."
#: pretix/control/forms/vouchers.py
#, fuzzy
#| msgid ""
#| "You cannot create a voucher that blocks quota as the selected product or "
#| "quota is currently sold out or completely reserved."
msgid ""
"You cannot create a voucher that allows selection of a quota but has no date "
"selected."
msgstr ""
"Du kan ikke oprette en kupon, hvor det er muligt at vælge en kvote, men hvor "
"der ikke er valgt nogen dato."
"Du kan ikke oprette en rabatkode der blokerer en kvote idet det valgte "
"produkt eller kvote pt. er udsolgt eller fuldt reserveret."
#: pretix/control/forms/vouchers.py
#, fuzzy
#| msgid "The selected product does not allow to select a seat."
msgid "The selected quota does not match the selected subevent."
msgstr "Den valgte kvote stemmer ikke overens med den valgte underbegivenhed."
msgstr "Det valgte produkt tillader ikke, at du vælger en plads."
#: pretix/control/forms/vouchers.py
#, fuzzy
#| msgid ""
#| "There is not enough quota available on quota \"{}\" to perform the "
#| "operation."
msgid "There is no sufficient quota available to perform this change."
msgstr ""
"Der er ikke tilstrækkelig kvote til rådighed til at gennemføre denne ændring."
"Der er ikke enheder nok tilbage på kvoten \"{}\" til at udføre denne "
"operation."
#: pretix/control/forms/vouchers.py
msgid ""
"Changing the maximum number of usages in bulk is not supported if any of the "
"selected vouchers is assigned a seat."
msgstr ""
"Det er ikke muligt at ændre det maksimale antal anvendelser samlet, hvis en "
"af de valgte kuponer er tildelt en plads."
#: pretix/control/forms/vouchers.py
msgctxt "subevent"
@@ -16686,24 +16765,18 @@ msgid ""
"Changing the date in bulk is not supported if any of the selected vouchers "
"is assigned a seat."
msgstr ""
"Det er ikke muligt at ændre datoen for flere billetter på én gang, hvis en "
"af de valgte billetter er tildelt en plads."
#: pretix/control/forms/vouchers.py
msgid ""
"Changing the product to a quota is not supported if any of the selected "
"vouchers is assigned a seat."
msgstr ""
"Det er ikke muligt at ændre produktet til en kvote, hvis en af de valgte "
"kuponer er tildelt en plads."
#: pretix/control/forms/vouchers.py
msgid ""
"This change cannot be completed because not all assigned seats of the "
"vouchers are still available"
msgstr ""
"Denne ændring kan ikke gennemføres, da ikke alle de tildelte pladser på "
"billetterne stadig er ledige"
#: pretix/control/forms/vouchers.py
msgid "Codes"
@@ -17824,12 +17897,16 @@ msgid "The reusable medium has been changed."
msgstr "Det genanvendelige medie er blevet udskiftet."
#: pretix/control/logdisplay.py
#, fuzzy
#| msgid "The new member has been added to the team."
msgid "A new ticket has been added to the medium."
msgstr "Der er blevet tilføjet en ny billet til mediet."
msgstr "Det nye medlem er blevet føjet til gruppen."
#: pretix/control/logdisplay.py
#, fuzzy
#| msgid "{user} has been removed from the team."
msgid "A ticket has been removed from the medium."
msgstr "En billet er blevet fjernet fra mediet."
msgstr "{user} er fjernet fra gruppen."
#: pretix/control/logdisplay.py
msgid "The medium has been connected to a new ticket."
@@ -17841,8 +17918,6 @@ msgid ""
"The ticket #{positionid} was exchanged for reusable medium "
"{medium_identifier}."
msgstr ""
"Billetten #{positionid} blev ombyttet til et genanvendeligt medie "
"{medium_identifier}."
#: pretix/control/logdisplay.py
msgid "The medium has been connected to a new gift card."
@@ -18253,14 +18328,14 @@ msgid "Payment {local_id} has been confirmed."
msgstr "Betalingen {local_id} er blevet bekræftet."
#: pretix/control/logdisplay.py
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Payment {local_id} has been canceled."
msgstr "Betalingen {local_id} er blevet annulleret."
msgstr "Bestillingen er blevet annulleret."
#: pretix/control/logdisplay.py
#, python-brace-format
#, fuzzy, python-brace-format
msgid "Canceling payment {local_id} has failed."
msgstr "Det lykkedes ikke at annullere betalingen {local_id}."
msgstr "Bestillingen er blevet annulleret."
#: pretix/control/logdisplay.py
#, fuzzy, python-brace-format
@@ -21720,51 +21795,54 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "January"
msgstr "januar"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "February"
msgstr "februar"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
#, fuzzy
msgid "March"
msgstr "marts"
msgstr "Marts"
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "April"
msgstr "april"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
#, fuzzy
#| msgid "Day"
msgid "May"
msgstr "maj"
msgstr "Dag"
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "June"
msgstr "juni"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "July"
msgstr "juli"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "August"
msgstr "august"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "September"
msgstr "september"
msgstr "September"
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "October"
msgstr "oktober"
msgstr ""
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "November"
msgstr "november"
msgstr "November"
#: pretix/control/templates/pretixcontrol/global_sysreport.html
msgid "December"
msgstr "december"
msgstr "December"
#: pretix/control/templates/pretixcontrol/global_sysreport.html
#, fuzzy
+14 -14
View File
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-06 15:52+0000\n"
"PO-Revision-Date: 2026-07-31 18:00+0000\n"
"PO-Revision-Date: 2026-04-22 18:00+0000\n"
"Last-Translator: Nikolai <nikolai@lengefeldt.de>\n"
"Language-Team: Danish <https://translate.pretix.eu/projects/pretix/pretix-js/"
"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 2026.7.1\n"
"X-Generator: Weblate 5.17\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js
msgid "Marked as paid"
@@ -1306,62 +1306,62 @@ msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "January"
msgstr "januar"
msgstr "Januar"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "February"
msgstr "februar"
msgstr "Februar"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "March"
msgstr "marts"
msgstr "Marts"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "April"
msgstr "april"
msgstr "April"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "May"
msgstr "maj"
msgstr "Maj"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "June"
msgstr "juni"
msgstr "Juni"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "July"
msgstr "juli"
msgstr "Juli"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "August"
msgstr "august"
msgstr "August"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "September"
msgstr "september"
msgstr "September"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "October"
msgstr "oktober"
msgstr "Oktober"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "November"
msgstr "november"
msgstr "November"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "December"
msgstr "december"
msgstr "December"
#~ msgid "iDEAL"
#~ msgstr "iDEAL"
+19 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
"PO-Revision-Date: 2026-08-01 21:00+0000\n"
"PO-Revision-Date: 2026-07-23 15:35+0000\n"
"Last-Translator: szurofkamarciidfbe08444ef04788 <szurofkamarcii@gmail.com>\n"
"Language-Team: Hungarian <https://translate.pretix.eu/projects/pretix/pretix/"
"hu/>\n"
@@ -1377,8 +1377,10 @@ msgid "Membership type"
msgstr "Tagságtípus"
#: pretix/base/exporters/customers.py
#, fuzzy
#| msgid "Purchase time"
msgid "Purchase ticket"
msgstr "Jegy vásárlása"
msgstr "Vásárlás időpontja"
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
#: pretix/base/exporters/waitinglist.py pretix/base/forms/questions.py
@@ -1395,8 +1397,10 @@ msgid "Start date"
msgstr "Kezdő dátum"
#: pretix/base/exporters/customers.py
#, fuzzy
#| msgid "Start time from"
msgid "Start time"
msgstr "Kezdési időpont"
msgstr "Kezdési időpont ettől"
#: pretix/base/exporters/customers.py pretix/base/exporters/orderlist.py
#: pretix/base/exporters/waitinglist.py pretix/base/models/memberships.py
@@ -1409,8 +1413,10 @@ msgid "End date"
msgstr "Záró dátum"
#: pretix/base/exporters/customers.py
#, fuzzy
#| msgid "End: %(time)s"
msgid "End time"
msgstr "Záró időpont"
msgstr "Vége: %(time)s"
#: pretix/base/exporters/dekodi.py pretix/base/exporters/invoices.py
msgctxt "export_category"
@@ -4635,6 +4641,10 @@ msgid "This event is remote or partially remote."
msgstr "Ez az rendezvény távoli vagy részben távoli."
#: pretix/base/models/event.py
#, fuzzy
#| msgid ""
#| "This will be used to let users know if the event is in a different "
#| "timezone and lets us calculate users local times."
msgid ""
"This will be used to let users know if the event is in a different timezone, "
"and to let us calculate the local time of a user."
@@ -7568,11 +7578,15 @@ msgid "This gift card was used in the meantime. Please try again."
msgstr "Ezt az ajándékkártyát időközben felhasználták. Kérjük, próbálja újra."
#: pretix/base/payment.py
#, fuzzy
#| msgid ""
#| "This payment provider does not exist or the respective plugin is disabled."
msgid ""
"This payment provider exists for historical purposes only and is no longer "
"usable."
msgstr ""
"Ez a fizetési szolgáltató egy korábbi funkció volt, már nem használható."
"Ez a fizetési szolgáltató nem létezik, vagy a hozzá tartozó bővítmény le van "
"tiltva."
#: pretix/base/pdf.py
msgid "Ticket code (barcode content)"
+44 -96
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-30 13:52+0000\n"
"PO-Revision-Date: 2026-08-03 23:00+0000\n"
"Last-Translator: \"Luca Sorace \\\"Stranck\\\"\" <strdjn@gmail.com>\n"
"PO-Revision-Date: 2026-05-12 04:00+0000\n"
"Last-Translator: Stefano Campus <stefano.campus@regione.piemonte.it>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix/"
"it/>\n"
"Language: it\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 2026.7.1\n"
"X-Generator: Weblate 5.17.1\n"
#: pretix/_base_settings.py
msgid "English"
@@ -149,7 +149,7 @@ msgstr "Spagnolo (America Latina)"
#: pretix/_base_settings.py
msgid "Thai"
msgstr "Tailandese"
msgstr ""
#: pretix/_base_settings.py
msgid "Turkish"
@@ -413,7 +413,7 @@ msgstr ""
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
#, python-format
msgid "You've been invited to join %(organizer)s"
msgstr "Sei stato invitato ad entrare in %(organizer)s"
msgstr ""
#: pretix/api/serializers/organizer.py pretix/control/views/organizer.py
msgid "This user already has been invited for this team."
@@ -605,9 +605,6 @@ msgid ""
"This includes related events like creation, deletion, opening or closing of "
"quotas. No webhook is sent for changes to the resulting availability."
msgstr ""
"Questo include gli eventi relativi quali la creazione, cancellazione, "
"apertura o chiusura delle quote. Nessun webhook verrà inviato per modifiche "
"alla disponibilità."
#: pretix/api/webhooks.py
msgid "Shop taken live"
@@ -1237,9 +1234,8 @@ msgstr "Indirizzi Email (file di testo)"
#: pretix/control/templates/pretixcontrol/organizers/customer.html
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html
#: pretix/presale/views/customer.py
#, fuzzy
msgid "Memberships"
msgstr "Membership"
msgstr ""
#: pretix/base/exporters/customers.py pretix/base/models/customers.py
#: pretix/control/templates/pretixcontrol/organizers/customer.html
@@ -3034,12 +3030,11 @@ msgid ""
"The field \"%(label)s\" may not contain special characters such as "
"\"%(chars)s\"."
msgstr ""
"Il campo \"%(label)s\" non può contenere i caratteri speciali \"%(chars)s\"."
#: pretix/base/forms/questions.py
#, python-format
msgid "The field \"%(label)s\" may not contain an URL (%(url)s)."
msgstr "Il campo \"%(label)s\" non può contenere un URL (%(url)s)."
msgstr ""
#: pretix/base/forms/questions.py
msgctxt "phonenumber"
@@ -4277,9 +4272,8 @@ msgid "Ticket type not allowed here"
msgstr "Biglietto non consentito qui"
#: pretix/base/models/checkin.py
#, fuzzy
msgid "Ticket code is ambiguous on list"
msgstr "Il codice del biglietto è ambiguo sulla lista"
msgstr "Codice biglietto ambiguo nella lista"
#: pretix/base/models/checkin.py
msgid "Server error"
@@ -6173,15 +6167,14 @@ msgid "bounced"
msgstr "rimbalzato"
#: pretix/base/models/media.py
#, fuzzy
msgctxt "reusable_medium"
msgid "Claim token"
msgstr "Applica token"
msgstr ""
#: pretix/base/models/media.py
msgctxt "reusable_medium"
msgid "Label"
msgstr "Etichetta"
msgstr ""
#: pretix/base/models/media.py
#, fuzzy
@@ -6195,9 +6188,6 @@ msgid ""
"validity. If multiple tickets are valid at once, this will lead to failed "
"check-ins."
msgstr ""
"Se colleghi più di un biglietto, assicurati che la loro validità non si "
"sovrapponga. Se più biglietti sono validi contemporaneamente i check-in "
"andranno in errore."
#: pretix/base/models/memberships.py
#: pretix/presale/templates/pretixpresale/organizers/customer_memberships.html
@@ -7686,8 +7676,6 @@ msgid ""
"This payment provider exists for historical purposes only and is no longer "
"usable."
msgstr ""
"Questo provider di pagamenti esiste per ragioni storiche e non ne è più "
"possibile l'utilizzo."
#: pretix/base/pdf.py
msgid "Ticket code (barcode content)"
@@ -7855,7 +7843,7 @@ msgstr "Giorno di inizio evento"
#: pretix/base/pdf.py pretix/base/services/checkin.py
#: pretix/control/forms/filter.py
msgid "Friday"
msgstr "Venerdì"
msgstr "venerdì"
#: pretix/base/pdf.py
msgid "Event end date and time"
@@ -8399,7 +8387,7 @@ msgstr "Evento annullato"
#: pretix/base/services/cancelevent.py
msgid "Confirm event cancellation and bulk refund"
msgstr "Conferma la cancellazione dell'evento e i rimborsi di tutti gli ordini"
msgstr ""
#: pretix/base/services/cart.py pretix/base/services/modelimport.py
#: pretix/base/services/orders.py
@@ -9345,8 +9333,6 @@ msgstr "Non è possibile creare un buono senza un codice."
msgid ""
"Voucher codes must be unique. Code \"{code}\" already exists in this import."
msgstr ""
"Il codice del voucher deve essere univoco. \"{code}\" esiste già in questo "
"import."
#: pretix/base/services/modelimport.py
#, python-brace-format
@@ -9355,19 +9341,13 @@ msgid ""
msgid_plural ""
"Voucher codes must be unique. Import contains existing voucher codes {code}."
msgstr[0] ""
"Il codice del voucher deve essere univoco. \"{code}\" esiste già in questo "
"import."
msgstr[1] ""
"Il codice dei voucher deve essere univoco. \"{code}\" esiste già in questo "
"import."
#: pretix/base/services/modelimport.py
msgid ""
"Vouchers could not be imported, probably due to a voucher code already being "
"in use."
msgstr ""
"Non è stato possibile importare i voucher, probabilmente perché il codice di "
"un voucher è già in uso."
#: pretix/base/services/orders.py
msgid ""
@@ -10287,10 +10267,6 @@ msgid ""
"ID in all countries. VAT ID will be required for all business addresses in "
"the selected countries."
msgstr ""
"La partita IVA è opzionale di default, perché non tutte le aziende la "
"posseggono in tutte le nazioni. Il codice della partita IVA sarà "
"obbligatorio per tutti gli indirizzi aziendali locati nelle nazioni "
"selezionate."
#: pretix/base/settings.py
msgid "Invoice address explanation"
@@ -11340,60 +11316,50 @@ msgstr ""
#: pretix/base/settings.py
msgid "Customers can change the variation of the products they purchased"
msgstr "I clienti potranno cambiare la variation dei prodotti già acquistati"
msgstr ""
#: pretix/base/settings.py
#, fuzzy
msgid "Customers can change their selected add-on products"
msgstr "I clienti non potranno più modificare i gli add-on selezionati"
msgstr "I clienti non possono più modificare i loro ordini"
#: pretix/base/settings.py
msgid ""
"Only allow changes if the resulting price is higher or equal than the "
"previous price."
msgstr ""
"Permetti le modifiche solamente se il prezzo finale è maggiore o uguale al "
"prezzo precedente."
#: pretix/base/settings.py
msgid ""
"Only allow changes if the resulting price is higher than the previous price."
msgstr ""
"Permetti le modifiche solamente se il prezzo finale è maggiore del prezzo "
"precedente."
#: pretix/base/settings.py
msgid ""
"Only allow changes if the resulting price is equal to the previous price."
msgstr ""
"Permetti le modifiche solamente se il prezzo finale è uguale al prezzo "
"precedente."
#: pretix/base/settings.py
msgid ""
"Allow changes regardless of price, as long as no refund is required (i.e. "
"the resulting price is not lower than what has already been paid)."
msgstr ""
"Permetti le modifiche a prescindere del prezzo, a meno che non sia "
"necessario un rimborso (Il prezzo finale non è inferiore a quanto il cliente "
"ha già pagato)."
#: pretix/base/settings.py
msgid "Allow changes regardless of price, even if this results in a refund."
msgstr ""
"Permetti le modifiche a prescindere del prezzo, anche se portano ad un "
"rimborso."
#: pretix/base/settings.py
msgid "Requirement for changed prices"
msgstr "Requisiti per il cambiamento di prezzi"
msgstr ""
#: pretix/base/settings.py
msgid "Do not allow changes after"
msgstr "Non permettere modifiche dopo il"
msgstr ""
#: pretix/base/settings.py
msgid "Allow change even though the ticket has already been checked in"
msgstr "Permetti modifiche anche se il biglietto ha già effettuato il check-in"
msgstr ""
#: pretix/base/settings.py
msgid ""
@@ -11403,16 +11369,10 @@ msgid ""
"in individually. Use with care, and preferably only in combination with a "
"limitation on price changes above."
msgstr ""
"Di default, le modifiche degli ordini sono disabilitate dopo che è stato "
"effettuato il check-in con qualsiasi biglietto contenuto nell'ordine. "
"Abilitando questa opzione, disabiliterai questo controllo. Non sarà comunque "
"possibile rimuovere un add-on con cui è già stato effettuato un check-in. "
"Usa questa opzione con attenzione e, preferibilmente, solamente in "
"combinazione con una delle limitazioni sul prezzo elencate sopra."
#: pretix/base/settings.py
msgid "Allow individual attendees to change their ticket"
msgstr "Permetti ai singoli partecipanti di modificare il proprio biglietto"
msgstr ""
#: pretix/base/settings.py
msgid ""
@@ -11422,20 +11382,15 @@ msgid ""
"total price of the order. Such changes can always only be made by the main "
"customer."
msgstr ""
"Di default, solo la persona che ha effettuato l'ordine di questo biglietto "
"può eseguire modifiche. Selezionando questa opzione, anche i singoli "
"partecipanti potranno fare cambiamenti. In ogni caso, i singoli partecipanti "
"non potranno effettuare operazioni che cambiano il costo dell'ordine. Queste "
"operazioni sono possibili solamente per chi originariamente ha creato "
"l'ordine."
#: pretix/base/settings.py
msgid "Customers can cancel their unpaid orders"
msgstr "I clienti possono annullare i loro ordini non pagati"
msgstr ""
#: pretix/base/settings.py
#, fuzzy
msgid "Charge a fixed cancellation fee"
msgstr "Addebita una quota di cancellazione fissa"
msgstr "Cancellazione di"
#: pretix/base/settings.py
msgid ""
@@ -11443,58 +11398,50 @@ msgid ""
"never charged. Note that it will be your responsibility to claim the "
"cancellation fee from the user."
msgstr ""
"Interessa solamente gli ordini con pagamenti in attesa, la quota di "
"cancellazione non viene mai addebitata sugli ordini gratuiti. Nota: è tua "
"responsabilità collezionare la quota di cancellazione dall'utente."
#: pretix/base/settings.py
msgid "Charge payment, shipping and service fees"
msgstr "Addebita la quota di spedizione, pagamento e servizio"
msgstr ""
#: pretix/base/settings.py
msgid "Charge a percentual cancellation fee"
msgstr "Addebita una quota di quota di cancellazione in percentuale"
msgstr ""
#: pretix/base/settings.py
msgid "Do not allow cancellations after"
msgstr "Non permettere di annullare gli ordine dopo il"
msgstr ""
#: pretix/base/settings.py
msgid "Customers can cancel their paid orders"
msgstr "I clienti possono annullare i loro ordini già pagati"
msgstr ""
#: pretix/base/settings.py
msgid ""
"Paid money will be automatically paid back if the payment method allows it. "
"Otherwise, a manual refund will be created for you to process manually."
msgstr ""
"Il denaro già incassato sarà automaticamente restituito se il metodo di "
"pagamento lo permette. Altrimenti, un rimborso manuale verrà creato così che "
"tu possa processarlo manualmente."
#: pretix/base/settings.py pretix/control/forms/orders.py
msgid "Keep a fixed cancellation fee"
msgstr "Trattieni una quota di cancellazione fissa"
msgstr ""
#: pretix/base/settings.py
msgid "Keep payment, shipping and service fees"
msgstr "Trattieni la quota di spedizione, pagamento e servizio"
msgstr ""
#: pretix/base/settings.py pretix/control/forms/orders.py
msgid "Keep a percentual cancellation fee"
msgstr "Trattieni una quota di cancellazione in percentuale"
msgstr ""
#: pretix/base/settings.py
msgid "Allow customers to voluntarily choose a lower refund"
msgstr "Permetti si clienti di scegliere volontariamente un rimborso minore"
msgstr ""
#: pretix/base/settings.py
msgid ""
"With this option enabled, your customers can choose to get a smaller refund "
"to support you."
msgstr ""
"Con questa opzione attiva, i tuoi clienti potranno scegliere di ottenere un "
"rimborso minore al dovuto, per effettuare una donazione nei vostri confronti."
#: pretix/base/settings.py
msgid ""
@@ -20474,7 +20421,7 @@ msgstr "Abilita webhook"
#: pretix/control/templates/pretixcontrol/organizers/device_logs.html
#: pretix/control/templates/pretixcontrol/organizers/logs.html
msgid "No results"
msgstr "Nessun risultato"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html
#: pretix/control/templates/pretixcontrol/organizers/mail.html
@@ -20515,7 +20462,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/vouchers/bulk.html
#: pretix/plugins/sendmail/templates/pretixplugins/sendmail/send_form.html
msgid "Edit"
msgstr "Modifica"
msgstr ""
#: pretix/control/templates/pretixcontrol/event/mail.html
#, fuzzy
@@ -25532,7 +25479,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html
msgid "Text box"
msgstr "Riquadro testo"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html
#, fuzzy
@@ -25573,7 +25520,7 @@ msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html
msgid "Duplicate"
msgstr "Duplicato"
msgstr ""
#: pretix/control/templates/pretixcontrol/pdf/index.html
msgid "Undo"
@@ -27198,11 +27145,11 @@ msgstr ""
#: pretix/control/views/dashboards.py
msgid "Attendees (ordered)"
msgstr "Partecipanti (ordini effettuati)"
msgstr ""
#: pretix/control/views/dashboards.py
msgid "Attendees (paid)"
msgstr "Partecipanti (ordini pagati)"
msgstr ""
#: pretix/control/views/dashboards.py
#, python-brace-format
@@ -31703,11 +31650,11 @@ msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "Bancontact"
msgstr "Bancontact"
msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "SEPA Direct Debit"
msgstr "Addebito diretto SEPA"
msgstr ""
#: pretix/plugins/stripe/payment.py
msgid ""
@@ -31737,7 +31684,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "Przelewy24"
msgstr "Przelewy24"
msgstr ""
#: pretix/plugins/stripe/payment.py
#, fuzzy
@@ -31753,7 +31700,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "WeChat Pay"
msgstr "WeChat Pay"
msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "Swish"
@@ -31906,7 +31853,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "giropay"
msgstr "giropay"
msgstr ""
#: pretix/plugins/stripe/payment.py
msgid ""
@@ -31930,7 +31877,7 @@ msgstr ""
#: pretix/plugins/stripe/payment.py
msgid "iDEAL | Wero"
msgstr "iDEAL | Wero"
msgstr ""
#: pretix/plugins/stripe/payment.py
msgid ""
@@ -33674,8 +33621,9 @@ msgstr ""
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
#: pretix/presale/templates/pretixpresale/fragment_modals.html
#, fuzzy
msgid "Renew reservation"
msgstr "Rinnova scadenza"
msgstr "Descrizione"
#: pretix/presale/templates/pretixpresale/event/fragment_cart.html
#, fuzzy
+135 -98
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-06 15:52+0000\n"
"PO-Revision-Date: 2026-08-02 22:00+0000\n"
"Last-Translator: \"Luca Sorace \\\"Stranck\\\"\" <strdjn@gmail.com>\n"
"PO-Revision-Date: 2026-03-25 14:14+0000\n"
"Last-Translator: Pietro Isotti <isottipietro@gmail.com>\n"
"Language-Team: Italian <https://translate.pretix.eu/projects/pretix/pretix-"
"js/it/>\n"
"Language: it\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 2026.7.1\n"
"X-Generator: Weblate 5.16.2\n"
#: pretix/plugins/banktransfer/static/pretixplugins/banktransfer/ui.js
msgid "Marked as paid"
@@ -42,91 +42,93 @@ msgstr "Apple Pay"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Itaú"
msgstr "Ita"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
#, fuzzy
msgid "PayPal Credit"
msgstr "PayPal (Pagamento a rate)"
msgstr "PayPal"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Credit Card"
msgstr "Carta di credito"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "PayPal Pay Later"
msgstr "PayPal (Acquista ora, paga dopo)"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "iDEAL | Wero"
msgstr "iDEAL | Wero"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "SEPA Direct Debit"
msgstr "Addebito diretto SEPA"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Bancontact"
msgstr "Bancontact"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "giropay"
msgstr "giropay"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "SOFORT"
msgstr "SOFORT"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
#, fuzzy
msgid "eps"
msgstr "eps"
msgstr "Si"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "MyBank"
msgstr "MyBank"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Przelewy24"
msgstr "Przelewy24"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Verkkopankki"
msgstr "Verkkopankki"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "PayU"
msgstr "PayU"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "BLIK"
msgstr "BLIK"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Trustly"
msgstr "Trustly"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Zimpler"
msgstr "Zimpler"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Maxima"
msgstr "Maxima"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "OXXO"
msgstr "OXXO"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Boleto"
msgstr "Boleto"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "WeChat Pay"
msgstr "WeChat Pay"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Mercado Pago"
msgstr "Mercado Pago"
msgstr ""
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
@@ -141,7 +143,7 @@ msgstr "Stiamo processando il tuo pagamento …"
#: pretix/plugins/paypal2/static/pretixplugins/paypal2/pretix-paypal.js
msgid "Payment method unavailable"
msgstr "Metodo di pagamento non disponibile"
msgstr ""
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
msgid "Placed orders"
@@ -153,11 +155,11 @@ msgstr "Ordini pagati"
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
msgid "Attendees (ordered)"
msgstr "Partecipanti (ordini effettuati)"
msgstr ""
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
msgid "Attendees (paid)"
msgstr "Partecipanti (ordini pagati)"
msgstr ""
#: pretix/plugins/statistics/static/pretixplugins/statistics/statistics.js
msgid "Total revenue"
@@ -237,11 +239,11 @@ msgstr "Eliminato"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
msgid "Confirmed"
msgstr "Confermato"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
msgid "Approval pending"
msgstr "In attesa di approvazione"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
msgid "Redeemed"
@@ -308,13 +310,12 @@ msgid "Order canceled"
msgstr "Ordine cancellato"
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
#, fuzzy
msgid "Ticket code is ambiguous on list"
msgstr "Il codice del biglietto è ambiguo sulla lista"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
msgid "Order not approved"
msgstr "Ordine non approvato"
msgstr ""
#: pretix/plugins/webcheckin/static/pretixplugins/webcheckin/i18n.ts
msgid "Checked-in Tickets"
@@ -429,11 +430,11 @@ msgstr "Usa i tasti Ctrl-C per copiare!"
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
msgid "Edit"
msgstr "Modifica"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
msgid "Visualize"
msgstr "Visualizza"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
msgid ""
@@ -441,13 +442,10 @@ msgid ""
"or variations are not contained in any of your rule parts so people with "
"these tickets will not get in:"
msgstr ""
"La tua regola filtra sempre per prodotto o variation, ma i seguenti prodotti "
"o variation non sono presenti in nessuna parte delle tue regole. Questo "
"impedirà alle persone con questi biglietti di poter accedere all'evento:"
#: pretix/static/pretixcontrol/js/ui/checkinrules/App.vue
msgid "Please double-check if this was intentional."
msgstr "Per favore, controlla se è stato intenzionale."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "All of the conditions below (AND)"
@@ -491,17 +489,17 @@ msgstr "minuti"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Duplicate"
msgstr "Duplicato"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgctxt "entry_status"
msgid "present"
msgstr "Presente"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgctxt "entry_status"
msgid "absent"
msgstr "Assente"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "is one of"
@@ -517,7 +515,7 @@ msgstr "è dopo"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "="
msgstr "="
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Product"
@@ -537,55 +535,63 @@ msgstr "Data e orario corrente"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Current day of the week (1 = Monday, 7 = Sunday)"
msgstr "Giorno corrente della settimana (1 = Lunedì, 7 = Domenica)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Current entry status"
msgstr "Stato dell'ingresso corrente"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Number of previous entries"
msgstr "Numero di precedenti ingressi"
msgstr "Numero di inserimenti precedenti"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Number of previous entries since midnight"
msgstr "Numero di precedenti ingressi fino a mezzanotte"
msgstr "Numero di inserimenti precedenti fino a mezzanotte"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
#, fuzzy
#| msgid "Number of previous entries"
msgid "Number of previous entries since"
msgstr "Numero di precedenti ingressi dal"
msgstr "Numero di inserimenti precedenti"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
#, fuzzy
#| msgid "Number of previous entries"
msgid "Number of previous entries before"
msgstr "Numero di precedenti ingressi prima del"
msgstr "Numero di inserimenti precedenti"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Number of days with a previous entry"
msgstr "Numero di giorni con un precedente ingresso"
msgstr "Nunmero di giorni con un inserimento precedente"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
#, fuzzy
#| msgid "Number of days with a previous entry"
msgid "Number of days with a previous entry since"
msgstr "Numero di giorni con un precedente ingresso dal"
msgstr "Nunmero di giorni con un inserimento precedente"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
#, fuzzy
#| msgid "Number of days with a previous entry"
msgid "Number of days with a previous entry before"
msgstr "Numero di giorni con un precedente ingresso prima del"
msgstr "Nunmero di giorni con un inserimento precedente"
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Minutes since last entry (-1 on first entry)"
msgstr "Minuti dall'ultimo ingresso (-1 al primo ingresso)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/constants.ts
msgid "Minutes since first entry (-1 on first entry)"
msgstr "Minuti dal primo ingresso (-1 al primo ingresso)"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/django-interop.ts
msgid "Error: Product not found!"
msgstr "Errore: Prodotto non trovato!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/checkinrules/django-interop.ts
msgid "Error: Variation not found!"
msgstr "Errore: Variation non trovata!"
msgstr ""
#: pretix/static/pretixcontrol/js/ui/editor.js
msgid "Check-in QR"
@@ -600,12 +606,16 @@ msgid "Group of objects"
msgstr "Gruppo di oggetti"
#: pretix/static/pretixcontrol/js/ui/editor.js
#, fuzzy
#| msgid "Text object"
msgid "Text object (deprecated)"
msgstr "Oggetto testo (deprecato)"
msgstr "Oggetto testo"
#: pretix/static/pretixcontrol/js/ui/editor.js
#, fuzzy
#| msgid "Text object"
msgid "Text box"
msgstr "Riquadro testo"
msgstr "Oggetto testo"
#: pretix/static/pretixcontrol/js/ui/editor.js
msgid "Barcode area"
@@ -652,24 +662,25 @@ msgid "Unknown error."
msgstr "Errore sconosciuto."
#: pretix/static/pretixcontrol/js/ui/main.js
#, fuzzy
#| msgid "Your color has great contrast and is very easy to read!"
msgid "Your color has great contrast and will provide excellent accessibility."
msgstr "Il colore scelto ha un ottimo contrasto ed è molto leggibile."
msgstr "Il colore scelto ha un ottimo contrasto ed è molto leggibile!"
#: pretix/static/pretixcontrol/js/ui/main.js
#, fuzzy
#| msgid "Your color has decent contrast and is probably good-enough to read!"
msgid ""
"Your color has decent contrast and is sufficient for minimum accessibility "
"requirements."
msgstr ""
"Il colore scelto ha un buon contrasto ed è sufficiente per i requisiti di "
"accessibilità."
"Il colore scelto ha un buon contrasto e probabilmente è abbastanza leggibile!"
#: pretix/static/pretixcontrol/js/ui/main.js
msgid ""
"Your color has insufficient contrast to white. Accessibility of your site "
"will be impacted."
msgstr ""
"Il colore scelto ha un contrasto insufficiente rispetto al bianco. "
"L'accessibilità nel tuo sito sarà ridotta."
#: pretix/static/pretixcontrol/js/ui/main.js
msgid "Search query"
@@ -689,11 +700,11 @@ msgstr "Solo i selezionati"
#: pretix/static/pretixcontrol/js/ui/main.js
msgid "Enter page number between 1 and %(max)s."
msgstr "Inserisci il numero di pagina tra 1 e %(max)s."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js
msgid "Invalid page number."
msgstr "Numero di pagina invalido."
msgstr ""
#: pretix/static/pretixcontrol/js/ui/main.js
msgid "Use a different name internally"
@@ -712,8 +723,10 @@ msgid "Calculating default price…"
msgstr "Calcolando il prezzo di default…"
#: pretix/static/pretixcontrol/js/ui/plugins.js
#, fuzzy
#| msgid "Search results"
msgid "No results"
msgstr "Nessun risultato"
msgstr "Risultati ricerca"
#: pretix/static/pretixcontrol/js/ui/question.js
msgid "Others"
@@ -743,33 +756,39 @@ msgstr "Carrello scaduto"
#: pretix/static/pretixpresale/js/ui/cart.js
msgid "Your cart is about to expire."
msgstr "La selezione nel tuo carrello sta per scadere."
msgstr ""
#: pretix/static/pretixpresale/js/ui/cart.js
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] "Gli elementi nel tuo carrello sono riservati per un minuto."
msgstr[0] "Gli elementi nel tuo carrello sono riservati per 1 minuto."
msgstr[1] "Gli elementi nel tuo carrello sono riservati per {num} minuti."
#: pretix/static/pretixpresale/js/ui/cart.js
#, fuzzy
#| msgid "Cart expired"
msgid "Your cart has expired."
msgstr "Il tuo carrello è scaduto."
msgstr "Carrello scaduto"
#: pretix/static/pretixpresale/js/ui/cart.js
#, fuzzy
#| msgid ""
#| "The items in your cart are no longer reserved for you. You can still "
#| "complete your order as long as theyre available."
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 ""
"Gli articoli nel tuo carrello non sono più riservati a te. Puoi ancora "
"Gli articoli nel tuo carrello non sono più riservati per te. Puoi ancora "
"completare il tuo ordine finché sono disponibili."
#: pretix/static/pretixpresale/js/ui/cart.js
msgid "Do you want to renew the reservation period?"
msgstr "Vuoi rinnovare la scadenza del tuo carrello?"
msgstr ""
#: pretix/static/pretixpresale/js/ui/cart.js
msgid "Renew reservation"
msgstr "Rinnova scadenza"
msgstr ""
#: pretix/static/pretixpresale/js/ui/main.js
msgid "The organizer keeps %(currency)s %(amount)s"
@@ -788,64 +807,69 @@ msgid "Your local time:"
msgstr "Ora locale:"
#: pretix/static/pretixpresale/js/walletdetection.js
#, fuzzy
#| msgid "Apple Pay"
msgid "Google Pay"
msgstr "Google Pay"
msgstr "Apple Pay"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Quantity"
msgstr "Quantità"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Decrease quantity"
msgstr "Diminuisci quantità"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Increase quantity"
msgstr "Aumenta quantità"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Filter events by"
msgstr "Filtra eventi per"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Filter"
msgstr "Filtra"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Price"
msgstr "Prezzo"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, javascript-format
msgctxt "widget"
msgid "Original price: %s"
msgstr "Prezzo originale: %s"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, javascript-format
msgctxt "widget"
msgid "New price: %s"
msgstr "Nuovo prezzo: %s"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, fuzzy
#| msgctxt "widget"
#| msgid "Select %s"
msgctxt "widget"
msgid "Select"
msgstr "Seleziona"
msgstr "Seleziona %s"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
@@ -902,7 +926,7 @@ msgstr "da %(currency)s %(price)s"
#, javascript-format
msgctxt "widget"
msgid "Image of %s"
msgstr "Immagine di %s"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
@@ -943,21 +967,27 @@ msgstr "Disponibile solo con voucher"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, fuzzy
#| msgctxt "widget"
#| msgid "currently available: %s"
msgctxt "widget"
msgid "Not yet available"
msgstr "Ancora non disponibile"
msgstr "attualmente disponibile: %s"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "Not available anymore"
msgstr "Non più disponibile"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, fuzzy
#| msgctxt "widget"
#| msgid "currently available: %s"
msgctxt "widget"
msgid "Currently not available"
msgstr "Attualmente non disponibile"
msgstr "attualmente disponibile: %s"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
@@ -1065,17 +1095,18 @@ msgstr "Chiudi"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, fuzzy
#| msgctxt "widget"
#| msgid "Resume checkout"
msgctxt "widget"
msgid "Close checkout"
msgstr "Finisci checkout"
msgstr "Ricarica checkout"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgctxt "widget"
msgid "You cannot cancel this operation. Please wait for loading to finish."
msgstr ""
"Non puoi annullare questa operazione. Per favore, aspetta che il caricamento "
"finisca."
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
@@ -1085,15 +1116,21 @@ msgstr "Continua"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, fuzzy
#| msgctxt "widget"
#| msgid "Select variant %s"
msgctxt "widget"
msgid "Show variants"
msgstr "Mostra varianti"
msgstr "Seleziona variante %s"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
#, fuzzy
#| msgctxt "widget"
#| msgid "Select variant %s"
msgctxt "widget"
msgid "Hide variants"
msgstr "Nascondi varianti"
msgstr "Seleziona variante %s"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
@@ -1199,37 +1236,37 @@ msgstr "Do"
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Monday"
msgstr "Lunedì"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Tuesday"
msgstr "Martedì"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Wednesday"
msgstr "Mercoledì"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Thursday"
msgstr "Giovedì"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Friday"
msgstr "Venerdì"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Saturday"
msgstr "Sabato"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
msgid "Sunday"
msgstr "Domenica"
msgstr ""
#: pretix/static/pretixpresale/js/widget/widget.js
#: pretix/static/pretixpresale/widget/src/i18n.ts
-26
View File
@@ -20,16 +20,13 @@
# <https://www.gnu.org/licenses/>.
#
import base64
from datetime import datetime, timezone
import pytest
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives.serialization import load_pem_private_key
from django_scopes import scopes_disabled
from freezegun import freeze_time
from pretix.base.models import Device
from pretix.base.models.devices import DeviceLastSeen
@pytest.fixture
@@ -389,26 +386,3 @@ def test_device_info_key_sets(device_client, device: Device):
base64.b64decode(ks['diversification_key']),
padding.PKCS1v15()
)
@pytest.mark.django_db
def test_update_last_seen(device_client, device: Device):
assert not DeviceLastSeen.objects.exists()
with freeze_time("2020-01-10T14:30:00+00:00"):
resp = device_client.get('/api/v1/device/info')
assert resp.status_code == 200
assert device.last_seen.last_seen == datetime(2020, 1, 10, 14, 30, tzinfo=timezone.utc)
with freeze_time("2020-01-10T14:30:05+00:00"):
resp = device_client.get('/api/v1/device/info')
assert resp.status_code == 200
# No update, interal too short
device.last_seen.refresh_from_db()
assert device.last_seen.last_seen == datetime(2020, 1, 10, 14, 30, tzinfo=timezone.utc)
with freeze_time("2020-01-10T14:30:30+00:00"):
resp = device_client.get('/api/v1/device/info')
assert resp.status_code == 200
device.last_seen.refresh_from_db()
assert device.last_seen.last_seen == datetime(2020, 1, 10, 14, 30, 30, tzinfo=timezone.utc)