Mercurial > kallithea
diff 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 |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos_groups.py Fri Apr 01 18:08:30 2011 +0200 +++ b/rhodecode/controllers/admin/repos_groups.py Fri Apr 01 18:46:24 2011 +0200 @@ -1,9 +1,11 @@ import logging +from operator import itemgetter from pylons import request, response, session, tmpl_context as c, url from pylons.controllers.util import abort, redirect from rhodecode.lib.base import BaseController, render +from rhodecode.model.db import Group log = logging.getLogger(__name__) @@ -47,6 +49,43 @@ """GET /repos_groups/id: Show a specific item""" # url('repos_group', id=ID) + c.group = Group.get(id) + if c.group: + c.group_repos = c.group.repositories + else: + return redirect(url('repos_group')) + + sortables = ['name', 'description', 'last_change', 'tip', 'owner'] + current_sort = request.GET.get('sort', 'name') + current_sort_slug = current_sort.replace('-', '') + + if current_sort_slug not in sortables: + c.sort_by = 'name' + current_sort_slug = c.sort_by + else: + c.sort_by = current_sort + c.sort_slug = current_sort_slug + + sort_key = current_sort_slug + '_sort' + + + #overwrite our cached list with current filter + gr_filter = [r.repo_name for r in c.group_repos] + c.cached_repo_list = self.scm_model.get_repos(all_repos=gr_filter) + + 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.repo_cnt = len(c.repos_list) + + + return render('admin/repos_groups/repos_groups.html') + + def edit(self, id, format='html'): """GET /repos_groups/id/edit: Form to edit an existing item""" # url('edit_repos_group', id=ID)