diff --git a/kallithea/controllers/admin/repo_groups.py b/kallithea/controllers/admin/repo_groups.py --- a/kallithea/controllers/admin/repo_groups.py +++ b/kallithea/controllers/admin/repo_groups.py @@ -296,13 +296,12 @@ class RepoGroupsController(BaseControlle c.group = c.repo_group = RepoGroup.guess_instance(group_name) groups = RepoGroup.query(sorted=True).filter_by(parent_group=c.group).all() - c.groups = self.scm_model.get_repo_groups(groups) + repo_groups_list = self.scm_model.get_repo_groups(groups) repos_list = Repository.query(sorted=True).filter_by(group=c.group).all() - repos_data = RepoModel().get_repos_as_dict(repos_list=repos_list, - admin=False, short_name=True) - # data used to render the grid - c.data = repos_data + c.data = RepoModel().get_repos_as_dict(repos_list=repos_list, + repo_groups_list=repo_groups_list, + admin=False, short_name=True) return render('admin/repo_groups/repo_group_show.html') diff --git a/kallithea/controllers/home.py b/kallithea/controllers/home.py --- a/kallithea/controllers/home.py +++ b/kallithea/controllers/home.py @@ -50,15 +50,14 @@ class HomeController(BaseController): @LoginRequired() def index(self): - c.groups = self.scm_model.get_repo_groups() c.group = None + repo_groups_list = self.scm_model.get_repo_groups() repos_list = Repository.query(sorted=True).filter_by(group=None).all() - repos_data = RepoModel().get_repos_as_dict(repos_list=repos_list, - admin=False, short_name=True) - # data used to render the grid - c.data = repos_data + c.data = RepoModel().get_repos_as_dict(repos_list=repos_list, + repo_groups_list=repo_groups_list, + admin=False, short_name=True) return render('/index.html') diff --git a/kallithea/model/repo.py b/kallithea/model/repo.py --- a/kallithea/model/repo.py +++ b/kallithea/model/repo.py @@ -163,7 +163,8 @@ class RepoModel(object): kwargs.update(dict(_=_, h=h, c=c, request=request)) return tmpl.render(*args, **kwargs) - def get_repos_as_dict(self, repos_list=None, admin=False, perm_check=True, + def get_repos_as_dict(self, repos_list=None, repo_groups_list=None, + admin=False, perm_check=True, super_user_actions=False, short_name=False): _render = self._render_datatable from tg import tmpl_context as c @@ -199,6 +200,14 @@ class RepoModel(object): return _render('user_name', owner_id, username) repos_data = [] + + for gr in repo_groups_list or []: + repos_data.append(dict( + raw_name='\0' + gr.name, # sort before repositories + just_name=gr.name, + name=_render('group_name_html', group_name=gr.group_name, name=gr.name), + desc=gr.group_description)) + for repo in repos_list: if perm_check: # check permission at this level diff --git a/kallithea/templates/data_table/_dt_elements.html b/kallithea/templates/data_table/_dt_elements.html --- a/kallithea/templates/data_table/_dt_elements.html +++ b/kallithea/templates/data_table/_dt_elements.html @@ -125,6 +125,13 @@ +<%def name="group_name_html(group_name,name)"> +
+ + ${name} +
+ + <%def name="repo_group_actions(repo_group_id, repo_group_name, gr_count)">
diff --git a/kallithea/templates/index_base.html b/kallithea/templates/index_base.html --- a/kallithea/templates/index_base.html +++ b/kallithea/templates/index_base.html @@ -39,44 +39,12 @@
%endif - %if c.groups: -
- - - - - - ## - - - % for gr in c.groups: - - - - ## this is commented out since for multi nested repos can be HEAVY! - ## in number of executed queries during traversing uncomment at will - ## - - % endfor -
${_('Repository Group')}${_('Description')}${_('Number of Repositories')}
-
- - ${gr.name} -
-
${h.urlify_text(gr.group_description, stylize=c.visual.stylify_metatags)}${gr.repositories_recursive_count}
-
- %endif