Mercurial > kallithea
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() |