diff --git a/rhodecode/controllers/admin/repos.py b/rhodecode/controllers/admin/repos.py --- a/rhodecode/controllers/admin/repos.py +++ b/rhodecode/controllers/admin/repos.py @@ -127,7 +127,8 @@ class ReposController(BaseController): defaults = c.repo_info.get_dict() group, repo_name = c.repo_info.groups_and_repo defaults['repo_name'] = repo_name - defaults['repo_group'] = getattr(group[-1] if group else None, 'group_id', None) + defaults['repo_group'] = getattr(group[-1] if group else None, + 'group_id', None) #fill owner if c.repo_info.user: diff --git a/rhodecode/controllers/admin/settings.py b/rhodecode/controllers/admin/settings.py --- a/rhodecode/controllers/admin/settings.py +++ b/rhodecode/controllers/admin/settings.py @@ -319,10 +319,21 @@ class SettingsController(BaseController) @HasPermissionAnyDecorator('hg.admin', 'hg.create.repository') def create_repository(self): """GET /_admin/create_repository: Form to create a new item""" + + c.repo_groups = [('', '')] + parents_link = lambda k:h.literal('»'.join( + map(lambda k:k.group_name, + k.parents + [k]) + ) + ) + + c.repo_groups.extend([(x.group_id, parents_link(x)) for \ + x in self.sa.query(Group).all()]) + c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) + new_repo = request.GET.get('repo', '') c.new_repo = repo_name_slug(new_repo) - c.repo_groups = [('', '')] - c.repo_groups.extend([(x.group_id, x.group_name) for x in self.sa.query(Group).all()]) + return render('admin/repos/repo_add_create_repository.html') def get_hg_ui_settings(self):