--- a/Allura/allura/controllers/root.py
+++ b/Allura/allura/controllers/root.py
@@ -58,14 +58,21 @@
nf.admin = SiteAdminController()
search = SearchController()
rest = RestController()
+ neighborhoods_bound = False
def __init__(self):
- for n in M.Neighborhood.query.find():
- if n.url_prefix.startswith('//'): continue
- n.bind_controller(self)
+ if not self.neighborhoods_bound:
+ self.bind_controllers()
self.browse = ProjectBrowseController()
self.allura_sitemap = SitemapIndexController()
super(RootController, self).__init__()
+
+ @classmethod
+ def bind_controllers(cls):
+ for n in M.Neighborhood.query.find():
+ if n.url_prefix.startswith('//'): continue
+ n.bind_controller(cls)
+ cls.neighborhoods_bound = True
def _setup_request(self):
c.project = c.app = None
@@ -83,7 +90,7 @@
c.project_summary = W.project_summary
projects = M.Project.query.find(
dict(is_root=True,
- shortname={'$ne':'--init--'},
+ is_nbhd_project=False,
deleted=False)).sort('shortname').all()
neighborhoods = M.Neighborhood.query.find().sort('name')
psort = [ (n, [ p for p in projects if p.neighborhood_id==n._id ])