Mercurial > kallithea
changeset 6304:a6af26b5ffc1
repositories: backend cleanups related to breadcrumbs
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Thu, 10 Nov 2016 16:10:41 +0100 |
parents | 1cf51cd05e36 |
children | 93a337bf46fe |
files | kallithea/controllers/admin/repo_groups.py kallithea/controllers/changelog.py kallithea/controllers/home.py kallithea/model/db.py kallithea/model/repo.py kallithea/templates/index.html |
diffstat | 6 files changed, 19 insertions(+), 51 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/controllers/admin/repo_groups.py Thu Nov 10 16:10:41 2016 +0100 +++ b/kallithea/controllers/admin/repo_groups.py Thu Nov 10 16:10:41 2016 +0100 @@ -298,17 +298,12 @@ c.active = 'settings' c.group = c.repo_group = RepoGroupModel()._get_repo_group(group_name) - c.group_repos = c.group.repositories.all() - - #overwrite our cached list with current filter - c.repo_cnt = 0 groups = RepoGroup.query(sorted=True).filter_by(parent_group=c.group).all() c.groups = self.scm_model.get_repo_groups(groups) - c.repos_list = Repository.query(sorted=True).filter_by(group=c.group).all() - - repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list, + 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) #json used to render the grid c.data = json.dumps(repos_data)
--- a/kallithea/controllers/changelog.py Thu Nov 10 16:10:41 2016 +0100 +++ b/kallithea/controllers/changelog.py Thu Nov 10 16:10:41 2016 +0100 @@ -48,6 +48,7 @@ def _load_changelog_summary(): + # also used from summary ... p = safe_int(request.GET.get('page'), 1) size = safe_int(request.GET.get('size'), 10)
--- a/kallithea/controllers/home.py Thu Nov 10 16:10:41 2016 +0100 +++ b/kallithea/controllers/home.py Thu Nov 10 16:10:41 2016 +0100 @@ -57,9 +57,9 @@ c.groups = self.scm_model.get_repo_groups() c.group = None - c.repos_list = Repository.query(sorted=True).filter_by(group=None).all() + repos_list = Repository.query(sorted=True).filter_by(group=None).all() - repos_data = RepoModel().get_repos_as_dict(repos_list=c.repos_list, + repos_data = RepoModel().get_repos_as_dict(repos_list=repos_list, admin=False, short_name=True) #json used to render the grid c.data = json.dumps(repos_data)
--- a/kallithea/model/db.py Thu Nov 10 16:10:41 2016 +0100 +++ b/kallithea/model/db.py Thu Nov 10 16:10:41 2016 +0100 @@ -1171,24 +1171,14 @@ @property def groups_with_parents(self): groups = [] - if self.group is None: - return groups - - cur_gr = self.group - groups.insert(0, cur_gr) - while 1: - gr = getattr(cur_gr, 'parent_group', None) - cur_gr = cur_gr.parent_group - if gr is None: - break - groups.insert(0, gr) - + group = self.group + while group is not None: + groups.append(group) + group = group.parent_group + assert group not in groups, group # avoid recursion on bad db content + groups.reverse() return groups - @property - def groups_and_repo(self): - return self.groups_with_parents, self.just_name, self.repo_name - @LazyProperty def repo_path(self): """ @@ -1589,26 +1579,13 @@ @property def parents(self): - parents_recursion_limit = 10 groups = [] - if self.parent_group is None: - return groups - cur_gr = self.parent_group - groups.insert(0, cur_gr) - cnt = 0 - while 1: - cnt += 1 - gr = getattr(cur_gr, 'parent_group', None) - cur_gr = cur_gr.parent_group - if gr is None: - break - if cnt == parents_recursion_limit: - # this will prevent accidental infinite loops - log.error(('more than %s parents found for group %s, stopping ' - 'recursive parent fetching' % (parents_recursion_limit, self))) - break - - groups.insert(0, gr) + group = self.parent_group + while group is not None: + groups.append(group) + group = group.parent_group + assert group not in groups, group # avoid recursion on bad db content + groups.reverse() return groups @property
--- a/kallithea/model/repo.py Thu Nov 10 16:10:41 2016 +0100 +++ b/kallithea/model/repo.py Thu Nov 10 16:10:41 2016 +0100 @@ -270,10 +270,8 @@ return None defaults = repo_info.get_dict() - group, repo_name, repo_name_full = 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_name'] = repo_info.just_name + defaults['repo_group'] = repo_info.group_id for strip, k in [(0, 'repo_type'), (1, 'repo_enable_downloads'), (1, 'repo_description'), (1, 'repo_enable_locking'),