Mercurial > kallithea
changeset 3597:54e011cb21fd beta
pullrequests: cleanup of other_repo initialization code
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Tue, 26 Mar 2013 01:23:35 +0100 |
parents | 7d47e91dc1aa |
children | 7d774f09dba5 |
files | rhodecode/controllers/pullrequests.py |
diffstat | 1 files changed, 21 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/pullrequests.py Tue Mar 26 01:23:35 2013 +0100 +++ b/rhodecode/controllers/pullrequests.py Tue Mar 26 01:23:35 2013 +0100 @@ -141,50 +141,42 @@ # as default for other and thus give a simple compare view #other_rev = request.POST.get('rev_start') - other_repos_info = {} - c.org_repos = [] c.org_repos.append((org_repo.repo_name, org_repo.repo_name)) c.default_org_repo = org_repo.repo_name c.org_refs, c.default_org_ref = self._get_repo_refs(org_repo.scm_instance, org_rev) c.other_repos = [] - # add org repo to other so we can open pull request against itself - c.other_repos.extend(c.org_repos) + other_repos_info = {} + + def add_other_repo(repo, branch_rev=None): + if repo.repo_name in other_repos_info: # shouldn't happen + return + c.other_repos.append((repo.repo_name, repo.repo_name)) + other_refs, selected_other_ref = self._get_repo_refs(repo.scm_instance, branch_rev=branch_rev) + other_repos_info[repo.repo_name] = { + 'user': dict(user_id=repo.user.user_id, + username=repo.user.username, + firstname=repo.user.firstname, + lastname=repo.user.lastname, + gravatar_link=h.gravatar_url(repo.user.email, 14)), + 'description': repo.description, + 'revs': h.select('other_ref', selected_other_ref, other_refs, class_='refs') + } + + # add org repo to other so we can open pull request against peer branches on itself + add_other_repo(org_repo, branch_rev=org_rev) c.default_other_repo = org_repo.repo_name - other_refs, other_ref = self._get_repo_refs(org_repo.scm_instance, branch_rev=org_rev) - usr_data = lambda usr: dict(user_id=usr.user_id, - username=usr.username, - firstname=usr.firstname, - lastname=usr.lastname, - gravatar_link=h.gravatar_url(usr.email, 14)) - other_repos_info[org_repo.repo_name] = { - 'user': usr_data(org_repo.user), - 'description': org_repo.description, - 'revs': h.select('other_ref', other_ref, other_refs, class_='refs') - } # gather forks and add to this list ... even though it is rare to # request forks to pull from their parent for fork in org_repo.forks: - c.other_repos.append((fork.repo_name, fork.repo_name)) - refs, default_ref = self._get_repo_refs(fork.scm_instance) - other_repos_info[fork.repo_name] = { - 'user': usr_data(fork.user), - 'description': fork.description, - 'revs': h.select('other_ref', default_ref, refs, class_='refs') - } + add_other_repo(fork) # add parents of this fork also, but only if it's not empty if org_repo.parent and org_repo.parent.scm_instance.revisions: + add_other_repo(org_repo.parent) c.default_other_repo = org_repo.parent.repo_name - other_refs, other_ref = self._get_repo_refs(org_repo.parent.scm_instance) - c.other_repos.append((org_repo.parent.repo_name, org_repo.parent.repo_name)) - other_repos_info[org_repo.parent.repo_name] = { - 'user': usr_data(org_repo.parent.user), - 'description': org_repo.parent.description, - 'revs': h.select('other_ref', other_ref, other_refs, class_='refs') - } c.default_other_repo_info = other_repos_info[c.default_other_repo] c.other_repos_info = json.dumps(other_repos_info)