Mercurial > kallithea
comparison rhodecode/controllers/admin/repos_groups.py @ 1193:523382549c45 beta
Added repo group page showing what reposiories are inside a group
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 01 Apr 2011 18:46:24 +0200 |
parents | 2ab211e0aecd |
children | 5f2fbab7c429 |
comparison
equal
deleted
inserted
replaced
1192:01fe71db71f6 | 1193:523382549c45 |
---|---|
1 import logging | 1 import logging |
2 from operator import itemgetter | |
2 | 3 |
3 from pylons import request, response, session, tmpl_context as c, url | 4 from pylons import request, response, session, tmpl_context as c, url |
4 from pylons.controllers.util import abort, redirect | 5 from pylons.controllers.util import abort, redirect |
5 | 6 |
6 from rhodecode.lib.base import BaseController, render | 7 from rhodecode.lib.base import BaseController, render |
8 from rhodecode.model.db import Group | |
7 | 9 |
8 log = logging.getLogger(__name__) | 10 log = logging.getLogger(__name__) |
9 | 11 |
10 class ReposGroupsController(BaseController): | 12 class ReposGroupsController(BaseController): |
11 """REST Controller styled on the Atom Publishing Protocol""" | 13 """REST Controller styled on the Atom Publishing Protocol""" |
45 | 47 |
46 def show(self, id, format='html'): | 48 def show(self, id, format='html'): |
47 """GET /repos_groups/id: Show a specific item""" | 49 """GET /repos_groups/id: Show a specific item""" |
48 # url('repos_group', id=ID) | 50 # url('repos_group', id=ID) |
49 | 51 |
52 c.group = Group.get(id) | |
53 if c.group: | |
54 c.group_repos = c.group.repositories | |
55 else: | |
56 return redirect(url('repos_group')) | |
57 | |
58 sortables = ['name', 'description', 'last_change', 'tip', 'owner'] | |
59 current_sort = request.GET.get('sort', 'name') | |
60 current_sort_slug = current_sort.replace('-', '') | |
61 | |
62 if current_sort_slug not in sortables: | |
63 c.sort_by = 'name' | |
64 current_sort_slug = c.sort_by | |
65 else: | |
66 c.sort_by = current_sort | |
67 c.sort_slug = current_sort_slug | |
68 | |
69 sort_key = current_sort_slug + '_sort' | |
70 | |
71 | |
72 #overwrite our cached list with current filter | |
73 gr_filter = [r.repo_name for r in c.group_repos] | |
74 c.cached_repo_list = self.scm_model.get_repos(all_repos=gr_filter) | |
75 | |
76 if c.sort_by.startswith('-'): | |
77 c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), | |
78 reverse=True) | |
79 else: | |
80 c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), | |
81 reverse=False) | |
82 | |
83 c.repo_cnt = len(c.repos_list) | |
84 | |
85 | |
86 return render('admin/repos_groups/repos_groups.html') | |
87 | |
88 | |
50 def edit(self, id, format='html'): | 89 def edit(self, id, format='html'): |
51 """GET /repos_groups/id/edit: Form to edit an existing item""" | 90 """GET /repos_groups/id/edit: Form to edit an existing item""" |
52 # url('edit_repos_group', id=ID) | 91 # url('edit_repos_group', id=ID) |