diff --git a/src/pretix/api/serializers/cart.py b/src/pretix/api/serializers/cart.py
index c9b42a7096..803a7e2d1e 100644
--- a/src/pretix/api/serializers/cart.py
+++ b/src/pretix/api/serializers/cart.py
@@ -31,7 +31,8 @@ from rest_framework.exceptions import ValidationError
from pretix.api.serializers.i18n import I18nAwareModelSerializer
from pretix.api.serializers.order import (
- AnswerCreateSerializer, AnswerSerializer, InlineSeatSerializer, MixedAnswerListSerializer,
+ AnswerCreateSerializer, AnswerSerializer, InlineSeatSerializer,
+ MixedAnswerListSerializer,
)
from pretix.base.models import SalesChannel, Seat, Voucher
from pretix.base.models.orders import CartPosition
diff --git a/src/pretix/api/serializers/item.py b/src/pretix/api/serializers/item.py
index 793cf1fc1c..f57aa92e97 100644
--- a/src/pretix/api/serializers/item.py
+++ b/src/pretix/api/serializers/item.py
@@ -20,6 +20,7 @@
# .
#
+import logging
# This file is based on an earlier version of pretix which was released under the Apache License 2.0. The full text of
# the Apache License 2.0 can be obtained at .
#
@@ -33,10 +34,7 @@
# License for the specific language governing permissions and limitations under the License.
import os.path
from decimal import Decimal
-
-from i18nfield.rest_framework import I18nField
from itertools import zip_longest
-import logging
import rest_framework
from django.conf import settings
@@ -45,6 +43,7 @@ from django.db import transaction
from django.db.models import QuerySet
from django.utils.functional import cached_property, lazy
from django.utils.translation import gettext_lazy as _
+from i18nfield.rest_framework import I18nField
from rest_framework import serializers
from rest_framework.exceptions import ValidationError as DrfValidationError
from rest_framework.serializers import as_serializer_error
@@ -58,11 +57,13 @@ from pretix.api.serializers.i18n import I18nAwareModelSerializer
from pretix.base.forms.questions import REQUIRED_NAME_PARTS
from pretix.base.models import (
Item, ItemAddOn, ItemBundle, ItemCategory, ItemMetaValue, ItemProgramTime,
- ItemVariation, ItemVariationMetaValue, Question, QuestionAnswer, QuestionOption, Quota,
- SalesChannel,
+ ItemVariation, ItemVariationMetaValue, Question, QuestionAnswer,
+ QuestionOption, Quota, SalesChannel,
)
from pretix.base.models.items import Questionnaire, QuestionnaireChild
-from pretix.base.settings import PERSON_NAME_SALUTATIONS, PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS
+from pretix.base.settings import (
+ PERSON_NAME_SALUTATIONS, PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS,
+)
from pretix.base.templatetags.rich_text import rich_text
from pretix.helpers.i18n import i18n_all_from_gettext
diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py
index 9384fe58f5..a3f928fea8 100644
--- a/src/pretix/api/serializers/order.py
+++ b/src/pretix/api/serializers/order.py
@@ -58,8 +58,8 @@ from pretix.base.media import MEDIA_TYPES
from pretix.base.models import (
CachedFile, Checkin, Customer, Device, GiftCard, Invoice, InvoiceAddress,
InvoiceLine, Item, ItemVariation, Order, OrderPosition, Question,
- QuestionAnswer, Questionnaire, QuestionnaireChild, ReusableMedium, SalesChannel, Seat, SubEvent, TaxRule,
- Voucher,
+ QuestionAnswer, Questionnaire, QuestionnaireChild, ReusableMedium,
+ SalesChannel, Seat, SubEvent, TaxRule, Voucher,
)
from pretix.base.models.orders import (
BlockedTicketSecret, CartPosition, OrderFee, OrderPayment, OrderRefund,
@@ -75,8 +75,8 @@ from pretix.base.services.pricing import (
)
from pretix.base.services.quotas import QuotaAvailability
from pretix.base.settings import (
- COUNTRIES_WITH_STATE_IN_ADDRESS, PERSON_NAME_SALUTATIONS, PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS,
- ROUNDING_MODES,
+ COUNTRIES_WITH_STATE_IN_ADDRESS, PERSON_NAME_SALUTATIONS,
+ PERSON_NAME_SCHEMES, PERSON_NAME_TITLE_GROUPS, ROUNDING_MODES,
)
from pretix.base.signals import register_ticket_outputs
from pretix.helpers.countries import CachedCountries
diff --git a/src/pretix/api/serializers/orderchange.py b/src/pretix/api/serializers/orderchange.py
index 2894e18b12..c0ee74031b 100644
--- a/src/pretix/api/serializers/orderchange.py
+++ b/src/pretix/api/serializers/orderchange.py
@@ -30,7 +30,8 @@ from rest_framework.exceptions import ValidationError
from pretix.api.serializers.order import (
AnswerCreateSerializer, AnswerSerializer, CompatibleCountryField,
- MixedAnswerListSerializer, OrderFeeCreateSerializer, OrderPositionCreateSerializer,
+ MixedAnswerListSerializer, OrderFeeCreateSerializer,
+ OrderPositionCreateSerializer,
)
from pretix.base.models import ItemVariation, Order, OrderFee, OrderPosition
from pretix.base.services.orders import OrderChangeManager, OrderError
diff --git a/src/pretix/api/views/checkin.py b/src/pretix/api/views/checkin.py
index c8b315529e..93aaea8713 100644
--- a/src/pretix/api/views/checkin.py
+++ b/src/pretix/api/views/checkin.py
@@ -65,7 +65,8 @@ from pretix.api.views.order import OrderPositionFilter
from pretix.base.i18n import language
from pretix.base.models import (
CachedFile, Checkin, CheckinList, Device, Event, Order, OrderPosition,
- Question, Questionnaire, QuestionnaireChild, ReusableMedium, RevokedTicketSecret, TeamAPIToken,
+ Question, Questionnaire, QuestionnaireChild, ReusableMedium,
+ RevokedTicketSecret, TeamAPIToken,
)
from pretix.base.models.orders import PrintLog
from pretix.base.permissions import AnyPermissionOf
diff --git a/src/pretix/api/views/item.py b/src/pretix/api/views/item.py
index dbaba2f13c..b75b1c725b 100644
--- a/src/pretix/api/views/item.py
+++ b/src/pretix/api/views/item.py
@@ -46,10 +46,10 @@ from rest_framework.response import Response
from pretix.api.pagination import TotalOrderingFilter
from pretix.api.serializers.item import (
- CompatQuestionSerializer, ItemAddOnSerializer, ItemBundleSerializer, ItemCategorySerializer,
- ItemProgramTimeSerializer, ItemSerializer, ItemVariationSerializer,
- QuestionnaireSerializer, QuestionOptionSerializer, DatafieldSerializer,
- QuotaSerializer,
+ CompatQuestionSerializer, DatafieldSerializer, ItemAddOnSerializer,
+ ItemBundleSerializer, ItemCategorySerializer, ItemProgramTimeSerializer,
+ ItemSerializer, ItemVariationSerializer, QuestionnaireSerializer,
+ QuestionOptionSerializer, QuotaSerializer,
)
from pretix.api.views import ConditionalListView
from pretix.base.models import (
diff --git a/src/pretix/base/forms/questions.py b/src/pretix/base/forms/questions.py
index 758125fbf7..be764a26bc 100644
--- a/src/pretix/base/forms/questions.py
+++ b/src/pretix/base/forms/questions.py
@@ -82,7 +82,10 @@ from pretix.base.i18n import (
from pretix.base.invoicing.transmission import (
get_transmission_types, transmission_types,
)
-from pretix.base.models import InvoiceAddress, Item, Question, QuestionOption, Questionnaire, QuestionnaireChild
+from pretix.base.models import (
+ InvoiceAddress, Item, Question, Questionnaire, QuestionnaireChild,
+ QuestionOption,
+)
from pretix.base.models.tax import ask_for_vat_id
from pretix.base.services.tax import (
VATIDFinalError, VATIDTemporaryError, normalize_vat_id, validate_vat_id,
diff --git a/src/pretix/base/migrations/0311_questionnaire_questionnairechild.py b/src/pretix/base/migrations/0311_questionnaire_questionnairechild.py
index e855a0ad57..7b304c21c4 100644
--- a/src/pretix/base/migrations/0311_questionnaire_questionnairechild.py
+++ b/src/pretix/base/migrations/0311_questionnaire_questionnairechild.py
@@ -1,12 +1,11 @@
# Generated by Django 4.2.29 on 2026-03-19 14:24
import json
from collections import namedtuple
-
from itertools import chain, groupby
-from django.db import migrations, models
import django.db.models.deletion
import i18nfield.fields
+from django.db import migrations, models
from i18nfield.strings import LazyI18nString
import pretix.base.models.base
@@ -44,7 +43,9 @@ def get_fake_questions(settings):
def migrate_questions_forward(apps, schema_editor):
- from django.utils.translation import gettext as _, get_supported_language_variant
+ from django.utils.translation import (
+ get_supported_language_variant, gettext as _,
+ )
Event = apps.get_model("pretixbase", "Event")
Item = apps.get_model("pretixbase", "Item")
diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py
index a19f4339da..66ea3de896 100644
--- a/src/pretix/base/models/items.py
+++ b/src/pretix/base/models/items.py
@@ -35,14 +35,13 @@
import calendar
import os
-from itertools import groupby
-
import sys
import uuid
import warnings
from collections import Counter, OrderedDict
from datetime import date, datetime, time, timedelta
from decimal import Decimal, DecimalException
+from itertools import groupby
from typing import Optional, Tuple
from zoneinfo import ZoneInfo
diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py
index 97ad9ec7b8..0458001f3d 100644
--- a/src/pretix/base/models/orders.py
+++ b/src/pretix/base/models/orders.py
@@ -95,7 +95,9 @@ from ._transactions import (
)
from .base import LockModel, LoggedModel
from .event import Event, SubEvent
-from .items import Item, ItemVariation, Question, QuestionOption, QuestionnaireChild, Quota
+from .items import (
+ Item, ItemVariation, Question, QuestionnaireChild, QuestionOption, Quota,
+)
logger = logging.getLogger(__name__)
diff --git a/src/pretix/base/services/checkin.py b/src/pretix/base/services/checkin.py
index 376d70070f..45511d29d7 100644
--- a/src/pretix/base/services/checkin.py
+++ b/src/pretix/base/services/checkin.py
@@ -55,7 +55,7 @@ from django_scopes import scope, scopes_disabled
from pretix.base.models import (
Checkin, CheckinList, Device, Event, Gate, Item, ItemVariation, Order,
- OrderPosition, QuestionOption, Questionnaire, QuestionnaireChild,
+ OrderPosition, Questionnaire, QuestionnaireChild, QuestionOption,
)
from pretix.base.signals import checkin_created, periodic_task
from pretix.helpers import OF_SELF
diff --git a/src/pretix/control/forms/item.py b/src/pretix/control/forms/item.py
index c025c376f3..5580321827 100644
--- a/src/pretix/control/forms/item.py
+++ b/src/pretix/control/forms/item.py
@@ -60,7 +60,9 @@ from pretix.base.models import (
Item, ItemCategory, ItemProgramTime, ItemVariation, Question,
QuestionOption, Quota,
)
-from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue, Questionnaire
+from pretix.base.models.items import (
+ ItemAddOn, ItemBundle, ItemMetaValue, Questionnaire,
+)
from pretix.base.signals import item_copy_data
from pretix.control.forms import (
ButtonGroupRadioSelect, ExtFileField, ItemMultipleChoiceField,
diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py
index b9fb8a6c61..e6a092cc44 100644
--- a/src/pretix/control/views/item.py
+++ b/src/pretix/control/views/item.py
@@ -68,11 +68,13 @@ from pretix.api.serializers.item import (
from pretix.base.forms import I18nFormSet
from pretix.base.models import (
CartPosition, Item, ItemCategory, ItemProgramTime, ItemVariation, LogEntry,
- OrderPosition, Question, QuestionAnswer, QuestionOption, QuestionnaireChild, Quota,
- SeatCategoryMapping, Voucher,
+ OrderPosition, Question, QuestionAnswer, QuestionnaireChild,
+ QuestionOption, Quota, SeatCategoryMapping, Voucher,
)
from pretix.base.models.event import SubEvent
-from pretix.base.models.items import ItemAddOn, ItemBundle, ItemMetaValue, Questionnaire
+from pretix.base.models.items import (
+ ItemAddOn, ItemBundle, ItemMetaValue, Questionnaire,
+)
from pretix.base.services.quotas import QuotaAvailability
from pretix.base.services.tickets import invalidate_cache
from pretix.base.signals import quota_availability
@@ -94,8 +96,8 @@ from pretix.helpers.models import modelcopy
from ...helpers import GroupConcat
from ...helpers.compat import CompatDeleteView
-from . import ChartContainingView, CreateView, PaginationMixin, UpdateView
from ...helpers.i18n import i18n_all_from_gettext
+from . import ChartContainingView, CreateView, PaginationMixin, UpdateView
def has_truthy_attr(cls, attr):
diff --git a/src/pretix/presale/views/__init__.py b/src/pretix/presale/views/__init__.py
index 99c22a7bfe..3842e73f4b 100644
--- a/src/pretix/presale/views/__init__.py
+++ b/src/pretix/presale/views/__init__.py
@@ -52,7 +52,7 @@ from pretix.base.i18n import get_language_without_region, set_region
from pretix.base.middleware import get_supported_language
from pretix.base.models import (
CartPosition, Customer, InvoiceAddress, ItemAddOn, OrderFee, Question,
- QuestionAnswer, QuestionOption, Questionnaire, TaxRule,
+ QuestionAnswer, Questionnaire, QuestionOption, TaxRule,
)
from pretix.base.models.items import QuestionnaireChild
from pretix.base.models.orders import CheckoutSession