diff options
Diffstat (limited to 'bitbake/lib/toaster/toastermain/urls.py')
-rw-r--r-- | bitbake/lib/toaster/toastermain/urls.py | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/bitbake/lib/toaster/toastermain/urls.py b/bitbake/lib/toaster/toastermain/urls.py index 1ae6245cc3..f66f11dcde 100644 --- a/bitbake/lib/toaster/toastermain/urls.py +++ b/bitbake/lib/toaster/toastermain/urls.py @@ -23,6 +23,9 @@ from django.conf.urls import patterns, include, url from django.views.generic import RedirectView from django.views.decorators.cache import never_cache +import logging + +logger = logging.getLogger("toaster") # Uncomment the next two lines to enable the admin: from django.contrib import admin @@ -44,17 +47,43 @@ urlpatterns = patterns('', ) import toastermain.settings + +if toastermain.settings.FRESH_ENABLED: + urlpatterns.insert(1, url(r'', include('fresh.urls'))) + logger.info("Enabled django-fresh extension") + +if toastermain.settings.DEBUG_PANEL_ENABLED: + import debug_toolbar + urlpatterns.insert(1, url(r'', include(debug_toolbar.urls))) + logger.info("Enabled django_toolbar extension") + + if toastermain.settings.MANAGED: - urlpatterns = urlpatterns + [ + urlpatterns = [ # Uncomment the next line to enable the admin: url(r'^admin/', include(admin.site.urls)), - ] + ] + urlpatterns # Automatically discover urls.py in various apps, beside our own # and map module directories to the patterns import os currentdir = os.path.dirname(__file__) for t in os.walk(os.path.dirname(currentdir)): + #if we have a virtualenv skip it to avoid incorrect imports + if os.environ.has_key('VIRTUAL_ENV') and os.environ['VIRTUAL_ENV'] in t[0]: + continue + if "urls.py" in t[2] and t[0] != currentdir: modulename = os.path.basename(t[0]) - urlpatterns.append( url(r'^' + modulename + '/', include ( modulename + '.urls'))) + # make sure we don't have this module name in + conflict = False + for p in urlpatterns: + if p.regex.pattern == '^' + modulename + '/': + conflict = True + if not conflict: + urlpatterns.insert(0, url(r'^' + modulename + '/', include ( modulename + '.urls'))) + else: + logger.warn("Module \'%s\' has a regexp conflict, was not added to the urlpatterns" % modulename) + +from pprint import pformat +logger.debug("urlpatterns list %s", pformat(urlpatterns)) |