pull-requests: expose commit versions in the pull-request commit list. Fixes #5642
This commit is contained in:
parent
4ddf097b9a
commit
9c33519fcc
4 changed files with 31 additions and 2 deletions
|
|
@ -357,6 +357,9 @@ class RepoPullRequestsView(RepoAppView, DataGridAppView):
|
|||
pull_request_id=pull_request_id))
|
||||
|
||||
versions = pull_request_display_obj.versions()
|
||||
|
||||
c.commit_versions = PullRequestModel().pr_commits_versions(versions)
|
||||
|
||||
# used to store per-commit range diffs
|
||||
c.changes = collections.OrderedDict()
|
||||
|
||||
|
|
|
|||
|
|
@ -3821,8 +3821,12 @@ class ChangesetComment(Base, BaseModel):
|
|||
return q.all()
|
||||
|
||||
@classmethod
|
||||
def get_index_from_version(cls, pr_version, versions):
|
||||
num_versions = [x.pull_request_version_id for x in versions]
|
||||
def get_index_from_version(cls, pr_version, versions=None, num_versions=None):
|
||||
|
||||
if versions is not None:
|
||||
num_versions = [x.pull_request_version_id for x in versions]
|
||||
|
||||
num_versions = num_versions or []
|
||||
try:
|
||||
return num_versions.index(pr_version) + 1
|
||||
except (IndexError, ValueError):
|
||||
|
|
|
|||
|
|
@ -610,6 +610,20 @@ class PullRequestModel(BaseModel):
|
|||
return _org_pull_request_obj, pull_request_obj, \
|
||||
pull_request_display_obj, at_version
|
||||
|
||||
def pr_commits_versions(self, versions):
|
||||
"""
|
||||
Maps the pull-request commits into all known PR versions. This way we can obtain
|
||||
each pr version the commit was introduced in.
|
||||
"""
|
||||
commit_versions = collections.defaultdict(list)
|
||||
num_versions = [x.pull_request_version_id for x in versions]
|
||||
for ver in versions:
|
||||
for commit_id in ver.revisions:
|
||||
ver_idx = ChangesetComment.get_index_from_version(
|
||||
ver.pull_request_version_id, num_versions=num_versions)
|
||||
commit_versions[commit_id].append(ver_idx)
|
||||
return commit_versions
|
||||
|
||||
def create(self, created_by, source_repo, source_ref, target_repo,
|
||||
target_ref, revisions, reviewers, observers, title, description=None,
|
||||
common_ancestor_id=None,
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@
|
|||
<input type="hidden" name="__start__" value="revisions:sequence">
|
||||
<table class="rctable compare_view_commits">
|
||||
<tr>
|
||||
% if hasattr(c, 'commit_versions'):
|
||||
<th>ver</th>
|
||||
% endif
|
||||
<th>${_('Time')}</th>
|
||||
<th>${_('Author')}</th>
|
||||
<th>${_('Commit')}</th>
|
||||
|
|
@ -30,6 +33,11 @@
|
|||
class="compare_select"
|
||||
style="${'display: none' if c.collapse_all_commits else ''}"
|
||||
>
|
||||
% if hasattr(c, 'commit_versions'):
|
||||
<td class="tooltip" title="${_('Pull request version this commit was introduced')}">
|
||||
<code>${('v{}'.format(c.commit_versions[commit.raw_id][0]) if c.commit_versions[commit.raw_id] else 'latest')}</code>
|
||||
</td>
|
||||
% endif
|
||||
<td class="td-time">
|
||||
${h.age_component(commit.date)}
|
||||
</td>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue