##// END OF EJS Templates
pull-requests: expose commit versions in the pull-request commit list. Fixes #5642
milka -
r4615:ca0827b2 default
parent child Browse files
Show More
@@ -357,6 +357,9 b' class RepoPullRequestsView(RepoAppView, '
357 pull_request_id=pull_request_id))
357 pull_request_id=pull_request_id))
358
358
359 versions = pull_request_display_obj.versions()
359 versions = pull_request_display_obj.versions()
360
361 c.commit_versions = PullRequestModel().pr_commits_versions(versions)
362
360 # used to store per-commit range diffs
363 # used to store per-commit range diffs
361 c.changes = collections.OrderedDict()
364 c.changes = collections.OrderedDict()
362
365
@@ -3821,8 +3821,12 b' class ChangesetComment(Base, BaseModel):'
3821 return q.all()
3821 return q.all()
3822
3822
3823 @classmethod
3823 @classmethod
3824 def get_index_from_version(cls, pr_version, versions):
3824 def get_index_from_version(cls, pr_version, versions=None, num_versions=None):
3825 num_versions = [x.pull_request_version_id for x in versions]
3825
3826 if versions is not None:
3827 num_versions = [x.pull_request_version_id for x in versions]
3828
3829 num_versions = num_versions or []
3826 try:
3830 try:
3827 return num_versions.index(pr_version) + 1
3831 return num_versions.index(pr_version) + 1
3828 except (IndexError, ValueError):
3832 except (IndexError, ValueError):
@@ -610,6 +610,20 b' class PullRequestModel(BaseModel):'
610 return _org_pull_request_obj, pull_request_obj, \
610 return _org_pull_request_obj, pull_request_obj, \
611 pull_request_display_obj, at_version
611 pull_request_display_obj, at_version
612
612
613 def pr_commits_versions(self, versions):
614 """
615 Maps the pull-request commits into all known PR versions. This way we can obtain
616 each pr version the commit was introduced in.
617 """
618 commit_versions = collections.defaultdict(list)
619 num_versions = [x.pull_request_version_id for x in versions]
620 for ver in versions:
621 for commit_id in ver.revisions:
622 ver_idx = ChangesetComment.get_index_from_version(
623 ver.pull_request_version_id, num_versions=num_versions)
624 commit_versions[commit_id].append(ver_idx)
625 return commit_versions
626
613 def create(self, created_by, source_repo, source_ref, target_repo,
627 def create(self, created_by, source_repo, source_ref, target_repo,
614 target_ref, revisions, reviewers, observers, title, description=None,
628 target_ref, revisions, reviewers, observers, title, description=None,
615 common_ancestor_id=None,
629 common_ancestor_id=None,
@@ -12,6 +12,9 b''
12 <input type="hidden" name="__start__" value="revisions:sequence">
12 <input type="hidden" name="__start__" value="revisions:sequence">
13 <table class="rctable compare_view_commits">
13 <table class="rctable compare_view_commits">
14 <tr>
14 <tr>
15 % if hasattr(c, 'commit_versions'):
16 <th>ver</th>
17 % endif
15 <th>${_('Time')}</th>
18 <th>${_('Time')}</th>
16 <th>${_('Author')}</th>
19 <th>${_('Author')}</th>
17 <th>${_('Commit')}</th>
20 <th>${_('Commit')}</th>
@@ -30,6 +33,11 b''
30 class="compare_select"
33 class="compare_select"
31 style="${'display: none' if c.collapse_all_commits else ''}"
34 style="${'display: none' if c.collapse_all_commits else ''}"
32 >
35 >
36 % if hasattr(c, 'commit_versions'):
37 <td class="tooltip" title="${_('Pull request version this commit was introduced')}">
38 <code>${('v{}'.format(c.commit_versions[commit.raw_id][0]) if c.commit_versions[commit.raw_id] else 'latest')}</code>
39 </td>
40 % endif
33 <td class="td-time">
41 <td class="td-time">
34 ${h.age_component(commit.date)}
42 ${h.age_component(commit.date)}
35 </td>
43 </td>
General Comments 0
You need to be logged in to leave comments. Login now