# HG changeset patch # User Mads Kiilerich # Date 2016-11-10 16:10:41 # Node ID a6af26b5ffc18729ecde35d28a9c6fbdb51da521 # Parent 1cf51cd05e367260c9442f0cfd84fe398e90d6ca repositories: backend cleanups related to breadcrumbs diff --git a/kallithea/controllers/admin/repo_groups.py b/kallithea/controllers/admin/repo_groups.py --- a/kallithea/controllers/admin/repo_groups.py +++ b/kallithea/controllers/admin/repo_groups.py @@ -298,17 +298,12 @@ class RepoGroupsController(BaseControlle 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) diff --git a/kallithea/controllers/changelog.py b/kallithea/controllers/changelog.py --- a/kallithea/controllers/changelog.py +++ b/kallithea/controllers/changelog.py @@ -48,6 +48,7 @@ log = logging.getLogger(__name__) def _load_changelog_summary(): + # also used from summary ... p = safe_int(request.GET.get('page'), 1) size = safe_int(request.GET.get('size'), 10) diff --git a/kallithea/controllers/home.py b/kallithea/controllers/home.py --- a/kallithea/controllers/home.py +++ b/kallithea/controllers/home.py @@ -57,9 +57,9 @@ class HomeController(BaseController): 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) diff --git a/kallithea/model/db.py b/kallithea/model/db.py --- a/kallithea/model/db.py +++ b/kallithea/model/db.py @@ -1171,24 +1171,14 @@ class Repository(Base, BaseDbModel): @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 @@ class RepoGroup(Base, BaseDbModel): @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 diff --git a/kallithea/model/repo.py b/kallithea/model/repo.py --- a/kallithea/model/repo.py +++ b/kallithea/model/repo.py @@ -270,10 +270,8 @@ class RepoModel(BaseModel): 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'), diff --git a/kallithea/templates/index.html b/kallithea/templates/index.html --- a/kallithea/templates/index.html +++ b/kallithea/templates/index.html @@ -5,9 +5,6 @@ ${_('Dashboard')} -<%def name="breadcrumbs()"> - - <%block name="header_menu"> ${self.menu('repositories')}