mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-03-11 09:04:54 +00:00
Make Django urlpatterns list of url()s
- Support for legacy pattern() mechanism will be removed in Django 1.10. Currently we see a warning for each Plinth module.
This commit is contained in:
parent
a432e16ed7
commit
a69f419c3c
@ -108,9 +108,9 @@ def _include_module_urls(module_name):
|
||||
namespace = module_name.split('.')[-1]
|
||||
url_module = module_name + '.urls'
|
||||
try:
|
||||
urls.urlpatterns += django.conf.urls.patterns(
|
||||
'', django.conf.urls.url(
|
||||
r'', django.conf.urls.include(url_module, namespace)))
|
||||
urls.urlpatterns += [
|
||||
django.conf.urls.url(
|
||||
r'', django.conf.urls.include(url_module, namespace))]
|
||||
except ImportError:
|
||||
LOGGER.debug('No URLs for %s', module_name)
|
||||
if cfg.debug:
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Apps module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import apps as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.apps.apps',
|
||||
url(r'^apps/$', 'index', name='index')
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,9 +19,11 @@
|
||||
URLs for the service discovery module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
urlpatterns = patterns( # pylint: disable=C0103
|
||||
'plinth.modules.avahi.views',
|
||||
url(r'^sys/avahi/$', 'index', name='index'),
|
||||
)
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^sys/avahi/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -21,8 +21,9 @@ URLs for the Configuration module
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
|
||||
from . import config as views
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.config.config',
|
||||
url(r'^sys/config/$', 'index', name='index'),
|
||||
)
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^sys/config/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,10 @@
|
||||
URLs for the date and time module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.datetime.views',
|
||||
url(r'^sys/datetime/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^sys/datetime/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Deluge module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.deluge.views',
|
||||
url(r'^apps/deluge/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/deluge/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,12 +19,13 @@
|
||||
URLs for the Diagnostics module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import diagnostics as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.diagnostics.diagnostics',
|
||||
url(r'^sys/diagnostics/$', 'index', name='index'),
|
||||
url(r'^sys/diagnostics/(?P<module_name>[a-z\-]+)/$', 'module',
|
||||
urlpatterns = [
|
||||
url(r'^sys/diagnostics/$', views.index, name='index'),
|
||||
url(r'^sys/diagnostics/(?P<module_name>[a-z\-]+)/$', views.module,
|
||||
name='module'),
|
||||
)
|
||||
]
|
||||
|
||||
@ -19,12 +19,13 @@
|
||||
URLs for the dynamicdns module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import dynamicdns as views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.dynamicdns.dynamicdns',
|
||||
url(r'^apps/dynamicdns/$', 'index', name='index'),
|
||||
url(r'^apps/dynamicdns/configure/$', 'configure', name='configure'),
|
||||
url(r'^apps/dynamicdns/statuspage/$', 'statuspage', name='statuspage')
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/dynamicdns/$', views.index, name='index'),
|
||||
url(r'^apps/dynamicdns/configure/$', views.configure, name='configure'),
|
||||
url(r'^apps/dynamicdns/statuspage/$', views.statuspage, name='statuspage'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Firewall module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import firewall as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.firewall.firewall',
|
||||
url(r'^sys/firewall/$', 'index', name='index')
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^sys/firewall/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,17 +19,16 @@
|
||||
URLs for the First Boot module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
from stronghold.decorators import public
|
||||
|
||||
from .views import State0View, State1View
|
||||
from .views import State0View, State1View, state10
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.first_boot.views',
|
||||
urlpatterns = [
|
||||
# Take care of the firstboot middleware when changing URLs
|
||||
url(r'^firstboot/$', public(State0View.as_view()), name='index'),
|
||||
url(r'^firstboot/state0/$', public(State0View.as_view()), name='state0'),
|
||||
url(r'^firstboot/state1/$', public(State1View.as_view()), name='state1'),
|
||||
url(r'^firstboot/state10/$', 'state10', name='state10'),
|
||||
)
|
||||
url(r'^firstboot/state10/$', state10, name='state10'),
|
||||
]
|
||||
|
||||
@ -19,16 +19,17 @@
|
||||
URLs for the Help module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import help as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.help.help',
|
||||
urlpatterns = [
|
||||
# having two urls for one page is a hack to help the current url/menu
|
||||
# system highlight the correct menu item. Every submenu-item with the same
|
||||
# url prefix as the main-menu is highlighted automatically.
|
||||
url(r'^help/$', 'index', name='index'),
|
||||
url(r'^help/index/$', 'index', name='index_explicit'),
|
||||
url(r'^help/about/$', 'about', name='about'),
|
||||
url(r'^help/manual/$', 'manual', name='manual'),
|
||||
)
|
||||
url(r'^help/$', views.index, name='index'),
|
||||
url(r'^help/index/$', views.index, name='index_explicit'),
|
||||
url(r'^help/about/$', views.about, name='about'),
|
||||
url(r'^help/manual/$', views.manual, name='manual'),
|
||||
]
|
||||
|
||||
@ -19,14 +19,15 @@
|
||||
URLs for the ikiwiki module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.ikiwiki.views',
|
||||
url(r'^apps/ikiwiki/$', 'index', name='index'),
|
||||
url(r'^apps/ikiwiki/manage/$', 'manage', name='manage'),
|
||||
url(r'^apps/ikiwiki/(?P<name>[\w.@+-]+)/delete/$',
|
||||
'delete', name='delete'),
|
||||
url(r'^apps/ikiwiki/create/$', 'create', name='create'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/ikiwiki/$', views.index, name='index'),
|
||||
url(r'^apps/ikiwiki/manage/$', views.manage, name='manage'),
|
||||
url(r'^apps/ikiwiki/(?P<name>[\w.@+-]+)/delete/$', views.delete,
|
||||
name='delete'),
|
||||
url(r'^apps/ikiwiki/create/$', views.create, name='create'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Mumble module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.mumble.views',
|
||||
url(r'^apps/mumble/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/mumble/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the name services module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.names.views',
|
||||
url(r'^sys/names/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^sys/names/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,26 +19,26 @@
|
||||
URLs for the Network module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import networks as views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.networks.networks',
|
||||
url(r'^sys/networks/$', 'index', name='index'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/show/$',
|
||||
'show', name='show'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/edit/$',
|
||||
'edit', name='edit'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/activate/$',
|
||||
'activate', name='activate'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/deactivate/$',
|
||||
'deactivate', name='deactivate'),
|
||||
url(r'^sys/networks/scan/$', 'scan', name='scan'),
|
||||
url(r'^sys/networks/add/$', 'add', name='add'),
|
||||
url(r'^sys/networks/add/ethernet/$', 'add_ethernet', name='add_ethernet'),
|
||||
url(r'^sys/networks/add/pppoe/$', 'add_pppoe', name='add_pppoe'),
|
||||
url(r'^sys/networks/add/wifi/(?:(?P<ssid>[^/]+)/(?P<interface_name>[^/]+)/)?$', 'add_wifi',
|
||||
name='add_wifi'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/delete/$',
|
||||
'delete', name='delete'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^sys/networks/$', views.index, name='index'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/show/$', views.show, name='show'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/edit/$', views.edit, name='edit'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/activate/$', views.activate,
|
||||
name='activate'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/deactivate/$', views.deactivate,
|
||||
name='deactivate'),
|
||||
url(r'^sys/networks/scan/$', views.scan, name='scan'),
|
||||
url(r'^sys/networks/add/$', views.add, name='add'),
|
||||
url(r'^sys/networks/add/ethernet/$', views.add_ethernet,
|
||||
name='add_ethernet'),
|
||||
url(r'^sys/networks/add/pppoe/$', views.add_pppoe, name='add_pppoe'),
|
||||
url(r'^sys/networks/add/wifi/(?:(?P<ssid>[^/]+)/(?P<interface_name>[^/]+)/)?$',
|
||||
views.add_wifi, name='add_wifi'),
|
||||
url(r'^sys/networks/(?P<uuid>[\w.@+-]+)/delete/$', views.delete,
|
||||
name='delete'),
|
||||
]
|
||||
|
||||
@ -19,12 +19,13 @@
|
||||
URLs for the OpenVPN module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.openvpn.views',
|
||||
url(r'^apps/openvpn/$', 'index', name='index'),
|
||||
url(r'^apps/openvpn/setup/$', 'setup', name='setup'),
|
||||
url(r'^apps/openvpn/profile/$', 'profile', name='profile'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/openvpn/$', views.index, name='index'),
|
||||
url(r'^apps/openvpn/setup/$', views.setup, name='setup'),
|
||||
url(r'^apps/openvpn/profile/$', views.profile, name='profile'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the ownCloud module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import owncloud as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.owncloud.owncloud',
|
||||
url(r'^apps/owncloud/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/owncloud/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,14 +19,13 @@
|
||||
URLs for the PageKite module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from .views import StandardServiceView, CustomServiceView, ConfigurationView, \
|
||||
DeleteServiceView, index
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.pagekite.views',
|
||||
urlpatterns = [
|
||||
url(r'^apps/pagekite/$', index, name='index'),
|
||||
url(r'^apps/pagekite/configure/$', ConfigurationView.as_view(),
|
||||
name='configure'),
|
||||
@ -36,4 +35,4 @@ urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
name='custom-services'),
|
||||
url(r'^apps/pagekite/services/custom/delete$', DeleteServiceView.as_view(),
|
||||
name='delete-custom-service'),
|
||||
)
|
||||
]
|
||||
|
||||
@ -19,11 +19,13 @@
|
||||
URLs for the power module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.power.views',
|
||||
url(r'^sys/power/$', 'index', name='index'),
|
||||
url(r'^sys/power/restart$', 'restart', name='restart'),
|
||||
url(r'^sys/power/shutdown$', 'shutdown', name='shutdown'),
|
||||
)
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^sys/power/$', views.index, name='index'),
|
||||
url(r'^sys/power/restart$', views.restart, name='restart'),
|
||||
url(r'^sys/power/shutdown$', views.shutdown, name='shutdown'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Privoxy module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.privoxy.views',
|
||||
url(r'^apps/privoxy/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/privoxy/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,11 +19,11 @@
|
||||
URLs for the reStore module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from .views import index
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.restore.views',
|
||||
url(r'^apps/restore/$', index, name='index')
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/restore/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Roundcube module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.roundcube.views',
|
||||
url(r'^apps/roundcube/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/roundcube/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Shaarli module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.shaarli.views',
|
||||
url(r'^apps/shaarli/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/shaarli/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the System module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import system as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.system.system',
|
||||
url(r'^sys/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^sys/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Tor module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import tor as views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.tor.tor',
|
||||
url(r'^apps/tor/$', 'index', name='index')
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/tor/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,10 +19,11 @@
|
||||
URLs for the Transmission module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.transmission.views',
|
||||
url(r'^apps/transmission/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/transmission/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
@ -19,12 +19,13 @@
|
||||
URLs for the upgrades module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'plinth.modules.upgrades.views',
|
||||
url(r'^sys/upgrades/$', 'index', name='index'),
|
||||
url(r'^sys/upgrades/upgrade/$', 'upgrade', name='upgrade'),
|
||||
url(r'^sys/upgrades/upgrade/run/$', 'run', name='run'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^sys/upgrades/$', views.index, name='index'),
|
||||
url(r'^sys/upgrades/upgrade/$', views.upgrade, name='upgrade'),
|
||||
url(r'^sys/upgrades/upgrade/run/$', views.run, name='run'),
|
||||
]
|
||||
|
||||
@ -19,14 +19,14 @@
|
||||
URLs for the Users module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
from django.contrib.auth import views as auth_views
|
||||
from django.core.urlresolvers import reverse_lazy
|
||||
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = patterns(
|
||||
'',
|
||||
urlpatterns = [
|
||||
url(r'^sys/users/$', views.UserList.as_view(), name='index'),
|
||||
url(r'^sys/users/create/$', views.UserCreate.as_view(), name='create'),
|
||||
url(r'^sys/users/(?P<slug>[\w.@+-]+)/edit/$', views.UserUpdate.as_view(),
|
||||
@ -36,8 +36,8 @@ urlpatterns = patterns(
|
||||
url(r'^sys/users/(?P<slug>[\w.@+-]+)/change_password/$',
|
||||
views.UserChangePassword.as_view(), name='change_password'),
|
||||
# Add Django's login/logout urls
|
||||
url(r'^accounts/login/$', 'django.contrib.auth.views.login',
|
||||
url(r'^accounts/login/$', auth_views.login,
|
||||
{'template_name': 'login.html'}, name='login'),
|
||||
url(r'^accounts/logout/$', 'django.contrib.auth.views.logout',
|
||||
url(r'^accounts/logout/$', auth_views.logout,
|
||||
{'next_page': reverse_lazy('index')}, name='logout'),
|
||||
)
|
||||
]
|
||||
|
||||
@ -19,10 +19,10 @@
|
||||
URLs for the XMPP module
|
||||
"""
|
||||
|
||||
from django.conf.urls import patterns, url
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = patterns( # pylint: disable-msg=C0103
|
||||
'plinth.modules.xmpp.views',
|
||||
url(r'^apps/xmpp/$', 'index', name='index'),
|
||||
)
|
||||
urlpatterns = [
|
||||
url(r'^apps/xmpp/$', views.index, name='index'),
|
||||
]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user