# HG changeset patch # User Mads Kiilerich # Date 1605816934 -3600 # Node ID 2a2a50e100260b3263a0878ba343e2244e3bfb59 # Parent 48b9fdef5e7f1c89f0c1301faec21b531e1abbda 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. diff -r 48b9fdef5e7f -r 2a2a50e10026 kallithea/controllers/admin/repo_groups.py --- 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): diff -r 48b9fdef5e7f -r 2a2a50e10026 kallithea/controllers/admin/repos.py --- 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'), diff -r 48b9fdef5e7f -r 2a2a50e10026 kallithea/templates/admin/repo_groups/repo_group_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 @@
- ${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')}
diff -r 48b9fdef5e7f -r 2a2a50e10026 kallithea/templates/admin/repos/repo_add_base.html --- 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 @@
- ${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')} ${_('Optionally select a group to put this repository into.')}