Changeset - 2a2a50e10026
[Not reviewed]
stable
0 4 0
Mads Kiilerich (mads) - 5 years ago 2020-11-19 21:15:34
mads@kiilerich.com
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.
4 files changed with 13 insertions and 5 deletions:
0 comments (0 inline, 0 general)
kallithea/controllers/admin/repo_groups.py
Show inline comments
 
@@ -174,14 +174,14 @@ class RepoGroupsController(BaseControlle
 
        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 @@ class RepoGroupsController(BaseControlle
 
                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):
kallithea/controllers/admin/repos.py
Show inline comments
 
@@ -157,6 +157,8 @@ class ReposController(BaseRepoController
 
            if prg is None or not any(rgc[0] == prg.group_id
 
                                      for rgc in c.repo_groups):
 
                raise HTTPForbidden
 
        else:
 
            parent_group = '-1'
 
            defaults.update({'repo_group': parent_group})
 

	
 
        return htmlfill.render(
kallithea/templates/admin/repo_groups/repo_group_add.html
Show inline comments
 
@@ -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>
 

	
kallithea/templates/admin/repos/repo_add_base.html
Show inline comments
 
@@ -27,7 +27,7 @@ ${h.form(url('repos'))}
 
        <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>
0 comments (0 inline, 0 general)