This commit is contained in:
Raphael Michel
2026-06-12 15:22:09 +02:00
parent 4e292a73f5
commit 23de9ca66c
11 changed files with 28 additions and 28 deletions

View File

@@ -57,7 +57,7 @@ from django_otp.models import Device
from django_scopes import scopes_disabled
from pretix.base.i18n import language
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
from ...helpers.countries import FastCountryField
from ...helpers.u2f import pub_key_from_der, websafe_decode
@@ -378,7 +378,7 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin):
{
'user': self,
'messages': msg,
'url': reverse_absolute_url_global_domain('control:user.settings'),
'url': mainreverse_absolute('control:user.settings'),
'instance': settings.PRETIX_INSTANCE_NAME,
},
event=None,
@@ -466,7 +466,7 @@ class User(AbstractBaseUser, PermissionsMixin, LoggingMixin):
{
'instance': settings.PRETIX_INSTANCE_NAME,
'user': self,
'url': (reverse_absolute_url_global_domain('control:auth.forgot.recover')
'url': (mainreverse_absolute('control:auth.forgot.recover')
+ '?id=%d&token=%s' % (self.id, default_token_generator.make_token(self)))
},
None, locale=self.locale, user=self

View File

@@ -43,7 +43,7 @@ from django.utils.translation import gettext_lazy as _, pgettext_lazy
from pretix.base.models import Event, LogEntry
from pretix.base.signals import register_notification_types
from pretix.base.templatetags.money import money_filter
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
logger = logging.getLogger(__name__)
_ALL_TYPES = None
@@ -170,7 +170,7 @@ class ParametrizedOrderNotificationType(NotificationType):
def build_notification(self, logentry: LogEntry):
order = logentry.content_object
order_url = reverse_absolute_url_global_domain(
order_url = mainreverse_absolute(
'control:event.order',
kwargs={
'organizer': logentry.event.organizer.slug,

View File

@@ -51,7 +51,7 @@ from pretix.base.signals import (
)
from pretix.celery_app import app
from pretix.helpers import OF_SELF, repeatable_reads_transaction
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
logger = logging.getLogger(__name__)
@@ -455,7 +455,7 @@ def scheduled_organizer_export(self, organizer: Organizer, schedule: int) -> Non
schedule,
organizer,
exporter,
reverse_absolute_url_global_domain(
mainreverse_absolute(
'control:organizer.export',
kwargs={
'organizer': organizer.slug,
@@ -481,7 +481,7 @@ def scheduled_event_export(self, event: Event, schedule: int) -> None:
schedule,
event,
exporter,
reverse_absolute_url_global_domain(
mainreverse_absolute(
'control:event.orders.export',
kwargs={
'event': event.slug,

View File

@@ -37,7 +37,7 @@ from pretix.base.services.tasks import ProfiledTask, TransactionAwareTask
from pretix.base.signals import notification
from pretix.celery_app import app
from pretix.helpers.celery import get_task_priority
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
@app.task(base=TransactionAwareTask, acks_late=True, max_retries=9, default_retry_delay=900)
@@ -136,10 +136,10 @@ def send_notification_mail(notification: Notification, user: User):
'site_url': settings.SITE_URL,
'color': settings.PRETIX_PRIMARY_COLOR,
'notification': notification,
'settings_url': reverse_absolute_url_global_domain(
'settings_url': mainreverse_absolute(
'control:user.settings.notifications',
),
'disable_url': reverse_absolute_url_global_domain(
'disable_url': mainreverse_absolute(
'control:user.settings.notifications.off',
kwargs={
'token': user.notifications_token,

View File

@@ -37,7 +37,7 @@ from pretix.base.services.mail import mail
from pretix.base.settings import GlobalSettingsObject
from pretix.base.signals import periodic_task
from pretix.celery_app import app
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
@receiver(signal=periodic_task)
@@ -121,7 +121,7 @@ def send_update_notification_email():
)
),
{
'url': reverse_absolute_url_global_domain('control:global.update')
'url': mainreverse_absolute('control:global.update')
},
)

View File

@@ -139,7 +139,7 @@ from pretix.helpers import OF_SELF, GroupConcat
from pretix.helpers.compat import CompatDeleteView
from pretix.helpers.dicts import merge_dicts
from pretix.helpers.format import SafeFormatter, format_map
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
from pretix.multidomain.urlreverse import eventreverse_absolute
from pretix.presale.forms.customer import TokenGenerator
@@ -1039,7 +1039,7 @@ class TeamMemberView(OrganizerDetailViewMixin, OrganizerPermissionRequiredMixin,
'user': self,
'organizer': self.request.organizer.name,
'team': instance.team.name,
'url': reverse_absolute_url_global_domain('control:auth.invite', kwargs={
'url': mainreverse_absolute('control:auth.invite', kwargs={
'token': instance.token
})
},

View File

@@ -35,7 +35,7 @@ from geoip2.errors import AddressNotFoundError
from pretix.base.i18n import language
from pretix.base.services.mail import mail
from pretix.helpers.http import get_client_ip
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
logger = logging.getLogger(__name__)
@@ -175,7 +175,7 @@ def handle_login_source(user, request):
'source': src,
'country': Country(str(country)).name if country else _('Unknown country'),
'instance': settings.PRETIX_INSTANCE_NAME,
'url': reverse_absolute_url_global_domain('control:user.settings')
'url': mainreverse_absolute('control:user.settings')
},
event=None,
user=user,

View File

@@ -32,10 +32,10 @@ def build_absolute_uri(urlname, args=None, kwargs=None):
'Replace this usage with ',
DeprecationWarning
)
return reverse_absolute_url_global_domain(urlname, args, kwargs)
return mainreverse_absolute(urlname, args, kwargs)
def reverse_absolute_url_global_domain(urlname, args=None, kwargs=None):
def mainreverse_absolute(urlname, args=None, kwargs=None):
from pretix.multidomain import maindomain_urlconf
return urljoin(settings.SITE_URL, reverse(urlname, args=args, kwargs=kwargs, urlconf=maindomain_urlconf))

View File

@@ -56,7 +56,7 @@ from pretix.base.models import Event, Order, OrderPayment, OrderRefund, Quota
from pretix.base.payment import BasePaymentProvider, PaymentException
from pretix.base.settings import SettingsSandbox
from pretix.helpers import OF_SELF
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
from pretix.multidomain.urlreverse import eventreverse, eventreverse_absolute
from pretix.plugins.paypal2.client.core.environment import (
LiveEnvironment, SandboxEnvironment,
@@ -264,7 +264,7 @@ class PaypalSettingsHolder(BasePaymentProvider):
settings_content = "<div class='alert alert-info'>%s<br /><code>%s</code></div>" % (
_('Please configure a PayPal Webhook to the following endpoint in order to automatically cancel orders '
'when payments are refunded externally.'),
reverse_absolute_url_global_domain('plugins:paypal2:webhook')
mainreverse_absolute('plugins:paypal2:webhook')
)
if self.event.currency not in SUPPORTED_CURRENCIES:
@@ -321,7 +321,7 @@ class PaypalSettingsHolder(BasePaymentProvider):
],
"partner_config_override": {
"partner_logo_url": urllib.parse.urljoin(settings.SITE_URL, static('pretixbase/img/pretix-logo.svg')),
"return_url": reverse_absolute_url_global_domain('plugins:paypal2:isu.return', kwargs={
"return_url": mainreverse_absolute('plugins:paypal2:isu.return', kwargs={
'organizer': self.event.organizer.slug,
'event': self.event.slug,
})

View File

@@ -75,7 +75,7 @@ from pretix.base.settings import SettingsSandbox
from pretix.helpers import OF_SELF
from pretix.helpers.countries import CachedCountries
from pretix.helpers.http import get_client_ip
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
from pretix.multidomain.urlreverse import eventreverse_absolute
from pretix.plugins.stripe.forms import StripeKeyValidator
from pretix.plugins.stripe.models import (
@@ -197,7 +197,7 @@ class StripeSettingsHolder(BasePaymentProvider):
).format(
self.settings.connect_client_id,
request.session['payment_stripe_oauth_token'],
urllib.parse.quote(reverse_absolute_url_global_domain('plugins:stripe:oauth.return')),
urllib.parse.quote(mainreverse_absolute('plugins:stripe:oauth.return')),
)
def settings_content_render(self, request):
@@ -229,7 +229,7 @@ class StripeSettingsHolder(BasePaymentProvider):
_('Please configure a <a href="https://dashboard.stripe.com/account/webhooks">Stripe Webhook</a> to '
'the following endpoint in order to automatically cancel orders when charges are refunded externally '
'and to process asynchronous payment methods like SOFORT.'),
reverse_absolute_url_global_domain('plugins:stripe:webhook')
mainreverse_absolute('plugins:stripe:webhook')
)
@property

View File

@@ -22,17 +22,17 @@
from django import urls
from django.test import override_settings
from pretix.helpers.urls import reverse_absolute_url_global_domain
from pretix.helpers.urls import mainreverse_absolute
def test_site_url_domain():
with override_settings(SITE_URL='https://example.com'):
assert reverse_absolute_url_global_domain('control:auth.login') == 'https://example.com/control/login'
assert mainreverse_absolute('control:auth.login') == 'https://example.com/control/login'
def test_site_url_subpath():
with override_settings(SITE_URL='https://example.com/presale'):
old_prefix = urls.get_script_prefix()
urls.set_script_prefix('/presale/')
assert reverse_absolute_url_global_domain('control:auth.login') == 'https://example.com/presale/control/login'
assert mainreverse_absolute('control:auth.login') == 'https://example.com/presale/control/login'
urls.set_script_prefix(old_prefix)