diff --git a/doc/development/api/plugins.rst b/doc/development/api/plugins.rst
index 1f33b0cacf..5b66470b73 100644
--- a/doc/development/api/plugins.rst
+++ b/doc/development/api/plugins.rst
@@ -94,7 +94,8 @@ Views
Your plugin may define custom views. If you put an ``urls`` submodule into your
plugin module, pretix will automatically import it and include it into the root
-URL configuration.
+URL configuration with the namespace ``plugins::``, where ```` is
+your Django app label.
.. WARNING:: If you define custom URLs and views, you are currently on your own
with checking that the calling user is logged in, has appropriate permissions,
diff --git a/src/pretix/plugins/banktransfer/signals.py b/src/pretix/plugins/banktransfer/signals.py
index d8f374bba5..162fe00bb9 100644
--- a/src/pretix/plugins/banktransfer/signals.py
+++ b/src/pretix/plugins/banktransfer/signals.py
@@ -19,11 +19,11 @@ def control_nav_import(sender, request=None, **kwargs):
return [
{
'label': _('Import bank data'),
- 'url': reverse('plugins:banktransfer.import', kwargs={
+ 'url': reverse('plugins:banktransfer:import', kwargs={
'event': request.event.slug,
'organizer': request.event.organizer.slug,
}),
- 'active': (url.namespace == 'plugins' and url.url_name == 'banktransfer.import'),
+ 'active': (url.namespace == 'plugins:banktransfer' and url.url_name == 'import'),
'icon': 'upload',
}
]
diff --git a/src/pretix/plugins/banktransfer/urls.py b/src/pretix/plugins/banktransfer/urls.py
index 7b183113cc..11942818bc 100644
--- a/src/pretix/plugins/banktransfer/urls.py
+++ b/src/pretix/plugins/banktransfer/urls.py
@@ -5,5 +5,5 @@ from .views import *
urlpatterns = [
url(r'^control/event/(?P[^/]+)/(?P[^/]+)/banktransfer/import/', ImportView.as_view(),
- name='banktransfer.import'),
+ name='import'),
]
diff --git a/src/pretix/plugins/banktransfer/views.py b/src/pretix/plugins/banktransfer/views.py
index b9bb2c475d..ca0cf6bb54 100644
--- a/src/pretix/plugins/banktransfer/views.py
+++ b/src/pretix/plugins/banktransfer/views.py
@@ -125,7 +125,7 @@ class ImportView(EventPermissionRequiredMixin, TemplateView):
})
def redirect_back(self):
- return redirect(reverse('plugins:banktransfer.import', kwargs={
+ return redirect(reverse('plugins:banktransfer:import', kwargs={
'event': self.request.event.slug,
'organizer': self.request.event.organizer.slug,
}))
diff --git a/src/pretix/plugins/paypal/payment.py b/src/pretix/plugins/paypal/payment.py
index 686a960266..5673941aae 100644
--- a/src/pretix/plugins/paypal/payment.py
+++ b/src/pretix/plugins/paypal/payment.py
@@ -88,8 +88,8 @@ class Paypal(BasePaymentProvider):
"payment_method": "paypal",
},
"redirect_urls": {
- "return_url": request.build_absolute_uri(reverse('plugins:paypal.return')),
- "cancel_url": request.build_absolute_uri(reverse('plugins:paypal.abort')),
+ "return_url": request.build_absolute_uri(reverse('plugins:paypal:return')),
+ "cancel_url": request.build_absolute_uri(reverse('plugins:paypal:abort')),
},
"transactions": [
{
diff --git a/src/pretix/plugins/paypal/templates/pretixplugins/paypal/pending.html b/src/pretix/plugins/paypal/templates/pretixplugins/paypal/pending.html
index 7d6ed09e8a..a7ee12b963 100644
--- a/src/pretix/plugins/paypal/templates/pretixplugins/paypal/pending.html
+++ b/src/pretix/plugins/paypal/templates/pretixplugins/paypal/pending.html
@@ -5,7 +5,7 @@
Our attempt to execute your Payment via PayPal has failed. Please try again or contact us.
{% endblocktrans %}
- {% trans "Try again" %}
+ {% trans "Try again" %}
{% else %}
{% blocktrans trimmed %}
diff --git a/src/pretix/plugins/paypal/views.py b/src/pretix/plugins/paypal/views.py
index 3d5714b391..afcd93f047 100644
--- a/src/pretix/plugins/paypal/views.py
+++ b/src/pretix/plugins/paypal/views.py
@@ -73,10 +73,10 @@ def retry(request, order):
"payment_method": "paypal",
},
"redirect_urls": {
- "return_url": request.build_absolute_uri(reverse('plugins:paypal.retry', kwargs={
+ "return_url": request.build_absolute_uri(reverse('plugins:paypal:retry', kwargs={
'order': order.code
})),
- "cancel_url": request.build_absolute_uri(reverse('plugins:paypal.retry', kwargs={
+ "cancel_url": request.build_absolute_uri(reverse('plugins:paypal:retry', kwargs={
'order': order.code
})),
},
diff --git a/src/pretix/urls.py b/src/pretix/urls.py
index bab437ac5a..14e437d500 100644
--- a/src/pretix/urls.py
+++ b/src/pretix/urls.py
@@ -21,15 +21,19 @@ if settings.DEBUG:
url(r'^__debug__/', include(debug_toolbar.urls)),
)
+pluginpatterns = []
for app in apps.get_app_configs():
if hasattr(app, 'PretixPluginMeta'):
try:
urlmod = importlib.import_module(app.name + '.urls')
- urlpatterns.append(
- url(r'', include(urlmod, namespace='plugins'))
+ pluginpatterns.append(
+ url(r'', include(urlmod, namespace=app.label))
)
except ImportError:
pass
+urlpatterns.append(
+ url(r'', include(pluginpatterns, namespace='plugins'))
+)
urlpatterns.append(
url(r'', include(pretix.presale.urls, namespace='presale'))