comparison rhodecode/controllers/pullrequests.py @ 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
comparison
equal deleted inserted replaced
3596:7d47e91dc1aa 3597:54e011cb21fd
139 org_rev = request.GET.get('rev_end') 139 org_rev = request.GET.get('rev_end')
140 # rev_start is not directly useful - its parent could however be used 140 # rev_start is not directly useful - its parent could however be used
141 # as default for other and thus give a simple compare view 141 # as default for other and thus give a simple compare view
142 #other_rev = request.POST.get('rev_start') 142 #other_rev = request.POST.get('rev_start')
143 143
144 other_repos_info = {}
145
146 c.org_repos = [] 144 c.org_repos = []
147 c.org_repos.append((org_repo.repo_name, org_repo.repo_name)) 145 c.org_repos.append((org_repo.repo_name, org_repo.repo_name))
148 c.default_org_repo = org_repo.repo_name 146 c.default_org_repo = org_repo.repo_name
149 c.org_refs, c.default_org_ref = self._get_repo_refs(org_repo.scm_instance, org_rev) 147 c.org_refs, c.default_org_ref = self._get_repo_refs(org_repo.scm_instance, org_rev)
150 148
151 c.other_repos = [] 149 c.other_repos = []
152 # add org repo to other so we can open pull request against itself 150 other_repos_info = {}
153 c.other_repos.extend(c.org_repos) 151
152 def add_other_repo(repo, branch_rev=None):
153 if repo.repo_name in other_repos_info: # shouldn't happen
154 return
155 c.other_repos.append((repo.repo_name, repo.repo_name))
156 other_refs, selected_other_ref = self._get_repo_refs(repo.scm_instance, branch_rev=branch_rev)
157 other_repos_info[repo.repo_name] = {
158 'user': dict(user_id=repo.user.user_id,
159 username=repo.user.username,
160 firstname=repo.user.firstname,
161 lastname=repo.user.lastname,
162 gravatar_link=h.gravatar_url(repo.user.email, 14)),
163 'description': repo.description,
164 'revs': h.select('other_ref', selected_other_ref, other_refs, class_='refs')
165 }
166
167 # add org repo to other so we can open pull request against peer branches on itself
168 add_other_repo(org_repo, branch_rev=org_rev)
154 c.default_other_repo = org_repo.repo_name 169 c.default_other_repo = org_repo.repo_name
155 other_refs, other_ref = self._get_repo_refs(org_repo.scm_instance, branch_rev=org_rev)
156 usr_data = lambda usr: dict(user_id=usr.user_id,
157 username=usr.username,
158 firstname=usr.firstname,
159 lastname=usr.lastname,
160 gravatar_link=h.gravatar_url(usr.email, 14))
161 other_repos_info[org_repo.repo_name] = {
162 'user': usr_data(org_repo.user),
163 'description': org_repo.description,
164 'revs': h.select('other_ref', other_ref, other_refs, class_='refs')
165 }
166 170
167 # gather forks and add to this list ... even though it is rare to 171 # gather forks and add to this list ... even though it is rare to
168 # request forks to pull from their parent 172 # request forks to pull from their parent
169 for fork in org_repo.forks: 173 for fork in org_repo.forks:
170 c.other_repos.append((fork.repo_name, fork.repo_name)) 174 add_other_repo(fork)
171 refs, default_ref = self._get_repo_refs(fork.scm_instance)
172 other_repos_info[fork.repo_name] = {
173 'user': usr_data(fork.user),
174 'description': fork.description,
175 'revs': h.select('other_ref', default_ref, refs, class_='refs')
176 }
177 175
178 # add parents of this fork also, but only if it's not empty 176 # add parents of this fork also, but only if it's not empty
179 if org_repo.parent and org_repo.parent.scm_instance.revisions: 177 if org_repo.parent and org_repo.parent.scm_instance.revisions:
178 add_other_repo(org_repo.parent)
180 c.default_other_repo = org_repo.parent.repo_name 179 c.default_other_repo = org_repo.parent.repo_name
181 other_refs, other_ref = self._get_repo_refs(org_repo.parent.scm_instance)
182 c.other_repos.append((org_repo.parent.repo_name, org_repo.parent.repo_name))
183 other_repos_info[org_repo.parent.repo_name] = {
184 'user': usr_data(org_repo.parent.user),
185 'description': org_repo.parent.description,
186 'revs': h.select('other_ref', other_ref, other_refs, class_='refs')
187 }
188 180
189 c.default_other_repo_info = other_repos_info[c.default_other_repo] 181 c.default_other_repo_info = other_repos_info[c.default_other_repo]
190 c.other_repos_info = json.dumps(other_repos_info) 182 c.other_repos_info = json.dumps(other_repos_info)
191 return render('/pullrequests/pullrequest.html') 183 return render('/pullrequests/pullrequest.html')
192 184