diff pylons_app/controllers/hg.py @ 169:8e01265fb586

added long term caching of repo_list to the base controller. changed hg and repos to use that cached list.
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 21 May 2010 02:17:13 +0200
parents 28f28d423268
children b68b2246e5a6
line wrap: on
line diff
--- a/pylons_app/controllers/hg.py	Fri May 21 02:13:34 2010 +0200
+++ b/pylons_app/controllers/hg.py	Fri May 21 02:17:13 2010 +0200
@@ -6,7 +6,6 @@
 from pylons_app.lib.base import BaseController, render
 from pylons_app.lib.utils import get_repo_slug
 from pylons_app.model.hg_model import HgModel
-from beaker.cache import cache_region
 log = logging.getLogger(__name__)
 
 class HgController(BaseController):
@@ -16,15 +15,7 @@
         c.repo_name = get_repo_slug(request)
         
     def index(self):
-        
-        hg_model = HgModel()
-        @cache_region('short_term', 'repo_list')
-        def _list():
-            return list(hg_model.get_repos())
-        
-        c.repos_list = _list()
         c.current_sort = request.GET.get('sort', 'name')
-        
         cs = c.current_sort
         c.cs_slug = cs.replace('-', '')
         sortables = ['name', 'description', 'last_change', 'tip', 'contact']
@@ -32,8 +23,8 @@
         if cs and c.cs_slug in sortables:
             sort_key = c.cs_slug + '_sort'
             if cs.startswith('-'):
-                c.repos_list.sort(key=itemgetter(sort_key), reverse=True)
+                c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), reverse=True)
             else:
-                c.repos_list.sort(key=itemgetter(sort_key), reverse=False)
+                c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), reverse=False)
             
         return render('/index.html')