Merge lp:~thumper/launchpad/fix-browser-zcml into lp:launchpad
- fix-browser-zcml
- Merge into devel
Proposed by
Tim Penhey
Status: | Merged |
---|---|
Approved by: | Paul Hummer |
Approved revision: | no longer in the source branch. |
Merged at revision: | 11418 |
Proposed branch: | lp:~thumper/launchpad/fix-browser-zcml |
Merge into: | lp:launchpad |
Diff against target: |
1754 lines (+215/-122) 28 files modified
lib/canonical/launchpad/doc/canonical_url_examples.txt (+1/-1) lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt (+0/-9) lib/lp/blueprints/templates/specificationbranch-status.pt (+0/-6) lib/lp/code/browser/branchlisting.py (+7/-5) lib/lp/code/browser/branchvisibilitypolicy.py (+1/-1) lib/lp/code/browser/configure.zcml (+122/-15) lib/lp/code/browser/sourcepackagerecipe.py (+2/-1) lib/lp/code/browser/sourcepackagerecipelisting.py (+1/-1) lib/lp/code/browser/tests/test_branchlisting.py (+10/-5) lib/lp/code/browser/tests/test_branchmergeproposal.py (+0/-13) lib/lp/code/browser/tests/test_branchmergeproposallisting.py (+2/-1) lib/lp/code/browser/tests/test_product.py (+6/-15) lib/lp/code/stories/branches/xx-branch-edit.txt (+14/-13) lib/lp/code/stories/branches/xx-branch-listings.txt (+1/-1) lib/lp/code/stories/branches/xx-branch-url-validation.txt (+3/-2) lib/lp/code/stories/branches/xx-creating-branches.txt (+7/-7) lib/lp/code/stories/branches/xx-source-package-branches-listing.txt (+1/-1) lib/lp/code/stories/branches/xx-subscribing-branches.txt (+2/-2) lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt (+2/-2) lib/lp/code/templates/branch-summary-listing.pt (+2/-2) lib/lp/code/templates/distributionsourcepackage-branches-grouped.pt (+1/-1) lib/lp/registry/browser/product.py (+1/-1) lib/lp/registry/browser/productseries.py (+2/-1) lib/lp/registry/browser/tests/productseries-views.txt (+1/-1) lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt (+1/-1) lib/lp/registry/templates/productseries-codesummary.pt (+2/-3) lib/lp/testing/menu.py (+4/-7) lib/lp/testing/views.py (+19/-4) |
To merge this branch: | bzr merge lp:~thumper/launchpad/fix-browser-zcml |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Paul Hummer (community) | Approve | ||
Review via email: mp+33482@code.launchpad.net |
Commit message
Limit most branch and review related views to be only on the code subdomain.
Description of the change
This branch adds layer='...' to most of the code browser zcml. There are several places where it is kept off though, like the views needed to show merge proposal info on the bugs domain.
In order to avoid having to pass layer=CodeLayer to the create_
tests:
everything code related (everything passes in ec2 right now)
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/canonical/launchpad/doc/canonical_url_examples.txt' | |||
2 | --- lib/canonical/launchpad/doc/canonical_url_examples.txt 2010-07-19 11:58:01 +0000 | |||
3 | +++ lib/canonical/launchpad/doc/canonical_url_examples.txt 2010-08-24 02:26:48 +0000 | |||
4 | @@ -39,7 +39,7 @@ | |||
5 | 39 | The Bazaar homepage. | 39 | The Bazaar homepage. |
6 | 40 | 40 | ||
7 | 41 | >>> canonical_url(getUtility(IBazaarApplication)) | 41 | >>> canonical_url(getUtility(IBazaarApplication)) |
9 | 42 | u'http://launchpad.dev/+code' | 42 | u'http://code.launchpad.dev/+code' |
10 | 43 | 43 | ||
11 | 44 | The Answer Tracker | 44 | The Answer Tracker |
12 | 45 | 45 | ||
13 | 46 | 46 | ||
14 | === modified file 'lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt' | |||
15 | --- lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt 2010-01-22 22:29:42 +0000 | |||
16 | +++ lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt 2010-08-24 02:26:48 +0000 | |||
17 | @@ -103,7 +103,6 @@ | |||
18 | 103 | >>> check("/projectgroups/+all", auth=True) | 103 | >>> check("/projectgroups/+all", auth=True) |
19 | 104 | >>> check("/mozilla") | 104 | >>> check("/mozilla") |
20 | 105 | >>> check("/mozilla/firefox") | 105 | >>> check("/mozilla/firefox") |
21 | 106 | >>> check("/mozilla/+branches") | ||
22 | 107 | >>> check_redirect("/mozilla/+translations", status=301) | 106 | >>> check_redirect("/mozilla/+translations", status=301) |
23 | 108 | >>> check("/mozilla/+translations", host='translations.launchpad.dev') | 107 | >>> check("/mozilla/+translations", host='translations.launchpad.dev') |
24 | 109 | 108 | ||
25 | @@ -135,7 +134,6 @@ | |||
26 | 135 | 134 | ||
27 | 136 | >>> check_not_found("/firefox/+milestone") | 135 | >>> check_not_found("/firefox/+milestone") |
28 | 137 | >>> check("/firefox/+milestone/1.0") | 136 | >>> check("/firefox/+milestone/1.0") |
29 | 138 | >>> check("/firefox/+branches") | ||
30 | 139 | 137 | ||
31 | 140 | >>> check("/distros") | 138 | >>> check("/distros") |
32 | 141 | >>> check("/distros/+add", auth=True) | 139 | >>> check("/distros/+add", auth=True) |
33 | @@ -378,13 +376,8 @@ | |||
34 | 378 | And this is for a person: | 376 | And this is for a person: |
35 | 379 | 377 | ||
36 | 380 | >>> check("/~name16/+edit", auth=True) | 378 | >>> check("/~name16/+edit", auth=True) |
37 | 381 | >>> check("/~name16/+branches") | ||
38 | 382 | >>> check_redirect("/~name12/+branch/gnome-terminal/pushed/", status=301) | 379 | >>> check_redirect("/~name12/+branch/gnome-terminal/pushed/", status=301) |
39 | 383 | >>> check_redirect("/~name12/+branch/gnome-terminal/pushed/+edit", auth=True, status=301) | 380 | >>> check_redirect("/~name12/+branch/gnome-terminal/pushed/+edit", auth=True, status=301) |
40 | 384 | >>> check("/~name12/gnome-terminal/pushed/") | ||
41 | 385 | >>> check_not_found("/~name12/+branch/gnome-terminal/fubared/") | ||
42 | 386 | >>> check_not_found("/~name12/gnome-terminal/fubared/") | ||
43 | 387 | >>> check("/~name12/gnome-terminal/pushed/+edit", auth=True) | ||
44 | 388 | >>> check_not_found("/~name16/+bugs/1") | 381 | >>> check_not_found("/~name16/+bugs/1") |
45 | 389 | >>> check("/~name16/+reportedbugs") | 382 | >>> check("/~name16/+reportedbugs") |
46 | 390 | >>> check("/~name16/+assignedbugs") | 383 | >>> check("/~name16/+assignedbugs") |
47 | @@ -408,8 +401,6 @@ | |||
48 | 408 | >>> check("/~mark/+packagebugs") | 401 | >>> check("/~mark/+packagebugs") |
49 | 409 | >>> check("/~mark/+related-software") | 402 | >>> check("/~mark/+related-software") |
50 | 410 | 403 | ||
51 | 411 | >>> check("/+code") | ||
52 | 412 | |||
53 | 413 | >>> check("/builders") | 404 | >>> check("/builders") |
54 | 414 | >>> check("/builders/bob/") | 405 | >>> check("/builders/bob/") |
55 | 415 | >>> check_redirect("/+builds", status=301) | 406 | >>> check_redirect("/+builds", status=301) |
56 | 416 | 407 | ||
57 | === modified file 'lib/lp/blueprints/templates/specificationbranch-status.pt' | |||
58 | --- lib/lp/blueprints/templates/specificationbranch-status.pt 2009-09-15 16:00:11 +0000 | |||
59 | +++ lib/lp/blueprints/templates/specificationbranch-status.pt 2010-08-24 02:26:48 +0000 | |||
60 | @@ -13,12 +13,6 @@ | |||
61 | 13 | 13 | ||
62 | 14 | <div metal:use-macro="context/@@launchpad_form/form"> | 14 | <div metal:use-macro="context/@@launchpad_form/form"> |
63 | 15 | 15 | ||
64 | 16 | <div metal:fill-slot="extra_top"> | ||
65 | 17 | <ul class="branch" | ||
66 | 18 | tal:content="structure context/branch/@@+product-summary-listing" | ||
67 | 19 | /> | ||
68 | 20 | </div> | ||
69 | 21 | |||
70 | 22 | </div> | 16 | </div> |
71 | 23 | </div> | 17 | </div> |
72 | 24 | </metal:main> | 18 | </metal:main> |
73 | 25 | 19 | ||
74 | === modified file 'lib/lp/code/browser/branchlisting.py' | |||
75 | --- lib/lp/code/browser/branchlisting.py 2010-08-20 20:31:18 +0000 | |||
76 | +++ lib/lp/code/browser/branchlisting.py 2010-08-24 02:26:48 +0000 | |||
77 | @@ -943,7 +943,9 @@ | |||
78 | 943 | enabled = self.user.inTeam(self.context) | 943 | enabled = self.user.inTeam(self.context) |
79 | 944 | text = 'Register a branch' | 944 | text = 'Register a branch' |
80 | 945 | summary = 'Register a new Bazaar branch' | 945 | summary = 'Register a new Bazaar branch' |
82 | 946 | return Link('+addbranch', text, summary, icon='add', enabled=enabled) | 946 | return Link( |
83 | 947 | '+addbranch', text, summary, icon='add', enabled=enabled, | ||
84 | 948 | site='code') | ||
85 | 947 | 949 | ||
86 | 948 | 950 | ||
87 | 949 | class PersonProductBranchesMenu(PersonBranchesMenu): | 951 | class PersonProductBranchesMenu(PersonBranchesMenu): |
88 | @@ -1104,12 +1106,12 @@ | |||
89 | 1104 | def branch_add(self): | 1106 | def branch_add(self): |
90 | 1105 | text = 'Register a branch' | 1107 | text = 'Register a branch' |
91 | 1106 | summary = 'Register a new Bazaar branch for this project' | 1108 | summary = 'Register a new Bazaar branch for this project' |
93 | 1107 | return Link('+addbranch', text, summary, icon='add') | 1109 | return Link('+addbranch', text, summary, icon='add', site='code') |
94 | 1108 | 1110 | ||
95 | 1109 | def list_branches(self): | 1111 | def list_branches(self): |
96 | 1110 | text = 'List branches' | 1112 | text = 'List branches' |
97 | 1111 | summary = 'List the branches for this project' | 1113 | summary = 'List the branches for this project' |
99 | 1112 | return Link('+branches', text, summary, icon='add') | 1114 | return Link('+branches', text, summary, icon='add', site='code') |
100 | 1113 | 1115 | ||
101 | 1114 | @cachedproperty | 1116 | @cachedproperty |
102 | 1115 | def active_review_count(self): | 1117 | def active_review_count(self): |
103 | @@ -1122,7 +1124,7 @@ | |||
104 | 1122 | self.active_review_count, | 1124 | self.active_review_count, |
105 | 1123 | 'active review or unmerged proposal', | 1125 | 'active review or unmerged proposal', |
106 | 1124 | 'active reviews or unmerged proposals') | 1126 | 'active reviews or unmerged proposals') |
108 | 1125 | return Link('+activereviews', text) | 1127 | return Link('+activereviews', text, site='code') |
109 | 1126 | 1128 | ||
110 | 1127 | @enabled_with_permission('launchpad.Commercial') | 1129 | @enabled_with_permission('launchpad.Commercial') |
111 | 1128 | def branch_visibility(self): | 1130 | def branch_visibility(self): |
112 | @@ -1131,7 +1133,7 @@ | |||
113 | 1131 | 1133 | ||
114 | 1132 | def code_import(self): | 1134 | def code_import(self): |
115 | 1133 | text = 'Import a branch' | 1135 | text = 'Import a branch' |
117 | 1134 | return Link('+new-import', text, icon='add') | 1136 | return Link('+new-import', text, icon='add', site='code') |
118 | 1135 | 1137 | ||
119 | 1136 | 1138 | ||
120 | 1137 | class ProductBranchListingView(BranchListingView): | 1139 | class ProductBranchListingView(BranchListingView): |
121 | 1138 | 1140 | ||
122 | === modified file 'lib/lp/code/browser/branchvisibilitypolicy.py' | |||
123 | --- lib/lp/code/browser/branchvisibilitypolicy.py 2010-08-20 20:31:18 +0000 | |||
124 | +++ lib/lp/code/browser/branchvisibilitypolicy.py 2010-08-24 02:26:48 +0000 | |||
125 | @@ -55,7 +55,7 @@ | |||
126 | 55 | 55 | ||
127 | 56 | @property | 56 | @property |
128 | 57 | def next_url(self): | 57 | def next_url(self): |
130 | 58 | return canonical_url(self.context) + '/+branchvisibility' | 58 | return canonical_url(self.context, view_name='+branchvisibility') |
131 | 59 | 59 | ||
132 | 60 | cancel_url = next_url | 60 | cancel_url = next_url |
133 | 61 | 61 | ||
134 | 62 | 62 | ||
135 | === modified file 'lib/lp/code/browser/configure.zcml' | |||
136 | --- lib/lp/code/browser/configure.zcml 2010-08-09 19:49:03 +0000 | |||
137 | +++ lib/lp/code/browser/configure.zcml 2010-08-24 02:26:48 +0000 | |||
138 | @@ -37,6 +37,7 @@ | |||
139 | 37 | /> | 37 | /> |
140 | 38 | <browser:page | 38 | <browser:page |
141 | 39 | for="canonical.launchpad.webapp.interfaces.ILaunchpadApplication" | 39 | for="canonical.launchpad.webapp.interfaces.ILaunchpadApplication" |
142 | 40 | layer="lp.code.publisher.CodeLayer" | ||
143 | 40 | name="+recently-registered-branches" | 41 | name="+recently-registered-branches" |
144 | 41 | class="lp.code.browser.branchlisting.RecentlyRegisteredBranchesView" | 42 | class="lp.code.browser.branchlisting.RecentlyRegisteredBranchesView" |
145 | 42 | template="../templates/branch-listing-cross-product.pt" | 43 | template="../templates/branch-listing-cross-product.pt" |
146 | @@ -44,6 +45,7 @@ | |||
147 | 44 | /> | 45 | /> |
148 | 45 | <browser:page | 46 | <browser:page |
149 | 46 | for="canonical.launchpad.webapp.interfaces.ILaunchpadApplication" | 47 | for="canonical.launchpad.webapp.interfaces.ILaunchpadApplication" |
150 | 48 | layer="lp.code.publisher.CodeLayer" | ||
151 | 47 | name="+recently-imported-branches" | 49 | name="+recently-imported-branches" |
152 | 48 | class="lp.code.browser.branchlisting.RecentlyImportedBranchesView" | 50 | class="lp.code.browser.branchlisting.RecentlyImportedBranchesView" |
153 | 49 | template="../templates/branch-listing-cross-product.pt" | 51 | template="../templates/branch-listing-cross-product.pt" |
154 | @@ -51,6 +53,7 @@ | |||
155 | 51 | /> | 53 | /> |
156 | 52 | <browser:page | 54 | <browser:page |
157 | 53 | for="canonical.launchpad.webapp.interfaces.ILaunchpadApplication" | 55 | for="canonical.launchpad.webapp.interfaces.ILaunchpadApplication" |
158 | 56 | layer="lp.code.publisher.CodeLayer" | ||
159 | 54 | name="+recently-changed-branches" | 57 | name="+recently-changed-branches" |
160 | 55 | class="lp.code.browser.branchlisting.RecentlyChangedBranchesView" | 58 | class="lp.code.browser.branchlisting.RecentlyChangedBranchesView" |
161 | 56 | template="../templates/branch-listing-cross-product.pt" | 59 | template="../templates/branch-listing-cross-product.pt" |
162 | @@ -72,6 +75,7 @@ | |||
163 | 72 | rootsite="code"/> | 75 | rootsite="code"/> |
164 | 73 | <browser:page | 76 | <browser:page |
165 | 74 | for="lp.code.interfaces.codereviewvote.ICodeReviewVoteReference" | 77 | for="lp.code.interfaces.codereviewvote.ICodeReviewVoteReference" |
166 | 78 | layer="lp.code.publisher.CodeLayer" | ||
167 | 75 | name="+reassign" | 79 | name="+reassign" |
168 | 76 | class="lp.code.browser.codereviewvote.CodeReviewVoteReassign" | 80 | class="lp.code.browser.codereviewvote.CodeReviewVoteReassign" |
169 | 77 | facet="branches" | 81 | facet="branches" |
170 | @@ -90,6 +94,7 @@ | |||
171 | 90 | layer="lp.code.publisher.CodeLayer"/> | 94 | layer="lp.code.publisher.CodeLayer"/> |
172 | 91 | <browser:page | 95 | <browser:page |
173 | 92 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachine" | 96 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachine" |
174 | 97 | layer="lp.code.publisher.CodeLayer" | ||
175 | 93 | class="lp.code.browser.codeimportmachine.CodeImportMachineView" | 98 | class="lp.code.browser.codeimportmachine.CodeImportMachineView" |
176 | 94 | name="+index" | 99 | name="+index" |
177 | 95 | template="../templates/codeimport-machine-index.pt" | 100 | template="../templates/codeimport-machine-index.pt" |
178 | @@ -99,8 +104,7 @@ | |||
179 | 99 | facet="branches"> | 104 | facet="branches"> |
180 | 100 | <browser:navigation | 105 | <browser:navigation |
181 | 101 | module="lp.code.browser.codeimportmachine" | 106 | module="lp.code.browser.codeimportmachine" |
184 | 102 | classes=" | 107 | classes="CodeImportMachineSetNavigation"/> |
183 | 103 | CodeImportMachineSetNavigation"/> | ||
185 | 104 | <browser:url | 108 | <browser:url |
186 | 105 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" | 109 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" |
187 | 106 | path_expression="string:+machines" | 110 | path_expression="string:+machines" |
188 | @@ -112,6 +116,7 @@ | |||
189 | 112 | layer="lp.code.publisher.CodeLayer"/> | 116 | layer="lp.code.publisher.CodeLayer"/> |
190 | 113 | <browser:page | 117 | <browser:page |
191 | 114 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" | 118 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" |
192 | 119 | layer="lp.code.publisher.CodeLayer" | ||
193 | 115 | class="lp.code.browser.codeimportmachine.CodeImportMachineSetView" | 120 | class="lp.code.browser.codeimportmachine.CodeImportMachineSetView" |
194 | 116 | name="+index" | 121 | name="+index" |
195 | 117 | template="../templates/codeimport-machines.pt" | 122 | template="../templates/codeimport-machines.pt" |
196 | @@ -123,17 +128,19 @@ | |||
197 | 123 | attribute_to_parent="branch"/> | 128 | attribute_to_parent="branch"/> |
198 | 124 | <browser:navigation | 129 | <browser:navigation |
199 | 125 | module="lp.code.browser.branchref" | 130 | module="lp.code.browser.branchref" |
202 | 126 | classes=" | 131 | classes="BranchRefNavigation"/> |
201 | 127 | BranchRefNavigation"/> | ||
203 | 128 | <browser:url | 132 | <browser:url |
204 | 129 | for="canonical.launchpad.interfaces.IBazaarApplication" | 133 | for="canonical.launchpad.interfaces.IBazaarApplication" |
205 | 130 | path_expression="string:+code" | 134 | path_expression="string:+code" |
207 | 131 | parent_utility="canonical.launchpad.interfaces.ILaunchpadRoot"/> | 135 | parent_utility="canonical.launchpad.interfaces.ILaunchpadRoot" |
208 | 136 | rootsite="code"/> | ||
209 | 132 | <browser:defaultView | 137 | <browser:defaultView |
210 | 133 | for="canonical.launchpad.interfaces.IBazaarApplication" | 138 | for="canonical.launchpad.interfaces.IBazaarApplication" |
211 | 139 | layer="lp.code.publisher.CodeLayer" | ||
212 | 134 | name="+index"/> | 140 | name="+index"/> |
213 | 135 | <browser:pages | 141 | <browser:pages |
214 | 136 | for="canonical.launchpad.interfaces.IBazaarApplication" | 142 | for="canonical.launchpad.interfaces.IBazaarApplication" |
215 | 143 | layer="lp.code.publisher.CodeLayer" | ||
216 | 137 | permission="zope.Public" | 144 | permission="zope.Public" |
217 | 138 | class="lp.code.browser.bazaar.BazaarApplicationView" | 145 | class="lp.code.browser.bazaar.BazaarApplicationView" |
218 | 139 | facet="branches"> | 146 | facet="branches"> |
219 | @@ -143,16 +150,17 @@ | |||
220 | 143 | </browser:pages> | 150 | </browser:pages> |
221 | 144 | <browser:page | 151 | <browser:page |
222 | 145 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 152 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
223 | 153 | layer="lp.code.publisher.CodeLayer" | ||
224 | 146 | name="+hierarchy" | 154 | name="+hierarchy" |
225 | 147 | class="lp.code.browser.branch.BranchHierarchy" | 155 | class="lp.code.browser.branch.BranchHierarchy" |
226 | 148 | template="../../app/templates/launchpad-hierarchy.pt" | 156 | template="../../app/templates/launchpad-hierarchy.pt" |
227 | 149 | permission="zope.Public"/> | 157 | permission="zope.Public"/> |
228 | 150 | <browser:navigation | 158 | <browser:navigation |
229 | 151 | module="lp.code.browser.branchmergeproposal" | 159 | module="lp.code.browser.branchmergeproposal" |
232 | 152 | classes=" | 160 | classes="BranchMergeProposalNavigation"/> |
231 | 153 | BranchMergeProposalNavigation"/> | ||
233 | 154 | <browser:defaultView | 161 | <browser:defaultView |
234 | 155 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 162 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
235 | 163 | layer="lp.code.publisher.CodeLayer" | ||
236 | 156 | name="+index"/> | 164 | name="+index"/> |
237 | 157 | 165 | ||
238 | 158 | <!-- No view needed --> | 166 | <!-- No view needed --> |
239 | @@ -170,6 +178,7 @@ | |||
240 | 170 | 178 | ||
241 | 171 | <browser:pages | 179 | <browser:pages |
242 | 172 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 180 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
243 | 181 | layer="lp.code.publisher.CodeLayer" | ||
244 | 173 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalView" | 182 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalView" |
245 | 174 | facet="branches" | 183 | facet="branches" |
246 | 175 | permission="launchpad.View"> | 184 | permission="launchpad.View"> |
247 | @@ -197,6 +206,7 @@ | |||
248 | 197 | </browser:pages> | 206 | </browser:pages> |
249 | 198 | <browser:pages | 207 | <browser:pages |
250 | 199 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 208 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
251 | 209 | layer="lp.code.publisher.CodeLayer" | ||
252 | 200 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalEditView" | 210 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalEditView" |
253 | 201 | facet="branches" | 211 | facet="branches" |
254 | 202 | permission="launchpad.Edit"> | 212 | permission="launchpad.Edit"> |
255 | @@ -207,6 +217,7 @@ | |||
256 | 207 | <browser:page | 217 | <browser:page |
257 | 208 | name="+edit-commit-message" | 218 | name="+edit-commit-message" |
258 | 209 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 219 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
259 | 220 | layer="lp.code.publisher.CodeLayer" | ||
260 | 210 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalCommitMessageEditView" | 221 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalCommitMessageEditView" |
261 | 211 | facet="branches" | 222 | facet="branches" |
262 | 212 | permission="launchpad.Edit" | 223 | permission="launchpad.Edit" |
263 | @@ -214,6 +225,7 @@ | |||
264 | 214 | <browser:page | 225 | <browser:page |
265 | 215 | name="+edit-description" | 226 | name="+edit-description" |
266 | 216 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 227 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
267 | 228 | layer="lp.code.publisher.CodeLayer" | ||
268 | 217 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalDescriptionEditView" | 229 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalDescriptionEditView" |
269 | 218 | facet="branches" | 230 | facet="branches" |
270 | 219 | permission="launchpad.Edit" | 231 | permission="launchpad.Edit" |
271 | @@ -221,6 +233,7 @@ | |||
272 | 221 | <browser:page | 233 | <browser:page |
273 | 222 | name="+delete" | 234 | name="+delete" |
274 | 223 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 235 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
275 | 236 | layer="lp.code.publisher.CodeLayer" | ||
276 | 224 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalDeleteView" | 237 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalDeleteView" |
277 | 225 | facet="branches" | 238 | facet="branches" |
278 | 226 | permission="launchpad.Edit" | 239 | permission="launchpad.Edit" |
279 | @@ -228,6 +241,7 @@ | |||
280 | 228 | <browser:page | 241 | <browser:page |
281 | 229 | name="+edit-status" | 242 | name="+edit-status" |
282 | 230 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 243 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
283 | 244 | layer="lp.code.publisher.CodeLayer" | ||
284 | 231 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalChangeStatusView" | 245 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalChangeStatusView" |
285 | 232 | facet="branches" | 246 | facet="branches" |
286 | 233 | permission="launchpad.Edit" | 247 | permission="launchpad.Edit" |
287 | @@ -235,6 +249,7 @@ | |||
288 | 235 | <browser:page | 249 | <browser:page |
289 | 236 | name="+request-review" | 250 | name="+request-review" |
290 | 237 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 251 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
291 | 252 | layer="lp.code.publisher.CodeLayer" | ||
292 | 238 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalRequestReviewView" | 253 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalRequestReviewView" |
293 | 239 | facet="branches" | 254 | facet="branches" |
294 | 240 | permission="launchpad.Edit" | 255 | permission="launchpad.Edit" |
295 | @@ -242,6 +257,7 @@ | |||
296 | 242 | <browser:page | 257 | <browser:page |
297 | 243 | name="+resubmit" | 258 | name="+resubmit" |
298 | 244 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 259 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
299 | 260 | layer="lp.code.publisher.CodeLayer" | ||
300 | 245 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalResubmitView" | 261 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalResubmitView" |
301 | 246 | facet="branches" | 262 | facet="branches" |
302 | 247 | permission="launchpad.Edit" | 263 | permission="launchpad.Edit" |
303 | @@ -249,6 +265,7 @@ | |||
304 | 249 | <browser:page | 265 | <browser:page |
305 | 250 | name="+enqueue" | 266 | name="+enqueue" |
306 | 251 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 267 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
307 | 268 | layer="lp.code.publisher.CodeLayer" | ||
308 | 252 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalEnqueueView" | 269 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalEnqueueView" |
309 | 253 | facet="branches" | 270 | facet="branches" |
310 | 254 | permission="launchpad.Edit" | 271 | permission="launchpad.Edit" |
311 | @@ -256,6 +273,7 @@ | |||
312 | 256 | <browser:page | 273 | <browser:page |
313 | 257 | name="+dequeue" | 274 | name="+dequeue" |
314 | 258 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 275 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
315 | 276 | layer="lp.code.publisher.CodeLayer" | ||
316 | 259 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalDequeueView" | 277 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalDequeueView" |
317 | 260 | facet="branches" | 278 | facet="branches" |
318 | 261 | permission="launchpad.Edit" | 279 | permission="launchpad.Edit" |
319 | @@ -263,6 +281,7 @@ | |||
320 | 263 | <browser:page | 281 | <browser:page |
321 | 264 | name="+dequeue-inline" | 282 | name="+dequeue-inline" |
322 | 265 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 283 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
323 | 284 | layer="lp.code.publisher.CodeLayer" | ||
324 | 266 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalInlineDequeueView" | 285 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalInlineDequeueView" |
325 | 267 | facet="branches" | 286 | facet="branches" |
326 | 268 | permission="launchpad.Edit" | 287 | permission="launchpad.Edit" |
327 | @@ -270,6 +289,7 @@ | |||
328 | 270 | <browser:page | 289 | <browser:page |
329 | 271 | name="+jump-queue" | 290 | name="+jump-queue" |
330 | 272 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 291 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
331 | 292 | layer="lp.code.publisher.CodeLayer" | ||
332 | 273 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalJumpQueueView" | 293 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalJumpQueueView" |
333 | 274 | facet="branches" | 294 | facet="branches" |
334 | 275 | permission="launchpad.Edit" | 295 | permission="launchpad.Edit" |
335 | @@ -277,6 +297,7 @@ | |||
336 | 277 | <browser:page | 297 | <browser:page |
337 | 278 | name="+merged" | 298 | name="+merged" |
338 | 279 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 299 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
339 | 300 | layer="lp.code.publisher.CodeLayer" | ||
340 | 280 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalMergedView" | 301 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalMergedView" |
341 | 281 | facet="branches" | 302 | facet="branches" |
342 | 282 | permission="launchpad.Edit" | 303 | permission="launchpad.Edit" |
343 | @@ -291,6 +312,7 @@ | |||
344 | 291 | <browser:page | 312 | <browser:page |
345 | 292 | name="+pagelet-subscribers" | 313 | name="+pagelet-subscribers" |
346 | 293 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 314 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
347 | 315 | layer="lp.code.publisher.CodeLayer" | ||
348 | 294 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalSubscribersView" | 316 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalSubscribersView" |
349 | 295 | facet="branches" | 317 | facet="branches" |
350 | 296 | permission="launchpad.View" | 318 | permission="launchpad.View" |
351 | @@ -298,6 +320,7 @@ | |||
352 | 298 | <browser:page | 320 | <browser:page |
353 | 299 | name="+comment" | 321 | name="+comment" |
354 | 300 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 322 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
355 | 323 | layer="lp.code.publisher.CodeLayer" | ||
356 | 301 | class="lp.code.browser.codereviewcomment.CodeReviewCommentAddView" | 324 | class="lp.code.browser.codereviewcomment.CodeReviewCommentAddView" |
357 | 302 | facet="branches" | 325 | facet="branches" |
358 | 303 | permission="launchpad.AnyPerson" | 326 | permission="launchpad.AnyPerson" |
359 | @@ -305,6 +328,7 @@ | |||
360 | 305 | <browser:page | 328 | <browser:page |
361 | 306 | name="+review" | 329 | name="+review" |
362 | 307 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 330 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
363 | 331 | layer="lp.code.publisher.CodeLayer" | ||
364 | 308 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalAddVoteView" | 332 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalAddVoteView" |
365 | 309 | facet="branches" | 333 | facet="branches" |
366 | 310 | permission="launchpad.AnyPerson" | 334 | permission="launchpad.AnyPerson" |
367 | @@ -316,11 +340,13 @@ | |||
368 | 316 | rootsite="code"/> | 340 | rootsite="code"/> |
369 | 317 | <browser:page | 341 | <browser:page |
370 | 318 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposalListingBatchNavigator" | 342 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposalListingBatchNavigator" |
371 | 343 | layer="lp.code.publisher.CodeLayer" | ||
372 | 319 | name="+listing" | 344 | name="+listing" |
373 | 320 | template="../templates/branchmergeproposal-listing.pt" | 345 | template="../templates/branchmergeproposal-listing.pt" |
374 | 321 | permission="zope.Public"/> | 346 | permission="zope.Public"/> |
375 | 322 | <browser:page | 347 | <browser:page |
376 | 323 | for="*" | 348 | for="*" |
377 | 349 | layer="lp.code.publisher.CodeLayer" | ||
378 | 324 | name="+bmp-macros" | 350 | name="+bmp-macros" |
379 | 325 | permission="zope.Public" | 351 | permission="zope.Public" |
380 | 326 | template="../templates/branchmergeproposal-macros.pt"/> | 352 | template="../templates/branchmergeproposal-macros.pt"/> |
381 | @@ -332,16 +358,19 @@ | |||
382 | 332 | module="lp.code.browser.branchmergeproposal"/> | 358 | module="lp.code.browser.branchmergeproposal"/> |
383 | 333 | <browser:page | 359 | <browser:page |
384 | 334 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" | 360 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" |
385 | 361 | layer="lp.code.publisher.CodeLayer" | ||
386 | 335 | name="+hierarchy" | 362 | name="+hierarchy" |
387 | 336 | class="lp.code.browser.branch.BranchHierarchy" | 363 | class="lp.code.browser.branch.BranchHierarchy" |
388 | 337 | template="../../app/templates/launchpad-hierarchy.pt" | 364 | template="../../app/templates/launchpad-hierarchy.pt" |
389 | 338 | permission="zope.Public"/> | 365 | permission="zope.Public"/> |
390 | 339 | <browser:defaultView | 366 | <browser:defaultView |
391 | 340 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" | 367 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" |
392 | 368 | layer="lp.code.publisher.CodeLayer" | ||
393 | 341 | name="+index"/> | 369 | name="+index"/> |
394 | 342 | <browser:page | 370 | <browser:page |
395 | 343 | name="+index" | 371 | name="+index" |
396 | 344 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" | 372 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" |
397 | 373 | layer="lp.code.publisher.CodeLayer" | ||
398 | 345 | class="lp.code.browser.branchsubscription.BranchSubscriptionEditView" | 374 | class="lp.code.browser.branchsubscription.BranchSubscriptionEditView" |
399 | 346 | facet="branches" | 375 | facet="branches" |
400 | 347 | permission="launchpad.Edit" | 376 | permission="launchpad.Edit" |
401 | @@ -353,22 +382,24 @@ | |||
402 | 353 | rootsite="code"/> | 382 | rootsite="code"/> |
403 | 354 | <browser:page | 383 | <browser:page |
404 | 355 | for="lp.code.interfaces.branch.IBranch" | 384 | for="lp.code.interfaces.branch.IBranch" |
405 | 385 | layer="lp.code.publisher.CodeLayer" | ||
406 | 356 | name="+hierarchy" | 386 | name="+hierarchy" |
407 | 357 | class="lp.code.browser.branch.BranchHierarchy" | 387 | class="lp.code.browser.branch.BranchHierarchy" |
408 | 358 | template="../../app/templates/launchpad-hierarchy.pt" | 388 | template="../../app/templates/launchpad-hierarchy.pt" |
409 | 359 | permission="zope.Public"/> | 389 | permission="zope.Public"/> |
410 | 360 | <browser:defaultView | 390 | <browser:defaultView |
411 | 361 | for="lp.code.interfaces.branch.IBranch" | 391 | for="lp.code.interfaces.branch.IBranch" |
412 | 392 | layer="lp.code.publisher.CodeLayer" | ||
413 | 362 | name="+index"/> | 393 | name="+index"/> |
414 | 363 | <browser:url | 394 | <browser:url |
415 | 364 | for="lp.code.interfaces.branch.IBranch" | 395 | for="lp.code.interfaces.branch.IBranch" |
416 | 365 | urldata="lp.code.browser.branch.BranchURL"/> | 396 | urldata="lp.code.browser.branch.BranchURL"/> |
417 | 366 | <browser:navigation | 397 | <browser:navigation |
418 | 367 | module="lp.code.browser.branch" | 398 | module="lp.code.browser.branch" |
421 | 368 | classes=" | 399 | classes="BranchNavigation"/> |
420 | 369 | BranchNavigation"/> | ||
422 | 370 | <browser:pages | 400 | <browser:pages |
423 | 371 | for="lp.code.interfaces.branch.IBranch" | 401 | for="lp.code.interfaces.branch.IBranch" |
424 | 402 | layer="lp.code.publisher.CodeLayer" | ||
425 | 372 | facet="branches" | 403 | facet="branches" |
426 | 373 | permission="zope.Public" | 404 | permission="zope.Public" |
427 | 374 | class="lp.code.browser.branch.BranchView"> | 405 | class="lp.code.browser.branch.BranchView"> |
428 | @@ -410,6 +441,7 @@ | |||
429 | 410 | </browser:pages> | 441 | </browser:pages> |
430 | 411 | <browser:pages | 442 | <browser:pages |
431 | 412 | for="lp.code.interfaces.branch.IBranch" | 443 | for="lp.code.interfaces.branch.IBranch" |
432 | 444 | layer="lp.code.publisher.CodeLayer" | ||
433 | 413 | permission="zope.Public"> | 445 | permission="zope.Public"> |
434 | 414 | <browser:page | 446 | <browser:page |
435 | 415 | name="+portlet-privacy" | 447 | name="+portlet-privacy" |
436 | @@ -421,6 +453,7 @@ | |||
437 | 421 | <browser:page | 453 | <browser:page |
438 | 422 | name="+portlet-subscribers" | 454 | name="+portlet-subscribers" |
439 | 423 | for="lp.code.interfaces.branch.IBranch" | 455 | for="lp.code.interfaces.branch.IBranch" |
440 | 456 | layer="lp.code.publisher.CodeLayer" | ||
441 | 424 | class="lp.code.browser.branch.BranchSubscriptionsView" | 457 | class="lp.code.browser.branch.BranchSubscriptionsView" |
442 | 425 | facet="branches" | 458 | facet="branches" |
443 | 426 | permission="zope.Public" | 459 | permission="zope.Public" |
444 | @@ -428,11 +461,13 @@ | |||
445 | 428 | <browser:page | 461 | <browser:page |
446 | 429 | name="+branch-portlet-subscriber-content" | 462 | name="+branch-portlet-subscriber-content" |
447 | 430 | for="lp.code.interfaces.branch.IBranch" | 463 | for="lp.code.interfaces.branch.IBranch" |
448 | 464 | layer="lp.code.publisher.CodeLayer" | ||
449 | 431 | class="lp.code.browser.branchsubscription.BranchPortletSubscribersContent" | 465 | class="lp.code.browser.branchsubscription.BranchPortletSubscribersContent" |
450 | 432 | template="../templates/branch-portlet-subscribers-content.pt" | 466 | template="../templates/branch-portlet-subscribers-content.pt" |
451 | 433 | permission="zope.Public" /> | 467 | permission="zope.Public" /> |
452 | 434 | <browser:pages | 468 | <browser:pages |
453 | 435 | for="lp.code.interfaces.branch.IBranch" | 469 | for="lp.code.interfaces.branch.IBranch" |
454 | 470 | layer="lp.code.publisher.CodeLayer" | ||
455 | 436 | facet="overview" | 471 | facet="overview" |
456 | 437 | permission="zope.Public" | 472 | permission="zope.Public" |
457 | 438 | class="lp.code.browser.branch.BranchInProductView"> | 473 | class="lp.code.browser.branch.BranchInProductView"> |
458 | @@ -442,11 +477,13 @@ | |||
459 | 442 | </browser:pages> | 477 | </browser:pages> |
460 | 443 | <browser:page | 478 | <browser:page |
461 | 444 | for="lp.code.interfaces.branch.IBranch" | 479 | for="lp.code.interfaces.branch.IBranch" |
462 | 480 | layer="lp.code.publisher.CodeLayer" | ||
463 | 445 | name="+macros" | 481 | name="+macros" |
464 | 446 | permission="zope.Public" | 482 | permission="zope.Public" |
465 | 447 | template="../templates/branch-macros.pt"/> | 483 | template="../templates/branch-macros.pt"/> |
466 | 448 | <browser:page | 484 | <browser:page |
467 | 449 | for="*" | 485 | for="*" |
468 | 486 | layer="lp.code.publisher.CodeLayer" | ||
469 | 450 | name="branch-form-macros" | 487 | name="branch-form-macros" |
470 | 451 | permission="zope.Public" | 488 | permission="zope.Public" |
471 | 452 | template="../templates/branch-form-macros.pt"/> | 489 | template="../templates/branch-form-macros.pt"/> |
472 | @@ -454,12 +491,14 @@ | |||
473 | 454 | name="+whiteboard" | 491 | name="+whiteboard" |
474 | 455 | for="lp.code.interfaces.branch.IBranch" | 492 | for="lp.code.interfaces.branch.IBranch" |
475 | 456 | class="lp.code.browser.branch.BranchEditWhiteboardView" | 493 | class="lp.code.browser.branch.BranchEditWhiteboardView" |
476 | 494 | layer="lp.code.publisher.CodeLayer" | ||
477 | 457 | facet="branches" | 495 | facet="branches" |
478 | 458 | permission="launchpad.AnyPerson" | 496 | permission="launchpad.AnyPerson" |
479 | 459 | template="../../app/templates/generic-edit.pt"/> | 497 | template="../../app/templates/generic-edit.pt"/> |
480 | 460 | <browser:page | 498 | <browser:page |
481 | 461 | name="+edit-status" | 499 | name="+edit-status" |
482 | 462 | for="lp.code.interfaces.branch.IBranch" | 500 | for="lp.code.interfaces.branch.IBranch" |
483 | 501 | layer="lp.code.publisher.CodeLayer" | ||
484 | 463 | class="lp.code.browser.branch.BranchEditStatusView" | 502 | class="lp.code.browser.branch.BranchEditStatusView" |
485 | 464 | facet="branches" | 503 | facet="branches" |
486 | 465 | permission="launchpad.Edit" | 504 | permission="launchpad.Edit" |
487 | @@ -467,6 +506,7 @@ | |||
488 | 467 | <browser:page | 506 | <browser:page |
489 | 468 | name="+edit" | 507 | name="+edit" |
490 | 469 | for="lp.code.interfaces.branch.IBranch" | 508 | for="lp.code.interfaces.branch.IBranch" |
491 | 509 | layer="lp.code.publisher.CodeLayer" | ||
492 | 470 | class="lp.code.browser.branch.BranchEditView" | 510 | class="lp.code.browser.branch.BranchEditView" |
493 | 471 | facet="branches" | 511 | facet="branches" |
494 | 472 | permission="launchpad.Edit" | 512 | permission="launchpad.Edit" |
495 | @@ -474,6 +514,7 @@ | |||
496 | 474 | <browser:page | 514 | <browser:page |
497 | 475 | name="+upgrade" | 515 | name="+upgrade" |
498 | 476 | for="lp.code.interfaces.branch.IBranch" | 516 | for="lp.code.interfaces.branch.IBranch" |
499 | 517 | layer="lp.code.publisher.CodeLayer" | ||
500 | 477 | class="lp.code.browser.branch.BranchUpgradeView" | 518 | class="lp.code.browser.branch.BranchUpgradeView" |
501 | 478 | facet="branches" | 519 | facet="branches" |
502 | 479 | permission="launchpad.Edit" | 520 | permission="launchpad.Edit" |
503 | @@ -481,6 +522,7 @@ | |||
504 | 481 | <browser:page | 522 | <browser:page |
505 | 482 | name="+reviewer" | 523 | name="+reviewer" |
506 | 483 | for="lp.code.interfaces.branch.IBranch" | 524 | for="lp.code.interfaces.branch.IBranch" |
507 | 525 | layer="lp.code.publisher.CodeLayer" | ||
508 | 484 | class="lp.code.browser.branch.BranchReviewerEditView" | 526 | class="lp.code.browser.branch.BranchReviewerEditView" |
509 | 485 | facet="branches" | 527 | facet="branches" |
510 | 486 | permission="launchpad.Edit" | 528 | permission="launchpad.Edit" |
511 | @@ -488,6 +530,7 @@ | |||
512 | 488 | <browser:page | 530 | <browser:page |
513 | 489 | name="+edit-import" | 531 | name="+edit-import" |
514 | 490 | for="lp.code.interfaces.branch.IBranch" | 532 | for="lp.code.interfaces.branch.IBranch" |
515 | 533 | layer="lp.code.publisher.CodeLayer" | ||
516 | 491 | class="lp.code.browser.codeimport.CodeImportEditView" | 534 | class="lp.code.browser.codeimport.CodeImportEditView" |
517 | 492 | facet="branches" | 535 | facet="branches" |
518 | 493 | permission="launchpad.Edit" | 536 | permission="launchpad.Edit" |
519 | @@ -495,12 +538,14 @@ | |||
520 | 495 | <browser:page | 538 | <browser:page |
521 | 496 | name="+delete" | 539 | name="+delete" |
522 | 497 | for="lp.code.interfaces.branch.IBranch" | 540 | for="lp.code.interfaces.branch.IBranch" |
523 | 541 | layer="lp.code.publisher.CodeLayer" | ||
524 | 498 | class="lp.code.browser.branch.BranchDeletionView" | 542 | class="lp.code.browser.branch.BranchDeletionView" |
525 | 499 | facet="branches" | 543 | facet="branches" |
526 | 500 | permission="launchpad.Edit" | 544 | permission="launchpad.Edit" |
527 | 501 | template="../templates/branch-delete.pt"/> | 545 | template="../templates/branch-delete.pt"/> |
528 | 502 | <browser:pages | 546 | <browser:pages |
529 | 503 | for="lp.code.interfaces.branch.IBranch" | 547 | for="lp.code.interfaces.branch.IBranch" |
530 | 548 | layer="lp.code.publisher.CodeLayer" | ||
531 | 504 | class="lp.code.browser.branch.BranchMirrorStatusView" | 549 | class="lp.code.browser.branch.BranchMirrorStatusView" |
532 | 505 | facet="branches" | 550 | facet="branches" |
533 | 506 | permission="launchpad.View"> | 551 | permission="launchpad.View"> |
534 | @@ -514,6 +559,7 @@ | |||
535 | 514 | <browser:page | 559 | <browser:page |
536 | 515 | name="+subscribe" | 560 | name="+subscribe" |
537 | 516 | for="lp.code.interfaces.branch.IBranch" | 561 | for="lp.code.interfaces.branch.IBranch" |
538 | 562 | layer="lp.code.publisher.CodeLayer" | ||
539 | 517 | class="lp.code.browser.branchsubscription.BranchSubscriptionAddView" | 563 | class="lp.code.browser.branchsubscription.BranchSubscriptionAddView" |
540 | 518 | facet="branches" | 564 | facet="branches" |
541 | 519 | permission="launchpad.AnyPerson" | 565 | permission="launchpad.AnyPerson" |
542 | @@ -521,6 +567,7 @@ | |||
543 | 521 | <browser:page | 567 | <browser:page |
544 | 522 | name="+register-merge" | 568 | name="+register-merge" |
545 | 523 | for="lp.code.interfaces.branch.IBranch" | 569 | for="lp.code.interfaces.branch.IBranch" |
546 | 570 | layer="lp.code.publisher.CodeLayer" | ||
547 | 524 | class="lp.code.browser.branch.RegisterBranchMergeProposalView" | 571 | class="lp.code.browser.branch.RegisterBranchMergeProposalView" |
548 | 525 | facet="branches" | 572 | facet="branches" |
549 | 526 | permission="launchpad.AnyPerson" | 573 | permission="launchpad.AnyPerson" |
550 | @@ -528,6 +575,7 @@ | |||
551 | 528 | <browser:page | 575 | <browser:page |
552 | 529 | name="+linkbug" | 576 | name="+linkbug" |
553 | 530 | for="lp.code.interfaces.branch.IBranch" | 577 | for="lp.code.interfaces.branch.IBranch" |
554 | 578 | layer="lp.code.publisher.CodeLayer" | ||
555 | 531 | class="lp.bugs.browser.bugbranch.BranchLinkToBugView" | 579 | class="lp.bugs.browser.bugbranch.BranchLinkToBugView" |
556 | 532 | facet="branches" | 580 | facet="branches" |
557 | 533 | permission="launchpad.AnyPerson" | 581 | permission="launchpad.AnyPerson" |
558 | @@ -535,6 +583,7 @@ | |||
559 | 535 | <browser:page | 583 | <browser:page |
560 | 536 | name="+linkblueprint" | 584 | name="+linkblueprint" |
561 | 537 | for="lp.code.interfaces.branch.IBranch" | 585 | for="lp.code.interfaces.branch.IBranch" |
562 | 586 | layer="lp.code.publisher.CodeLayer" | ||
563 | 538 | class="lp.blueprints.browser.specificationbranch.BranchLinkToSpecificationView" | 587 | class="lp.blueprints.browser.specificationbranch.BranchLinkToSpecificationView" |
564 | 539 | facet="branches" | 588 | facet="branches" |
565 | 540 | permission="launchpad.AnyPerson" | 589 | permission="launchpad.AnyPerson" |
566 | @@ -542,6 +591,7 @@ | |||
567 | 542 | <browser:page | 591 | <browser:page |
568 | 543 | name="+addsubscriber" | 592 | name="+addsubscriber" |
569 | 544 | for="lp.code.interfaces.branch.IBranch" | 593 | for="lp.code.interfaces.branch.IBranch" |
570 | 594 | layer="lp.code.publisher.CodeLayer" | ||
571 | 545 | class="lp.code.browser.branchsubscription.BranchSubscriptionAddOtherView" | 595 | class="lp.code.browser.branchsubscription.BranchSubscriptionAddOtherView" |
572 | 546 | facet="branches" | 596 | facet="branches" |
573 | 547 | permission="launchpad.AnyPerson" | 597 | permission="launchpad.AnyPerson" |
574 | @@ -549,24 +599,28 @@ | |||
575 | 549 | <browser:page | 599 | <browser:page |
576 | 550 | name="+edit-subscription" | 600 | name="+edit-subscription" |
577 | 551 | for="lp.code.interfaces.branch.IBranch" | 601 | for="lp.code.interfaces.branch.IBranch" |
578 | 602 | layer="lp.code.publisher.CodeLayer" | ||
579 | 552 | class="lp.code.browser.branchsubscription.BranchSubscriptionEditOwnView" | 603 | class="lp.code.browser.branchsubscription.BranchSubscriptionEditOwnView" |
580 | 553 | facet="branches" | 604 | facet="branches" |
581 | 554 | permission="launchpad.AnyPerson" | 605 | permission="launchpad.AnyPerson" |
582 | 555 | template="../templates/branch-edit-subscription.pt"/> | 606 | template="../templates/branch-edit-subscription.pt"/> |
583 | 556 | <browser:page | 607 | <browser:page |
584 | 557 | for="lp.code.interfaces.branch.IBranch" | 608 | for="lp.code.interfaces.branch.IBranch" |
585 | 609 | layer="lp.code.publisher.CodeLayer" | ||
586 | 558 | class="lp.code.browser.branch.BranchRequestImportView" | 610 | class="lp.code.browser.branch.BranchRequestImportView" |
587 | 559 | name="+request-import" | 611 | name="+request-import" |
588 | 560 | template="../templates/inline-form-only-buttons.pt" | 612 | template="../templates/inline-form-only-buttons.pt" |
589 | 561 | permission="launchpad.AnyPerson"/> | 613 | permission="launchpad.AnyPerson"/> |
590 | 562 | <browser:page | 614 | <browser:page |
591 | 563 | for="lp.code.interfaces.branch.IBranch" | 615 | for="lp.code.interfaces.branch.IBranch" |
592 | 616 | layer="lp.code.publisher.CodeLayer" | ||
593 | 564 | class="lp.code.browser.branch.TryImportAgainView" | 617 | class="lp.code.browser.branch.TryImportAgainView" |
594 | 565 | name="+try-again" | 618 | name="+try-again" |
595 | 566 | template="../templates/inline-form-only-buttons.pt" | 619 | template="../templates/inline-form-only-buttons.pt" |
596 | 567 | permission="launchpad.AnyPerson"/> | 620 | permission="launchpad.AnyPerson"/> |
597 | 568 | <browser:page | 621 | <browser:page |
598 | 569 | for="lp.code.interfaces.branch.IBranch" | 622 | for="lp.code.interfaces.branch.IBranch" |
599 | 623 | layer="lp.code.publisher.CodeLayer" | ||
600 | 570 | class="lp.code.browser.branchmergeproposallisting.BranchActiveReviewsView" | 624 | class="lp.code.browser.branchmergeproposallisting.BranchActiveReviewsView" |
601 | 571 | permission="zope.Public" | 625 | permission="zope.Public" |
602 | 572 | name="+activereviews" | 626 | name="+activereviews" |
603 | @@ -574,6 +628,7 @@ | |||
604 | 574 | template="../templates/active-reviews.pt"/> | 628 | template="../templates/active-reviews.pt"/> |
605 | 575 | <browser:page | 629 | <browser:page |
606 | 576 | for="lp.code.interfaces.branch.IBranchBatchNavigator" | 630 | for="lp.code.interfaces.branch.IBranchBatchNavigator" |
607 | 631 | layer="lp.code.publisher.CodeLayer" | ||
608 | 577 | name="+branch-listing" | 632 | name="+branch-listing" |
609 | 578 | template="../templates/branch-listing.pt" | 633 | template="../templates/branch-listing.pt" |
610 | 579 | permission="zope.Public"/> | 634 | permission="zope.Public"/> |
611 | @@ -601,6 +656,7 @@ | |||
612 | 601 | <browser:page | 656 | <browser:page |
613 | 602 | name="+spark" | 657 | name="+spark" |
614 | 603 | for="lp.code.interfaces.branch.IBranch" | 658 | for="lp.code.interfaces.branch.IBranch" |
615 | 659 | layer="lp.code.publisher.CodeLayer" | ||
616 | 604 | class="lp.code.browser.branch.BranchSparkView" | 660 | class="lp.code.browser.branch.BranchSparkView" |
617 | 605 | facet="branches" | 661 | facet="branches" |
618 | 606 | permission="zope.Public"/> | 662 | permission="zope.Public"/> |
619 | @@ -611,6 +667,7 @@ | |||
620 | 611 | module="lp.code.browser.branch"/> | 667 | module="lp.code.browser.branch"/> |
621 | 612 | <browser:page | 668 | <browser:page |
622 | 613 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" | 669 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" |
623 | 670 | layer="lp.code.publisher.CodeLayer" | ||
624 | 614 | name="+hierarchy" | 671 | name="+hierarchy" |
625 | 615 | class="lp.code.browser.branch.BranchHierarchy" | 672 | class="lp.code.browser.branch.BranchHierarchy" |
626 | 616 | template="../../app/templates/launchpad-hierarchy.pt" | 673 | template="../../app/templates/launchpad-hierarchy.pt" |
627 | @@ -622,10 +679,12 @@ | |||
628 | 622 | rootsite="code"/> | 679 | rootsite="code"/> |
629 | 623 | <browser:defaultView | 680 | <browser:defaultView |
630 | 624 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" | 681 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" |
631 | 682 | layer="lp.code.publisher.CodeLayer" | ||
632 | 625 | name="+index"/> | 683 | name="+index"/> |
633 | 626 | <browser:pages | 684 | <browser:pages |
634 | 627 | facet="branches" | 685 | facet="branches" |
635 | 628 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" | 686 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" |
636 | 687 | layer="lp.code.publisher.CodeLayer" | ||
637 | 629 | class="lp.code.browser.codereviewcomment.CodeReviewCommentView" | 688 | class="lp.code.browser.codereviewcomment.CodeReviewCommentView" |
638 | 630 | permission="zope.Public"> | 689 | permission="zope.Public"> |
639 | 631 | <browser:page | 690 | <browser:page |
640 | @@ -647,6 +706,7 @@ | |||
641 | 647 | <browser:pages | 706 | <browser:pages |
642 | 648 | facet="branches" | 707 | facet="branches" |
643 | 649 | for="lp.code.browser.branchmergeproposal.ICodeReviewNewRevisions" | 708 | for="lp.code.browser.branchmergeproposal.ICodeReviewNewRevisions" |
644 | 709 | layer="lp.code.publisher.CodeLayer" | ||
645 | 650 | class="lp.code.browser.branchmergeproposal.CodeReviewNewRevisionsView" | 710 | class="lp.code.browser.branchmergeproposal.CodeReviewNewRevisionsView" |
646 | 651 | permission="zope.Public"> | 711 | permission="zope.Public"> |
647 | 652 | <browser:page | 712 | <browser:page |
648 | @@ -660,17 +720,18 @@ | |||
649 | 660 | name="+reply" | 720 | name="+reply" |
650 | 661 | facet="branches" | 721 | facet="branches" |
651 | 662 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" | 722 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" |
652 | 723 | layer="lp.code.publisher.CodeLayer" | ||
653 | 663 | class="lp.code.browser.codereviewcomment.CodeReviewCommentAddView" | 724 | class="lp.code.browser.codereviewcomment.CodeReviewCommentAddView" |
654 | 664 | permission="launchpad.AnyPerson" | 725 | permission="launchpad.AnyPerson" |
655 | 665 | template="../templates/codereviewcomment-reply.pt"/> | 726 | template="../templates/codereviewcomment-reply.pt"/> |
656 | 666 | <browser:menus | 727 | <browser:menus |
659 | 667 | classes=" | 728 | classes="CodeReviewCommentContextMenu" |
658 | 668 | CodeReviewCommentContextMenu" | ||
660 | 669 | module="lp.code.browser.codereviewcomment"/> | 729 | module="lp.code.browser.codereviewcomment"/> |
661 | 670 | <facet | 730 | <facet |
662 | 671 | facet="branches"> | 731 | facet="branches"> |
663 | 672 | <browser:page | 732 | <browser:page |
664 | 673 | for="lp.code.interfaces.codeimport.ICodeImport" | 733 | for="lp.code.interfaces.codeimport.ICodeImport" |
665 | 734 | layer="lp.code.publisher.CodeLayer" | ||
666 | 674 | name="+macros" | 735 | name="+macros" |
667 | 675 | permission="zope.Public" | 736 | permission="zope.Public" |
668 | 676 | template="../templates/codeimport-macros.pt"/> | 737 | template="../templates/codeimport-macros.pt"/> |
669 | @@ -688,18 +749,21 @@ | |||
670 | 688 | layer="lp.code.publisher.CodeLayer"/> | 749 | layer="lp.code.publisher.CodeLayer"/> |
671 | 689 | <browser:page | 750 | <browser:page |
672 | 690 | for="lp.code.interfaces.codeimport.ICodeImportSet" | 751 | for="lp.code.interfaces.codeimport.ICodeImportSet" |
673 | 752 | layer="lp.code.publisher.CodeLayer" | ||
674 | 691 | class="lp.code.browser.codeimport.CodeImportSetView" | 753 | class="lp.code.browser.codeimport.CodeImportSetView" |
675 | 692 | name="+index" | 754 | name="+index" |
676 | 693 | template="../templates/codeimport-list.pt" | 755 | template="../templates/codeimport-list.pt" |
677 | 694 | permission="zope.Public"/> | 756 | permission="zope.Public"/> |
678 | 695 | <browser:page | 757 | <browser:page |
679 | 696 | for="lp.code.interfaces.codeimport.ICodeImportSet" | 758 | for="lp.code.interfaces.codeimport.ICodeImportSet" |
680 | 759 | layer="lp.code.publisher.CodeLayer" | ||
681 | 697 | class="lp.code.browser.codeimport.CodeImportNewView" | 760 | class="lp.code.browser.codeimport.CodeImportNewView" |
682 | 698 | name="+new" | 761 | name="+new" |
683 | 699 | template="../templates/codeimport-new.pt" | 762 | template="../templates/codeimport-new.pt" |
684 | 700 | permission="launchpad.AnyPerson"/> | 763 | permission="launchpad.AnyPerson"/> |
685 | 701 | <browser:page | 764 | <browser:page |
686 | 702 | for="lp.registry.interfaces.product.IProduct" | 765 | for="lp.registry.interfaces.product.IProduct" |
687 | 766 | layer="lp.code.publisher.CodeLayer" | ||
688 | 703 | class="lp.code.browser.codeimport.CodeImportNewView" | 767 | class="lp.code.browser.codeimport.CodeImportNewView" |
689 | 704 | name="+new-import" | 768 | name="+new-import" |
690 | 705 | template="../templates/codeimport-new.pt" | 769 | template="../templates/codeimport-new.pt" |
691 | @@ -712,14 +776,14 @@ | |||
692 | 712 | rootsite="code"/> | 776 | rootsite="code"/> |
693 | 713 | <browser:navigation | 777 | <browser:navigation |
694 | 714 | module="lp.code.browser.codeimport" | 778 | module="lp.code.browser.codeimport" |
697 | 715 | classes=" | 779 | classes="CodeImportSetNavigation"/> |
696 | 716 | CodeImportSetNavigation"/> | ||
698 | 717 | <browser:defaultView | 780 | <browser:defaultView |
699 | 718 | for="lp.registry.interfaces.projectgroup.IProjectGroup" | 781 | for="lp.registry.interfaces.projectgroup.IProjectGroup" |
700 | 719 | name="+branches" | 782 | name="+branches" |
701 | 720 | layer="lp.code.publisher.CodeLayer"/> | 783 | layer="lp.code.publisher.CodeLayer"/> |
702 | 721 | <browser:page | 784 | <browser:page |
703 | 722 | for="lp.registry.interfaces.sourcepackage.ISourcePackage" | 785 | for="lp.registry.interfaces.sourcepackage.ISourcePackage" |
704 | 786 | layer="lp.code.publisher.CodeLayer" | ||
705 | 723 | class="lp.code.browser.branchlisting.SourcePackageBranchesView" | 787 | class="lp.code.browser.branchlisting.SourcePackageBranchesView" |
706 | 724 | permission="zope.Public" | 788 | permission="zope.Public" |
707 | 725 | facet="branches" | 789 | facet="branches" |
708 | @@ -727,6 +791,7 @@ | |||
709 | 727 | template="../templates/sourcepackage-branches.pt"/> | 791 | template="../templates/sourcepackage-branches.pt"/> |
710 | 728 | <browser:page | 792 | <browser:page |
711 | 729 | for="lp.registry.interfaces.sourcepackage.ISourcePackage" | 793 | for="lp.registry.interfaces.sourcepackage.ISourcePackage" |
712 | 794 | layer="lp.code.publisher.CodeLayer" | ||
713 | 730 | class="lp.code.browser.summary.BranchCountSummaryView" | 795 | class="lp.code.browser.summary.BranchCountSummaryView" |
714 | 731 | facet="branches" | 796 | facet="branches" |
715 | 732 | permission="zope.Public" | 797 | permission="zope.Public" |
716 | @@ -734,6 +799,7 @@ | |||
717 | 734 | template="../templates/branch-count-summary.pt"/> | 799 | template="../templates/branch-count-summary.pt"/> |
718 | 735 | <browser:page | 800 | <browser:page |
719 | 736 | for="lp.registry.interfaces.distribution.IDistribution" | 801 | for="lp.registry.interfaces.distribution.IDistribution" |
720 | 802 | layer="lp.code.publisher.CodeLayer" | ||
721 | 737 | class="lp.code.browser.branchlisting.DistributionBranchListingView" | 803 | class="lp.code.browser.branchlisting.DistributionBranchListingView" |
722 | 738 | permission="zope.Public" | 804 | permission="zope.Public" |
723 | 739 | facet="branches" | 805 | facet="branches" |
724 | @@ -741,6 +807,7 @@ | |||
725 | 741 | template="../templates/generic-branch-listing.pt"/> | 807 | template="../templates/generic-branch-listing.pt"/> |
726 | 742 | <browser:page | 808 | <browser:page |
727 | 743 | for="lp.registry.interfaces.distribution.IDistribution" | 809 | for="lp.registry.interfaces.distribution.IDistribution" |
728 | 810 | layer="lp.code.publisher.CodeLayer" | ||
729 | 744 | class="lp.code.browser.summary.BranchCountSummaryView" | 811 | class="lp.code.browser.summary.BranchCountSummaryView" |
730 | 745 | facet="branches" | 812 | facet="branches" |
731 | 746 | permission="zope.Public" | 813 | permission="zope.Public" |
732 | @@ -748,6 +815,7 @@ | |||
733 | 748 | template="../templates/branch-count-summary.pt"/> | 815 | template="../templates/branch-count-summary.pt"/> |
734 | 749 | <browser:page | 816 | <browser:page |
735 | 750 | for="lp.registry.interfaces.distroseries.IDistroSeries" | 817 | for="lp.registry.interfaces.distroseries.IDistroSeries" |
736 | 818 | layer="lp.code.publisher.CodeLayer" | ||
737 | 751 | class="lp.code.browser.branchlisting.DistroSeriesBranchListingView" | 819 | class="lp.code.browser.branchlisting.DistroSeriesBranchListingView" |
738 | 752 | permission="zope.Public" | 820 | permission="zope.Public" |
739 | 753 | facet="branches" | 821 | facet="branches" |
740 | @@ -755,6 +823,7 @@ | |||
741 | 755 | template="../templates/generic-branch-listing.pt"/> | 823 | template="../templates/generic-branch-listing.pt"/> |
742 | 756 | <browser:page | 824 | <browser:page |
743 | 757 | for="lp.registry.interfaces.distroseries.IDistroSeries" | 825 | for="lp.registry.interfaces.distroseries.IDistroSeries" |
744 | 826 | layer="lp.code.publisher.CodeLayer" | ||
745 | 758 | class="lp.code.browser.summary.BranchCountSummaryView" | 827 | class="lp.code.browser.summary.BranchCountSummaryView" |
746 | 759 | facet="branches" | 828 | facet="branches" |
747 | 760 | permission="zope.Public" | 829 | permission="zope.Public" |
748 | @@ -762,6 +831,7 @@ | |||
749 | 762 | template="../templates/branch-count-summary.pt"/> | 831 | template="../templates/branch-count-summary.pt"/> |
750 | 763 | <browser:page | 832 | <browser:page |
751 | 764 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" | 833 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" |
752 | 834 | layer="lp.code.publisher.CodeLayer" | ||
753 | 765 | class="lp.code.browser.branchlisting.DistributionSourcePackageBranchesView" | 835 | class="lp.code.browser.branchlisting.DistributionSourcePackageBranchesView" |
754 | 766 | permission="zope.Public" | 836 | permission="zope.Public" |
755 | 767 | facet="branches" | 837 | facet="branches" |
756 | @@ -769,6 +839,7 @@ | |||
757 | 769 | template="../templates/generic-branch-listing.pt"/> | 839 | template="../templates/generic-branch-listing.pt"/> |
758 | 770 | <browser:page | 840 | <browser:page |
759 | 771 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" | 841 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" |
760 | 842 | layer="lp.code.publisher.CodeLayer" | ||
761 | 772 | class="lp.code.browser.branchlisting.GroupedDistributionSourcePackageBranchesView" | 843 | class="lp.code.browser.branchlisting.GroupedDistributionSourcePackageBranchesView" |
762 | 773 | permission="zope.Public" | 844 | permission="zope.Public" |
763 | 774 | facet="branches" | 845 | facet="branches" |
764 | @@ -776,6 +847,7 @@ | |||
765 | 776 | template="../templates/distributionsourcepackage-branches-grouped.pt"/> | 847 | template="../templates/distributionsourcepackage-branches-grouped.pt"/> |
766 | 777 | <browser:page | 848 | <browser:page |
767 | 778 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" | 849 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" |
768 | 850 | layer="lp.code.publisher.CodeLayer" | ||
769 | 779 | class="lp.code.browser.summary.BranchCountSummaryView" | 851 | class="lp.code.browser.summary.BranchCountSummaryView" |
770 | 780 | facet="branches" | 852 | facet="branches" |
771 | 781 | permission="zope.Public" | 853 | permission="zope.Public" |
772 | @@ -783,6 +855,7 @@ | |||
773 | 783 | template="../templates/branch-count-summary.pt"/> | 855 | template="../templates/branch-count-summary.pt"/> |
774 | 784 | <browser:page | 856 | <browser:page |
775 | 785 | for="lp.registry.interfaces.projectgroup.IProjectGroup" | 857 | for="lp.registry.interfaces.projectgroup.IProjectGroup" |
776 | 858 | layer="lp.code.publisher.CodeLayer" | ||
777 | 786 | class="lp.code.browser.branchlisting.ProjectBranchesView" | 859 | class="lp.code.browser.branchlisting.ProjectBranchesView" |
778 | 787 | facet="branches" | 860 | facet="branches" |
779 | 788 | permission="zope.Public" | 861 | permission="zope.Public" |
780 | @@ -790,6 +863,7 @@ | |||
781 | 790 | template="../templates/project-branches.pt"/> | 863 | template="../templates/project-branches.pt"/> |
782 | 791 | <browser:page | 864 | <browser:page |
783 | 792 | for="lp.registry.interfaces.projectgroup.IProjectGroup" | 865 | for="lp.registry.interfaces.projectgroup.IProjectGroup" |
784 | 866 | layer="lp.code.publisher.CodeLayer" | ||
785 | 793 | class="lp.code.browser.summary.BranchCountSummaryView" | 867 | class="lp.code.browser.summary.BranchCountSummaryView" |
786 | 794 | facet="branches" | 868 | facet="branches" |
787 | 795 | permission="zope.Public" | 869 | permission="zope.Public" |
788 | @@ -809,6 +883,7 @@ | |||
789 | 809 | <browser:page | 883 | <browser:page |
790 | 810 | for="lp.registry.interfaces.person.IPerson" | 884 | for="lp.registry.interfaces.person.IPerson" |
791 | 811 | class="lp.code.browser.branchlisting.PersonOwnedBranchesView" | 885 | class="lp.code.browser.branchlisting.PersonOwnedBranchesView" |
792 | 886 | layer="lp.code.publisher.CodeLayer" | ||
793 | 812 | permission="zope.Public" | 887 | permission="zope.Public" |
794 | 813 | facet="branches" | 888 | facet="branches" |
795 | 814 | name="+branches" | 889 | name="+branches" |
796 | @@ -816,6 +891,7 @@ | |||
797 | 816 | <browser:page | 891 | <browser:page |
798 | 817 | for="lp.registry.interfaces.person.IPerson" | 892 | for="lp.registry.interfaces.person.IPerson" |
799 | 818 | class="lp.code.browser.branchlisting.PersonOwnedBranchesView" | 893 | class="lp.code.browser.branchlisting.PersonOwnedBranchesView" |
800 | 894 | layer="lp.code.publisher.CodeLayer" | ||
801 | 819 | permission="zope.Public" | 895 | permission="zope.Public" |
802 | 820 | facet="branches" | 896 | facet="branches" |
803 | 821 | name="+ownedbranches" | 897 | name="+ownedbranches" |
804 | @@ -823,12 +899,14 @@ | |||
805 | 823 | <browser:page | 899 | <browser:page |
806 | 824 | for="lp.registry.interfaces.person.IPerson" | 900 | for="lp.registry.interfaces.person.IPerson" |
807 | 825 | class="lp.code.browser.branchlisting.PersonSubscribedBranchesView" | 901 | class="lp.code.browser.branchlisting.PersonSubscribedBranchesView" |
808 | 902 | layer="lp.code.publisher.CodeLayer" | ||
809 | 826 | permission="zope.Public" | 903 | permission="zope.Public" |
810 | 827 | facet="branches" | 904 | facet="branches" |
811 | 828 | name="+subscribedbranches" | 905 | name="+subscribedbranches" |
812 | 829 | template="../templates/person-branches.pt"/> | 906 | template="../templates/person-branches.pt"/> |
813 | 830 | <browser:page | 907 | <browser:page |
814 | 831 | for="lp.registry.interfaces.person.IPerson" | 908 | for="lp.registry.interfaces.person.IPerson" |
815 | 909 | layer="lp.code.publisher.CodeLayer" | ||
816 | 832 | class="lp.code.browser.branchlisting.PersonRegisteredBranchesView" | 910 | class="lp.code.browser.branchlisting.PersonRegisteredBranchesView" |
817 | 833 | permission="zope.Public" | 911 | permission="zope.Public" |
818 | 834 | facet="branches" | 912 | facet="branches" |
819 | @@ -836,6 +914,7 @@ | |||
820 | 836 | template="../templates/person-branches.pt"/> | 914 | template="../templates/person-branches.pt"/> |
821 | 837 | <browser:page | 915 | <browser:page |
822 | 838 | for="lp.registry.interfaces.person.IPerson" | 916 | for="lp.registry.interfaces.person.IPerson" |
823 | 917 | layer="lp.code.publisher.CodeLayer" | ||
824 | 839 | class="lp.code.browser.branchlisting.PersonCodeSummaryView" | 918 | class="lp.code.browser.branchlisting.PersonCodeSummaryView" |
825 | 840 | permission="zope.Public" | 919 | permission="zope.Public" |
826 | 841 | facet="branches" | 920 | facet="branches" |
827 | @@ -843,6 +922,7 @@ | |||
828 | 843 | template="../templates/person-codesummary.pt"/> | 922 | template="../templates/person-codesummary.pt"/> |
829 | 844 | <browser:page | 923 | <browser:page |
830 | 845 | for="lp.registry.interfaces.person.IPerson" | 924 | for="lp.registry.interfaces.person.IPerson" |
831 | 925 | layer="lp.code.publisher.CodeLayer" | ||
832 | 846 | class="lp.code.browser.branchmergeproposallisting.PersonActiveReviewsView" | 926 | class="lp.code.browser.branchmergeproposallisting.PersonActiveReviewsView" |
833 | 847 | permission="zope.Public" | 927 | permission="zope.Public" |
834 | 848 | facet="branches" | 928 | facet="branches" |
835 | @@ -851,12 +931,14 @@ | |||
836 | 851 | <browser:page | 931 | <browser:page |
837 | 852 | name="+addbranch" | 932 | name="+addbranch" |
838 | 853 | for="lp.registry.interfaces.person.IPerson" | 933 | for="lp.registry.interfaces.person.IPerson" |
839 | 934 | layer="lp.code.publisher.CodeLayer" | ||
840 | 854 | class="lp.code.browser.branch.BranchAddView" | 935 | class="lp.code.browser.branch.BranchAddView" |
841 | 855 | facet="branches" | 936 | facet="branches" |
842 | 856 | permission="launchpad.AnyPerson" | 937 | permission="launchpad.AnyPerson" |
843 | 857 | template="../templates/branch-add.pt"/> | 938 | template="../templates/branch-add.pt"/> |
844 | 858 | <browser:page | 939 | <browser:page |
845 | 859 | for="lp.registry.interfaces.person.IPerson" | 940 | for="lp.registry.interfaces.person.IPerson" |
846 | 941 | layer="lp.code.publisher.CodeLayer" | ||
847 | 860 | class="lp.code.browser.branchlisting.PersonTeamBranchesView" | 942 | class="lp.code.browser.branchlisting.PersonTeamBranchesView" |
848 | 861 | name="+portlet-teambranches" | 943 | name="+portlet-teambranches" |
849 | 862 | template="../templates/person-portlet-teambranches.pt" | 944 | template="../templates/person-portlet-teambranches.pt" |
850 | @@ -865,6 +947,7 @@ | |||
851 | 865 | 947 | ||
852 | 866 | <browser:page | 948 | <browser:page |
853 | 867 | for="lp.registry.interfaces.product.IProduct" | 949 | for="lp.registry.interfaces.product.IProduct" |
854 | 950 | layer="lp.code.publisher.CodeLayer" | ||
855 | 868 | class="lp.code.browser.branchlisting.ProductBranchesView" | 951 | class="lp.code.browser.branchlisting.ProductBranchesView" |
856 | 869 | facet="branches" | 952 | facet="branches" |
857 | 870 | permission="zope.Public" | 953 | permission="zope.Public" |
858 | @@ -872,6 +955,7 @@ | |||
859 | 872 | template="../templates/product-branches.pt"/> | 955 | template="../templates/product-branches.pt"/> |
860 | 873 | <browser:page | 956 | <browser:page |
861 | 874 | for="lp.registry.interfaces.product.IProduct" | 957 | for="lp.registry.interfaces.product.IProduct" |
862 | 958 | layer="lp.code.publisher.CodeLayer" | ||
863 | 875 | class="lp.code.browser.branchlisting.ProductCodeIndexView" | 959 | class="lp.code.browser.branchlisting.ProductCodeIndexView" |
864 | 876 | facet="branches" | 960 | facet="branches" |
865 | 877 | permission="zope.Public" | 961 | permission="zope.Public" |
866 | @@ -879,6 +963,7 @@ | |||
867 | 879 | template="../templates/product-branches.pt"/> | 963 | template="../templates/product-branches.pt"/> |
868 | 880 | <browser:page | 964 | <browser:page |
869 | 881 | for="lp.registry.interfaces.product.IProduct" | 965 | for="lp.registry.interfaces.product.IProduct" |
870 | 966 | layer="lp.code.publisher.CodeLayer" | ||
871 | 882 | class="lp.code.browser.branchlisting.ProductCodeIndexView" | 967 | class="lp.code.browser.branchlisting.ProductCodeIndexView" |
872 | 883 | facet="branches" | 968 | facet="branches" |
873 | 884 | permission="zope.Public" | 969 | permission="zope.Public" |
874 | @@ -886,6 +971,7 @@ | |||
875 | 886 | template="../templates/product-branch-summary.pt"/> | 971 | template="../templates/product-branch-summary.pt"/> |
876 | 887 | <browser:page | 972 | <browser:page |
877 | 888 | for="lp.registry.interfaces.product.IProduct" | 973 | for="lp.registry.interfaces.product.IProduct" |
878 | 974 | layer="lp.code.publisher.CodeLayer" | ||
879 | 889 | class="lp.code.browser.summary.BranchCountSummaryView" | 975 | class="lp.code.browser.summary.BranchCountSummaryView" |
880 | 890 | facet="branches" | 976 | facet="branches" |
881 | 891 | permission="zope.Public" | 977 | permission="zope.Public" |
882 | @@ -895,6 +981,7 @@ | |||
883 | 895 | <browser:page | 981 | <browser:page |
884 | 896 | name="+addbranch" | 982 | name="+addbranch" |
885 | 897 | for="lp.registry.interfaces.product.IProduct" | 983 | for="lp.registry.interfaces.product.IProduct" |
886 | 984 | layer="lp.code.publisher.CodeLayer" | ||
887 | 898 | class="lp.code.browser.branch.BranchAddView" | 985 | class="lp.code.browser.branch.BranchAddView" |
888 | 899 | facet="branches" | 986 | facet="branches" |
889 | 900 | permission="launchpad.AnyPerson" | 987 | permission="launchpad.AnyPerson" |
890 | @@ -903,6 +990,7 @@ | |||
891 | 903 | <browser:page | 990 | <browser:page |
892 | 904 | name="+addbranch" | 991 | name="+addbranch" |
893 | 905 | for="lp.registry.interfaces.productseries.IProductSeries" | 992 | for="lp.registry.interfaces.productseries.IProductSeries" |
894 | 993 | layer="lp.code.publisher.CodeLayer" | ||
895 | 906 | class="lp.code.browser.branch.BranchAddView" | 994 | class="lp.code.browser.branch.BranchAddView" |
896 | 907 | facet="branches" | 995 | facet="branches" |
897 | 908 | permission="launchpad.AnyPerson" | 996 | permission="launchpad.AnyPerson" |
898 | @@ -940,8 +1028,7 @@ | |||
899 | 940 | 1028 | ||
900 | 941 | <browser:navigation | 1029 | <browser:navigation |
901 | 942 | module="lp.code.browser.diff" | 1030 | module="lp.code.browser.diff" |
904 | 943 | classes=" | 1031 | classes="PreviewDiffNavigation"/> |
903 | 944 | PreviewDiffNavigation"/> | ||
905 | 945 | 1032 | ||
906 | 946 | <browser:page | 1033 | <browser:page |
907 | 947 | name="+diff" | 1034 | name="+diff" |
908 | @@ -961,6 +1048,7 @@ | |||
909 | 961 | 1048 | ||
910 | 962 | <browser:page | 1049 | <browser:page |
911 | 963 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 1050 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
912 | 1051 | layer="lp.code.publisher.CodeLayer" | ||
913 | 964 | class="lp.code.browser.branchlisting.PersonProductOwnedBranchesView" | 1052 | class="lp.code.browser.branchlisting.PersonProductOwnedBranchesView" |
914 | 965 | permission="zope.Public" | 1053 | permission="zope.Public" |
915 | 966 | facet="branches" | 1054 | facet="branches" |
916 | @@ -969,6 +1057,7 @@ | |||
917 | 969 | /> | 1057 | /> |
918 | 970 | <browser:page | 1058 | <browser:page |
919 | 971 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 1059 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
920 | 1060 | layer="lp.code.publisher.CodeLayer" | ||
921 | 972 | class="lp.code.browser.branchlisting.PersonProductSubscribedBranchesView" | 1061 | class="lp.code.browser.branchlisting.PersonProductSubscribedBranchesView" |
922 | 973 | permission="zope.Public" | 1062 | permission="zope.Public" |
923 | 974 | facet="branches" | 1063 | facet="branches" |
924 | @@ -977,6 +1066,7 @@ | |||
925 | 977 | /> | 1066 | /> |
926 | 978 | <browser:page | 1067 | <browser:page |
927 | 979 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 1068 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
928 | 1069 | layer="lp.code.publisher.CodeLayer" | ||
929 | 980 | class="lp.code.browser.branchlisting.PersonProductRegisteredBranchesView" | 1070 | class="lp.code.browser.branchlisting.PersonProductRegisteredBranchesView" |
930 | 981 | permission="zope.Public" | 1071 | permission="zope.Public" |
931 | 982 | facet="branches" | 1072 | facet="branches" |
932 | @@ -985,6 +1075,7 @@ | |||
933 | 985 | /> | 1075 | /> |
934 | 986 | <browser:page | 1076 | <browser:page |
935 | 987 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 1077 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
936 | 1078 | layer="lp.code.publisher.CodeLayer" | ||
937 | 988 | class="lp.code.browser.branchmergeproposallisting.PersonProductActiveReviewsView" | 1079 | class="lp.code.browser.branchmergeproposallisting.PersonProductActiveReviewsView" |
938 | 989 | permission="zope.Public" | 1080 | permission="zope.Public" |
939 | 990 | facet="branches" | 1081 | facet="branches" |
940 | @@ -993,6 +1084,7 @@ | |||
941 | 993 | 1084 | ||
942 | 994 | <browser:page | 1085 | <browser:page |
943 | 995 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 1086 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
944 | 1087 | layer="lp.code.publisher.CodeLayer" | ||
945 | 996 | class="lp.code.browser.branchlisting.PersonProductTeamBranchesView" | 1088 | class="lp.code.browser.branchlisting.PersonProductTeamBranchesView" |
946 | 997 | facet="branches" | 1089 | facet="branches" |
947 | 998 | name="+portlet-teambranches" | 1090 | name="+portlet-teambranches" |
948 | @@ -1002,6 +1094,7 @@ | |||
949 | 1002 | 1094 | ||
950 | 1003 | <browser:page | 1095 | <browser:page |
951 | 1004 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 1096 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
952 | 1097 | layer="lp.code.publisher.CodeLayer" | ||
953 | 1005 | class="lp.code.browser.branchlisting.PersonProductCodeSummaryView" | 1098 | class="lp.code.browser.branchlisting.PersonProductCodeSummaryView" |
954 | 1006 | facet="branches" | 1099 | facet="branches" |
955 | 1007 | name="+codesummary" | 1100 | name="+codesummary" |
956 | @@ -1011,6 +1104,7 @@ | |||
957 | 1011 | 1104 | ||
958 | 1012 | <browser:page | 1105 | <browser:page |
959 | 1013 | for="lp.code.interfaces.hasbranches.IHasMergeProposals" | 1106 | for="lp.code.interfaces.hasbranches.IHasMergeProposals" |
960 | 1107 | layer="lp.code.publisher.CodeLayer" | ||
961 | 1014 | class="lp.code.browser.branchmergeproposallisting.BranchMergeProposalListingView" | 1108 | class="lp.code.browser.branchmergeproposallisting.BranchMergeProposalListingView" |
962 | 1015 | facet="branches" | 1109 | facet="branches" |
963 | 1016 | permission="zope.Public" | 1110 | permission="zope.Public" |
964 | @@ -1019,6 +1113,7 @@ | |||
965 | 1019 | 1113 | ||
966 | 1020 | <browser:page | 1114 | <browser:page |
967 | 1021 | for="lp.code.interfaces.hasbranches.IHasMergeProposals" | 1115 | for="lp.code.interfaces.hasbranches.IHasMergeProposals" |
968 | 1116 | layer="lp.code.publisher.CodeLayer" | ||
969 | 1022 | class="lp.code.browser.branchmergeproposallisting.ActiveReviewsView" | 1117 | class="lp.code.browser.branchmergeproposallisting.ActiveReviewsView" |
970 | 1023 | permission="zope.Public" | 1118 | permission="zope.Public" |
971 | 1024 | facet="branches" | 1119 | facet="branches" |
972 | @@ -1102,12 +1197,14 @@ | |||
973 | 1102 | layer="lp.code.publisher.CodeLayer"/> | 1197 | layer="lp.code.publisher.CodeLayer"/> |
974 | 1103 | <browser:page | 1198 | <browser:page |
975 | 1104 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" | 1199 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" |
976 | 1200 | layer="lp.code.publisher.CodeLayer" | ||
977 | 1105 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeView" | 1201 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeView" |
978 | 1106 | name="+index" | 1202 | name="+index" |
979 | 1107 | template="../templates/sourcepackagerecipe-index.pt" | 1203 | template="../templates/sourcepackagerecipe-index.pt" |
980 | 1108 | permission="launchpad.View"/> | 1204 | permission="launchpad.View"/> |
981 | 1109 | <browser:page | 1205 | <browser:page |
982 | 1110 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" | 1206 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" |
983 | 1207 | layer="lp.code.publisher.CodeLayer" | ||
984 | 1111 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeRequestBuildsView" | 1208 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeRequestBuildsView" |
985 | 1112 | name="+request-builds" | 1209 | name="+request-builds" |
986 | 1113 | template="../templates/sourcepackagerecipe-request-builds.pt" | 1210 | template="../templates/sourcepackagerecipe-request-builds.pt" |
987 | @@ -1120,18 +1217,21 @@ | |||
988 | 1120 | layer="lp.code.publisher.CodeLayer"/> | 1217 | layer="lp.code.publisher.CodeLayer"/> |
989 | 1121 | <browser:page | 1218 | <browser:page |
990 | 1122 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" | 1219 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" |
991 | 1220 | layer="lp.code.publisher.CodeLayer" | ||
992 | 1123 | class="lp.code.browser.sourcepackagerecipebuild.SourcePackageRecipeBuildView" | 1221 | class="lp.code.browser.sourcepackagerecipebuild.SourcePackageRecipeBuildView" |
993 | 1124 | name="+index" | 1222 | name="+index" |
994 | 1125 | template="../templates/sourcepackagerecipebuild-index.pt" | 1223 | template="../templates/sourcepackagerecipebuild-index.pt" |
995 | 1126 | permission="launchpad.View"/> | 1224 | permission="launchpad.View"/> |
996 | 1127 | <browser:page | 1225 | <browser:page |
997 | 1128 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" | 1226 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" |
998 | 1227 | layer="lp.code.publisher.CodeLayer" | ||
999 | 1129 | class="lp.code.browser.sourcepackagerecipebuild.SourcePackageRecipeBuildCancelView" | 1228 | class="lp.code.browser.sourcepackagerecipebuild.SourcePackageRecipeBuildCancelView" |
1000 | 1130 | name="+cancel" | 1229 | name="+cancel" |
1001 | 1131 | template="../../app/templates/generic-edit.pt" | 1230 | template="../../app/templates/generic-edit.pt" |
1002 | 1132 | permission="launchpad.Admin"/> | 1231 | permission="launchpad.Admin"/> |
1003 | 1133 | <browser:page | 1232 | <browser:page |
1004 | 1134 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" | 1233 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" |
1005 | 1234 | layer="lp.code.publisher.CodeLayer" | ||
1006 | 1135 | class="lp.code.browser.sourcepackagerecipebuild.SourcePackageRecipeBuildRescoreView" | 1235 | class="lp.code.browser.sourcepackagerecipebuild.SourcePackageRecipeBuildRescoreView" |
1007 | 1136 | name="+rescore" | 1236 | name="+rescore" |
1008 | 1137 | template="../../app/templates/generic-edit.pt" | 1237 | template="../../app/templates/generic-edit.pt" |
1009 | @@ -1144,6 +1244,7 @@ | |||
1010 | 1144 | 1244 | ||
1011 | 1145 | <browser:page | 1245 | <browser:page |
1012 | 1146 | for="lp.code.interfaces.branch.IBranch" | 1246 | for="lp.code.interfaces.branch.IBranch" |
1013 | 1247 | layer="lp.code.publisher.CodeLayer" | ||
1014 | 1147 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeAddView" | 1248 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeAddView" |
1015 | 1148 | permission="launchpad.AnyPerson" | 1249 | permission="launchpad.AnyPerson" |
1016 | 1149 | facet="branches" | 1250 | facet="branches" |
1017 | @@ -1151,6 +1252,7 @@ | |||
1018 | 1151 | template="../../app/templates/generic-edit.pt"/> | 1252 | template="../../app/templates/generic-edit.pt"/> |
1019 | 1152 | <browser:page | 1253 | <browser:page |
1020 | 1153 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" | 1254 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" |
1021 | 1255 | layer="lp.code.publisher.CodeLayer" | ||
1022 | 1154 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeEditView" | 1256 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeEditView" |
1023 | 1155 | permission="launchpad.Edit" | 1257 | permission="launchpad.Edit" |
1024 | 1156 | facet="branches" | 1258 | facet="branches" |
1025 | @@ -1158,6 +1260,7 @@ | |||
1026 | 1158 | template="../../app/templates/generic-edit.pt"/> | 1260 | template="../../app/templates/generic-edit.pt"/> |
1027 | 1159 | <browser:page | 1261 | <browser:page |
1028 | 1160 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" | 1262 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" |
1029 | 1263 | layer="lp.code.publisher.CodeLayer" | ||
1030 | 1161 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeDeleteView" | 1264 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeDeleteView" |
1031 | 1162 | permission="launchpad.Edit" | 1265 | permission="launchpad.Edit" |
1032 | 1163 | facet="branches" | 1266 | facet="branches" |
1033 | @@ -1166,6 +1269,7 @@ | |||
1034 | 1166 | 1269 | ||
1035 | 1167 | <browser:page | 1270 | <browser:page |
1036 | 1168 | for="lp.code.interfaces.branch.IBranch" | 1271 | for="lp.code.interfaces.branch.IBranch" |
1037 | 1272 | layer="lp.code.publisher.CodeLayer" | ||
1038 | 1169 | class="lp.code.browser.sourcepackagerecipelisting.BranchRecipeListingView" | 1273 | class="lp.code.browser.sourcepackagerecipelisting.BranchRecipeListingView" |
1039 | 1170 | permission="zope.Public" | 1274 | permission="zope.Public" |
1040 | 1171 | facet="branches" | 1275 | facet="branches" |
1041 | @@ -1173,6 +1277,7 @@ | |||
1042 | 1173 | template="../templates/sourcepackagerecipe-listing.pt"/> | 1277 | template="../templates/sourcepackagerecipe-listing.pt"/> |
1043 | 1174 | <browser:page | 1278 | <browser:page |
1044 | 1175 | for="lp.registry.interfaces.product.IProduct" | 1279 | for="lp.registry.interfaces.product.IProduct" |
1045 | 1280 | layer="lp.code.publisher.CodeLayer" | ||
1046 | 1176 | class="lp.code.browser.sourcepackagerecipelisting.ProductRecipeListingView" | 1281 | class="lp.code.browser.sourcepackagerecipelisting.ProductRecipeListingView" |
1047 | 1177 | permission="zope.Public" | 1282 | permission="zope.Public" |
1048 | 1178 | facet="branches" | 1283 | facet="branches" |
1049 | @@ -1180,6 +1285,7 @@ | |||
1050 | 1180 | template="../templates/sourcepackagerecipe-listing.pt"/> | 1285 | template="../templates/sourcepackagerecipe-listing.pt"/> |
1051 | 1181 | <browser:page | 1286 | <browser:page |
1052 | 1182 | for="lp.registry.interfaces.person.IPerson" | 1287 | for="lp.registry.interfaces.person.IPerson" |
1053 | 1288 | layer="lp.code.publisher.CodeLayer" | ||
1054 | 1183 | class="lp.code.browser.sourcepackagerecipelisting.PersonRecipeListingView" | 1289 | class="lp.code.browser.sourcepackagerecipelisting.PersonRecipeListingView" |
1055 | 1184 | permission="zope.Public" | 1290 | permission="zope.Public" |
1056 | 1185 | facet="branches" | 1291 | facet="branches" |
1057 | @@ -1188,6 +1294,7 @@ | |||
1058 | 1188 | 1294 | ||
1059 | 1189 | <browser:page | 1295 | <browser:page |
1060 | 1190 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" | 1296 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" |
1061 | 1297 | layer="lp.code.publisher.CodeLayer" | ||
1062 | 1191 | name="+hierarchy" | 1298 | name="+hierarchy" |
1063 | 1192 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeHierarchy" | 1299 | class="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeHierarchy" |
1064 | 1193 | template="../../app/templates/launchpad-hierarchy.pt" | 1300 | template="../../app/templates/launchpad-hierarchy.pt" |
1065 | 1194 | 1301 | ||
1066 | === modified file 'lib/lp/code/browser/sourcepackagerecipe.py' | |||
1067 | --- lib/lp/code/browser/sourcepackagerecipe.py 2010-08-20 20:31:18 +0000 | |||
1068 | +++ lib/lp/code/browser/sourcepackagerecipe.py 2010-08-24 02:26:48 +0000 | |||
1069 | @@ -94,7 +94,8 @@ | |||
1070 | 94 | 94 | ||
1071 | 95 | @property | 95 | @property |
1072 | 96 | def url(self): | 96 | def url(self): |
1074 | 97 | return canonical_url(self.context, view_name="+recipes") | 97 | return canonical_url( |
1075 | 98 | self.context, view_name="+recipes", rootsite='code') | ||
1076 | 98 | 99 | ||
1077 | 99 | 100 | ||
1078 | 100 | class SourcePackageRecipeHierarchy(Hierarchy): | 101 | class SourcePackageRecipeHierarchy(Hierarchy): |
1079 | 101 | 102 | ||
1080 | === modified file 'lib/lp/code/browser/sourcepackagerecipelisting.py' | |||
1081 | --- lib/lp/code/browser/sourcepackagerecipelisting.py 2010-08-20 20:31:18 +0000 | |||
1082 | +++ lib/lp/code/browser/sourcepackagerecipelisting.py 2010-08-24 02:26:48 +0000 | |||
1083 | @@ -35,7 +35,7 @@ | |||
1084 | 35 | if not config.build_from_branch.enabled: | 35 | if not config.build_from_branch.enabled: |
1085 | 36 | enabled = False | 36 | enabled = False |
1086 | 37 | return Link( | 37 | return Link( |
1088 | 38 | '+recipes', text, icon='info', enabled=enabled) | 38 | '+recipes', text, icon='info', enabled=enabled, site='code') |
1089 | 39 | 39 | ||
1090 | 40 | 40 | ||
1091 | 41 | class RecipeListingView(LaunchpadView, FeedsMixin): | 41 | class RecipeListingView(LaunchpadView, FeedsMixin): |
1092 | 42 | 42 | ||
1093 | === modified file 'lib/lp/code/browser/tests/test_branchlisting.py' | |||
1094 | --- lib/lp/code/browser/tests/test_branchlisting.py 2010-08-20 20:31:18 +0000 | |||
1095 | +++ lib/lp/code/browser/tests/test_branchlisting.py 2010-08-24 02:26:48 +0000 | |||
1096 | @@ -141,7 +141,8 @@ | |||
1097 | 141 | # the current batch. | 141 | # the current batch. |
1098 | 142 | branch_ids = set([self.branches[0].id]) | 142 | branch_ids = set([self.branches[0].id]) |
1099 | 143 | 143 | ||
1101 | 144 | view = create_initialized_view(self.barney, name="+branches") | 144 | view = create_initialized_view( |
1102 | 145 | self.barney, name="+branches", rootsite='code') | ||
1103 | 145 | self.assertEqual( | 146 | self.assertEqual( |
1104 | 146 | view.branches().branch_ids_with_bug_links, | 147 | view.branches().branch_ids_with_bug_links, |
1105 | 147 | branch_ids) | 148 | branch_ids) |
1106 | @@ -151,7 +152,8 @@ | |||
1107 | 151 | # the current batch. | 152 | # the current batch. |
1108 | 152 | branch_ids = set([self.branches[1].id]) | 153 | branch_ids = set([self.branches[1].id]) |
1109 | 153 | 154 | ||
1111 | 154 | view = create_initialized_view(self.barney, name="+branches") | 155 | view = create_initialized_view( |
1112 | 156 | self.barney, name="+branches", rootsite='code') | ||
1113 | 155 | self.assertEqual( | 157 | self.assertEqual( |
1114 | 156 | view.branches().branch_ids_with_spec_links, | 158 | view.branches().branch_ids_with_spec_links, |
1115 | 157 | branch_ids) | 159 | branch_ids) |
1116 | @@ -160,7 +162,8 @@ | |||
1117 | 160 | # _branches_for_current_batch should return a list of all branches in | 162 | # _branches_for_current_batch should return a list of all branches in |
1118 | 161 | # the current batch. | 163 | # the current batch. |
1119 | 162 | branch_ids = set([]) | 164 | branch_ids = set([]) |
1121 | 163 | view = create_initialized_view(self.barney, name="+branches") | 165 | view = create_initialized_view( |
1122 | 166 | self.barney, name="+branches", rootsite='code') | ||
1123 | 164 | self.assertEqual( | 167 | self.assertEqual( |
1124 | 165 | view.branches().branch_ids_with_merge_proposals, | 168 | view.branches().branch_ids_with_merge_proposals, |
1125 | 166 | branch_ids) | 169 | branch_ids) |
1126 | @@ -173,7 +176,8 @@ | |||
1127 | 173 | for branch_id in branch_ids: | 176 | for branch_id in branch_ids: |
1128 | 174 | tip_revisions[branch_id] = None | 177 | tip_revisions[branch_id] = None |
1129 | 175 | 178 | ||
1131 | 176 | view = create_initialized_view(self.barney, name="+branches") | 179 | view = create_initialized_view( |
1132 | 180 | self.barney, name="+branches", rootsite='code') | ||
1133 | 177 | self.assertEqual( | 181 | self.assertEqual( |
1134 | 178 | view.branches().tip_revisions, | 182 | view.branches().tip_revisions, |
1135 | 179 | tip_revisions) | 183 | tip_revisions) |
1136 | @@ -351,7 +355,8 @@ | |||
1137 | 351 | branch.distribution.name, branch.sourcepackagename.name) | 355 | branch.distribution.name, branch.sourcepackagename.name) |
1138 | 352 | self.assertEqual(identity, branch.bzr_identity) | 356 | self.assertEqual(identity, branch.bzr_identity) |
1139 | 353 | # Now confirm that we get the same through the view. | 357 | # Now confirm that we get the same through the view. |
1141 | 354 | view = create_initialized_view(branch.distribution, name='+branches') | 358 | view = create_initialized_view( |
1142 | 359 | branch.distribution, name='+branches', rootsite='code') | ||
1143 | 355 | # There is only one branch. | 360 | # There is only one branch. |
1144 | 356 | batch = view.branches() | 361 | batch = view.branches() |
1145 | 357 | [view_branch] = batch.branches | 362 | [view_branch] = batch.branches |
1146 | 358 | 363 | ||
1147 | === modified file 'lib/lp/code/browser/tests/test_branchmergeproposal.py' | |||
1148 | --- lib/lp/code/browser/tests/test_branchmergeproposal.py 2010-08-20 20:31:18 +0000 | |||
1149 | +++ lib/lp/code/browser/tests/test_branchmergeproposal.py 2010-08-24 02:26:48 +0000 | |||
1150 | @@ -60,11 +60,6 @@ | |||
1151 | 60 | 60 | ||
1152 | 61 | layer = DatabaseFunctionalLayer | 61 | layer = DatabaseFunctionalLayer |
1153 | 62 | 62 | ||
1154 | 63 | def setUp(self): | ||
1155 | 64 | # Use an admin so we don't have to worry about launchpad.Edit | ||
1156 | 65 | # permissions on the merge proposals. | ||
1157 | 66 | TestCaseWithFactory.setUp(self, user="admin@canonical.com") | ||
1158 | 67 | |||
1159 | 68 | def testPrimaryContext(self): | 63 | def testPrimaryContext(self): |
1160 | 69 | # The primary context of a merge proposal is the same as the primary | 64 | # The primary context of a merge proposal is the same as the primary |
1161 | 70 | # context of the source_branch. | 65 | # context of the source_branch. |
1162 | @@ -84,7 +79,6 @@ | |||
1163 | 84 | set_state=BranchMergeProposalStatus.REJECTED) | 79 | set_state=BranchMergeProposalStatus.REJECTED) |
1164 | 85 | login_person(bmp.registrant) | 80 | login_person(bmp.registrant) |
1165 | 86 | menu = BranchMergeProposalContextMenu(bmp) | 81 | menu = BranchMergeProposalContextMenu(bmp) |
1166 | 87 | link = menu.add_comment() | ||
1167 | 88 | self.assertTrue(menu.add_comment().enabled) | 82 | self.assertTrue(menu.add_comment().enabled) |
1168 | 89 | 83 | ||
1169 | 90 | 84 | ||
1170 | @@ -272,9 +266,6 @@ | |||
1171 | 272 | albert = self.factory.makePerson(name='albert') | 266 | albert = self.factory.makePerson(name='albert') |
1172 | 273 | bob = self.factory.makePerson(name='bob') | 267 | bob = self.factory.makePerson(name='bob') |
1173 | 274 | charles = self.factory.makePerson(name='charles') | 268 | charles = self.factory.makePerson(name='charles') |
1174 | 275 | |||
1175 | 276 | owner = self.bmp.source_branch.owner | ||
1176 | 277 | |||
1177 | 278 | self._createComment(albert, CodeReviewVote.APPROVE) | 269 | self._createComment(albert, CodeReviewVote.APPROVE) |
1178 | 279 | self._createComment(bob, CodeReviewVote.ABSTAIN) | 270 | self._createComment(bob, CodeReviewVote.ABSTAIN) |
1179 | 280 | self._createComment(charles, CodeReviewVote.DISAPPROVE) | 271 | self._createComment(charles, CodeReviewVote.DISAPPROVE) |
1180 | @@ -290,9 +281,6 @@ | |||
1181 | 290 | # Request three reviews. | 281 | # Request three reviews. |
1182 | 291 | albert = self.factory.makePerson(name='albert') | 282 | albert = self.factory.makePerson(name='albert') |
1183 | 292 | bob = self.factory.makePerson(name='bob') | 283 | bob = self.factory.makePerson(name='bob') |
1184 | 293 | |||
1185 | 294 | owner = self.bmp.source_branch.owner | ||
1186 | 295 | |||
1187 | 296 | self._createComment(albert, CodeReviewVote.ABSTAIN) | 284 | self._createComment(albert, CodeReviewVote.ABSTAIN) |
1188 | 297 | self._createComment(bob, CodeReviewVote.APPROVE) | 285 | self._createComment(bob, CodeReviewVote.APPROVE) |
1189 | 298 | self._createComment(albert, CodeReviewVote.APPROVE) | 286 | self._createComment(albert, CodeReviewVote.APPROVE) |
1190 | @@ -305,7 +293,6 @@ | |||
1191 | 305 | 293 | ||
1192 | 306 | def addReviewTeam(self): | 294 | def addReviewTeam(self): |
1193 | 307 | review_team = self.factory.makeTeam(name='reviewteam') | 295 | review_team = self.factory.makeTeam(name='reviewteam') |
1194 | 308 | target_branch = self.factory.makeAnyBranch() | ||
1195 | 309 | self.bmp.target_branch.reviewer = review_team | 296 | self.bmp.target_branch.reviewer = review_team |
1196 | 310 | 297 | ||
1197 | 311 | def test_review_team_members_trusted(self): | 298 | def test_review_team_members_trusted(self): |
1198 | 312 | 299 | ||
1199 | === modified file 'lib/lp/code/browser/tests/test_branchmergeproposallisting.py' | |||
1200 | --- lib/lp/code/browser/tests/test_branchmergeproposallisting.py 2010-08-20 20:31:18 +0000 | |||
1201 | +++ lib/lp/code/browser/tests/test_branchmergeproposallisting.py 2010-08-24 02:26:48 +0000 | |||
1202 | @@ -335,7 +335,8 @@ | |||
1203 | 335 | login_person(bmp3.source_branch.owner) | 335 | login_person(bmp3.source_branch.owner) |
1204 | 336 | bmp3.requestReview(datetime(2009,1,1,tzinfo=pytz.UTC)) | 336 | bmp3.requestReview(datetime(2009,1,1,tzinfo=pytz.UTC)) |
1205 | 337 | login(ANONYMOUS) | 337 | login(ANONYMOUS) |
1207 | 338 | view = create_initialized_view(product, name='+activereviews') | 338 | view = create_initialized_view( |
1208 | 339 | product, name='+activereviews', rootsite='code') | ||
1209 | 339 | self.assertEqual( | 340 | self.assertEqual( |
1210 | 340 | [bmp3, bmp2, bmp1], | 341 | [bmp3, bmp2, bmp1], |
1211 | 341 | [item.context for item in view.review_groups[view.OTHER]]) | 342 | [item.context for item in view.review_groups[view.OTHER]]) |
1212 | 342 | 343 | ||
1213 | === modified file 'lib/lp/code/browser/tests/test_product.py' | |||
1214 | --- lib/lp/code/browser/tests/test_product.py 2010-08-20 20:31:18 +0000 | |||
1215 | +++ lib/lp/code/browser/tests/test_product.py 2010-08-24 02:26:48 +0000 | |||
1216 | @@ -29,6 +29,7 @@ | |||
1217 | 29 | TestCaseWithFactory, | 29 | TestCaseWithFactory, |
1218 | 30 | time_counter, | 30 | time_counter, |
1219 | 31 | ) | 31 | ) |
1220 | 32 | from lp.testing.views import create_initialized_view | ||
1221 | 32 | 33 | ||
1222 | 33 | 34 | ||
1223 | 34 | class TestProductCodeIndexView(TestCaseWithFactory): | 35 | class TestProductCodeIndexView(TestCaseWithFactory): |
1224 | @@ -53,7 +54,6 @@ | |||
1225 | 53 | 54 | ||
1226 | 54 | :raises Something: if the branch is not found. | 55 | :raises Something: if the branch is not found. |
1227 | 55 | """ | 56 | """ |
1228 | 56 | url = canonical_url(product, rootsite='code') | ||
1229 | 57 | browser = self.getUserBrowser(canonical_url(product, rootsite='code')) | 57 | browser = self.getUserBrowser(canonical_url(product, rootsite='code')) |
1230 | 58 | return browser.getLink('browse the source code') | 58 | return browser.getLink('browse the source code') |
1231 | 59 | 59 | ||
1232 | @@ -92,30 +92,25 @@ | |||
1233 | 92 | # +code-index page. | 92 | # +code-index page. |
1234 | 93 | product, branch = self.makeProductAndDevelopmentFocusBranch( | 93 | product, branch = self.makeProductAndDevelopmentFocusBranch( |
1235 | 94 | private=True) | 94 | private=True) |
1236 | 95 | url = canonical_url(product, rootsite='code') | ||
1237 | 96 | self.factory.makeProductBranch(product=product) | 95 | self.factory.makeProductBranch(product=product) |
1238 | 97 | # This is just "assertNotRaises" | 96 | # This is just "assertNotRaises" |
1239 | 98 | self.getUserBrowser(canonical_url(product, rootsite='code')) | 97 | self.getUserBrowser(canonical_url(product, rootsite='code')) |
1240 | 99 | 98 | ||
1241 | 100 | def test_initial_branches_contains_dev_focus_branch(self): | 99 | def test_initial_branches_contains_dev_focus_branch(self): |
1242 | 101 | product, branch = self.makeProductAndDevelopmentFocusBranch() | 100 | product, branch = self.makeProductAndDevelopmentFocusBranch() |
1246 | 102 | view = getMultiAdapter( | 101 | view = create_initialized_view(product, '+code-index', rootsite='code') |
1244 | 103 | (product, LaunchpadTestRequest()), name='+code-index') | ||
1245 | 104 | view.initialize() | ||
1247 | 105 | self.assertIn(branch, view.initial_branches) | 102 | self.assertIn(branch, view.initial_branches) |
1248 | 106 | 103 | ||
1249 | 107 | def test_initial_branches_does_not_contain_private_dev_focus_branch(self): | 104 | def test_initial_branches_does_not_contain_private_dev_focus_branch(self): |
1250 | 108 | product, branch = self.makeProductAndDevelopmentFocusBranch( | 105 | product, branch = self.makeProductAndDevelopmentFocusBranch( |
1251 | 109 | private=True) | 106 | private=True) |
1255 | 110 | view = getMultiAdapter( | 107 | view = create_initialized_view(product, '+code-index', rootsite='code') |
1253 | 111 | (product, LaunchpadTestRequest()), name='+code-index') | ||
1254 | 112 | view.initialize() | ||
1256 | 113 | self.assertNotIn(branch, view.initial_branches) | 108 | self.assertNotIn(branch, view.initial_branches) |
1257 | 114 | 109 | ||
1258 | 115 | def test_committer_count_with_revision_authors(self): | 110 | def test_committer_count_with_revision_authors(self): |
1259 | 116 | # Test that the code pathing for calling committer_count with | 111 | # Test that the code pathing for calling committer_count with |
1260 | 117 | # valid revision authors is truly tested. | 112 | # valid revision authors is truly tested. |
1262 | 118 | cthulu = self.factory.makePerson(email='cthulu@example.com') | 113 | self.factory.makePerson(email='cthulu@example.com') |
1263 | 119 | product, branch = self.makeProductAndDevelopmentFocusBranch() | 114 | product, branch = self.makeProductAndDevelopmentFocusBranch() |
1264 | 120 | date_generator = time_counter( | 115 | date_generator = time_counter( |
1265 | 121 | datetime.now(pytz.UTC) - timedelta(days=30), | 116 | datetime.now(pytz.UTC) - timedelta(days=30), |
1266 | @@ -125,9 +120,7 @@ | |||
1267 | 125 | date_generator=date_generator) | 120 | date_generator=date_generator) |
1268 | 126 | getUtility(IRevisionSet).updateRevisionCacheForBranch(branch) | 121 | getUtility(IRevisionSet).updateRevisionCacheForBranch(branch) |
1269 | 127 | 122 | ||
1273 | 128 | view = getMultiAdapter( | 123 | view = create_initialized_view(product, '+code-index', rootsite='code') |
1271 | 129 | (product, LaunchpadTestRequest()), name='+code-index') | ||
1272 | 130 | view.initialize() | ||
1274 | 131 | self.assertEqual(view.committer_count, 1) | 124 | self.assertEqual(view.committer_count, 1) |
1275 | 132 | 125 | ||
1276 | 133 | def test_committers_count_private_branch(self): | 126 | def test_committers_count_private_branch(self): |
1277 | @@ -145,9 +138,7 @@ | |||
1278 | 145 | date_generator=date_generator) | 138 | date_generator=date_generator) |
1279 | 146 | getUtility(IRevisionSet).updateRevisionCacheForBranch(branch) | 139 | getUtility(IRevisionSet).updateRevisionCacheForBranch(branch) |
1280 | 147 | 140 | ||
1284 | 148 | view = getMultiAdapter( | 141 | view = create_initialized_view(product, '+code-index', rootsite='code') |
1282 | 149 | (product, LaunchpadTestRequest()), name='+code-index') | ||
1283 | 150 | view.initialize() | ||
1285 | 151 | self.assertEqual(view.committer_count, 1) | 142 | self.assertEqual(view.committer_count, 1) |
1286 | 152 | 143 | ||
1287 | 153 | 144 | ||
1288 | 154 | 145 | ||
1289 | === modified file 'lib/lp/code/stories/branches/xx-branch-edit.txt' | |||
1290 | --- lib/lp/code/stories/branches/xx-branch-edit.txt 2010-05-30 04:06:48 +0000 | |||
1291 | +++ lib/lp/code/stories/branches/xx-branch-edit.txt 2010-08-24 02:26:48 +0000 | |||
1292 | @@ -17,26 +17,26 @@ | |||
1293 | 17 | Launchpad administrators or members of the Bazaar Experts team. | 17 | Launchpad administrators or members of the Bazaar Experts team. |
1294 | 18 | 18 | ||
1295 | 19 | >>> admin_browser.open( | 19 | >>> admin_browser.open( |
1297 | 20 | ... 'http://launchpad.dev/~name12/gnome-terminal/klingon') | 20 | ... 'http://code.launchpad.dev/~name12/gnome-terminal/klingon') |
1298 | 21 | >>> link = admin_browser.getLink('Change branch details') | 21 | >>> link = admin_browser.getLink('Change branch details') |
1299 | 22 | 22 | ||
1300 | 23 | >>> bazaar_expert_browser = setupBrowser( | 23 | >>> bazaar_expert_browser = setupBrowser( |
1301 | 24 | ... auth='Basic tim@canonical.com:test') | 24 | ... auth='Basic tim@canonical.com:test') |
1302 | 25 | >>> bazaar_expert_browser.open( | 25 | >>> bazaar_expert_browser.open( |
1304 | 26 | ... 'http://launchpad.dev/~name12/gnome-terminal/klingon') | 26 | ... 'http://code.launchpad.dev/~name12/gnome-terminal/klingon') |
1305 | 27 | >>> link = bazaar_expert_browser.getLink('Change branch details') | 27 | >>> link = bazaar_expert_browser.getLink('Change branch details') |
1306 | 28 | 28 | ||
1307 | 29 | >>> nopriv_browser = setupBrowser( | 29 | >>> nopriv_browser = setupBrowser( |
1308 | 30 | ... auth='Basic nopriv@canonical.com:test') | 30 | ... auth='Basic nopriv@canonical.com:test') |
1309 | 31 | >>> nopriv_browser.open( | 31 | >>> nopriv_browser.open( |
1311 | 32 | ... 'http://launchpad.dev/~name12/gnome-terminal/klingon') | 32 | ... 'http://code.launchpad.dev/~name12/gnome-terminal/klingon') |
1312 | 33 | >>> link = nopriv_browser.getLink('Change branch details') | 33 | >>> link = nopriv_browser.getLink('Change branch details') |
1313 | 34 | Traceback (most recent call last): | 34 | Traceback (most recent call last): |
1314 | 35 | LinkNotFoundError | 35 | LinkNotFoundError |
1315 | 36 | 36 | ||
1316 | 37 | >>> browser = setupBrowser(auth='Basic test@canonical.com:test') | 37 | >>> browser = setupBrowser(auth='Basic test@canonical.com:test') |
1317 | 38 | >>> browser.open( | 38 | >>> browser.open( |
1319 | 39 | ... 'http://launchpad.dev/~name12/gnome-terminal/klingon') | 39 | ... 'http://code.launchpad.dev/~name12/gnome-terminal/klingon') |
1320 | 40 | >>> browser.getLink('Change branch details').click() | 40 | >>> browser.getLink('Change branch details').click() |
1321 | 41 | >>> browser.url | 41 | >>> browser.url |
1322 | 42 | 'http://code.launchpad.dev/~name12/gnome-terminal/klingon/+edit' | 42 | 'http://code.launchpad.dev/~name12/gnome-terminal/klingon/+edit' |
1323 | @@ -84,7 +84,7 @@ | |||
1324 | 84 | 84 | ||
1325 | 85 | To change the branch status, the +edit page is also used: | 85 | To change the branch status, the +edit page is also used: |
1326 | 86 | 86 | ||
1328 | 87 | >>> browser.open('http://launchpad.dev' | 87 | >>> browser.open('http://code.launchpad.dev' |
1329 | 88 | ... '/~name12/gnome-terminal/klingon/+edit') | 88 | ... '/~name12/gnome-terminal/klingon/+edit') |
1330 | 89 | 89 | ||
1331 | 90 | The form displays the branch current status. | 90 | The form displays the branch current status. |
1332 | @@ -112,7 +112,7 @@ | |||
1333 | 112 | 112 | ||
1334 | 113 | Set the branch status back to its initial state. | 113 | Set the branch status back to its initial state. |
1335 | 114 | 114 | ||
1337 | 115 | >>> browser.open('http://launchpad.dev' | 115 | >>> browser.open('http://code.launchpad.dev' |
1338 | 116 | ... '/~name12/gnome-terminal/klingon/+edit') | 116 | ... '/~name12/gnome-terminal/klingon/+edit') |
1339 | 117 | >>> browser.getControl('Experimental').click() | 117 | >>> browser.getControl('Experimental').click() |
1340 | 118 | >>> browser.getControl('Change Branch').click() | 118 | >>> browser.getControl('Change Branch').click() |
1341 | @@ -162,12 +162,12 @@ | |||
1342 | 162 | Let's try to change the name of the branch to the name of some branch we | 162 | Let's try to change the name of the branch to the name of some branch we |
1343 | 163 | already own in the same product. | 163 | already own in the same product. |
1344 | 164 | 164 | ||
1346 | 165 | >>> browser.open('http://launchpad.dev' | 165 | >>> browser.open('http://code.launchpad.dev' |
1347 | 166 | ... '/~name12/gnome-terminal/main/+edit') | 166 | ... '/~name12/gnome-terminal/main/+edit') |
1348 | 167 | >>> browser.getControl('Name').value = '2.6' | 167 | >>> browser.getControl('Name').value = '2.6' |
1349 | 168 | >>> browser.getControl('Change Branch').click() | 168 | >>> browser.getControl('Change Branch').click() |
1350 | 169 | >>> browser.url | 169 | >>> browser.url |
1352 | 170 | 'http://launchpad.dev/%7Ename12/gnome-terminal/main/+edit' | 170 | 'http://code.launchpad.dev/%7Ename12/gnome-terminal/main/+edit' |
1353 | 171 | >>> for msg in get_feedback_messages(browser.contents): | 171 | >>> for msg in get_feedback_messages(browser.contents): |
1354 | 172 | ... print msg | 172 | ... print msg |
1355 | 173 | There is 1 error. | 173 | There is 1 error. |
1356 | @@ -178,7 +178,7 @@ | |||
1357 | 178 | 178 | ||
1358 | 179 | Edit forms do the same URL validation checks as the add forms. | 179 | Edit forms do the same URL validation checks as the add forms. |
1359 | 180 | 180 | ||
1361 | 181 | >>> browser.open('http://launchpad.dev/~name12/gnome-terminal/main') | 181 | >>> browser.open('http://code.launchpad.dev/~name12/gnome-terminal/main') |
1362 | 182 | >>> browser.getLink('Change branch details').click() | 182 | >>> browser.getLink('Change branch details').click() |
1363 | 183 | >>> browser.getControl('Branch URL').value = ( | 183 | >>> browser.getControl('Branch URL').value = ( |
1364 | 184 | ... 'http://bazaar.launchpad.dev/~foo/bar/baz') | 184 | ... 'http://bazaar.launchpad.dev/~foo/bar/baz') |
1365 | @@ -192,7 +192,8 @@ | |||
1366 | 192 | 192 | ||
1367 | 193 | Check that when editing a hosted branch the URL field is not shown. | 193 | Check that when editing a hosted branch the URL field is not shown. |
1368 | 194 | 194 | ||
1370 | 195 | >>> browser.open('http://launchpad.dev/~name12/gnome-terminal/scanned') | 195 | >>> browser.open( |
1371 | 196 | ... 'http://code.launchpad.dev/~name12/gnome-terminal/scanned') | ||
1372 | 196 | >>> browser.getLink('Change branch details').click() | 197 | >>> browser.getLink('Change branch details').click() |
1373 | 197 | >>> browser.getControl('Branch URL').value = ( | 198 | >>> browser.getControl('Branch URL').value = ( |
1374 | 198 | ... 'http://acme.example.com/~foo/bar/baz') | 199 | ... 'http://acme.example.com/~foo/bar/baz') |
1375 | @@ -227,7 +228,7 @@ | |||
1376 | 227 | >>> logout() | 228 | >>> logout() |
1377 | 228 | 229 | ||
1378 | 229 | >>> nopriv_browser = setupBrowser(auth='Basic no-priv@canonical.com:test') | 230 | >>> nopriv_browser = setupBrowser(auth='Basic no-priv@canonical.com:test') |
1380 | 230 | >>> nopriv_browser.open('http://launchpad.dev' | 231 | >>> nopriv_browser.open('http://code.launchpad.dev' |
1381 | 231 | ... '/~name12/foogoo/foogoo-svn') | 232 | ... '/~name12/foogoo/foogoo-svn') |
1382 | 232 | >>> whiteboard_tag = find_tag_by_id( | 233 | >>> whiteboard_tag = find_tag_by_id( |
1383 | 233 | ... nopriv_browser.contents, 'branch-whiteboard-value') | 234 | ... nopriv_browser.contents, 'branch-whiteboard-value') |
1384 | @@ -280,7 +281,7 @@ | |||
1385 | 280 | The user is able to change the owner of the branch using the edit details | 281 | The user is able to change the owner of the branch using the edit details |
1386 | 281 | page. | 282 | page. |
1387 | 282 | 283 | ||
1389 | 283 | >>> browser.open('http://launchpad.dev/~name12/gnome-terminal/main') | 284 | >>> browser.open('http://code.launchpad.dev/~name12/gnome-terminal/main') |
1390 | 284 | >>> browser.getLink('Change branch details').click() | 285 | >>> browser.getLink('Change branch details').click() |
1391 | 285 | >>> browser.getControl('Owner').displayValue = ['Landscape Developers'] | 286 | >>> browser.getControl('Owner').displayValue = ['Landscape Developers'] |
1392 | 286 | >>> browser.getControl('Change Branch').click() | 287 | >>> browser.getControl('Change Branch').click() |
1393 | @@ -297,7 +298,7 @@ | |||
1394 | 297 | Bazaar Experts and Launchpad administrators are able to reassign a branch | 298 | Bazaar Experts and Launchpad administrators are able to reassign a branch |
1395 | 298 | to any valid person or team. | 299 | to any valid person or team. |
1396 | 299 | 300 | ||
1398 | 300 | >>> admin_browser.open('http://launchpad.dev/~name12/firefox/main') | 301 | >>> admin_browser.open('http://code.launchpad.dev/~name12/firefox/main') |
1399 | 301 | >>> admin_browser.getLink('Change branch details').click() | 302 | >>> admin_browser.getLink('Change branch details').click() |
1400 | 302 | >>> admin_browser.getControl('Owner').value = 'mark' | 303 | >>> admin_browser.getControl('Owner').value = 'mark' |
1401 | 303 | >>> admin_browser.getControl('Change Branch').click() | 304 | >>> admin_browser.getControl('Change Branch').click() |
1402 | 304 | 305 | ||
1403 | === modified file 'lib/lp/code/stories/branches/xx-branch-listings.txt' | |||
1404 | --- lib/lp/code/stories/branches/xx-branch-listings.txt 2010-04-11 22:45:09 +0000 | |||
1405 | +++ lib/lp/code/stories/branches/xx-branch-listings.txt 2010-08-24 02:26:48 +0000 | |||
1406 | @@ -154,7 +154,7 @@ | |||
1407 | 154 | status value, it will default to current branches. | 154 | status value, it will default to current branches. |
1408 | 155 | 155 | ||
1409 | 156 | >>> browser.open( | 156 | >>> browser.open( |
1411 | 157 | ... 'http://launchpad.dev/~name12/+branches?field.lifecycle=Fubar') | 157 | ... 'http://code.launchpad.dev/~name12/+branches?field.lifecycle=Fubar') |
1412 | 158 | >>> browser.getControl(name='field.lifecycle').displayValue | 158 | >>> browser.getControl(name='field.lifecycle').displayValue |
1413 | 159 | ['Any active status'] | 159 | ['Any active status'] |
1414 | 160 | >>> table = find_tag_by_id(browser.contents, 'branchtable') | 160 | >>> table = find_tag_by_id(browser.contents, 'branchtable') |
1415 | 161 | 161 | ||
1416 | === modified file 'lib/lp/code/stories/branches/xx-branch-url-validation.txt' | |||
1417 | --- lib/lp/code/stories/branches/xx-branch-url-validation.txt 2009-06-02 08:20:49 +0000 | |||
1418 | +++ lib/lp/code/stories/branches/xx-branch-url-validation.txt 2010-08-24 02:26:48 +0000 | |||
1419 | @@ -3,7 +3,8 @@ | |||
1420 | 3 | First, let's define a helper to post to the Person +addbranch form. | 3 | First, let's define a helper to post to the Person +addbranch form. |
1421 | 4 | 4 | ||
1422 | 5 | >>> def add_branch(url): | 5 | >>> def add_branch(url): |
1424 | 6 | ... user_browser.open('http://launchpad.dev/~lifeless/+addbranch') | 6 | ... user_browser.open( |
1425 | 7 | ... 'http://code.launchpad.dev/~lifeless/+addbranch') | ||
1426 | 7 | ... user_browser.getControl('Name').value = 'pyresources' | 8 | ... user_browser.getControl('Name').value = 'pyresources' |
1427 | 8 | ... user_browser.getControl('Branch URL').value = url | 9 | ... user_browser.getControl('Branch URL').value = url |
1428 | 9 | ... user_browser.getControl('Register Branch').click() | 10 | ... user_browser.getControl('Register Branch').click() |
1429 | @@ -57,7 +58,7 @@ | |||
1430 | 57 | There is 1 error. | 58 | There is 1 error. |
1431 | 58 | Branch URLs are required for Mirrored branches. | 59 | Branch URLs are required for Mirrored branches. |
1432 | 59 | 60 | ||
1434 | 60 | Try to create a branch using the bzr+ssh URL scheme. Bug 76854 (see also 5573) | 61 | Try to create a branch using the bzr+ssh URL scheme. |
1435 | 61 | 62 | ||
1436 | 62 | >>> add_branch('bzr+ssh://example.com/code/branch') | 63 | >>> add_branch('bzr+ssh://example.com/code/branch') |
1437 | 63 | >>> print user_browser.url | 64 | >>> print user_browser.url |
1438 | 64 | 65 | ||
1439 | === modified file 'lib/lp/code/stories/branches/xx-creating-branches.txt' | |||
1440 | --- lib/lp/code/stories/branches/xx-creating-branches.txt 2010-05-13 16:22:19 +0000 | |||
1441 | +++ lib/lp/code/stories/branches/xx-creating-branches.txt 2010-08-24 02:26:48 +0000 | |||
1442 | @@ -125,7 +125,7 @@ | |||
1443 | 125 | 125 | ||
1444 | 126 | Now, post the branch creation form for the product. | 126 | Now, post the branch creation form for the product. |
1445 | 127 | 127 | ||
1447 | 128 | >>> user_browser.open('http://launchpad.dev/applets/+addbranch') | 128 | >>> user_browser.open('http://code.launchpad.dev/applets/+addbranch') |
1448 | 129 | 129 | ||
1449 | 130 | The specified URL has a trailing slash. In the next test, we will check that it | 130 | The specified URL has a trailing slash. In the next test, we will check that it |
1450 | 131 | has been stripped. | 131 | has been stripped. |
1451 | @@ -175,7 +175,7 @@ | |||
1452 | 175 | >>> browser.open('http://launchpad.dev/gnome-terminal/trunk') | 175 | >>> browser.open('http://launchpad.dev/gnome-terminal/trunk') |
1453 | 176 | >>> browser.getLink('registering a mirrored branch').click() | 176 | >>> browser.getLink('registering a mirrored branch').click() |
1454 | 177 | >>> print browser.title | 177 | >>> print browser.title |
1456 | 178 | Register a branch : GNOME Terminal | 178 | Register a branch : Code : GNOME Terminal |
1457 | 179 | 179 | ||
1458 | 180 | The user sees that he is registering a branch for the series' project. | 180 | The user sees that he is registering a branch for the series' project. |
1459 | 181 | 181 | ||
1460 | @@ -241,7 +241,7 @@ | |||
1461 | 241 | 241 | ||
1462 | 242 | Try a adding a conflicting branch from the product/+addbranch form. | 242 | Try a adding a conflicting branch from the product/+addbranch form. |
1463 | 243 | 243 | ||
1465 | 244 | >>> browser.open('http://launchpad.dev/gnome-terminal/+addbranch') | 244 | >>> browser.open('http://code.launchpad.dev/gnome-terminal/+addbranch') |
1466 | 245 | >>> browser.getControl('Branch URL').value = ( | 245 | >>> browser.getControl('Branch URL').value = ( |
1467 | 246 | ... 'http://example.com/gnome-terminal/main-dup') | 246 | ... 'http://example.com/gnome-terminal/main-dup') |
1468 | 247 | 247 | ||
1469 | @@ -249,7 +249,7 @@ | |||
1470 | 249 | 249 | ||
1471 | 250 | >>> browser.getControl('Register Branch').click() | 250 | >>> browser.getControl('Register Branch').click() |
1472 | 251 | >>> browser.url | 251 | >>> browser.url |
1474 | 252 | 'http://launchpad.dev/gnome-terminal/+addbranch' | 252 | 'http://code.launchpad.dev/gnome-terminal/+addbranch' |
1475 | 253 | 253 | ||
1476 | 254 | Now, complete the form, but give a name that is alredy in use for that owner | 254 | Now, complete the form, but give a name that is alredy in use for that owner |
1477 | 255 | and product. | 255 | and product. |
1478 | @@ -260,7 +260,7 @@ | |||
1479 | 260 | That should give us the form back with an error message. | 260 | That should give us the form back with an error message. |
1480 | 261 | 261 | ||
1481 | 262 | >>> browser.url | 262 | >>> browser.url |
1483 | 263 | 'http://launchpad.dev/gnome-terminal/+addbranch' | 263 | 'http://code.launchpad.dev/gnome-terminal/+addbranch' |
1484 | 264 | >>> for message in get_feedback_messages(browser.contents): | 264 | >>> for message in get_feedback_messages(browser.contents): |
1485 | 265 | ... print extract_text(message) | 265 | ... print extract_text(message) |
1486 | 266 | There is 1 error. | 266 | There is 1 error. |
1487 | @@ -269,7 +269,7 @@ | |||
1488 | 269 | If the user is trying to add a branch for a team that conflicts, | 269 | If the user is trying to add a branch for a team that conflicts, |
1489 | 270 | then the team name is given in the error message. | 270 | then the team name is given in the error message. |
1490 | 271 | 271 | ||
1492 | 272 | >>> browser.open('http://launchpad.dev/gnome-terminal/+addbranch') | 272 | >>> browser.open('http://code.launchpad.dev/gnome-terminal/+addbranch') |
1493 | 273 | >>> browser.getControl('Owner').displayValue = [ | 273 | >>> browser.getControl('Owner').displayValue = [ |
1494 | 274 | ... 'Landscape Developers'] | 274 | ... 'Landscape Developers'] |
1495 | 275 | >>> browser.getControl('Name').value = 'main' | 275 | >>> browser.getControl('Name').value = 'main' |
1496 | @@ -282,7 +282,7 @@ | |||
1497 | 282 | 282 | ||
1498 | 283 | Now registering again with the same name. | 283 | Now registering again with the same name. |
1499 | 284 | 284 | ||
1501 | 285 | >>> browser.open('http://launchpad.dev/gnome-terminal/+addbranch') | 285 | >>> browser.open('http://code.launchpad.dev/gnome-terminal/+addbranch') |
1502 | 286 | >>> browser.getControl('Owner').displayValue = [ | 286 | >>> browser.getControl('Owner').displayValue = [ |
1503 | 287 | ... 'Landscape Developers'] | 287 | ... 'Landscape Developers'] |
1504 | 288 | >>> browser.getControl('Name').value = 'main' | 288 | >>> browser.getControl('Name').value = 'main' |
1505 | 289 | 289 | ||
1506 | === modified file 'lib/lp/code/stories/branches/xx-source-package-branches-listing.txt' | |||
1507 | --- lib/lp/code/stories/branches/xx-source-package-branches-listing.txt 2010-04-12 16:02:18 +0000 | |||
1508 | +++ lib/lp/code/stories/branches/xx-source-package-branches-listing.txt 2010-08-24 02:26:48 +0000 | |||
1509 | @@ -60,7 +60,7 @@ | |||
1510 | 60 | ... distribution=distro, sourcepackagename=branch1.sourcepackagename) | 60 | ... distribution=distro, sourcepackagename=branch1.sourcepackagename) |
1511 | 61 | >>> transaction.commit() | 61 | >>> transaction.commit() |
1512 | 62 | >>> distro_source_package_listing = canonical_url( | 62 | >>> distro_source_package_listing = canonical_url( |
1514 | 63 | ... distro_source_package, view_name="+branches") | 63 | ... distro_source_package, view_name="+branches", rootsite='code') |
1515 | 64 | >>> logout() | 64 | >>> logout() |
1516 | 65 | 65 | ||
1517 | 66 | >>> browser.open(distro_source_package_listing) | 66 | >>> browser.open(distro_source_package_listing) |
1518 | 67 | 67 | ||
1519 | === modified file 'lib/lp/code/stories/branches/xx-subscribing-branches.txt' | |||
1520 | --- lib/lp/code/stories/branches/xx-subscribing-branches.txt 2010-05-27 04:44:39 +0000 | |||
1521 | +++ lib/lp/code/stories/branches/xx-subscribing-branches.txt 2010-08-24 02:26:48 +0000 | |||
1522 | @@ -36,7 +36,7 @@ | |||
1523 | 36 | link "Subscribe" from a branch's page. | 36 | link "Subscribe" from a branch's page. |
1524 | 37 | 37 | ||
1525 | 38 | >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test') | 38 | >>> browser = setupBrowser(auth='Basic no-priv@canonical.com:test') |
1527 | 39 | >>> browser.open('http://launchpad.dev/~name12/gnome-terminal/main') | 39 | >>> browser.open('http://code.launchpad.dev/~name12/gnome-terminal/main') |
1528 | 40 | 40 | ||
1529 | 41 | Initially there should be no subscribers. | 41 | Initially there should be no subscribers. |
1530 | 42 | 42 | ||
1531 | @@ -149,7 +149,7 @@ | |||
1532 | 149 | 149 | ||
1533 | 150 | Any logged in user is able to subscribe others to a branch. | 150 | Any logged in user is able to subscribe others to a branch. |
1534 | 151 | 151 | ||
1536 | 152 | >>> browser.open('http://launchpad.dev/~name12/gnome-terminal/main') | 152 | >>> browser.open('http://code.launchpad.dev/~name12/gnome-terminal/main') |
1537 | 153 | >>> browser.getLink('Subscribe someone else').click() | 153 | >>> browser.getLink('Subscribe someone else').click() |
1538 | 154 | 154 | ||
1539 | 155 | The process of subscribing others is the same as subscribing the | 155 | The process of subscribing others is the same as subscribing the |
1540 | 156 | 156 | ||
1541 | === modified file 'lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt' | |||
1542 | --- lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt 2010-06-15 19:53:21 +0000 | |||
1543 | +++ lib/lp/code/stories/sourcepackagerecipes/xx-recipe-listings.txt 2010-08-24 02:26:48 +0000 | |||
1544 | @@ -86,7 +86,7 @@ | |||
1545 | 86 | >>> nopriv_browser.open(product_url) | 86 | >>> nopriv_browser.open(product_url) |
1546 | 87 | >>> nopriv_browser.getLink('View source package recipes').click() | 87 | >>> nopriv_browser.getLink('View source package recipes').click() |
1547 | 88 | >>> print nopriv_browser.url | 88 | >>> print nopriv_browser.url |
1549 | 89 | http://launchpad.dev/product-name.../+recipes | 89 | http://code.launchpad.dev/product-name.../+recipes |
1550 | 90 | 90 | ||
1551 | 91 | >>> print_recipe_listing_head(nopriv_browser) | 91 | >>> print_recipe_listing_head(nopriv_browser) |
1552 | 92 | Name | 92 | Name |
1553 | @@ -119,7 +119,7 @@ | |||
1554 | 119 | >>> nopriv_browser.open(person_url) | 119 | >>> nopriv_browser.open(person_url) |
1555 | 120 | >>> nopriv_browser.getLink('View source package recipes').click() | 120 | >>> nopriv_browser.getLink('View source package recipes').click() |
1556 | 121 | >>> print nopriv_browser.url | 121 | >>> print nopriv_browser.url |
1558 | 122 | http://launchpad.dev/~person-name.../+recipes | 122 | http://code.launchpad.dev/~person-name.../+recipes |
1559 | 123 | 123 | ||
1560 | 124 | The "Owner" section should be missing. | 124 | The "Owner" section should be missing. |
1561 | 125 | 125 | ||
1562 | 126 | 126 | ||
1563 | === modified file 'lib/lp/code/templates/branch-summary-listing.pt' | |||
1564 | --- lib/lp/code/templates/branch-summary-listing.pt 2009-07-17 17:59:07 +0000 | |||
1565 | +++ lib/lp/code/templates/branch-summary-listing.pt 2010-08-24 02:26:48 +0000 | |||
1566 | @@ -4,10 +4,10 @@ | |||
1567 | 4 | tal:content="context/bzr_identity" | 4 | tal:content="context/bzr_identity" |
1568 | 5 | class="sprite branch" >Mozilla Thunderbird 0.9.1</a> | 5 | class="sprite branch" >Mozilla Thunderbird 0.9.1</a> |
1569 | 6 | <tal:person-link condition="view/show_person_link"> | 6 | <tal:person-link condition="view/show_person_link"> |
1571 | 7 | - <a tal:replace="structure context/owner/fmt:link/+ownedbranches" /> | 7 | - <a tal:replace="structure context/owner/fmt:link:code/+ownedbranches" /> |
1572 | 8 | </tal:person-link> | 8 | </tal:person-link> |
1573 | 9 | <tal:product-link condition="view/show_product_link"> | 9 | <tal:product-link condition="view/show_product_link"> |
1575 | 10 | - <a tal:attributes="href string:${context/product/fmt:url}/+branches" | 10 | - <a tal:attributes="href context/product/fmt:url:code/+branches" |
1576 | 11 | tal:content="context/product/displayname" | 11 | tal:content="context/product/displayname" |
1577 | 12 | class="sprite product">Project</a> | 12 | class="sprite product">Project</a> |
1578 | 13 | </tal:product-link> | 13 | </tal:product-link> |
1579 | 14 | 14 | ||
1580 | === modified file 'lib/lp/code/templates/distributionsourcepackage-branches-grouped.pt' | |||
1581 | --- lib/lp/code/templates/distributionsourcepackage-branches-grouped.pt 2009-09-17 02:17:15 +0000 | |||
1582 | +++ lib/lp/code/templates/distributionsourcepackage-branches-grouped.pt 2010-08-24 02:26:48 +0000 | |||
1583 | @@ -85,7 +85,7 @@ | |||
1584 | 85 | </li> | 85 | </li> |
1585 | 86 | </tal:series-branches> | 86 | </tal:series-branches> |
1586 | 87 | </tal:distro-series> | 87 | </tal:distro-series> |
1588 | 88 | <li><a tal:attributes="href context/fmt:url/+branches"> | 88 | <li><a tal:attributes="href context/fmt:url:code/+branches"> |
1589 | 89 | All branches for the <tal:name replace="context/title"/> | 89 | All branches for the <tal:name replace="context/title"/> |
1590 | 90 | </a></li> | 90 | </a></li> |
1591 | 91 | </ul> | 91 | </ul> |
1592 | 92 | 92 | ||
1593 | === modified file 'lib/lp/registry/browser/product.py' | |||
1594 | --- lib/lp/registry/browser/product.py 2010-08-23 03:25:20 +0000 | |||
1595 | +++ lib/lp/registry/browser/product.py 2010-08-24 02:26:48 +0000 | |||
1596 | @@ -671,7 +671,7 @@ | |||
1597 | 671 | def branch_add(self): | 671 | def branch_add(self): |
1598 | 672 | text = 'Register a branch' | 672 | text = 'Register a branch' |
1599 | 673 | summary = "Register a new Bazaar branch for this project" | 673 | summary = "Register a new Bazaar branch for this project" |
1601 | 674 | return Link('+addbranch', text, summary, icon='add') | 674 | return Link('+addbranch', text, summary, icon='add', site='code') |
1602 | 675 | 675 | ||
1603 | 676 | 676 | ||
1604 | 677 | class ProductBugsMenu(PillarBugsMenu, | 677 | class ProductBugsMenu(PillarBugsMenu, |
1605 | 678 | 678 | ||
1606 | === modified file 'lib/lp/registry/browser/productseries.py' | |||
1607 | --- lib/lp/registry/browser/productseries.py 2010-08-20 20:31:18 +0000 | |||
1608 | +++ lib/lp/registry/browser/productseries.py 2010-08-24 02:26:48 +0000 | |||
1609 | @@ -428,7 +428,8 @@ | |||
1610 | 428 | @property | 428 | @property |
1611 | 429 | def request_import_link(self): | 429 | def request_import_link(self): |
1612 | 430 | """A link to the page for requesting a new code import.""" | 430 | """A link to the page for requesting a new code import.""" |
1614 | 431 | return canonical_url(self.context.product, view_name='+new-import') | 431 | return canonical_url( |
1615 | 432 | self.context.product, view_name='+new-import', rootsite='code') | ||
1616 | 432 | 433 | ||
1617 | 433 | @property | 434 | @property |
1618 | 434 | def user_branch_visible(self): | 435 | def user_branch_visible(self): |
1619 | 435 | 436 | ||
1620 | === modified file 'lib/lp/registry/browser/tests/productseries-views.txt' | |||
1621 | --- lib/lp/registry/browser/tests/productseries-views.txt 2010-07-30 20:00:59 +0000 | |||
1622 | +++ lib/lp/registry/browser/tests/productseries-views.txt 2010-08-24 02:26:48 +0000 | |||
1623 | @@ -158,7 +158,7 @@ | |||
1624 | 158 | The view also provides a link to register a new code import. | 158 | The view also provides a link to register a new code import. |
1625 | 159 | 159 | ||
1626 | 160 | >>> print view.request_import_link | 160 | >>> print view.request_import_link |
1628 | 161 | http://launchpad.dev/firefox/+new-import | 161 | http://code.launchpad.dev/firefox/+new-import |
1629 | 162 | 162 | ||
1630 | 163 | 163 | ||
1631 | 164 | Edit ProductSeries | 164 | Edit ProductSeries |
1632 | 165 | 165 | ||
1633 | === modified file 'lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt' | |||
1634 | --- lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt 2009-10-06 21:58:56 +0000 | |||
1635 | +++ lib/lp/registry/stories/productseries/xx-productseries-link-branch.txt 2010-08-24 02:26:48 +0000 | |||
1636 | @@ -61,7 +61,7 @@ | |||
1637 | 61 | 61 | ||
1638 | 62 | >>> revisions = find_tag_by_id(sample_browser.contents, 'branch-revision-details') | 62 | >>> revisions = find_tag_by_id(sample_browser.contents, 'branch-revision-details') |
1639 | 63 | >>> print extract_text(revisions) | 63 | >>> print extract_text(revisions) |
1641 | 64 | 15 revisions, 5 in the past month. | 64 | 15 revisions. |
1642 | 65 | 65 | ||
1643 | 66 | A helpful informational message is also shown to the user. | 66 | A helpful informational message is also shown to the user. |
1644 | 67 | 67 | ||
1645 | 68 | 68 | ||
1646 | === modified file 'lib/lp/registry/templates/productseries-codesummary.pt' | |||
1647 | --- lib/lp/registry/templates/productseries-codesummary.pt 2010-04-12 23:10:39 +0000 | |||
1648 | +++ lib/lp/registry/templates/productseries-codesummary.pt 2010-08-24 02:26:48 +0000 | |||
1649 | @@ -84,13 +84,12 @@ | |||
1650 | 84 | <a id="series-branch" class="sprite branch" | 84 | <a id="series-branch" class="sprite branch" |
1651 | 85 | tal:attributes="href context/branch/fmt:url" | 85 | tal:attributes="href context/branch/fmt:url" |
1652 | 86 | tal:content="context/branch/bzr_identity">Mozilla Thunderbird 0.9.1</a> | 86 | tal:content="context/branch/bzr_identity">Mozilla Thunderbird 0.9.1</a> |
1654 | 87 | - <a tal:replace="structure context/branch/owner/fmt:link/+ownedbranches" /> | 87 | - <a tal:replace="structure context/branch/owner/fmt:link:code/+ownedbranches" /> |
1655 | 88 | <a | 88 | <a |
1656 | 89 | tal:replace="structure context/menu:overview/link_branch/fmt:icon" /> | 89 | tal:replace="structure context/menu:overview/link_branch/fmt:icon" /> |
1657 | 90 | </div> | 90 | </div> |
1658 | 91 | <div id="branch-revision-details" tal:condition="context/branch/revision_count"> | 91 | <div id="branch-revision-details" tal:condition="context/branch/revision_count"> |
1661 | 92 | <span tal:replace="context/branch/revision_count">35</span> revisions, | 92 | <span tal:replace="context/branch/revision_count">35</span> revisions. |
1660 | 93 | <span tal:replace="context/branch/@@+product-summary-listing/recent_revision_count">31</span> in the past month. | ||
1662 | 94 | </div> | 93 | </div> |
1663 | 95 | </tal:block> | 94 | </tal:block> |
1664 | 96 | 95 | ||
1665 | 97 | 96 | ||
1666 | === modified file 'lib/lp/testing/menu.py' | |||
1667 | --- lib/lp/testing/menu.py 2010-08-20 20:31:18 +0000 | |||
1668 | +++ lib/lp/testing/menu.py 2010-08-24 02:26:48 +0000 | |||
1669 | @@ -5,10 +5,7 @@ | |||
1670 | 5 | 5 | ||
1671 | 6 | __metaclass__ = type | 6 | __metaclass__ = type |
1672 | 7 | 7 | ||
1673 | 8 | from zope.component import getMultiAdapter | ||
1674 | 9 | |||
1675 | 10 | from canonical.launchpad.webapp.publisher import canonical_url | 8 | from canonical.launchpad.webapp.publisher import canonical_url |
1676 | 11 | from canonical.lazr.testing.menus import make_fake_request | ||
1677 | 12 | 9 | ||
1678 | 13 | 10 | ||
1679 | 14 | def check_menu_links(menu): | 11 | def check_menu_links(menu): |
1680 | @@ -21,10 +18,10 @@ | |||
1681 | 21 | view_name, _args = link.target.split('?') | 18 | view_name, _args = link.target.split('?') |
1682 | 22 | else: | 19 | else: |
1683 | 23 | view_name = link.target | 20 | view_name = link.target |
1686 | 24 | url = canonical_url(context, view_name=view_name) | 21 | if view_name == '': |
1687 | 25 | request = make_fake_request(url) | 22 | view_name = None |
1688 | 26 | try: | 23 | try: |
1690 | 27 | view = getMultiAdapter((context, request), name=view_name) | 24 | canonical_url(context, view_name=view_name, rootsite=link.site) |
1691 | 28 | except: | 25 | except: |
1693 | 29 | return 'Bad link %s: %s' % (link.name, url) | 26 | return 'Bad link %s: %s' % (link.name, canonical_url(context)) |
1694 | 30 | return True | 27 | return True |
1695 | 31 | 28 | ||
1696 | === modified file 'lib/lp/testing/views.py' | |||
1697 | --- lib/lp/testing/views.py 2010-08-20 20:31:18 +0000 | |||
1698 | +++ lib/lp/testing/views.py 2010-08-24 02:26:48 +0000 | |||
1699 | @@ -23,14 +23,19 @@ | |||
1700 | 23 | 23 | ||
1701 | 24 | from canonical.config import config | 24 | from canonical.config import config |
1702 | 25 | from canonical.launchpad.layers import setFirstLayer | 25 | from canonical.launchpad.layers import setFirstLayer |
1704 | 26 | from canonical.launchpad.webapp.interfaces import IPlacelessAuthUtility | 26 | from canonical.launchpad.webapp.interfaces import ( |
1705 | 27 | ICanonicalUrlData, | ||
1706 | 28 | IPlacelessAuthUtility, | ||
1707 | 29 | ) | ||
1708 | 30 | from canonical.launchpad.webapp.publisher import layer_for_rootsite | ||
1709 | 27 | from canonical.launchpad.webapp.servers import LaunchpadTestRequest | 31 | from canonical.launchpad.webapp.servers import LaunchpadTestRequest |
1710 | 28 | from canonical.lazr import ExportedFolder | 32 | from canonical.lazr import ExportedFolder |
1711 | 29 | 33 | ||
1712 | 30 | 34 | ||
1713 | 31 | def create_view(context, name, form=None, layer=None, server_url=None, | 35 | def create_view(context, name, form=None, layer=None, server_url=None, |
1714 | 32 | method='GET', principal=None, query_string='', cookie='', | 36 | method='GET', principal=None, query_string='', cookie='', |
1716 | 33 | request=None, path_info='/', current_request=False, **kwargs): | 37 | request=None, path_info='/', current_request=False, |
1717 | 38 | rootsite=None, **kwargs): | ||
1718 | 34 | """Return a view based on the given arguments. | 39 | """Return a view based on the given arguments. |
1719 | 35 | 40 | ||
1720 | 36 | :param context: The context for the view. | 41 | :param context: The context for the view. |
1721 | @@ -59,6 +64,16 @@ | |||
1722 | 59 | else: | 64 | else: |
1723 | 60 | request.setPrincipal( | 65 | request.setPrincipal( |
1724 | 61 | getUtility(IPlacelessAuthUtility).unauthenticatedPrincipal()) | 66 | getUtility(IPlacelessAuthUtility).unauthenticatedPrincipal()) |
1725 | 67 | if layer is None: | ||
1726 | 68 | # If a layer hasn't been specified, try to get the layer for the | ||
1727 | 69 | # rootsite. | ||
1728 | 70 | if rootsite is None: | ||
1729 | 71 | # If we haven't been told a site, try to get it from the canonical | ||
1730 | 72 | # url data of the object. | ||
1731 | 73 | obj_urldata = ICanonicalUrlData(context, None) | ||
1732 | 74 | if obj_urldata is not None: | ||
1733 | 75 | rootsite = obj_urldata.rootsite | ||
1734 | 76 | layer = layer_for_rootsite(rootsite) | ||
1735 | 62 | if layer is not None: | 77 | if layer is not None: |
1736 | 63 | setFirstLayer(request, layer) | 78 | setFirstLayer(request, layer) |
1737 | 64 | if current_request: | 79 | if current_request: |
1738 | @@ -70,7 +85,7 @@ | |||
1739 | 70 | def create_initialized_view(context, name, form=None, layer=None, | 85 | def create_initialized_view(context, name, form=None, layer=None, |
1740 | 71 | server_url=None, method=None, principal=None, | 86 | server_url=None, method=None, principal=None, |
1741 | 72 | query_string=None, cookie=None, request=None, | 87 | query_string=None, cookie=None, request=None, |
1743 | 73 | path_info='/'): | 88 | path_info='/', rootsite=None): |
1744 | 74 | """Return a view that has already been initialized.""" | 89 | """Return a view that has already been initialized.""" |
1745 | 75 | if method is None: | 90 | if method is None: |
1746 | 76 | if form is None: | 91 | if form is None: |
1747 | @@ -79,7 +94,7 @@ | |||
1748 | 79 | method = 'POST' | 94 | method = 'POST' |
1749 | 80 | view = create_view( | 95 | view = create_view( |
1750 | 81 | context, name, form, layer, server_url, method, principal, | 96 | context, name, form, layer, server_url, method, principal, |
1752 | 82 | query_string, cookie, request, path_info) | 97 | query_string, cookie, request, path_info, rootsite=rootsite) |
1753 | 83 | view.initialize() | 98 | view.initialize() |
1754 | 84 | return view | 99 | return view |
1755 | 85 | 100 |
<mwhudson> 7 >>> canonical_ url(getUtility( IBazaarApplicat ion)) launchpad. dev/+code' code.launchpad. dev/+code'
<mwhudson> 8 - u'http://
<mwhudson> 9 + u'http://
<mwhudson> the +code there is freaking odd really
<mwhudson> i wonder if it would actually be better to have the root objects be different for each publication
<thumper> mwhudson: probably
<thumper> mwhudson: but somewhat out of scope for this change
<rockstar> thumper, holy balls that's a big diff...
<mwhudson> thumper: yes
<thumper> rockstar: but boring
<rockstar> thumper, might I make a suggestion for the next time?
<thumper> yes
<thumper> rockstar: don't do them all at once?
<rockstar> thumper, yes, for the love of Odin, yes.
<thumper> :)
<rockstar> thumper, here's an example: line 1640-1641 of the diff doesn't look to be along the same lines as the rest of the changes in the branch.
<rockstar> Actually, 1635-1665...
<thumper> rockstar: :)
<thumper> yes, I removed a chunk of code that was showing bad data
<thumper> the person that wrote it thought it was showing the number of new revisions this month for that branch
<thumper> but what it was showing was the number of revisions on all branches this month
<rockstar> thumper, the change makes sense. I just think it would be better to not get lumped in with something that's supposed to be just technical debt.
<rockstar> Is there a bug filed for that change?
<thumper> no
<rockstar> thumper, I think there should be.
* thumper nods