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