Merge ~twom/launchpad:git-branch-picker-resubmit into launchpad:master

Proposed by Tom Wardill
Status: Merged
Approved by: Tom Wardill
Approved revision: 4e4016c105fb6c73f08541bf3e14cfac8b29fb50
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~twom/launchpad:git-branch-picker-resubmit
Merge into: launchpad:master
Diff against target: 98 lines (+18/-23)
3 files modified
lib/lp/code/browser/branchmergeproposal.py (+14/-16)
lib/lp/code/browser/tests/test_branchmergeproposal.py (+3/-6)
lib/lp/code/interfaces/branchmergeproposal.py (+1/-1)
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+394481@code.launchpad.net

Commit message

Add autocomplete to git resubmit page

Description of the change

Now we have an autocomplete git picker on the propose MP page, we should use it on the resubmit page too. Slightly complicated by the 'source' being changeable as well as target/prerequisite.

Swap field names to use '_ref' instead of '_repository/_path'.
Add the custom widgets.
Read the data from the correct source.
Fix tests to match new field names

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/lib/lp/code/browser/branchmergeproposal.py b/lib/lp/code/browser/branchmergeproposal.py
index a88531b..aecad03 100644
--- a/lib/lp/code/browser/branchmergeproposal.py
+++ b/lib/lp/code/browser/branchmergeproposal.py
@@ -77,6 +77,7 @@ from lp.app.browser.tales import DateTimeFormatterAPI
77from lp.code.adapters.branch import BranchMergeProposalNoPreviewDiffDelta77from lp.code.adapters.branch import BranchMergeProposalNoPreviewDiffDelta
78from lp.code.browser.codereviewcomment import CodeReviewDisplayComment78from lp.code.browser.codereviewcomment import CodeReviewDisplayComment
79from lp.code.browser.decorations import DecoratedBranch79from lp.code.browser.decorations import DecoratedBranch
80from lp.code.browser.widgets.gitref import GitRefWidget
80from lp.code.enums import (81from lp.code.enums import (
81 BranchMergeProposalStatus,82 BranchMergeProposalStatus,
82 BranchType,83 BranchType,
@@ -1077,6 +1078,13 @@ class BranchMergeProposalResubmitView(LaunchpadFormView,
1077 for_input = True1078 for_input = True
1078 page_title = label = "Resubmit proposal to merge"1079 page_title = label = "Resubmit proposal to merge"
10791080
1081 custom_widget_source_git_ref = CustomWidgetFactory(
1082 GitRefWidget, require_branch=True)
1083 custom_widget_target_git_ref = CustomWidgetFactory(
1084 GitRefWidget, require_branch=True)
1085 custom_widget_prerequisite_git_ref = CustomWidgetFactory(
1086 GitRefWidget, require_branch=True)
1087
1080 def initialize(self):1088 def initialize(self):
1081 self.cancel_url = canonical_url(self.context)1089 self.cancel_url = canonical_url(self.context)
1082 super(BranchMergeProposalResubmitView, self).initialize()1090 super(BranchMergeProposalResubmitView, self).initialize()
@@ -1091,12 +1099,9 @@ class BranchMergeProposalResubmitView(LaunchpadFormView,
1091 ]1099 ]
1092 else:1100 else:
1093 field_names = [1101 field_names = [
1094 'source_git_repository',1102 'source_git_ref',
1095 'source_git_path',1103 'target_git_ref',
1096 'target_git_repository',1104 'prerequisite_git_ref',
1097 'target_git_path',
1098 'prerequisite_git_repository',
1099 'prerequisite_git_path',
1100 ]1105 ]
1101 field_names.extend([1106 field_names.extend([
1102 'description',1107 'description',
@@ -1122,16 +1127,9 @@ class BranchMergeProposalResubmitView(LaunchpadFormView,
1122 merge_target = data['target_branch']1127 merge_target = data['target_branch']
1123 merge_prerequisite = data['prerequisite_branch']1128 merge_prerequisite = data['prerequisite_branch']
1124 else:1129 else:
1125 merge_source = data['source_git_repository'].getRefByPath(1130 merge_source = data['source_git_ref']
1126 data['source_git_path'])1131 merge_target = data['target_git_ref']
1127 merge_target = data['target_git_repository'].getRefByPath(1132 merge_prerequisite = data.get('prerequisite_git_ref')
1128 data['target_git_path'])
1129 if data['prerequisite_git_repository']:
1130 merge_prerequisite = (
1131 data['prerequisite_git_repository'].getRefByPath(
1132 data['prerequisite_git_path']))
1133 else:
1134 merge_prerequisite = None
1135 proposal = self.context.resubmit(1133 proposal = self.context.resubmit(
1136 self.user, merge_source, merge_target, merge_prerequisite,1134 self.user, merge_source, merge_target, merge_prerequisite,
1137 data['commit_message'], data['description'],1135 data['commit_message'], data['description'],
diff --git a/lib/lp/code/browser/tests/test_branchmergeproposal.py b/lib/lp/code/browser/tests/test_branchmergeproposal.py
index fedb00d..4fa7ed1 100644
--- a/lib/lp/code/browser/tests/test_branchmergeproposal.py
+++ b/lib/lp/code/browser/tests/test_branchmergeproposal.py
@@ -1257,15 +1257,12 @@ class TestBranchMergeProposalResubmitViewGit(
1257 def _getFormValues(source_branch, target_branch, prerequisite_branch,1257 def _getFormValues(source_branch, target_branch, prerequisite_branch,
1258 extras):1258 extras):
1259 values = {1259 values = {
1260 'source_git_repository': source_branch.repository,1260 'source_git_ref': source_branch,
1261 'source_git_path': source_branch.path,1261 'target_git_ref': target_branch
1262 'target_git_repository': target_branch.repository,
1263 'target_git_path': target_branch.path,
1264 }1262 }
1265 if prerequisite_branch is not None:1263 if prerequisite_branch is not None:
1266 values.update({1264 values.update({
1267 'prerequisite_git_repository': prerequisite_branch.repository,1265 'prerequisite_git_ref': prerequisite_branch
1268 'prerequisite_git_path': prerequisite_branch.path,
1269 })1266 })
1270 else:1267 else:
1271 values.update({1268 values.update({
diff --git a/lib/lp/code/interfaces/branchmergeproposal.py b/lib/lp/code/interfaces/branchmergeproposal.py
index 820b7b0..7265218 100644
--- a/lib/lp/code/interfaces/branchmergeproposal.py
+++ b/lib/lp/code/interfaces/branchmergeproposal.py
@@ -149,7 +149,7 @@ class IBranchMergeProposalPublic(IPrivacy):
149 source_git_commit_sha1 = TextLine(149 source_git_commit_sha1 = TextLine(
150 title=_('Source Git commit SHA-1'), required=False, readonly=True)150 title=_('Source Git commit SHA-1'), required=False, readonly=True)
151 source_git_ref = Reference(151 source_git_ref = Reference(
152 title=_('Source Git reference'),152 title=_('Source Git branch'),
153 schema=IGitRef, required=False, readonly=True)153 schema=IGitRef, required=False, readonly=True)
154154
155 target_branch = exported(155 target_branch = exported(

Subscribers

People subscribed via source and target branches

to status/vote changes: