diff rhodecode/controllers/home.py @ 1366:9c0f5d558789 beta

fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached to db repository instance, and then fetched from cache. Also made all current test work.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 07 Jun 2011 17:58:51 +0200
parents 3bce31f026b8
children eee3cb592099
line wrap: on
line diff
--- a/rhodecode/controllers/home.py	Mon Jun 06 17:30:34 2011 +0200
+++ b/rhodecode/controllers/home.py	Tue Jun 07 17:58:51 2011 +0200
@@ -31,7 +31,7 @@
 
 from rhodecode.lib.auth import LoginRequired
 from rhodecode.lib.base import BaseController, render
-from rhodecode.model.db import Group
+from rhodecode.model.db import Group, Repository
 
 log = logging.getLogger(__name__)
 
@@ -56,16 +56,11 @@
 
         sort_key = current_sort_slug + '_sort'
 
-        if c.sort_by.startswith('-'):
-            c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key),
-                                  reverse=True)
-        else:
-            c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key),
-                                  reverse=False)
+
+        c.repos_list = self.scm_model.get_repos(sort_key=sort_key)
 
         c.repo_cnt = len(c.repos_list)
 
-
         c.groups = Group.query().filter(Group.group_parent_id == None).all()
 
 
@@ -73,8 +68,9 @@
 
     def repo_switcher(self):
         if request.is_xhr:
-            c.repos_list = sorted(c.cached_repo_list,
-                                  key=itemgetter('name_sort'), reverse=False)
+            all_repos = Repository.query().order_by(Repository.repo_name).all()
+            c.repos_list = self.scm_model.get_repos(all_repos,
+                                                    sort_key='name_sort')
             return render('/repo_switcher_list.html')
         else:
             return HTTPBadRequest()