[bitbake-devel,2/9] toaster: automatically discover urls.py files

Submitted by Alexandru DAMIAN on July 9, 2014, 4:55 p.m.

Details

Message ID 4000d8224206f404d174a5bc4aa49af55cb44d27.1404924714.git.alexandru.damian@intel.com
State New
Headers show

Commit Message

Alexandru DAMIAN July 9, 2014, 4:55 p.m.
From: Alexandru DAMIAN <alexandru.damian@intel.com>

Added code to automatically discover and add url dispatchers
to the urlpattern list. This allows extension of Toaster
through adding applications that will be automatically
registered with the URL dispatcher.

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
---
 lib/toaster/toastermain/urls.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

Patch hide | download patch | download mbox

diff --git a/lib/toaster/toastermain/urls.py b/lib/toaster/toastermain/urls.py
index ede5e4f..0e7b5c2 100644
--- a/lib/toaster/toastermain/urls.py
+++ b/lib/toaster/toastermain/urls.py
@@ -27,12 +27,10 @@  from django.views.decorators.cache import never_cache
 # Uncomment the next two lines to enable the admin:
 # from django.contrib import admin
 # admin.autodiscover()
-
 urlpatterns = patterns('',
-    url(r'^simple/', include('bldviewer.urls')),
     url(r'^api/1.0/', include('bldviewer.api')),
-    url(r'^gui/', include('toastergui.urls')),
-    url(r'^$', never_cache(RedirectView.as_view(url='/gui/'))),
+    url(r'^$', never_cache(RedirectView.as_view(url='/toastergui/'))),
+
     # Examples:
     # url(r'^toaster/', include('toaster.foo.urls')),
 
@@ -42,3 +40,13 @@  urlpatterns = patterns('',
     # Uncomment the next line to enable the admin:
     # url(r'^admin/', include(admin.site.urls)),
 )
+
+# 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 "urls.py" in t[2] and t[0] != currentdir:
+        modulename = os.path.basename(t[0])
+        urlpatterns.append( url(r'^' + modulename + '/', include ( modulename + '.urls')))