From 5d71cb500a2d3d12a301ad4763f6930e8e908277 Mon Sep 17 00:00:00 2001 From: Mira Weller Date: Thu, 4 Apr 2024 12:45:58 +0200 Subject: [PATCH] Move timemachine to pretix.base.middleware --- .../{presale => base/middleware}/timemachine.py | 2 +- src/pretix/base/models/event.py | 2 +- src/pretix/base/models/items.py | 2 +- src/pretix/base/models/orders.py | 2 +- src/pretix/base/services/memberships.py | 3 +-- src/pretix/base/services/orders.py | 2 +- src/pretix/control/views/event.py | 13 +++++++++---- src/pretix/presale/middleware.py | 1 - src/pretix/settings.py | 2 +- 9 files changed, 16 insertions(+), 13 deletions(-) rename src/pretix/{presale => base/middleware}/timemachine.py (100%) diff --git a/src/pretix/presale/timemachine.py b/src/pretix/base/middleware/timemachine.py similarity index 100% rename from src/pretix/presale/timemachine.py rename to src/pretix/base/middleware/timemachine.py index 708521b61..8053175bf 100644 --- a/src/pretix/presale/timemachine.py +++ b/src/pretix/base/middleware/timemachine.py @@ -33,6 +33,7 @@ # License for the specific language governing permissions and limitations under the License. import threading + from dateutil.parser import parse from django.utils.timezone import now @@ -64,4 +65,3 @@ class TimeMachineMiddleware: def time_machine_now(): return getattr(TimeMachineMiddleware.tls, 'now_dt', None) or now() - diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index b102a726c..93cb68303 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -64,6 +64,7 @@ from django.utils.translation import gettext, gettext_lazy as _ from django_scopes import ScopedManager, scopes_disabled from i18nfield.fields import I18nCharField, I18nTextField +from pretix.base.middleware.timemachine import time_machine_now from pretix.base.models.base import LoggedModel from pretix.base.models.fields import MultiStringField from pretix.base.reldate import RelativeDateWrapper @@ -76,7 +77,6 @@ from pretix.helpers.thumb import get_thumbnail from ..settings import settings_hierarkey from .organizer import Organizer, Team -from ...presale.timemachine import time_machine_now logger = logging.getLogger(__name__) diff --git a/src/pretix/base/models/items.py b/src/pretix/base/models/items.py index b07c6b9e5..889b553e9 100644 --- a/src/pretix/base/models/items.py +++ b/src/pretix/base/models/items.py @@ -61,6 +61,7 @@ from django_countries.fields import Country from django_scopes import ScopedManager from i18nfield.fields import I18nCharField, I18nTextField +from pretix.base.middleware.timemachine import time_machine_now from pretix.base.models import fields from pretix.base.models.base import LoggedModel from pretix.base.models.fields import MultiStringField @@ -69,7 +70,6 @@ from pretix.base.models.tax import TaxedPrice from ...helpers.images import ImageSizeValidator from ..media import MEDIA_TYPES from .event import Event, SubEvent -from pretix.presale.timemachine import time_machine_now class ItemCategory(LoggedModel): diff --git a/src/pretix/base/models/orders.py b/src/pretix/base/models/orders.py index f7268aece..413d59c27 100644 --- a/src/pretix/base/models/orders.py +++ b/src/pretix/base/models/orders.py @@ -76,6 +76,7 @@ from pretix.base.banlist import banned from pretix.base.decimal import round_decimal from pretix.base.email import get_email_context from pretix.base.i18n import language +from pretix.base.middleware.timemachine import time_machine_now from pretix.base.models import Customer, User from pretix.base.reldate import RelativeDateWrapper from pretix.base.settings import PERSON_NAME_SCHEMES @@ -85,7 +86,6 @@ from ...helpers import OF_SELF from ...helpers.countries import CachedCountries, FastCountryField from ...helpers.format import format_map from ...helpers.names import build_name -from ...presale.timemachine import time_machine_now from ...testutils.middleware import debugflags_var from ._transactions import ( _fail, _transactions_mark_order_clean, _transactions_mark_order_dirty, diff --git a/src/pretix/base/services/memberships.py b/src/pretix/base/services/memberships.py index ead03e37a..c27d718cd 100644 --- a/src/pretix/base/services/memberships.py +++ b/src/pretix/base/services/memberships.py @@ -25,15 +25,14 @@ from typing import List, Optional from dateutil.relativedelta import relativedelta from django.core.exceptions import ValidationError from django.utils.formats import date_format -from django.utils.timezone import now from django.utils.translation import gettext_lazy as _ +from pretix.base.middleware.timemachine import time_machine_now from pretix.base.models import ( AbstractPosition, CartPosition, Customer, Event, Item, Membership, Order, OrderPosition, SubEvent, ) from pretix.helpers import OF_SELF -from pretix.presale.timemachine import time_machine_now def membership_validity(item: Item, subevent: Optional[SubEvent], event: Event): diff --git a/src/pretix/base/services/orders.py b/src/pretix/base/services/orders.py index da2b1dcd5..c0d96bb18 100644 --- a/src/pretix/base/services/orders.py +++ b/src/pretix/base/services/orders.py @@ -66,6 +66,7 @@ from pretix.base.channels import get_all_sales_channels from pretix.base.email import get_email_context from pretix.base.i18n import get_language_without_region, language from pretix.base.media import MEDIA_TYPES +from pretix.base.middleware.timemachine import time_machine_now from pretix.base.models import ( CartPosition, Device, Event, GiftCard, Item, ItemVariation, Membership, Order, OrderPayment, OrderPosition, Quota, Seat, SeatCategoryMapping, User, @@ -106,7 +107,6 @@ from pretix.celery_app import app from pretix.helpers import OF_SELF from pretix.helpers.models import modelcopy from pretix.helpers.periodic import minimum_interval -from pretix.presale.timemachine import time_machine_now from pretix.testutils.middleware import debugflags_var diff --git a/src/pretix/control/views/event.py b/src/pretix/control/views/event.py index 5aa34c06d..f8b193ffb 100644 --- a/src/pretix/control/views/event.py +++ b/src/pretix/control/views/event.py @@ -65,7 +65,7 @@ from django.shortcuts import get_object_or_404, redirect from django.urls import reverse from django.utils.functional import cached_property from django.utils.http import url_has_allowed_host_and_scheme -from django.utils.timezone import now, get_current_timezone +from django.utils.timezone import get_current_timezone, now from django.utils.translation import gettext, gettext_lazy as _, gettext_noop from django.views.generic import FormView, ListView from django.views.generic.base import TemplateView, View @@ -93,11 +93,13 @@ from pretix.control.permissions import EventPermissionRequiredMixin from pretix.control.views.mailsetup import MailSettingsSetupView from pretix.control.views.user import RecentAuthenticationRequiredMixin from pretix.helpers.database import rolledback_transaction -from pretix.multidomain.urlreverse import build_absolute_uri, get_event_domain, eventreverse +from pretix.multidomain.urlreverse import ( + build_absolute_uri, eventreverse, get_event_domain, +) from pretix.plugins.stripe.payment import StripeSettingsHolder from pretix.presale.style import regenerate_css -from ...base.forms.widgets import SplitDateTimePickerWidget +from ...base.forms.widgets import SplitDateTimePickerWidget from ...base.i18n import language from ...base.models.items import ( Item, ItemCategory, ItemMetaProperty, Question, Quota, @@ -969,7 +971,10 @@ class EventLive(EventPermissionRequiredMixin, TemplateView): super().setup(request, *args, **kwargs) self.timemachine_form = TimemachineForm( data=request.method == 'POST' and request.POST or None, - initial={'now_dt':parser.parse(request.session.get('timemachine_now_dt', None))} if request.session.get('timemachine_now_dt', None) else {} + initial=( + {'now_dt': parser.parse(request.session.get('timemachine_now_dt', None))} + if request.session.get('timemachine_now_dt', None) else {} + ) ) def get_context_data(self, **kwargs): diff --git a/src/pretix/presale/middleware.py b/src/pretix/presale/middleware.py index 42a30f2da..4cbf52a83 100644 --- a/src/pretix/presale/middleware.py +++ b/src/pretix/presale/middleware.py @@ -79,4 +79,3 @@ class EventMiddleware: response = response.render() return response - diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 82657cdfc..4fdc9f838 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -454,7 +454,7 @@ MIDDLEWARE = [ 'pretix.base.middleware.LocaleMiddleware', 'pretix.base.middleware.SecurityMiddleware', 'pretix.presale.middleware.EventMiddleware', - 'pretix.presale.timemachine.TimeMachineMiddleware', + 'pretix.base.middleware.timemachine.TimeMachineMiddleware', 'pretix.api.middleware.ApiScopeMiddleware', ]