organization management urls separated
This commit is contained in:
parent
e813639209
commit
3dc9d7a75b
|
@ -0,0 +1,2 @@
|
|||
{% extends "uauth/base.html" %}
|
||||
{% load i18n %}
|
|
@ -0,0 +1,7 @@
|
|||
from django.conf.urls import patterns, url
|
||||
|
||||
from .views import *
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^$', manage, name='manage'),
|
||||
)
|
|
@ -1,3 +1,6 @@
|
|||
from django.shortcuts import render
|
||||
from django.views.generic.base import TemplateView
|
||||
|
||||
# Create your views here.
|
||||
class ManageView(TemplateView):
|
||||
template_name = 'organization/manage.html'
|
||||
|
||||
manage = ManageView.as_view()
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
from django.conf import settings
|
||||
from django.conf.urls import patterns, include, url
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
||||
from .views import homepage, login, organization
|
||||
from .views import homepage, organization, login
|
||||
from .urls_utils import decorated_includes
|
||||
from .organization.urls import urlpatterns as organization_urls
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^admin/', include(admin.site.urls)),
|
||||
url(r'^(?P<organization_slug>[\w-]+)/manage/', decorated_includes(login_required, include(organization_urls))),
|
||||
url(r'^$', homepage, name='organization-home'),
|
||||
url(r'^(?P<organization_slug>[\w-]+)$', organization, name='organization-home'),
|
||||
url(r'^(?P<organization_slug>[\w-]+)/login', login, name='organization-login'),
|
||||
url(r'^accounts/', include('django.contrib.auth.urls')),
|
||||
url(r'^accounts/mellon/login/$', login, name='mellon_login'),
|
||||
url(r'^accounts/mellon/', include('mellon.urls')),
|
||||
url(r'^(?P<organization_slug>[\w-]+)$', organization, name='organization-home'),
|
||||
url(r'^(?P<organization_slug>[\w-]+)/login', login,
|
||||
name='organization-login'),
|
||||
)
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
# Decorating URL includes, <https://djangosnippets.org/snippets/2532/>
|
||||
|
||||
from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
|
||||
|
||||
class DecoratedURLPattern(RegexURLPattern):
|
||||
def resolve(self, *args, **kwargs):
|
||||
result = super(DecoratedURLPattern, self).resolve(*args, **kwargs)
|
||||
if result:
|
||||
result.func = self._decorate_with(result.func)
|
||||
return result
|
||||
|
||||
class DecoratedRegexURLResolver(RegexURLResolver):
|
||||
def resolve(self, *args, **kwargs):
|
||||
result = super(DecoratedRegexURLResolver, self).resolve(*args, **kwargs)
|
||||
if result:
|
||||
result.func = self._decorate_with(result.func)
|
||||
return result
|
||||
|
||||
def decorated_includes(func, includes, *args, **kwargs):
|
||||
urlconf_module, app_name, namespace = includes
|
||||
|
||||
for item in urlconf_module:
|
||||
if isinstance(item, RegexURLPattern):
|
||||
item.__class__ = DecoratedURLPattern
|
||||
item._decorate_with = func
|
||||
|
||||
elif isinstance(item, RegexURLResolver):
|
||||
item.__class__ = DecoratedRegexURLResolver
|
||||
item._decorate_with = func
|
||||
|
||||
return urlconf_module, app_name, namespace
|
Reference in New Issue