comparison 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
comparison
equal deleted inserted replaced
1365:cd865113423e 1366:9c0f5d558789
29 from pylons import tmpl_context as c, request 29 from pylons import tmpl_context as c, request
30 from paste.httpexceptions import HTTPBadRequest 30 from paste.httpexceptions import HTTPBadRequest
31 31
32 from rhodecode.lib.auth import LoginRequired 32 from rhodecode.lib.auth import LoginRequired
33 from rhodecode.lib.base import BaseController, render 33 from rhodecode.lib.base import BaseController, render
34 from rhodecode.model.db import Group 34 from rhodecode.model.db import Group, Repository
35 35
36 log = logging.getLogger(__name__) 36 log = logging.getLogger(__name__)
37 37
38 38
39 class HomeController(BaseController): 39 class HomeController(BaseController):
54 c.sort_by = current_sort 54 c.sort_by = current_sort
55 c.sort_slug = current_sort_slug 55 c.sort_slug = current_sort_slug
56 56
57 sort_key = current_sort_slug + '_sort' 57 sort_key = current_sort_slug + '_sort'
58 58
59 if c.sort_by.startswith('-'): 59
60 c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), 60 c.repos_list = self.scm_model.get_repos(sort_key=sort_key)
61 reverse=True)
62 else:
63 c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key),
64 reverse=False)
65 61
66 c.repo_cnt = len(c.repos_list) 62 c.repo_cnt = len(c.repos_list)
67
68 63
69 c.groups = Group.query().filter(Group.group_parent_id == None).all() 64 c.groups = Group.query().filter(Group.group_parent_id == None).all()
70 65
71 66
72 return render('/index.html') 67 return render('/index.html')
73 68
74 def repo_switcher(self): 69 def repo_switcher(self):
75 if request.is_xhr: 70 if request.is_xhr:
76 c.repos_list = sorted(c.cached_repo_list, 71 all_repos = Repository.query().order_by(Repository.repo_name).all()
77 key=itemgetter('name_sort'), reverse=False) 72 c.repos_list = self.scm_model.get_repos(all_repos,
73 sort_key='name_sort')
78 return render('/repo_switcher_list.html') 74 return render('/repo_switcher_list.html')
79 else: 75 else:
80 return HTTPBadRequest() 76 return HTTPBadRequest()