def urlpatterns(self): '''load and decorate urls from all modules then store it as cached property for less loading ''' if not hasattr(self, '_urlspatterns'): urlpatterns = [] # load all urls # support .urls file and urls_conf = 'elephantblog.urls' on default module # decorate all url patterns if is not explicitly excluded for mod in leonardo.modules: # TODO this not work if is_leonardo_module(mod): conf = get_conf_from_module(mod) if module_has_submodule(mod, 'urls'): urls_mod = import_module('.urls', mod.__name__) if hasattr(urls_mod, 'urlpatterns'): # if not public decorate all if conf['public']: urlpatterns += urls_mod.urlpatterns else: _decorate_urlconf(urls_mod.urlpatterns, require_auth) urlpatterns += urls_mod.urlpatterns # avoid circural dependency # TODO use our loaded modules instead this property from django.conf import settings for urls_conf, conf in six.iteritems(getattr(settings, 'MODULE_URLS', {})): # is public ? try: if conf['is_public']: urlpatterns += \ patterns('', url(r'', include(urls_conf)), ) else: _decorate_urlconf( url(r'', include(urls_conf)), require_auth) urlpatterns += patterns('', url(r'', include(urls_conf))) except Exception as e: raise Exception('raised %s during loading %s' % (str(e), urls_conf)) self._urlpatterns = urlpatterns return self._urlpatterns
def urlpatterns(self): '''load and decorate urls from all modules then store it as cached property for less loading ''' if not hasattr(self, '_urlspatterns'): urlpatterns = [] # load all urls # support .urls file and urls_conf = 'elephantblog.urls' on default module # decorate all url patterns if is not explicitly excluded for mod in leonardo.modules: # TODO this not work if is_leonardo_module(mod): conf = get_conf_from_module(mod) if module_has_submodule(mod, 'urls'): urls_mod = import_module('.urls', mod.__name__) if hasattr(urls_mod, 'urlpatterns'): # if not public decorate all if conf['public']: urlpatterns += urls_mod.urlpatterns else: _decorate_urlconf(urls_mod.urlpatterns, require_auth) urlpatterns += urls_mod.urlpatterns # avoid circural dependency # TODO use our loaded modules instead this property from django.conf import settings for urls_conf, conf in six.iteritems( getattr(settings, 'MODULE_URLS', {})): # is public ? try: if conf['is_public']: urlpatterns += \ patterns('', url(r'', include(urls_conf)), ) else: _decorate_urlconf(url(r'', include(urls_conf)), require_auth) urlpatterns += patterns('', url(r'', include(urls_conf))) except Exception as e: raise Exception('raised %s during loading %s' % (str(e), urls_conf)) self._urlpatterns = urlpatterns return self._urlpatterns
from django.conf.urls import url from .views import EpicEditorView from constance import config urlpatterns = [ url(r"^epiceditor/$", EpicEditorView.as_view(), name="epiceditor"), ] if not config.LEONARDO_EPICEDITOR_PUBLIC: from leonardo.decorators import _decorate_urlconf _decorate_urlconf(urlpatterns)
from __future__ import absolute_import from django.conf.urls import include, patterns, url from horizon_contrib.forms.views import CreateView, UpdateView from horizon_contrib.generic.views import GenericIndexView from leonardo.decorators import _decorate_urlconf, staff_member # override native horizon-contrib views GenericIndexView.template_name = "leonardo/common/_index.html" CreateView.template_name = "leonardo/common/modal.html" UpdateView.template_name = "leonardo/common/modal.html" urlpatterns = patterns('', url(r'^page/', include('leonardo.module.web.page.urls')), url(r'^widget/', include('leonardo.module.web.widgets.urls')), ) # mark all edit view as staff member required _decorate_urlconf(urlpatterns, staff_member)
from constance import config from django.conf.urls import url from leonardo_keeweb.views import KeewebView urlpatterns = [ url(r'^%s$' % config.LEONARDO_KEEWEB_PATH, KeewebView.as_view()) ] if not config.LEONARDO_KEEWEB_PUBLIC: from leonardo.decorators import _decorate_urlconf _decorate_urlconf(urlpatterns)
from __future__ import absolute_import from django.conf.urls import include, patterns, url from horizon_contrib.forms.views import CreateView, UpdateView from horizon_contrib.generic.views import GenericIndexView from leonardo.decorators import _decorate_urlconf, staff_member # override native horizon-contrib views GenericIndexView.template_name = "leonardo/common/_index.html" CreateView.template_name = "leonardo/common/modal.html" UpdateView.template_name = "leonardo/common/modal.html" urlpatterns = patterns( '', url(r'^page/', include('leonardo.module.web.page.urls')), url(r'^widget/', include('leonardo.module.web.widgets.urls')), ) # mark all edit view as staff member required _decorate_urlconf(urlpatterns, staff_member)