Mercurial > kallithea
changeset 8501:2a2a50e10026 stable
repo_groups: fix select of parent group when adding repo group
h.select was passed a list of repo groups where group_id was integer, but
parent_group in the request was a string - thus no match.
Do as in repos controller create_repository (and in error handling): leave it
to htmlfill to patch up the generated HTML using defaults ... but make sure we
always have a default.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Thu, 19 Nov 2020 21:15:34 +0100 |
parents | 48b9fdef5e7f |
children | 3ea3d3a2b3e3 |
files | kallithea/controllers/admin/repo_groups.py kallithea/controllers/admin/repos.py kallithea/templates/admin/repo_groups/repo_group_add.html kallithea/templates/admin/repos/repo_add_base.html |
diffstat | 4 files changed, 14 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/admin/repo_groups.py Wed Nov 11 17:03:40 2020 +0100 +++ b/kallithea/controllers/admin/repo_groups.py Thu Nov 19 21:15:34 2020 +0100 @@ -174,14 +174,14 @@ raise HTTPFound(location=url('repos_group_home', group_name=gr.group_name)) def new(self): + parent_group_id = safe_int(request.GET.get('parent_group') or '-1') if HasPermissionAny('hg.admin')('group create'): # we're global admin, we're ok and we can create TOP level groups pass else: # we pass in parent group into creation form, thus we know # what would be the group, we can check perms here ! - group_id = safe_int(request.GET.get('parent_group')) - group = RepoGroup.get(group_id) if group_id else None + group = RepoGroup.get(parent_group_id) if parent_group_id else None group_name = group.group_name if group else None if HasRepoGroupPermissionLevel('admin')(group_name, 'group create'): pass @@ -189,7 +189,13 @@ raise HTTPForbidden() self.__load_defaults() - return render('admin/repo_groups/repo_group_add.html') + return htmlfill.render( + render('admin/repo_groups/repo_group_add.html'), + defaults={'parent_group_id': parent_group_id}, + errors={}, + prefix_error=False, + encoding="UTF-8", + force_defaults=False) @HasRepoGroupPermissionLevelDecorator('admin') def update(self, group_name):
--- a/kallithea/controllers/admin/repos.py Wed Nov 11 17:03:40 2020 +0100 +++ b/kallithea/controllers/admin/repos.py Thu Nov 19 21:15:34 2020 +0100 @@ -157,7 +157,9 @@ if prg is None or not any(rgc[0] == prg.group_id for rgc in c.repo_groups): raise HTTPForbidden - defaults.update({'repo_group': parent_group}) + else: + parent_group = '-1' + defaults.update({'repo_group': parent_group}) return htmlfill.render( render('admin/repos/repo_add.html'),
--- a/kallithea/templates/admin/repo_groups/repo_group_add.html Wed Nov 11 17:03:40 2020 +0100 +++ b/kallithea/templates/admin/repo_groups/repo_group_add.html Thu Nov 19 21:15:34 2020 +0100 @@ -41,7 +41,7 @@ <div class="form-group"> <label class="control-label" for="parent_group_id">${_('Group parent')}:</label> <div> - ${h.select('parent_group_id',request.GET.get('parent_group'),c.repo_groups,class_='form-control')} + ${h.select('parent_group_id',None,c.repo_groups,class_='form-control')} </div> </div>
--- a/kallithea/templates/admin/repos/repo_add_base.html Wed Nov 11 17:03:40 2020 +0100 +++ b/kallithea/templates/admin/repos/repo_add_base.html Thu Nov 19 21:15:34 2020 +0100 @@ -27,7 +27,7 @@ <div class="form-group"> <label class="control-label" for="repo_group">${_('Repository group')}:</label> <div> - ${h.select('repo_group',request.GET.get('parent_group'),c.repo_groups,class_='form-control')} + ${h.select('repo_group',None,c.repo_groups,class_='form-control')} <span class="help-block">${_('Optionally select a group to put this repository into.')}</span> </div> </div>