Merge ~cjwatson/launchpad:zcml-namespaces-url into launchpad:master
- Git
- lp:~cjwatson/launchpad
- zcml-namespaces-url
- Merge into master
Proposed by
Colin Watson
Status: | Merged |
---|---|
Approved by: | Colin Watson |
Approved revision: | 9c5bbab44a977395cb2bd851cb53210157fa1c75 |
Merge reported by: | Otto Co-Pilot |
Merged at revision: | not available |
Proposed branch: | ~cjwatson/launchpad:zcml-namespaces-url |
Merge into: | launchpad:master |
Diff against target: |
1942 lines (+233/-221) 28 files modified
doc/explanation/framework.rst (+4/-4) lib/lp/answers/browser/configure.zcml (+6/-5) lib/lp/blueprints/browser/configure.zcml (+9/-8) lib/lp/bugs/browser/configure.zcml (+23/-22) lib/lp/buildmaster/browser/configure.zcml (+5/-4) lib/lp/charms/browser/configure.zcml (+7/-6) lib/lp/code/browser/configure.zcml (+23/-22) lib/lp/oci/browser/configure.zcml (+6/-5) lib/lp/registry/browser/configure.zcml (+54/-53) lib/lp/services/auth/configure.zcml (+1/-1) lib/lp/services/features/browser/configure.zcml (+2/-1) lib/lp/services/identity/configure.zcml (+1/-1) lib/lp/services/messages/browser/configure.zcml (+2/-2) lib/lp/services/statistics/browser/configure.zcml (+3/-2) lib/lp/services/temporaryblobstorage/configure.zcml (+2/-2) lib/lp/services/verification/browser/configure.zcml (+3/-3) lib/lp/services/webapp/doc/canonical_url.rst (+16/-16) lib/lp/services/webapp/doc/zcmldirectives.rst (+1/-1) lib/lp/services/webapp/meta.zcml (+1/-1) lib/lp/services/webapp/metazcml.py (+1/-1) lib/lp/services/webhooks/configure.zcml (+2/-2) lib/lp/services/worlddata/browser/configure.zcml (+3/-2) lib/lp/snappy/browser/configure.zcml (+10/-10) lib/lp/soyuz/browser/configure.zcml (+27/-27) lib/lp/soyuz/model/archive.py (+1/-1) lib/lp/soyuz/model/archivepermission.py (+1/-1) lib/lp/testopenid/browser/configure.zcml (+2/-1) lib/lp/translations/browser/configure.zcml (+17/-17) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Colin Watson (community) | Approve | ||
Review via email: mp+436869@code.launchpad.net |
Commit message
Move ZCML url directive to lp namespace
Description of the change
As with commit 57196c1d6a220f0
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 | diff --git a/doc/explanation/framework.rst b/doc/explanation/framework.rst | |||
2 | index ef3342a..78e3cdf 100644 | |||
3 | --- a/doc/explanation/framework.rst | |||
4 | +++ b/doc/explanation/framework.rst | |||
5 | @@ -51,10 +51,10 @@ Many of the details here are handled by custom code in | |||
6 | 51 | provides many application-specific hooks, and | 51 | provides many application-specific hooks, and |
7 | 52 | ``lp.services.webapp.publishing`` which defines much of Launchpad's | 52 | ``lp.services.webapp.publishing`` which defines much of Launchpad's |
8 | 53 | traversal framework. The URL structure is defined in various | 53 | traversal framework. The URL structure is defined in various |
13 | 54 | ``configure.zcml`` files: ``browser:url`` tags are used to build up the | 54 | ``configure.zcml`` files: ``lp:url`` tags are used to build up the canonical |
14 | 55 | canonical URL for an object, and ``browser:navigation`` tags register | 55 | URL for an object, and ``browser:navigation`` tags register classes called |
15 | 56 | classes called as part of traversal to resolve the next step from each | 56 | as part of traversal to resolve the next step from each intermediate object |
16 | 57 | intermediate object in the URL (starting at | 57 | in the URL (starting at |
17 | 58 | ``lp.app.browser.launchpad.LaunchpadRootNavigation``). | 58 | ``lp.app.browser.launchpad.LaunchpadRootNavigation``). |
18 | 59 | 59 | ||
19 | 60 | Page templating | 60 | Page templating |
20 | diff --git a/lib/lp/answers/browser/configure.zcml b/lib/lp/answers/browser/configure.zcml | |||
21 | index 87a6b76..abd9c42 100644 | |||
22 | --- a/lib/lp/answers/browser/configure.zcml | |||
23 | +++ b/lib/lp/answers/browser/configure.zcml | |||
24 | @@ -6,6 +6,7 @@ | |||
25 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
26 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
27 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
28 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
29 | 9 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
30 | 10 | <facet facet="answers"> | 11 | <facet facet="answers"> |
31 | 11 | 12 | ||
32 | @@ -130,14 +131,14 @@ | |||
33 | 130 | name="+index" | 131 | name="+index" |
34 | 131 | /> | 132 | /> |
35 | 132 | 133 | ||
37 | 133 | <browser:url | 134 | <lp:url |
38 | 134 | for="lp.answers.interfaces.question.IQuestion" | 135 | for="lp.answers.interfaces.question.IQuestion" |
39 | 135 | path_expression="string:+question/${id}" | 136 | path_expression="string:+question/${id}" |
40 | 136 | attribute_to_parent="target" | 137 | attribute_to_parent="target" |
41 | 137 | rootsite="answers" | 138 | rootsite="answers" |
42 | 138 | /> | 139 | /> |
43 | 139 | 140 | ||
45 | 140 | <browser:url | 141 | <lp:url |
46 | 141 | for="lp.answers.interfaces.questionsubscription.IQuestionSubscription" | 142 | for="lp.answers.interfaces.questionsubscription.IQuestionSubscription" |
47 | 142 | path_expression="string:subscriptions/${person}" | 143 | path_expression="string:subscriptions/${person}" |
48 | 143 | attribute_to_parent="question" | 144 | attribute_to_parent="question" |
49 | @@ -258,7 +259,7 @@ | |||
50 | 258 | template="../../app/templates/generic-edit.pt" | 259 | template="../../app/templates/generic-edit.pt" |
51 | 259 | /> | 260 | /> |
52 | 260 | 261 | ||
54 | 261 | <browser:url | 262 | <lp:url |
55 | 262 | for="lp.answers.interfaces.question.IQuestionMessage" | 263 | for="lp.answers.interfaces.question.IQuestionMessage" |
56 | 263 | path_expression="string:messages/${display_index}" | 264 | path_expression="string:messages/${display_index}" |
57 | 264 | attribute_to_parent="question" | 265 | attribute_to_parent="question" |
58 | @@ -287,7 +288,7 @@ | |||
59 | 287 | classes="QuestionMessageNavigation" | 288 | classes="QuestionMessageNavigation" |
60 | 288 | /> | 289 | /> |
61 | 289 | 290 | ||
63 | 290 | <browser:url | 291 | <lp:url |
64 | 291 | for="lp.answers.interfaces.questioncollection.IQuestionSet" | 292 | for="lp.answers.interfaces.questioncollection.IQuestionSet" |
65 | 292 | path_expression="string:questions" | 293 | path_expression="string:questions" |
66 | 293 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 294 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
67 | @@ -342,7 +343,7 @@ | |||
68 | 342 | template="../../app/templates/generic-edit.pt" | 343 | template="../../app/templates/generic-edit.pt" |
69 | 343 | /> | 344 | /> |
70 | 344 | 345 | ||
72 | 345 | <browser:url | 346 | <lp:url |
73 | 346 | for="lp.answers.interfaces.faq.IFAQ" | 347 | for="lp.answers.interfaces.faq.IFAQ" |
74 | 347 | path_expression="string:+faq/${id}" | 348 | path_expression="string:+faq/${id}" |
75 | 348 | attribute_to_parent="target" | 349 | attribute_to_parent="target" |
76 | diff --git a/lib/lp/blueprints/browser/configure.zcml b/lib/lp/blueprints/browser/configure.zcml | |||
77 | index aa5533b..2393698 100644 | |||
78 | --- a/lib/lp/blueprints/browser/configure.zcml | |||
79 | +++ b/lib/lp/blueprints/browser/configure.zcml | |||
80 | @@ -6,6 +6,7 @@ | |||
81 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
82 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
83 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
84 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
85 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
86 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
87 | 11 | 12 | ||
88 | @@ -20,7 +21,7 @@ | |||
89 | 20 | for="lp.blueprints.interfaces.sprint.ISprint" | 21 | for="lp.blueprints.interfaces.sprint.ISprint" |
90 | 21 | name="+specs" | 22 | name="+specs" |
91 | 22 | layer="lp.blueprints.publisher.BlueprintsLayer"/> | 23 | layer="lp.blueprints.publisher.BlueprintsLayer"/> |
93 | 23 | <browser:url | 24 | <lp:url |
94 | 24 | for="lp.blueprints.interfaces.sprint.ISprint" | 25 | for="lp.blueprints.interfaces.sprint.ISprint" |
95 | 25 | path_expression="name" | 26 | path_expression="name" |
96 | 26 | parent_utility="lp.blueprints.interfaces.sprint.ISprintSet"/> | 27 | parent_utility="lp.blueprints.interfaces.sprint.ISprintSet"/> |
97 | @@ -135,7 +136,7 @@ | |||
98 | 135 | name="+sprints" | 136 | name="+sprints" |
99 | 136 | template="../templates/hassprints-sprints.pt"/> | 137 | template="../templates/hassprints-sprints.pt"/> |
100 | 137 | </browser:pages> | 138 | </browser:pages> |
102 | 138 | <browser:url | 139 | <lp:url |
103 | 139 | for="lp.blueprints.interfaces.sprint.ISprintSet" | 140 | for="lp.blueprints.interfaces.sprint.ISprintSet" |
104 | 140 | path_expression="string:sprints" | 141 | path_expression="string:sprints" |
105 | 141 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 142 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
106 | @@ -182,7 +183,7 @@ | |||
107 | 182 | <browser:defaultView | 183 | <browser:defaultView |
108 | 183 | for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification" | 184 | for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification" |
109 | 184 | name="+decide"/> | 185 | name="+decide"/> |
111 | 185 | <browser:url | 186 | <lp:url |
112 | 186 | for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification" | 187 | for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification" |
113 | 187 | path_expression="string:${sprint/name}" | 188 | path_expression="string:${sprint/name}" |
114 | 188 | attribute_to_parent="specification"/> | 189 | attribute_to_parent="specification"/> |
115 | @@ -199,7 +200,7 @@ | |||
116 | 199 | for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification" | 200 | for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification" |
117 | 200 | permission="zope.Public" | 201 | permission="zope.Public" |
118 | 201 | template="../templates/sprintspecification-icon-status.pt"/> | 202 | template="../templates/sprintspecification-icon-status.pt"/> |
120 | 202 | <browser:url | 203 | <lp:url |
121 | 203 | for="lp.blueprints.interfaces.specificationsubscription.ISpecificationSubscription" | 204 | for="lp.blueprints.interfaces.specificationsubscription.ISpecificationSubscription" |
122 | 204 | path_expression="string:+subscription/${person/name}" | 205 | path_expression="string:+subscription/${person/name}" |
123 | 205 | attribute_to_parent="specification"/> | 206 | attribute_to_parent="specification"/> |
124 | @@ -216,13 +217,13 @@ | |||
125 | 216 | <browser:defaultView | 217 | <browser:defaultView |
126 | 217 | for="lp.blueprints.interfaces.sprintattendance.ISprintAttendance" | 218 | for="lp.blueprints.interfaces.sprintattendance.ISprintAttendance" |
127 | 218 | name="+edit"/> | 219 | name="+edit"/> |
129 | 219 | <browser:url | 220 | <lp:url |
130 | 220 | for="lp.blueprints.interfaces.sprintattendance.ISprintAttendance" | 221 | for="lp.blueprints.interfaces.sprintattendance.ISprintAttendance" |
131 | 221 | path_expression="string:${attendee/name}" | 222 | path_expression="string:${attendee/name}" |
132 | 222 | attribute_to_parent="sprint"/> | 223 | attribute_to_parent="sprint"/> |
133 | 223 | <facet | 224 | <facet |
134 | 224 | facet="specifications"> | 225 | facet="specifications"> |
136 | 225 | <browser:url | 226 | <lp:url |
137 | 226 | for="lp.blueprints.interfaces.specificationbranch.ISpecificationBranch" | 227 | for="lp.blueprints.interfaces.specificationbranch.ISpecificationBranch" |
138 | 227 | urldata="lp.blueprints.browser.specificationbranch.SpecificationBranchURL"/> | 228 | urldata="lp.blueprints.browser.specificationbranch.SpecificationBranchURL"/> |
139 | 228 | <browser:defaultView | 229 | <browser:defaultView |
140 | @@ -246,7 +247,7 @@ | |||
141 | 246 | <browser:defaultView | 247 | <browser:defaultView |
142 | 247 | for="lp.blueprints.interfaces.specification.ISpecification" | 248 | for="lp.blueprints.interfaces.specification.ISpecification" |
143 | 248 | name="+index"/> | 249 | name="+index"/> |
145 | 249 | <browser:url | 250 | <lp:url |
146 | 250 | for="lp.blueprints.interfaces.specification.ISpecification" | 251 | for="lp.blueprints.interfaces.specification.ISpecification" |
147 | 251 | path_expression="string:+spec/${name}" | 252 | path_expression="string:+spec/${name}" |
148 | 252 | attribute_to_parent="target" | 253 | attribute_to_parent="target" |
149 | @@ -471,7 +472,7 @@ | |||
150 | 471 | class="lp.blueprints.browser.specification.SpecificationLinkBranchView" | 472 | class="lp.blueprints.browser.specification.SpecificationLinkBranchView" |
151 | 472 | template="../../app/templates/generic-edit.pt" | 473 | template="../../app/templates/generic-edit.pt" |
152 | 473 | permission="launchpad.AnyPerson"/> | 474 | permission="launchpad.AnyPerson"/> |
154 | 474 | <browser:url | 475 | <lp:url |
155 | 475 | for="lp.blueprints.interfaces.specification.ISpecificationSet" | 476 | for="lp.blueprints.interfaces.specification.ISpecificationSet" |
156 | 476 | path_expression="string:" | 477 | path_expression="string:" |
157 | 477 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 478 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
158 | diff --git a/lib/lp/bugs/browser/configure.zcml b/lib/lp/bugs/browser/configure.zcml | |||
159 | index e5d11ae..c21599c 100644 | |||
160 | --- a/lib/lp/bugs/browser/configure.zcml | |||
161 | +++ b/lib/lp/bugs/browser/configure.zcml | |||
162 | @@ -6,6 +6,7 @@ | |||
163 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
164 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
165 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
166 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
167 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
168 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
169 | 11 | <browser:feeds | 12 | <browser:feeds |
170 | @@ -158,7 +159,7 @@ | |||
171 | 158 | <browser:defaultView | 159 | <browser:defaultView |
172 | 159 | for="lp.bugs.interfaces.bugmessage.IBugComment" | 160 | for="lp.bugs.interfaces.bugmessage.IBugComment" |
173 | 160 | name="+index"/> | 161 | name="+index"/> |
175 | 161 | <browser:url | 162 | <lp:url |
176 | 162 | for="lp.bugs.interfaces.bugmessage.IBugComment" | 163 | for="lp.bugs.interfaces.bugmessage.IBugComment" |
177 | 163 | path_expression="string:comments/${index}" | 164 | path_expression="string:comments/${index}" |
178 | 164 | attribute_to_parent="bugtask" | 165 | attribute_to_parent="bugtask" |
179 | @@ -203,7 +204,7 @@ | |||
180 | 203 | provides="lazr.restful.interfaces.IEntry" | 204 | provides="lazr.restful.interfaces.IEntry" |
181 | 204 | factory="lp.bugs.adapters.bug.bugcomment_to_entry" | 205 | factory="lp.bugs.adapters.bug.bugcomment_to_entry" |
182 | 205 | /> | 206 | /> |
184 | 206 | <browser:url | 207 | <lp:url |
185 | 207 | for="lp.bugs.interfaces.malone.IMaloneApplication" | 208 | for="lp.bugs.interfaces.malone.IMaloneApplication" |
186 | 208 | path_expression="string:bugs" | 209 | path_expression="string:bugs" |
187 | 209 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 210 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
188 | @@ -455,7 +456,7 @@ | |||
189 | 455 | <browser:defaultView | 456 | <browser:defaultView |
190 | 456 | for="lp.bugs.interfaces.bugtask.IBugTask" | 457 | for="lp.bugs.interfaces.bugtask.IBugTask" |
191 | 457 | name="+index"/> | 458 | name="+index"/> |
193 | 458 | <browser:url | 459 | <lp:url |
194 | 459 | for="lp.bugs.interfaces.bugtask.IBugTask" | 460 | for="lp.bugs.interfaces.bugtask.IBugTask" |
195 | 460 | path_expression="string:+bug/${bug/id}" | 461 | path_expression="string:+bug/${bug/id}" |
196 | 461 | attribute_to_parent="target" | 462 | attribute_to_parent="target" |
197 | @@ -481,7 +482,7 @@ | |||
198 | 481 | permission="launchpad.View" | 482 | permission="launchpad.View" |
199 | 482 | name="+activity" | 483 | name="+activity" |
200 | 483 | template="../templates/bug-activity.pt"/> | 484 | template="../templates/bug-activity.pt"/> |
202 | 484 | <browser:url | 485 | <lp:url |
203 | 485 | for="lp.bugs.interfaces.bugactivity.IBugActivity" | 486 | for="lp.bugs.interfaces.bugactivity.IBugActivity" |
204 | 486 | path_expression="string:activity" | 487 | path_expression="string:activity" |
205 | 487 | attribute_to_parent="bug" | 488 | attribute_to_parent="bug" |
206 | @@ -663,7 +664,7 @@ | |||
207 | 663 | class="lp.bugs.browser.bugsubscription.BugSubscriptionAddView" | 664 | class="lp.bugs.browser.bugsubscription.BugSubscriptionAddView" |
208 | 664 | permission="launchpad.AnyPerson" | 665 | permission="launchpad.AnyPerson" |
209 | 665 | template="../templates/bug-addsubscriber.pt"/> | 666 | template="../templates/bug-addsubscriber.pt"/> |
211 | 666 | <browser:url | 667 | <lp:url |
212 | 667 | for="lp.bugs.interfaces.bugattachment.IBugAttachment" | 668 | for="lp.bugs.interfaces.bugattachment.IBugAttachment" |
213 | 668 | urldata="lp.bugs.browser.bugattachment.BugAttachmentURL"/> | 669 | urldata="lp.bugs.browser.bugattachment.BugAttachmentURL"/> |
214 | 669 | <browser:defaultView | 670 | <browser:defaultView |
215 | @@ -705,17 +706,17 @@ | |||
216 | 705 | <browser:defaultView | 706 | <browser:defaultView |
217 | 706 | for="lp.bugs.interfaces.bugtracker.IBugTracker" | 707 | for="lp.bugs.interfaces.bugtracker.IBugTracker" |
218 | 707 | name="+index"/> | 708 | name="+index"/> |
220 | 708 | <browser:url | 709 | <lp:url |
221 | 709 | for="lp.bugs.interfaces.bugtracker.IBugTracker" | 710 | for="lp.bugs.interfaces.bugtracker.IBugTracker" |
222 | 710 | path_expression="string:${name}" | 711 | path_expression="string:${name}" |
223 | 711 | parent_utility="lp.bugs.interfaces.bugtracker.IBugTrackerSet" | 712 | parent_utility="lp.bugs.interfaces.bugtracker.IBugTrackerSet" |
224 | 712 | rootsite="bugs"/> | 713 | rootsite="bugs"/> |
226 | 713 | <browser:url | 714 | <lp:url |
227 | 714 | for="lp.bugs.interfaces.bugtracker.IBugTrackerComponentGroup" | 715 | for="lp.bugs.interfaces.bugtracker.IBugTrackerComponentGroup" |
228 | 715 | path_expression="string:+components/${name}" | 716 | path_expression="string:+components/${name}" |
229 | 716 | attribute_to_parent="bug_tracker" | 717 | attribute_to_parent="bug_tracker" |
230 | 717 | rootsite="bugs"/> | 718 | rootsite="bugs"/> |
232 | 718 | <browser:url | 719 | <lp:url |
233 | 719 | for="lp.bugs.interfaces.bugtracker.IBugTrackerComponent" | 720 | for="lp.bugs.interfaces.bugtracker.IBugTrackerComponent" |
234 | 720 | path_expression="name" | 721 | path_expression="name" |
235 | 721 | attribute_to_parent="component_group" | 722 | attribute_to_parent="component_group" |
236 | @@ -755,7 +756,7 @@ | |||
237 | 755 | <browser:defaultView | 756 | <browser:defaultView |
238 | 756 | for="lp.bugs.interfaces.bugtracker.IBugTrackerSet" | 757 | for="lp.bugs.interfaces.bugtracker.IBugTrackerSet" |
239 | 757 | name="+index"/> | 758 | name="+index"/> |
241 | 758 | <browser:url | 759 | <lp:url |
242 | 759 | for="lp.bugs.interfaces.bugtracker.IBugTrackerSet" | 760 | for="lp.bugs.interfaces.bugtracker.IBugTrackerSet" |
243 | 760 | path_expression="string:bugtrackers" | 761 | path_expression="string:bugtrackers" |
244 | 761 | parent_utility="lp.bugs.interfaces.malone.IMaloneApplication" | 762 | parent_utility="lp.bugs.interfaces.malone.IMaloneApplication" |
245 | @@ -774,7 +775,7 @@ | |||
246 | 774 | class="lp.bugs.browser.bugtracker.BugTrackerAddView" | 775 | class="lp.bugs.browser.bugtracker.BugTrackerAddView" |
247 | 775 | permission="launchpad.AnyPerson" | 776 | permission="launchpad.AnyPerson" |
248 | 776 | template="../../app/templates/generic-edit.pt"/> | 777 | template="../../app/templates/generic-edit.pt"/> |
250 | 777 | <browser:url | 778 | <lp:url |
251 | 778 | for="lp.bugs.interfaces.bugtracker.IRemoteBug" | 779 | for="lp.bugs.interfaces.bugtracker.IRemoteBug" |
252 | 779 | path_expression="string:${remotebug}" | 780 | path_expression="string:${remotebug}" |
253 | 780 | attribute_to_parent="bugtracker" | 781 | attribute_to_parent="bugtracker" |
254 | @@ -790,7 +791,7 @@ | |||
255 | 790 | name="+index" | 791 | name="+index" |
256 | 791 | template="../templates/remotebug-index.pt"/> | 792 | template="../templates/remotebug-index.pt"/> |
257 | 792 | </browser:pages> | 793 | </browser:pages> |
259 | 793 | <browser:url | 794 | <lp:url |
260 | 794 | for="lp.bugs.interfaces.bugbranch.IBugBranch" | 795 | for="lp.bugs.interfaces.bugbranch.IBugBranch" |
261 | 795 | path_expression="string:+bug/${bug/id}" | 796 | path_expression="string:+bug/${bug/id}" |
262 | 796 | attribute_to_parent="branch"/> | 797 | attribute_to_parent="branch"/> |
263 | @@ -819,7 +820,7 @@ | |||
264 | 819 | classes=" | 820 | classes=" |
265 | 820 | CveContextMenu | 821 | CveContextMenu |
266 | 821 | CveSetContextMenu"/> | 822 | CveSetContextMenu"/> |
268 | 822 | <browser:url | 823 | <lp:url |
269 | 823 | for="lp.bugs.interfaces.cve.ICve" | 824 | for="lp.bugs.interfaces.cve.ICve" |
270 | 824 | path_expression="sequence" | 825 | path_expression="sequence" |
271 | 825 | parent_utility="lp.bugs.interfaces.cve.ICveSet" | 826 | parent_utility="lp.bugs.interfaces.cve.ICveSet" |
272 | @@ -861,7 +862,7 @@ | |||
273 | 861 | <browser:defaultView | 862 | <browser:defaultView |
274 | 862 | for="lp.bugs.interfaces.cve.ICveSet" | 863 | for="lp.bugs.interfaces.cve.ICveSet" |
275 | 863 | name="+index"/> | 864 | name="+index"/> |
277 | 864 | <browser:url | 865 | <lp:url |
278 | 865 | for="lp.bugs.interfaces.cve.ICveSet" | 866 | for="lp.bugs.interfaces.cve.ICveSet" |
279 | 866 | path_expression="string:cve" | 867 | path_expression="string:cve" |
280 | 867 | parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"/> | 868 | parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"/> |
281 | @@ -893,7 +894,7 @@ | |||
282 | 893 | class="lp.bugs.browser.buglinktarget.BugLinksListingView" | 894 | class="lp.bugs.browser.buglinktarget.BugLinksListingView" |
283 | 894 | permission="zope.Public" | 895 | permission="zope.Public" |
284 | 895 | template="../templates/cve-portlet-bugs2.pt"/> | 896 | template="../templates/cve-portlet-bugs2.pt"/> |
286 | 896 | <browser:url | 897 | <lp:url |
287 | 897 | for="lp.bugs.interfaces.vulnerability.IVulnerability" | 898 | for="lp.bugs.interfaces.vulnerability.IVulnerability" |
288 | 898 | path_expression="string:+vulnerability/${id}" | 899 | path_expression="string:+vulnerability/${id}" |
289 | 899 | attribute_to_parent="distribution" | 900 | attribute_to_parent="distribution" |
290 | @@ -918,7 +919,7 @@ | |||
291 | 918 | class="lp.bugs.browser.vulnerability.VulnerabilitySetIndexView" | 919 | class="lp.bugs.browser.vulnerability.VulnerabilitySetIndexView" |
292 | 919 | permission="zope.Public" | 920 | permission="zope.Public" |
293 | 920 | template="../templates/vulnerabilityset-index.pt" /> | 921 | template="../templates/vulnerabilityset-index.pt" /> |
295 | 921 | <browser:url | 922 | <lp:url |
296 | 922 | for="lp.bugs.interfaces.bugsubscription.IBugSubscription" | 923 | for="lp.bugs.interfaces.bugsubscription.IBugSubscription" |
297 | 923 | path_expression="string:+subscription/${person/name}" | 924 | path_expression="string:+subscription/${person/name}" |
298 | 924 | attribute_to_parent="bug" | 925 | attribute_to_parent="bug" |
299 | @@ -930,7 +931,7 @@ | |||
300 | 930 | <browser:defaultView | 931 | <browser:defaultView |
301 | 931 | for="lp.bugs.interfaces.bug.IBug" | 932 | for="lp.bugs.interfaces.bug.IBug" |
302 | 932 | name="+index"/> | 933 | name="+index"/> |
304 | 933 | <browser:url | 934 | <lp:url |
305 | 934 | for="lp.bugs.interfaces.bug.IBug" | 935 | for="lp.bugs.interfaces.bug.IBug" |
306 | 935 | urldata="lp.bugs.browser.bug.BugURL"/> | 936 | urldata="lp.bugs.browser.bug.BugURL"/> |
307 | 936 | <browser:navigation | 937 | <browser:navigation |
308 | @@ -1014,7 +1015,7 @@ | |||
309 | 1014 | module="lp.bugs.browser.bug" | 1015 | module="lp.bugs.browser.bug" |
310 | 1015 | classes=" | 1016 | classes=" |
311 | 1016 | BugSetNavigation"/> | 1017 | BugSetNavigation"/> |
313 | 1017 | <browser:url | 1018 | <lp:url |
314 | 1018 | for="lp.bugs.interfaces.bug.IBugSet" | 1019 | for="lp.bugs.interfaces.bug.IBugSet" |
315 | 1019 | path_expression="string:bugs" | 1020 | path_expression="string:bugs" |
316 | 1020 | parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"/> | 1021 | parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"/> |
317 | @@ -1040,12 +1041,12 @@ | |||
318 | 1040 | class="lp.bugs.browser.bugnomination.BugNominationEditView" | 1041 | class="lp.bugs.browser.bugnomination.BugNominationEditView" |
319 | 1041 | permission="launchpad.Driver" | 1042 | permission="launchpad.Driver" |
320 | 1042 | template="../templates/bugnomination-edit-form.pt"/> | 1043 | template="../templates/bugnomination-edit-form.pt"/> |
322 | 1043 | <browser:url | 1044 | <lp:url |
323 | 1044 | for="lp.bugs.interfaces.bugnomination.IBugNomination" | 1045 | for="lp.bugs.interfaces.bugnomination.IBugNomination" |
324 | 1045 | path_expression="string:nominations/${id}" | 1046 | path_expression="string:nominations/${id}" |
325 | 1046 | attribute_to_parent="bug" | 1047 | attribute_to_parent="bug" |
326 | 1047 | rootsite="bugs" /> | 1048 | rootsite="bugs" /> |
328 | 1048 | <browser:url | 1049 | <lp:url |
329 | 1049 | for="lp.bugs.interfaces.bugwatch.IBugWatch" | 1050 | for="lp.bugs.interfaces.bugwatch.IBugWatch" |
330 | 1050 | path_expression="string:+watch/${id}" | 1051 | path_expression="string:+watch/${id}" |
331 | 1051 | attribute_to_parent="bug" | 1052 | attribute_to_parent="bug" |
332 | @@ -1084,7 +1085,7 @@ | |||
333 | 1084 | name="+error-help" | 1085 | name="+error-help" |
334 | 1085 | template="../templates/bugwatch-error-help.pt"/> | 1086 | template="../templates/bugwatch-error-help.pt"/> |
335 | 1086 | </browser:pages> | 1087 | </browser:pages> |
337 | 1087 | <browser:url | 1088 | <lp:url |
338 | 1088 | for="lp.bugs.interfaces.bugwatch.IBugWatchSet" | 1089 | for="lp.bugs.interfaces.bugwatch.IBugWatchSet" |
339 | 1089 | path_expression="string:watches" | 1090 | path_expression="string:watches" |
340 | 1090 | attribute_to_parent="bug"/> | 1091 | attribute_to_parent="bug"/> |
341 | @@ -1116,7 +1117,7 @@ | |||
342 | 1116 | permission="launchpad.AnyPerson" | 1117 | permission="launchpad.AnyPerson" |
343 | 1117 | template="../templates/bugtarget-subscription-list.pt"/> | 1118 | template="../templates/bugtarget-subscription-list.pt"/> |
344 | 1118 | 1119 | ||
346 | 1119 | <browser:url | 1120 | <lp:url |
347 | 1120 | for="lp.bugs.interfaces.structuralsubscription.IStructuralSubscription" | 1121 | for="lp.bugs.interfaces.structuralsubscription.IStructuralSubscription" |
348 | 1121 | path_expression="string:+subscription/${subscriber/name}" | 1122 | path_expression="string:+subscription/${subscriber/name}" |
349 | 1122 | attribute_to_parent="target"/> | 1123 | attribute_to_parent="target"/> |
350 | @@ -1125,7 +1126,7 @@ | |||
351 | 1125 | classes="StructuralSubscriptionNavigation"/> | 1126 | classes="StructuralSubscriptionNavigation"/> |
352 | 1126 | 1127 | ||
353 | 1127 | <!-- Bug Subscription Filters --> | 1128 | <!-- Bug Subscription Filters --> |
355 | 1128 | <browser:url | 1129 | <lp:url |
356 | 1129 | for="lp.bugs.interfaces.bugsubscriptionfilter.IBugSubscriptionFilter" | 1130 | for="lp.bugs.interfaces.bugsubscriptionfilter.IBugSubscriptionFilter" |
357 | 1130 | path_expression="string:+filter/${id}" | 1131 | path_expression="string:+filter/${id}" |
358 | 1131 | attribute_to_parent="structural_subscription" | 1132 | attribute_to_parent="structural_subscription" |
359 | diff --git a/lib/lp/buildmaster/browser/configure.zcml b/lib/lp/buildmaster/browser/configure.zcml | |||
360 | index c1a40b4..83626e1 100644 | |||
361 | --- a/lib/lp/buildmaster/browser/configure.zcml | |||
362 | +++ b/lib/lp/buildmaster/browser/configure.zcml | |||
363 | @@ -6,9 +6,10 @@ | |||
364 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
365 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
366 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
367 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
368 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
369 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
371 | 11 | <browser:url | 12 | <lp:url |
372 | 12 | for="lp.buildmaster.interfaces.processor.IProcessor" | 13 | for="lp.buildmaster.interfaces.processor.IProcessor" |
373 | 13 | path_expression="string:${name}" | 14 | path_expression="string:${name}" |
374 | 14 | parent_utility="lp.buildmaster.interfaces.processor.IProcessorSet" /> | 15 | parent_utility="lp.buildmaster.interfaces.processor.IProcessorSet" /> |
375 | @@ -16,7 +17,7 @@ | |||
376 | 16 | <browser:navigation | 17 | <browser:navigation |
377 | 17 | module="lp.buildmaster.browser.processor" | 18 | module="lp.buildmaster.browser.processor" |
378 | 18 | classes="ProcessorSetNavigation" /> | 19 | classes="ProcessorSetNavigation" /> |
380 | 19 | <browser:url for="lp.buildmaster.interfaces.processor.IProcessorSet" | 20 | <lp:url for="lp.buildmaster.interfaces.processor.IProcessorSet" |
381 | 20 | path_expression="string:+processors" | 21 | path_expression="string:+processors" |
382 | 21 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 22 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
383 | 22 | 23 | ||
384 | @@ -33,7 +34,7 @@ | |||
385 | 33 | permission="launchpad.View" | 34 | permission="launchpad.View" |
386 | 34 | template="../templates/buildfarmjob-current.pt"/> | 35 | template="../templates/buildfarmjob-current.pt"/> |
387 | 35 | 36 | ||
389 | 36 | <browser:url | 37 | <lp:url |
390 | 37 | for="lp.buildmaster.interfaces.builder.IBuilderSet" | 38 | for="lp.buildmaster.interfaces.builder.IBuilderSet" |
391 | 38 | path_expression="string:builders" | 39 | path_expression="string:builders" |
392 | 39 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 40 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
393 | @@ -65,7 +66,7 @@ | |||
394 | 65 | module="lp.buildmaster.browser.builder" | 66 | module="lp.buildmaster.browser.builder" |
395 | 66 | classes=" | 67 | classes=" |
396 | 67 | BuilderNavigation"/> | 68 | BuilderNavigation"/> |
398 | 68 | <browser:url | 69 | <lp:url |
399 | 69 | for="lp.buildmaster.interfaces.builder.IBuilder" | 70 | for="lp.buildmaster.interfaces.builder.IBuilder" |
400 | 70 | path_expression="name" | 71 | path_expression="name" |
401 | 71 | parent_utility="lp.buildmaster.interfaces.builder.IBuilderSet"/> | 72 | parent_utility="lp.buildmaster.interfaces.builder.IBuilderSet"/> |
402 | diff --git a/lib/lp/charms/browser/configure.zcml b/lib/lp/charms/browser/configure.zcml | |||
403 | index 3741679..db532de 100644 | |||
404 | --- a/lib/lp/charms/browser/configure.zcml | |||
405 | +++ b/lib/lp/charms/browser/configure.zcml | |||
406 | @@ -6,9 +6,10 @@ | |||
407 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
408 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
409 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
410 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
411 | 9 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
412 | 10 | <facet facet="overview"> | 11 | <facet facet="overview"> |
414 | 11 | <browser:url | 12 | <lp:url |
415 | 12 | for="lp.charms.interfaces.charmrecipe.ICharmRecipe" | 13 | for="lp.charms.interfaces.charmrecipe.ICharmRecipe" |
416 | 13 | urldata="lp.charms.browser.charmrecipe.CharmRecipeURL" /> | 14 | urldata="lp.charms.browser.charmrecipe.CharmRecipeURL" /> |
417 | 14 | <browser:menus | 15 | <browser:menus |
418 | @@ -77,17 +78,17 @@ | |||
419 | 77 | name="+new-charm-recipe" | 78 | name="+new-charm-recipe" |
420 | 78 | template="../templates/charmrecipe-new.pt" /> | 79 | template="../templates/charmrecipe-new.pt" /> |
421 | 79 | 80 | ||
423 | 80 | <browser:url | 81 | <lp:url |
424 | 81 | for="lp.charms.interfaces.charmrecipe.ICharmRecipeSet" | 82 | for="lp.charms.interfaces.charmrecipe.ICharmRecipeSet" |
425 | 82 | path_expression="string:+charm-recipes" | 83 | path_expression="string:+charm-recipes" |
426 | 83 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> | 84 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> |
427 | 84 | 85 | ||
429 | 85 | <browser:url | 86 | <lp:url |
430 | 86 | for="lp.charms.interfaces.charmrecipe.ICharmRecipeBuildRequest" | 87 | for="lp.charms.interfaces.charmrecipe.ICharmRecipeBuildRequest" |
431 | 87 | path_expression="string:+build-request/${id}" | 88 | path_expression="string:+build-request/${id}" |
432 | 88 | attribute_to_parent="recipe" /> | 89 | attribute_to_parent="recipe" /> |
433 | 89 | 90 | ||
435 | 90 | <browser:url | 91 | <lp:url |
436 | 91 | for="lp.charms.interfaces.charmrecipebuild.ICharmRecipeBuild" | 92 | for="lp.charms.interfaces.charmrecipebuild.ICharmRecipeBuild" |
437 | 92 | path_expression="string:+build/${id}" | 93 | path_expression="string:+build/${id}" |
438 | 93 | attribute_to_parent="recipe" /> | 94 | attribute_to_parent="recipe" /> |
439 | @@ -130,11 +131,11 @@ | |||
440 | 130 | factory="lp.services.webapp.breadcrumb.TitleBreadcrumb" | 131 | factory="lp.services.webapp.breadcrumb.TitleBreadcrumb" |
441 | 131 | permission="zope.Public" /> | 132 | permission="zope.Public" /> |
442 | 132 | 133 | ||
444 | 133 | <browser:url | 134 | <lp:url |
445 | 134 | for="lp.charms.interfaces.charmbase.ICharmBase" | 135 | for="lp.charms.interfaces.charmbase.ICharmBase" |
446 | 135 | path_expression="string:${id}" | 136 | path_expression="string:${id}" |
447 | 136 | parent_utility="lp.charms.interfaces.charmbase.ICharmBaseSet" /> | 137 | parent_utility="lp.charms.interfaces.charmbase.ICharmBaseSet" /> |
449 | 137 | <browser:url | 138 | <lp:url |
450 | 138 | for="lp.charms.interfaces.charmbase.ICharmBaseSet" | 139 | for="lp.charms.interfaces.charmbase.ICharmBaseSet" |
451 | 139 | path_expression="string:+charm-bases" | 140 | path_expression="string:+charm-bases" |
452 | 140 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> | 141 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> |
453 | diff --git a/lib/lp/code/browser/configure.zcml b/lib/lp/code/browser/configure.zcml | |||
454 | index ea9052d..788c7f2 100644 | |||
455 | --- a/lib/lp/code/browser/configure.zcml | |||
456 | +++ b/lib/lp/code/browser/configure.zcml | |||
457 | @@ -6,14 +6,15 @@ | |||
458 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
459 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
460 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
461 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
462 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
463 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
465 | 11 | <browser:url | 12 | <lp:url |
466 | 12 | for="lp.code.interfaces.branch.IBranchSet" | 13 | for="lp.code.interfaces.branch.IBranchSet" |
467 | 13 | path_expression="string:branches" | 14 | path_expression="string:branches" |
468 | 14 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 15 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
469 | 15 | /> | 16 | /> |
471 | 16 | <browser:url | 17 | <lp:url |
472 | 17 | for="lp.code.interfaces.gitrepository.IGitRepositorySet" | 18 | for="lp.code.interfaces.gitrepository.IGitRepositorySet" |
473 | 18 | path_expression="string:+git" | 19 | path_expression="string:+git" |
474 | 19 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 20 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
475 | @@ -95,7 +96,7 @@ | |||
476 | 95 | permission="zope.Public" | 96 | permission="zope.Public" |
477 | 96 | /> | 97 | /> |
478 | 97 | 98 | ||
480 | 98 | <browser:url | 99 | <lp:url |
481 | 99 | for="lp.code.interfaces.codereviewvote.ICodeReviewVoteReference" | 100 | for="lp.code.interfaces.codereviewvote.ICodeReviewVoteReference" |
482 | 100 | path_expression="string:+review/${id}" | 101 | path_expression="string:+review/${id}" |
483 | 101 | attribute_to_parent="branch_merge_proposal" | 102 | attribute_to_parent="branch_merge_proposal" |
484 | @@ -106,7 +107,7 @@ | |||
485 | 106 | class="lp.code.browser.codereviewvote.CodeReviewVoteReassign" | 107 | class="lp.code.browser.codereviewvote.CodeReviewVoteReassign" |
486 | 107 | permission="launchpad.AnyPerson" | 108 | permission="launchpad.AnyPerson" |
487 | 108 | template="../../app/templates/generic-edit.pt"/> | 109 | template="../../app/templates/generic-edit.pt"/> |
489 | 109 | <browser:url | 110 | <lp:url |
490 | 110 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachine" | 111 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachine" |
491 | 111 | path_expression="string:${hostname}" | 112 | path_expression="string:${hostname}" |
492 | 112 | parent_utility="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" | 113 | parent_utility="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" |
493 | @@ -123,7 +124,7 @@ | |||
494 | 123 | <browser:navigation | 124 | <browser:navigation |
495 | 124 | module="lp.code.browser.codeimportmachine" | 125 | module="lp.code.browser.codeimportmachine" |
496 | 125 | classes="CodeImportMachineSetNavigation"/> | 126 | classes="CodeImportMachineSetNavigation"/> |
498 | 126 | <browser:url | 127 | <lp:url |
499 | 127 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" | 128 | for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet" |
500 | 128 | path_expression="string:+machines" | 129 | path_expression="string:+machines" |
501 | 129 | parent_utility="lp.code.interfaces.codeimport.ICodeImportSet" | 130 | parent_utility="lp.code.interfaces.codeimport.ICodeImportSet" |
502 | @@ -137,14 +138,14 @@ | |||
503 | 137 | name="+index" | 138 | name="+index" |
504 | 138 | template="../templates/codeimport-machines.pt" | 139 | template="../templates/codeimport-machines.pt" |
505 | 139 | permission="zope.Public"/> | 140 | permission="zope.Public"/> |
507 | 140 | <browser:url | 141 | <lp:url |
508 | 141 | for="lp.code.interfaces.branchref.IBranchRef" | 142 | for="lp.code.interfaces.branchref.IBranchRef" |
509 | 142 | path_expression="string:.bzr" | 143 | path_expression="string:.bzr" |
510 | 143 | attribute_to_parent="branch"/> | 144 | attribute_to_parent="branch"/> |
511 | 144 | <browser:navigation | 145 | <browser:navigation |
512 | 145 | module="lp.code.browser.branchref" | 146 | module="lp.code.browser.branchref" |
513 | 146 | classes="BranchRefNavigation"/> | 147 | classes="BranchRefNavigation"/> |
515 | 147 | <browser:url | 148 | <lp:url |
516 | 148 | for="lp.code.interfaces.codehosting.IBazaarApplication" | 149 | for="lp.code.interfaces.codehosting.IBazaarApplication" |
517 | 149 | path_expression="string:+code" | 150 | path_expression="string:+code" |
518 | 150 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 151 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
519 | @@ -306,7 +307,7 @@ | |||
520 | 306 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalAddVoteView" | 307 | class="lp.code.browser.branchmergeproposal.BranchMergeProposalAddVoteView" |
521 | 307 | permission="launchpad.AnyPerson" | 308 | permission="launchpad.AnyPerson" |
522 | 308 | template="../templates/branchmergeproposal-vote.pt"/> | 309 | template="../templates/branchmergeproposal-vote.pt"/> |
524 | 309 | <browser:url | 310 | <lp:url |
525 | 310 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" | 311 | for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal" |
526 | 311 | path_expression="string:+merge/${id}" | 312 | path_expression="string:+merge/${id}" |
527 | 312 | attribute_to_parent="parent" | 313 | attribute_to_parent="parent" |
528 | @@ -337,7 +338,7 @@ | |||
529 | 337 | class="lp.code.browser.branchsubscription.BranchSubscriptionEditView" | 338 | class="lp.code.browser.branchsubscription.BranchSubscriptionEditView" |
530 | 338 | permission="launchpad.Edit" | 339 | permission="launchpad.Edit" |
531 | 339 | template="../templates/branchsubscription-edit.pt"/> | 340 | template="../templates/branchsubscription-edit.pt"/> |
533 | 340 | <browser:url | 341 | <lp:url |
534 | 341 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" | 342 | for="lp.code.interfaces.branchsubscription.IBranchSubscription" |
535 | 342 | path_expression="string:+subscription/${person/name}" | 343 | path_expression="string:+subscription/${person/name}" |
536 | 343 | attribute_to_parent="branch" | 344 | attribute_to_parent="branch" |
537 | @@ -345,7 +346,7 @@ | |||
538 | 345 | <browser:defaultView | 346 | <browser:defaultView |
539 | 346 | for="lp.code.interfaces.branch.IBranch" | 347 | for="lp.code.interfaces.branch.IBranch" |
540 | 347 | name="+index"/> | 348 | name="+index"/> |
542 | 348 | <browser:url | 349 | <lp:url |
543 | 349 | for="lp.code.interfaces.branch.IBranch" | 350 | for="lp.code.interfaces.branch.IBranch" |
544 | 350 | urldata="lp.code.browser.branch.BranchURL"/> | 351 | urldata="lp.code.browser.branch.BranchURL"/> |
545 | 351 | <browser:navigation | 352 | <browser:navigation |
546 | @@ -551,7 +552,7 @@ | |||
547 | 551 | BranchContextMenu | 552 | BranchContextMenu |
548 | 552 | BranchEditMenu" | 553 | BranchEditMenu" |
549 | 553 | module="lp.code.browser.branch"/> | 554 | module="lp.code.browser.branch"/> |
551 | 554 | <browser:url | 555 | <lp:url |
552 | 555 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" | 556 | for="lp.code.interfaces.codereviewcomment.ICodeReviewComment" |
553 | 556 | path_expression="string:comments/${id}" | 557 | path_expression="string:comments/${id}" |
554 | 557 | attribute_to_parent="branch_merge_proposal" | 558 | attribute_to_parent="branch_merge_proposal" |
555 | @@ -625,7 +626,7 @@ | |||
556 | 625 | name="+macros" | 626 | name="+macros" |
557 | 626 | permission="zope.Public" | 627 | permission="zope.Public" |
558 | 627 | template="../templates/codeimport-macros.pt"/> | 628 | template="../templates/codeimport-macros.pt"/> |
560 | 628 | <browser:url | 629 | <lp:url |
561 | 629 | for="lp.code.interfaces.codeimport.ICodeImportSet" | 630 | for="lp.code.interfaces.codeimport.ICodeImportSet" |
562 | 630 | path_expression="string:+code-imports" | 631 | path_expression="string:+code-imports" |
563 | 631 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 632 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
564 | @@ -651,7 +652,7 @@ | |||
565 | 651 | name="+new-import" | 652 | name="+new-import" |
566 | 652 | template="../templates/codeimport-new.pt" | 653 | template="../templates/codeimport-new.pt" |
567 | 653 | permission="launchpad.AnyPerson"/> | 654 | permission="launchpad.AnyPerson"/> |
569 | 654 | <browser:url | 655 | <lp:url |
570 | 655 | for="lp.code.interfaces.codeimport.ICodeImport" | 656 | for="lp.code.interfaces.codeimport.ICodeImport" |
571 | 656 | attribute_to_parent="target" | 657 | attribute_to_parent="target" |
572 | 657 | path_expression="string:+code-import" | 658 | path_expression="string:+code-import" |
573 | @@ -812,7 +813,7 @@ | |||
574 | 812 | <browser:defaultView | 813 | <browser:defaultView |
575 | 813 | for="lp.code.interfaces.gitrepository.IGitRepository" | 814 | for="lp.code.interfaces.gitrepository.IGitRepository" |
576 | 814 | name="+index"/> | 815 | name="+index"/> |
578 | 815 | <browser:url | 816 | <lp:url |
579 | 816 | for="lp.code.interfaces.gitrepository.IGitRepository" | 817 | for="lp.code.interfaces.gitrepository.IGitRepository" |
580 | 817 | urldata="lp.code.browser.gitrepository.GitRepositoryURL"/> | 818 | urldata="lp.code.browser.gitrepository.GitRepositoryURL"/> |
581 | 818 | <browser:navigation | 819 | <browser:navigation |
582 | @@ -969,13 +970,13 @@ | |||
583 | 969 | factory="lp.code.browser.gitrepository.GitRepositoryBreadcrumb" | 970 | factory="lp.code.browser.gitrepository.GitRepositoryBreadcrumb" |
584 | 970 | permission="zope.Public"/> | 971 | permission="zope.Public"/> |
585 | 971 | 972 | ||
587 | 972 | <browser:url | 973 | <lp:url |
588 | 973 | for="lp.code.interfaces.revisionstatus.IRevisionStatusReport" | 974 | for="lp.code.interfaces.revisionstatus.IRevisionStatusReport" |
589 | 974 | path_expression="string:+status/${id}" | 975 | path_expression="string:+status/${id}" |
590 | 975 | attribute_to_parent="git_repository" | 976 | attribute_to_parent="git_repository" |
591 | 976 | rootsite="code"/> | 977 | rootsite="code"/> |
592 | 977 | 978 | ||
594 | 978 | <browser:url | 979 | <lp:url |
595 | 979 | for="lp.code.interfaces.revisionstatus.IRevisionStatusArtifact" | 980 | for="lp.code.interfaces.revisionstatus.IRevisionStatusArtifact" |
596 | 980 | path_expression="string:+artifact/${id}" | 981 | path_expression="string:+artifact/${id}" |
597 | 981 | attribute_to_parent="repository" | 982 | attribute_to_parent="repository" |
598 | @@ -988,7 +989,7 @@ | |||
599 | 988 | <browser:defaultView | 989 | <browser:defaultView |
600 | 989 | for="lp.code.interfaces.gitref.IGitRef" | 990 | for="lp.code.interfaces.gitref.IGitRef" |
601 | 990 | name="+index"/> | 991 | name="+index"/> |
603 | 991 | <browser:url | 992 | <lp:url |
604 | 992 | for="lp.code.interfaces.gitref.IGitRef" | 993 | for="lp.code.interfaces.gitref.IGitRef" |
605 | 993 | path_expression="string:+ref/${url_quoted_name}" | 994 | path_expression="string:+ref/${url_quoted_name}" |
606 | 994 | attribute_to_parent="repository" | 995 | attribute_to_parent="repository" |
607 | @@ -1059,7 +1060,7 @@ | |||
608 | 1059 | permission="launchpad.Edit" | 1060 | permission="launchpad.Edit" |
609 | 1060 | name="+index" | 1061 | name="+index" |
610 | 1061 | template="../templates/gitsubscription-edit.pt"/> | 1062 | template="../templates/gitsubscription-edit.pt"/> |
612 | 1062 | <browser:url | 1063 | <lp:url |
613 | 1063 | for="lp.code.interfaces.gitsubscription.IGitSubscription" | 1064 | for="lp.code.interfaces.gitsubscription.IGitSubscription" |
614 | 1064 | path_expression="string:+subscription/${person/name}" | 1065 | path_expression="string:+subscription/${person/name}" |
615 | 1065 | attribute_to_parent="repository" | 1066 | attribute_to_parent="repository" |
616 | @@ -1158,7 +1159,7 @@ | |||
617 | 1158 | layer="lp.code.publisher.CodeLayer" | 1159 | layer="lp.code.publisher.CodeLayer" |
618 | 1159 | name="+branches"/> | 1160 | name="+branches"/> |
619 | 1160 | 1161 | ||
621 | 1161 | <browser:url | 1162 | <lp:url |
622 | 1162 | for="lp.code.interfaces.diff.IPreviewDiff" | 1163 | for="lp.code.interfaces.diff.IPreviewDiff" |
623 | 1163 | path_expression="string:+preview-diff/${id}" | 1164 | path_expression="string:+preview-diff/${id}" |
624 | 1164 | attribute_to_parent="branch_merge_proposal" | 1165 | attribute_to_parent="branch_merge_proposal" |
625 | @@ -1285,12 +1286,12 @@ | |||
626 | 1285 | name="fmt" | 1286 | name="fmt" |
627 | 1286 | /> | 1287 | /> |
628 | 1287 | 1288 | ||
630 | 1288 | <browser:url | 1289 | <lp:url |
631 | 1289 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" | 1290 | for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe" |
632 | 1290 | attribute_to_parent="owner" | 1291 | attribute_to_parent="owner" |
633 | 1291 | path_expression="string:+recipe/${name}" | 1292 | path_expression="string:+recipe/${name}" |
634 | 1292 | rootsite="code" /> | 1293 | rootsite="code" /> |
636 | 1293 | <browser:url | 1294 | <lp:url |
637 | 1294 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" | 1295 | for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild" |
638 | 1295 | attribute_to_parent="archive" | 1296 | attribute_to_parent="archive" |
639 | 1296 | path_expression="string:+recipebuild/${id}" | 1297 | path_expression="string:+recipebuild/${id}" |
640 | @@ -1425,7 +1426,7 @@ | |||
641 | 1425 | factory="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeBreadcrumb" | 1426 | factory="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeBreadcrumb" |
642 | 1426 | permission="zope.Public"/> | 1427 | permission="zope.Public"/> |
643 | 1427 | 1428 | ||
645 | 1428 | <browser:url | 1429 | <lp:url |
646 | 1429 | for="lp.code.interfaces.cibuild.ICIBuild" | 1430 | for="lp.code.interfaces.cibuild.ICIBuild" |
647 | 1430 | path_expression="string:+build/${id}" | 1431 | path_expression="string:+build/${id}" |
648 | 1431 | attribute_to_parent="git_repository"/> | 1432 | attribute_to_parent="git_repository"/> |
649 | diff --git a/lib/lp/oci/browser/configure.zcml b/lib/lp/oci/browser/configure.zcml | |||
650 | index 2140829..ce3c49a 100644 | |||
651 | --- a/lib/lp/oci/browser/configure.zcml | |||
652 | +++ b/lib/lp/oci/browser/configure.zcml | |||
653 | @@ -6,9 +6,10 @@ | |||
654 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
655 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
656 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
657 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
658 | 9 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
659 | 10 | <facet facet="overview"> | 11 | <facet facet="overview"> |
661 | 11 | <browser:url | 12 | <lp:url |
662 | 12 | for="lp.oci.interfaces.ocirecipe.IOCIRecipe" | 13 | for="lp.oci.interfaces.ocirecipe.IOCIRecipe" |
663 | 13 | path_expression="string:${oci_project/pillar/name}/+oci/${oci_project/name}/+recipe/${name}" | 14 | path_expression="string:${oci_project/pillar/name}/+oci/${oci_project/name}/+recipe/${name}" |
664 | 14 | attribute_to_parent="owner" /> | 15 | attribute_to_parent="owner" /> |
665 | @@ -90,11 +91,11 @@ | |||
666 | 90 | factory="lp.oci.browser.ocirecipe.OCIRecipeBreadcrumb" | 91 | factory="lp.oci.browser.ocirecipe.OCIRecipeBreadcrumb" |
667 | 91 | permission="zope.Public" /> | 92 | permission="zope.Public" /> |
668 | 92 | 93 | ||
670 | 93 | <browser:url | 94 | <lp:url |
671 | 94 | for="lp.oci.interfaces.ocirecipe.IOCIRecipeBuildRequest" | 95 | for="lp.oci.interfaces.ocirecipe.IOCIRecipeBuildRequest" |
672 | 95 | path_expression="string:+build-request/${id}" | 96 | path_expression="string:+build-request/${id}" |
673 | 96 | attribute_to_parent="recipe" /> | 97 | attribute_to_parent="recipe" /> |
675 | 97 | <browser:url | 98 | <lp:url |
676 | 98 | for="lp.oci.interfaces.ocirecipebuild.IOCIRecipeBuild" | 99 | for="lp.oci.interfaces.ocirecipebuild.IOCIRecipeBuild" |
677 | 99 | path_expression="string:+build/${id}" | 100 | path_expression="string:+build/${id}" |
678 | 100 | attribute_to_parent="recipe" /> | 101 | attribute_to_parent="recipe" /> |
679 | @@ -137,7 +138,7 @@ | |||
680 | 137 | factory="lp.services.webapp.breadcrumb.TitleBreadcrumb" | 138 | factory="lp.services.webapp.breadcrumb.TitleBreadcrumb" |
681 | 138 | permission="zope.Public" /> | 139 | permission="zope.Public" /> |
682 | 139 | 140 | ||
684 | 140 | <browser:url | 141 | <lp:url |
685 | 141 | for="lp.oci.interfaces.ocipushrule.IOCIPushRule" | 142 | for="lp.oci.interfaces.ocipushrule.IOCIPushRule" |
686 | 142 | path_expression="string:+push-rule/${id}" | 143 | path_expression="string:+push-rule/${id}" |
687 | 143 | attribute_to_parent="recipe" /> | 144 | attribute_to_parent="recipe" /> |
688 | @@ -175,7 +176,7 @@ | |||
689 | 175 | permission="launchpad.AnyPerson" | 176 | permission="launchpad.AnyPerson" |
690 | 176 | name="+addsubscriber" | 177 | name="+addsubscriber" |
691 | 177 | template="../../app/templates/generic-edit.pt"/> | 178 | template="../../app/templates/generic-edit.pt"/> |
693 | 178 | <browser:url | 179 | <lp:url |
694 | 179 | for="lp.oci.interfaces.ocirecipesubscription.IOCIRecipeSubscription" | 180 | for="lp.oci.interfaces.ocirecipesubscription.IOCIRecipeSubscription" |
695 | 180 | path_expression="string:+subscription/${person/name}" | 181 | path_expression="string:+subscription/${person/name}" |
696 | 181 | attribute_to_parent="recipe" | 182 | attribute_to_parent="recipe" |
697 | diff --git a/lib/lp/registry/browser/configure.zcml b/lib/lp/registry/browser/configure.zcml | |||
698 | index 22096c8..2297a7f 100644 | |||
699 | --- a/lib/lp/registry/browser/configure.zcml | |||
700 | +++ b/lib/lp/registry/browser/configure.zcml | |||
701 | @@ -6,24 +6,25 @@ | |||
702 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
703 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
704 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
705 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
706 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
707 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
709 | 11 | <browser:url | 12 | <lp:url |
710 | 12 | for="lp.registry.interfaces.person.IPersonSet" | 13 | for="lp.registry.interfaces.person.IPersonSet" |
711 | 13 | path_expression="string:people" | 14 | path_expression="string:people" |
712 | 14 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 15 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
713 | 15 | /> | 16 | /> |
715 | 16 | <browser:url | 17 | <lp:url |
716 | 17 | for="lp.registry.interfaces.distribution.IDistributionSet" | 18 | for="lp.registry.interfaces.distribution.IDistributionSet" |
717 | 18 | path_expression="string:distros" | 19 | path_expression="string:distros" |
718 | 19 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 20 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
719 | 20 | /> | 21 | /> |
721 | 21 | <browser:url | 22 | <lp:url |
722 | 22 | for="lp.registry.interfaces.sourcepackagename.ISourcePackageNameSet" | 23 | for="lp.registry.interfaces.sourcepackagename.ISourcePackageNameSet" |
723 | 23 | path_expression="string:sourcepackagenames" | 24 | path_expression="string:sourcepackagenames" |
724 | 24 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 25 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
725 | 25 | /> | 26 | /> |
727 | 26 | <browser:url | 27 | <lp:url |
728 | 27 | for="lp.registry.interfaces.projectgroup.IProjectGroupSet" | 28 | for="lp.registry.interfaces.projectgroup.IProjectGroupSet" |
729 | 28 | path_expression="string:projectgroups" | 29 | path_expression="string:projectgroups" |
730 | 29 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 30 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
731 | @@ -32,12 +33,12 @@ | |||
732 | 32 | module="lp.registry.feed.announcement" | 33 | module="lp.registry.feed.announcement" |
733 | 33 | classes="LaunchpadAnnouncementsFeed TargetAnnouncementsFeed" | 34 | classes="LaunchpadAnnouncementsFeed TargetAnnouncementsFeed" |
734 | 34 | /> | 35 | /> |
736 | 35 | <browser:url | 36 | <lp:url |
737 | 36 | for="lp.app.interfaces.services.IServiceFactory" | 37 | for="lp.app.interfaces.services.IServiceFactory" |
738 | 37 | path_expression="string:+services" | 38 | path_expression="string:+services" |
739 | 38 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 39 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
740 | 39 | /> | 40 | /> |
742 | 40 | <browser:url | 41 | <lp:url |
743 | 41 | for="lp.app.interfaces.services.IService" | 42 | for="lp.app.interfaces.services.IService" |
744 | 42 | path_expression="string:${name}" | 43 | path_expression="string:${name}" |
745 | 43 | parent_utility="lp.app.interfaces.services.IServiceFactory"/> | 44 | parent_utility="lp.app.interfaces.services.IServiceFactory"/> |
746 | @@ -63,7 +64,7 @@ | |||
747 | 63 | permission="zope.Public" | 64 | permission="zope.Public" |
748 | 64 | attribute="__call__" | 65 | attribute="__call__" |
749 | 65 | /> | 66 | /> |
751 | 66 | <browser:url | 67 | <lp:url |
752 | 67 | for="lp.registry.interfaces.teammembership.ITeamMembership" | 68 | for="lp.registry.interfaces.teammembership.ITeamMembership" |
753 | 68 | path_expression="string:+member/${person/name}" | 69 | path_expression="string:+member/${person/name}" |
754 | 69 | rootsite="mainsite" | 70 | rootsite="mainsite" |
755 | @@ -97,7 +98,7 @@ | |||
756 | 97 | classes=" | 98 | classes=" |
757 | 98 | DistroSeriesNavigation" | 99 | DistroSeriesNavigation" |
758 | 99 | /> | 100 | /> |
760 | 100 | <browser:url | 101 | <lp:url |
761 | 101 | for="lp.registry.interfaces.distroseries.IDistroSeries" | 102 | for="lp.registry.interfaces.distroseries.IDistroSeries" |
762 | 102 | urldata="lp.registry.browser.distroseries.DistroSeriesURL" | 103 | urldata="lp.registry.browser.distroseries.DistroSeriesURL" |
763 | 103 | /> | 104 | /> |
764 | @@ -210,7 +211,7 @@ | |||
765 | 210 | permission="zope.Public" | 211 | permission="zope.Public" |
766 | 211 | template="../templates/distroseries-localdifferences.pt" | 212 | template="../templates/distroseries-localdifferences.pt" |
767 | 212 | /> | 213 | /> |
769 | 213 | <browser:url | 214 | <lp:url |
770 | 214 | for="lp.registry.interfaces.distroseriesdifference.IDistroSeriesDifference" | 215 | for="lp.registry.interfaces.distroseriesdifference.IDistroSeriesDifference" |
771 | 215 | path_expression="string:+source/${source_package_name/name}/+difference/${parent_series/parent/name}/${parent_series/name}" | 216 | path_expression="string:+source/${source_package_name/name}/+difference/${parent_series/parent/name}/${parent_series/name}" |
772 | 216 | rootsite="mainsite" | 217 | rootsite="mainsite" |
773 | @@ -231,7 +232,7 @@ | |||
774 | 231 | module="lp.registry.browser.distroseriesdifference" | 232 | module="lp.registry.browser.distroseriesdifference" |
775 | 232 | classes="DistroSeriesDifferenceNavigation" | 233 | classes="DistroSeriesDifferenceNavigation" |
776 | 233 | /> | 234 | /> |
778 | 234 | <browser:url | 235 | <lp:url |
779 | 235 | for="..interfaces.distroseriesdifferencecomment.IDistroSeriesDifferenceComment" | 236 | for="..interfaces.distroseriesdifferencecomment.IDistroSeriesDifferenceComment" |
780 | 236 | path_expression="string:comments/${id}" | 237 | path_expression="string:comments/${id}" |
781 | 237 | attribute_to_parent="distro_series_difference" | 238 | attribute_to_parent="distro_series_difference" |
782 | @@ -296,12 +297,12 @@ | |||
783 | 296 | permission="launchpad.AnyPerson" | 297 | permission="launchpad.AnyPerson" |
784 | 297 | template="../templates/signedcodeofconduct-add.pt" | 298 | template="../templates/signedcodeofconduct-add.pt" |
785 | 298 | /> | 299 | /> |
787 | 299 | <browser:url | 300 | <lp:url |
788 | 300 | for="lp.registry.interfaces.codeofconduct.ICodeOfConductSet" | 301 | for="lp.registry.interfaces.codeofconduct.ICodeOfConductSet" |
789 | 301 | path_expression="string:codeofconduct" | 302 | path_expression="string:codeofconduct" |
790 | 302 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 303 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
791 | 303 | /> | 304 | /> |
793 | 304 | <browser:url | 305 | <lp:url |
794 | 305 | for="lp.registry.interfaces.codeofconduct.ICodeOfConduct" | 306 | for="lp.registry.interfaces.codeofconduct.ICodeOfConduct" |
795 | 306 | parent_utility="lp.registry.interfaces.codeofconduct.ICodeOfConductSet" | 307 | parent_utility="lp.registry.interfaces.codeofconduct.ICodeOfConductSet" |
796 | 307 | path_expression="version" | 308 | path_expression="version" |
797 | @@ -344,12 +345,12 @@ | |||
798 | 344 | permission="launchpad.Admin" | 345 | permission="launchpad.Admin" |
799 | 345 | template="../../app/templates/generic-edit.pt" | 346 | template="../../app/templates/generic-edit.pt" |
800 | 346 | /> | 347 | /> |
802 | 347 | <browser:url | 348 | <lp:url |
803 | 348 | for="lp.registry.interfaces.codeofconduct.ISignedCodeOfConductSet" | 349 | for="lp.registry.interfaces.codeofconduct.ISignedCodeOfConductSet" |
804 | 349 | path_expression="string:console" | 350 | path_expression="string:console" |
805 | 350 | parent_utility="lp.registry.interfaces.codeofconduct.ICodeOfConductSet" | 351 | parent_utility="lp.registry.interfaces.codeofconduct.ICodeOfConductSet" |
806 | 351 | /> | 352 | /> |
808 | 352 | <browser:url | 353 | <lp:url |
809 | 353 | for="lp.registry.interfaces.codeofconduct.ISignedCodeOfConduct" | 354 | for="lp.registry.interfaces.codeofconduct.ISignedCodeOfConduct" |
810 | 354 | path_expression="string:${id}" | 355 | path_expression="string:${id}" |
811 | 355 | parent_utility="lp.registry.interfaces.codeofconduct.ISignedCodeOfConductSet" | 356 | parent_utility="lp.registry.interfaces.codeofconduct.ISignedCodeOfConductSet" |
812 | @@ -378,7 +379,7 @@ | |||
813 | 378 | permission="launchpad.Admin" | 379 | permission="launchpad.Admin" |
814 | 379 | template="../../app/templates/generic-edit.pt" | 380 | template="../../app/templates/generic-edit.pt" |
815 | 380 | /> | 381 | /> |
817 | 381 | <browser:url | 382 | <lp:url |
818 | 382 | for="lp.registry.interfaces.irc.IIrcID" | 383 | for="lp.registry.interfaces.irc.IIrcID" |
819 | 383 | path_expression="string:+ircnick/${id}" | 384 | path_expression="string:+ircnick/${id}" |
820 | 384 | attribute_to_parent="person" | 385 | attribute_to_parent="person" |
821 | @@ -495,7 +496,7 @@ | |||
822 | 495 | classes=" | 496 | classes=" |
823 | 496 | ProjectSetNavigation" | 497 | ProjectSetNavigation" |
824 | 497 | /> | 498 | /> |
826 | 498 | <browser:url | 499 | <lp:url |
827 | 499 | for="lp.registry.interfaces.projectgroup.IProjectGroup" | 500 | for="lp.registry.interfaces.projectgroup.IProjectGroup" |
828 | 500 | path_expression="name" | 501 | path_expression="name" |
829 | 501 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 502 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
830 | @@ -520,7 +521,7 @@ | |||
831 | 520 | permission="launchpad.Moderate" | 521 | permission="launchpad.Moderate" |
832 | 521 | template="../../app/templates/generic-edit.pt" | 522 | template="../../app/templates/generic-edit.pt" |
833 | 522 | /> | 523 | /> |
835 | 523 | <browser:url | 524 | <lp:url |
836 | 524 | for="lp.registry.interfaces.projectgroup.IProjectGroupSeries" | 525 | for="lp.registry.interfaces.projectgroup.IProjectGroupSeries" |
837 | 525 | path_expression="string:+series/${name}" | 526 | path_expression="string:+series/${name}" |
838 | 526 | attribute_to_parent="projectgroup" | 527 | attribute_to_parent="projectgroup" |
839 | @@ -549,7 +550,7 @@ | |||
840 | 549 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" | 550 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" |
841 | 550 | layer="lp.answers.publisher.AnswersLayer" | 551 | layer="lp.answers.publisher.AnswersLayer" |
842 | 551 | /> | 552 | /> |
844 | 552 | <browser:url | 553 | <lp:url |
845 | 553 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" | 554 | for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage" |
846 | 554 | urldata="lp.registry.browser.distributionsourcepackage.DistributionSourcePackageURL" | 555 | urldata="lp.registry.browser.distributionsourcepackage.DistributionSourcePackageURL" |
847 | 555 | /> | 556 | /> |
848 | @@ -612,11 +613,11 @@ | |||
849 | 612 | name="+index" | 613 | name="+index" |
850 | 613 | for="lp.registry.interfaces.ociproject.IOCIProject" | 614 | for="lp.registry.interfaces.ociproject.IOCIProject" |
851 | 614 | /> | 615 | /> |
853 | 615 | <browser:url | 616 | <lp:url |
854 | 616 | for="lp.registry.interfaces.ociproject.IOCIProject" | 617 | for="lp.registry.interfaces.ociproject.IOCIProject" |
855 | 617 | urldata="lp.registry.browser.ociproject.OCIProjectURL" | 618 | urldata="lp.registry.browser.ociproject.OCIProjectURL" |
856 | 618 | /> | 619 | /> |
858 | 619 | <browser:url | 620 | <lp:url |
859 | 620 | for="lp.registry.interfaces.ociprojectseries.IOCIProjectSeries" | 621 | for="lp.registry.interfaces.ociprojectseries.IOCIProjectSeries" |
860 | 621 | path_expression="string:+series/${name}" | 622 | path_expression="string:+series/${name}" |
861 | 622 | attribute_to_parent="oci_project" | 623 | attribute_to_parent="oci_project" |
862 | @@ -652,18 +653,18 @@ | |||
863 | 652 | provides="zope.traversing.interfaces.IPathAdapter" | 653 | provides="zope.traversing.interfaces.IPathAdapter" |
864 | 653 | for="lp.registry.interfaces.ociproject.IOCIProject" | 654 | for="lp.registry.interfaces.ociproject.IOCIProject" |
865 | 654 | /> | 655 | /> |
867 | 655 | <browser:url | 656 | <lp:url |
868 | 656 | for="lp.registry.interfaces.commercialsubscription.ICommercialSubscription" | 657 | for="lp.registry.interfaces.commercialsubscription.ICommercialSubscription" |
869 | 657 | path_expression="string:+commercialsubscription/${id}" | 658 | path_expression="string:+commercialsubscription/${id}" |
870 | 658 | attribute_to_parent="pillar" | 659 | attribute_to_parent="pillar" |
871 | 659 | /> | 660 | /> |
873 | 660 | <browser:url | 661 | <lp:url |
874 | 661 | for="lp.registry.interfaces.jabber.IJabberID" | 662 | for="lp.registry.interfaces.jabber.IJabberID" |
875 | 662 | path_expression="string:+jabberid/${jabberid}" | 663 | path_expression="string:+jabberid/${jabberid}" |
876 | 663 | attribute_to_parent="person" | 664 | attribute_to_parent="person" |
877 | 664 | rootsite="api" | 665 | rootsite="api" |
878 | 665 | /> | 666 | /> |
880 | 666 | <browser:url | 667 | <lp:url |
881 | 667 | for="lp.registry.interfaces.pillar.IPillarNameSet" | 668 | for="lp.registry.interfaces.pillar.IPillarNameSet" |
882 | 668 | path_expression="string:pillars" | 669 | path_expression="string:pillars" |
883 | 669 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 670 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
884 | @@ -688,7 +689,7 @@ | |||
885 | 688 | permission="zope.Public" | 689 | permission="zope.Public" |
886 | 689 | template="../templates/pillar-involvement-portlet.pt" | 690 | template="../templates/pillar-involvement-portlet.pt" |
887 | 690 | /> | 691 | /> |
889 | 691 | <browser:url | 692 | <lp:url |
890 | 692 | for="lp.registry.interfaces.karma.IKarmaAction" | 693 | for="lp.registry.interfaces.karma.IKarmaAction" |
891 | 693 | path_expression="name" | 694 | path_expression="name" |
892 | 694 | parent_utility="lp.registry.interfaces.karma.IKarmaActionSet" | 695 | parent_utility="lp.registry.interfaces.karma.IKarmaActionSet" |
893 | @@ -704,7 +705,7 @@ | |||
894 | 704 | permission="launchpad.Admin" | 705 | permission="launchpad.Admin" |
895 | 705 | template="../../app/templates/generic-edit.pt" | 706 | template="../../app/templates/generic-edit.pt" |
896 | 706 | /> | 707 | /> |
898 | 707 | <browser:url | 708 | <lp:url |
899 | 708 | for="lp.registry.interfaces.karma.IKarmaActionSet" | 709 | for="lp.registry.interfaces.karma.IKarmaActionSet" |
900 | 709 | path_expression="string:karmaaction" | 710 | path_expression="string:karmaaction" |
901 | 710 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 711 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
902 | @@ -760,12 +761,12 @@ | |||
903 | 760 | classes=" | 761 | classes=" |
904 | 761 | PollNavigation" | 762 | PollNavigation" |
905 | 762 | /> | 763 | /> |
907 | 763 | <browser:url | 764 | <lp:url |
908 | 764 | for="lp.registry.interfaces.poll.IPoll" | 765 | for="lp.registry.interfaces.poll.IPoll" |
909 | 765 | path_expression="string:+poll/${name}" | 766 | path_expression="string:+poll/${name}" |
910 | 766 | attribute_to_parent="team" | 767 | attribute_to_parent="team" |
911 | 767 | /> | 768 | /> |
913 | 768 | <browser:url | 769 | <lp:url |
914 | 769 | for="lp.registry.interfaces.poll.IPollSet" | 770 | for="lp.registry.interfaces.poll.IPollSet" |
915 | 770 | path_expression="string:+polls" | 771 | path_expression="string:+polls" |
916 | 771 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 772 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
917 | @@ -816,7 +817,7 @@ | |||
918 | 816 | name="+edit" | 817 | name="+edit" |
919 | 817 | for="lp.registry.interfaces.poll.IPollOption" | 818 | for="lp.registry.interfaces.poll.IPollOption" |
920 | 818 | /> | 819 | /> |
922 | 819 | <browser:url | 820 | <lp:url |
923 | 820 | for="lp.registry.interfaces.poll.IPollOption" | 821 | for="lp.registry.interfaces.poll.IPollOption" |
924 | 821 | path_expression="string:+option/${id}" | 822 | path_expression="string:+option/${id}" |
925 | 822 | attribute_to_parent="poll" | 823 | attribute_to_parent="poll" |
926 | @@ -828,7 +829,7 @@ | |||
927 | 828 | permission="launchpad.Edit" | 829 | permission="launchpad.Edit" |
928 | 829 | template="../templates/polloption-edit.pt" | 830 | template="../templates/polloption-edit.pt" |
929 | 830 | /> | 831 | /> |
931 | 831 | <browser:url | 832 | <lp:url |
932 | 832 | for="lp.registry.interfaces.announcement.IAnnouncement" | 833 | for="lp.registry.interfaces.announcement.IAnnouncement" |
933 | 833 | path_expression="string:+announcement/${id}" | 834 | path_expression="string:+announcement/${id}" |
934 | 834 | attribute_to_parent="target" | 835 | attribute_to_parent="target" |
935 | @@ -899,7 +900,7 @@ | |||
936 | 899 | permission="launchpad.Edit" | 900 | permission="launchpad.Edit" |
937 | 900 | template="../templates/announcement-add.pt" | 901 | template="../templates/announcement-add.pt" |
938 | 901 | /> | 902 | /> |
940 | 902 | <browser:url | 903 | <lp:url |
941 | 903 | for="lp.registry.interfaces.announcement.IAnnouncementSet" | 904 | for="lp.registry.interfaces.announcement.IAnnouncementSet" |
942 | 904 | path_expression="string:+announcements" | 905 | path_expression="string:+announcements" |
943 | 905 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 906 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
944 | @@ -969,7 +970,7 @@ | |||
945 | 969 | TeamOverviewNavigationMenu | 970 | TeamOverviewNavigationMenu |
946 | 970 | " | 971 | " |
947 | 971 | /> | 972 | /> |
949 | 972 | <browser:url | 973 | <lp:url |
950 | 973 | for="lp.registry.interfaces.person.IPerson" | 974 | for="lp.registry.interfaces.person.IPerson" |
951 | 974 | path_expression="string:~${name}" | 975 | path_expression="string:~${name}" |
952 | 975 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 976 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
953 | @@ -1532,13 +1533,13 @@ | |||
954 | 1532 | name="+index" | 1533 | name="+index" |
955 | 1533 | for="lp.registry.interfaces.milestone.IMilestoneData" | 1534 | for="lp.registry.interfaces.milestone.IMilestoneData" |
956 | 1534 | /> | 1535 | /> |
958 | 1535 | <browser:url | 1536 | <lp:url |
959 | 1536 | for="lp.registry.interfaces.milestone.IMilestoneData" | 1537 | for="lp.registry.interfaces.milestone.IMilestoneData" |
960 | 1537 | path_expression="string:+milestone/${name}" | 1538 | path_expression="string:+milestone/${name}" |
961 | 1538 | rootsite="mainsite" | 1539 | rootsite="mainsite" |
962 | 1539 | attribute_to_parent="target" | 1540 | attribute_to_parent="target" |
963 | 1540 | /> | 1541 | /> |
965 | 1541 | <browser:url | 1542 | <lp:url |
966 | 1542 | for="lp.registry.interfaces.milestonetag.IProjectGroupMilestoneTag" | 1543 | for="lp.registry.interfaces.milestonetag.IProjectGroupMilestoneTag" |
967 | 1543 | path_expression="string:+tags/${name}" | 1544 | path_expression="string:+tags/${name}" |
968 | 1544 | rootsite="mainsite" | 1545 | rootsite="mainsite" |
969 | @@ -1643,7 +1644,7 @@ | |||
970 | 1643 | permission="launchpad.View" | 1644 | permission="launchpad.View" |
971 | 1644 | template="../templates/message-moderation.pt" | 1645 | template="../templates/message-moderation.pt" |
972 | 1645 | /> | 1646 | /> |
974 | 1646 | <browser:url | 1647 | <lp:url |
975 | 1647 | for="lp.registry.interfaces.wikiname.IWikiName" | 1648 | for="lp.registry.interfaces.wikiname.IWikiName" |
976 | 1648 | path_expression="string:+wikiname/${id}" | 1649 | path_expression="string:+wikiname/${id}" |
977 | 1649 | attribute_to_parent="person" | 1650 | attribute_to_parent="person" |
978 | @@ -1667,7 +1668,7 @@ | |||
979 | 1667 | module="lp.registry.browser.product" | 1668 | module="lp.registry.browser.product" |
980 | 1668 | classes="ProductNavigation" | 1669 | classes="ProductNavigation" |
981 | 1669 | /> | 1670 | /> |
983 | 1670 | <browser:url | 1671 | <lp:url |
984 | 1671 | for="lp.registry.interfaces.product.IProduct" | 1672 | for="lp.registry.interfaces.product.IProduct" |
985 | 1672 | path_expression="name" | 1673 | path_expression="name" |
986 | 1673 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 1674 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
987 | @@ -1721,7 +1722,7 @@ | |||
988 | 1721 | for="lp.registry.interfaces.pillar.IPillarPerson" | 1722 | for="lp.registry.interfaces.pillar.IPillarPerson" |
989 | 1722 | permission="zope.Public" | 1723 | permission="zope.Public" |
990 | 1723 | /> | 1724 | /> |
992 | 1724 | <browser:url | 1725 | <lp:url |
993 | 1725 | for="lp.registry.interfaces.pillar.IPillarPerson" | 1726 | for="lp.registry.interfaces.pillar.IPillarPerson" |
994 | 1726 | path_expression="string:+sharing/${person/name}" | 1727 | path_expression="string:+sharing/${person/name}" |
995 | 1727 | rootsite="mainsite" | 1728 | rootsite="mainsite" |
996 | @@ -1837,12 +1838,12 @@ | |||
997 | 1837 | permission="launchpad.Edit" | 1838 | permission="launchpad.Edit" |
998 | 1838 | template="../../app/templates/generic-edit.pt" | 1839 | template="../../app/templates/generic-edit.pt" |
999 | 1839 | /> | 1840 | /> |
1001 | 1840 | <browser:url | 1841 | <lp:url |
1002 | 1841 | for="lp.registry.interfaces.nameblocklist.INameBlocklistSet" | 1842 | for="lp.registry.interfaces.nameblocklist.INameBlocklistSet" |
1003 | 1842 | path_expression="string:+nameblocklist" | 1843 | path_expression="string:+nameblocklist" |
1004 | 1843 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 1844 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1005 | 1844 | /> | 1845 | /> |
1007 | 1845 | <browser:url | 1846 | <lp:url |
1008 | 1846 | for="lp.registry.interfaces.nameblocklist.INameBlocklist" | 1847 | for="lp.registry.interfaces.nameblocklist.INameBlocklist" |
1009 | 1847 | path_expression="string:${id}" | 1848 | path_expression="string:${id}" |
1010 | 1848 | parent_utility="lp.registry.interfaces.nameblocklist.INameBlocklistSet" | 1849 | parent_utility="lp.registry.interfaces.nameblocklist.INameBlocklistSet" |
1011 | @@ -1896,7 +1897,7 @@ | |||
1012 | 1896 | ProductSetNavigation | 1897 | ProductSetNavigation |
1013 | 1897 | " | 1898 | " |
1014 | 1898 | /> | 1899 | /> |
1016 | 1899 | <browser:url | 1900 | <lp:url |
1017 | 1900 | for="lp.registry.interfaces.product.IProductSet" | 1901 | for="lp.registry.interfaces.product.IProductSet" |
1018 | 1901 | path_expression="string:projects" | 1902 | path_expression="string:projects" |
1019 | 1902 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 1903 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1020 | @@ -1953,7 +1954,7 @@ | |||
1021 | 1953 | classes=" | 1954 | classes=" |
1022 | 1954 | ProductSeriesNavigation" | 1955 | ProductSeriesNavigation" |
1023 | 1955 | /> | 1956 | /> |
1025 | 1956 | <browser:url | 1957 | <lp:url |
1026 | 1957 | for="lp.registry.interfaces.productseries.IProductSeries" | 1958 | for="lp.registry.interfaces.productseries.IProductSeries" |
1027 | 1958 | path_expression="name" | 1959 | path_expression="name" |
1028 | 1959 | attribute_to_parent="product" | 1960 | attribute_to_parent="product" |
1029 | @@ -1962,10 +1963,10 @@ | |||
1030 | 1962 | ITimelinProductSeries. It has been configured to return the | 1963 | ITimelinProductSeries. It has been configured to return the |
1031 | 1963 | same url as IProductSeries. This won't cause a problem when | 1964 | same url as IProductSeries. This won't cause a problem when |
1032 | 1964 | navigating to the url, since ProductNavigation.traverse() just | 1965 | navigating to the url, since ProductNavigation.traverse() just |
1034 | 1965 | returns an IProductSeries object, and browser:url only affects | 1966 | returns an IProductSeries object, and lp:url only affects |
1035 | 1966 | canonical_url(). | 1967 | canonical_url(). |
1036 | 1967 | --> | 1968 | --> |
1038 | 1968 | <browser:url | 1969 | <lp:url |
1039 | 1969 | for="lp.registry.interfaces.productseries.ITimelineProductSeries" | 1970 | for="lp.registry.interfaces.productseries.ITimelineProductSeries" |
1040 | 1970 | path_expression="name" | 1971 | path_expression="name" |
1041 | 1971 | attribute_to_parent="product" | 1972 | attribute_to_parent="product" |
1042 | @@ -2093,7 +2094,7 @@ | |||
1043 | 2093 | class="lp.answers.browser.questiontarget.AskAQuestionButtonPortlet" | 2094 | class="lp.answers.browser.questiontarget.AskAQuestionButtonPortlet" |
1044 | 2094 | permission="zope.Public" | 2095 | permission="zope.Public" |
1045 | 2095 | /> | 2096 | /> |
1047 | 2096 | <browser:url | 2097 | <lp:url |
1048 | 2097 | for="lp.registry.interfaces.productseries.IProductSeriesSet" | 2098 | for="lp.registry.interfaces.productseries.IProductSeriesSet" |
1049 | 2098 | path_expression="string:series" | 2099 | path_expression="string:series" |
1050 | 2099 | parent_utility="lp.code.interfaces.codehosting.IBazaarApplication" | 2100 | parent_utility="lp.code.interfaces.codehosting.IBazaarApplication" |
1051 | @@ -2356,7 +2357,7 @@ | |||
1052 | 2356 | classes=" | 2357 | classes=" |
1053 | 2357 | DistributionSetNavigation" | 2358 | DistributionSetNavigation" |
1054 | 2358 | /> | 2359 | /> |
1056 | 2359 | <browser:url | 2360 | <lp:url |
1057 | 2360 | for="lp.registry.interfaces.distribution.IDistribution" | 2361 | for="lp.registry.interfaces.distribution.IDistribution" |
1058 | 2361 | path_expression="name" | 2362 | path_expression="name" |
1059 | 2362 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 2363 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1060 | @@ -2404,7 +2405,7 @@ | |||
1061 | 2404 | classes=" | 2405 | classes=" |
1062 | 2405 | SourcePackageNavigation" | 2406 | SourcePackageNavigation" |
1063 | 2406 | /> | 2407 | /> |
1065 | 2407 | <browser:url | 2408 | <lp:url |
1066 | 2408 | for="lp.registry.interfaces.sourcepackage.ISourcePackage" | 2409 | for="lp.registry.interfaces.sourcepackage.ISourcePackage" |
1067 | 2409 | path_expression="string:+source/${name}" | 2410 | path_expression="string:+source/${name}" |
1068 | 2410 | attribute_to_parent="distroseries" | 2411 | attribute_to_parent="distroseries" |
1069 | @@ -2460,12 +2461,12 @@ | |||
1070 | 2460 | for="lp.registry.interfaces.productrelease.IProductRelease" | 2461 | for="lp.registry.interfaces.productrelease.IProductRelease" |
1071 | 2461 | permission="launchpad.View" | 2462 | permission="launchpad.View" |
1072 | 2462 | /> | 2463 | /> |
1074 | 2463 | <browser:url | 2464 | <lp:url |
1075 | 2464 | for="lp.registry.interfaces.productrelease.IProductRelease" | 2465 | for="lp.registry.interfaces.productrelease.IProductRelease" |
1076 | 2465 | path_expression="version" | 2466 | path_expression="version" |
1077 | 2466 | attribute_to_parent="productseries" | 2467 | attribute_to_parent="productseries" |
1078 | 2467 | /> | 2468 | /> |
1080 | 2468 | <browser:url | 2469 | <lp:url |
1081 | 2469 | for="lp.registry.interfaces.productrelease.IProductReleaseFile" | 2470 | for="lp.registry.interfaces.productrelease.IProductReleaseFile" |
1082 | 2470 | path_expression="string:+file/${libraryfile/filename}" | 2471 | path_expression="string:+file/${libraryfile/filename}" |
1083 | 2471 | rootsite="api" | 2472 | rootsite="api" |
1084 | @@ -2534,7 +2535,7 @@ | |||
1085 | 2534 | name="+index" | 2535 | name="+index" |
1086 | 2535 | for="lp.registry.interfaces.distributionmirror.IDistributionMirror" | 2536 | for="lp.registry.interfaces.distributionmirror.IDistributionMirror" |
1087 | 2536 | /> | 2537 | /> |
1089 | 2537 | <browser:url | 2538 | <lp:url |
1090 | 2538 | for="lp.registry.interfaces.distributionmirror.IDistributionMirror" | 2539 | for="lp.registry.interfaces.distributionmirror.IDistributionMirror" |
1091 | 2539 | path_expression="string:+mirror/${name}" | 2540 | path_expression="string:+mirror/${name}" |
1092 | 2540 | attribute_to_parent="distribution" | 2541 | attribute_to_parent="distribution" |
1093 | @@ -2631,7 +2632,7 @@ | |||
1094 | 2631 | permission="launchpad.AnyPerson" | 2632 | permission="launchpad.AnyPerson" |
1095 | 2632 | template="../templates/sourcepackage-remove-packaging.pt" | 2633 | template="../templates/sourcepackage-remove-packaging.pt" |
1096 | 2633 | /> | 2634 | /> |
1098 | 2634 | <browser:url | 2635 | <lp:url |
1099 | 2635 | for="lp.registry.interfaces.persondistributionsourcepackage.IPersonDistributionSourcePackage" | 2636 | for="lp.registry.interfaces.persondistributionsourcepackage.IPersonDistributionSourcePackage" |
1100 | 2636 | path_expression="string:${distro_source_package/distribution/name}/+source/${distro_source_package/sourcepackagename/name}" | 2637 | path_expression="string:${distro_source_package/distribution/name}/+source/${distro_source_package/sourcepackagename/name}" |
1101 | 2637 | attribute_to_parent="person" | 2638 | attribute_to_parent="person" |
1102 | @@ -2646,7 +2647,7 @@ | |||
1103 | 2646 | classes=" | 2647 | classes=" |
1104 | 2647 | PersonDistributionSourcePackageFacets" | 2648 | PersonDistributionSourcePackageFacets" |
1105 | 2648 | /> | 2649 | /> |
1107 | 2649 | <browser:url | 2650 | <lp:url |
1108 | 2650 | for="lp.registry.interfaces.personociproject.IPersonOCIProject" | 2651 | for="lp.registry.interfaces.personociproject.IPersonOCIProject" |
1109 | 2651 | path_expression="string:${oci_project/pillar/name}/+oci/${oci_project/name}" | 2652 | path_expression="string:${oci_project/pillar/name}/+oci/${oci_project/name}" |
1110 | 2652 | attribute_to_parent="person" | 2653 | attribute_to_parent="person" |
1111 | @@ -2655,7 +2656,7 @@ | |||
1112 | 2655 | module="lp.registry.browser.personociproject" | 2656 | module="lp.registry.browser.personociproject" |
1113 | 2656 | classes="PersonOCIProjectNavigation" | 2657 | classes="PersonOCIProjectNavigation" |
1114 | 2657 | /> | 2658 | /> |
1116 | 2658 | <browser:url | 2659 | <lp:url |
1117 | 2659 | for="lp.registry.interfaces.personproduct.IPersonProduct" | 2660 | for="lp.registry.interfaces.personproduct.IPersonProduct" |
1118 | 2660 | path_expression="product/name" | 2661 | path_expression="product/name" |
1119 | 2661 | attribute_to_parent="person" | 2662 | attribute_to_parent="person" |
1120 | @@ -2670,13 +2671,13 @@ | |||
1121 | 2670 | classes=" | 2671 | classes=" |
1122 | 2671 | PersonProductFacets" | 2672 | PersonProductFacets" |
1123 | 2672 | /> | 2673 | /> |
1125 | 2673 | <browser:url | 2674 | <lp:url |
1126 | 2674 | for="lp.registry.interfaces.ssh.ISSHKey" | 2675 | for="lp.registry.interfaces.ssh.ISSHKey" |
1127 | 2675 | path_expression="string:+ssh-keys/${id}" | 2676 | path_expression="string:+ssh-keys/${id}" |
1128 | 2676 | rootsite="api" | 2677 | rootsite="api" |
1129 | 2677 | attribute_to_parent="person" | 2678 | attribute_to_parent="person" |
1130 | 2678 | /> | 2679 | /> |
1132 | 2679 | <browser:url | 2680 | <lp:url |
1133 | 2680 | for="lp.registry.interfaces.gpg.IGPGKey" | 2681 | for="lp.registry.interfaces.gpg.IGPGKey" |
1134 | 2681 | path_expression="string:+gpg-keys/${fingerprint}" | 2682 | path_expression="string:+gpg-keys/${fingerprint}" |
1135 | 2682 | rootsite="api" | 2683 | rootsite="api" |
1136 | diff --git a/lib/lp/services/auth/configure.zcml b/lib/lp/services/auth/configure.zcml | |||
1137 | index 984737e..6ae2d20 100644 | |||
1138 | --- a/lib/lp/services/auth/configure.zcml | |||
1139 | +++ b/lib/lp/services/auth/configure.zcml | |||
1140 | @@ -28,7 +28,7 @@ | |||
1141 | 28 | <allow interface="lp.services.auth.interfaces.IAccessTokenSet" /> | 28 | <allow interface="lp.services.auth.interfaces.IAccessTokenSet" /> |
1142 | 29 | </lp:securedutility> | 29 | </lp:securedutility> |
1143 | 30 | 30 | ||
1145 | 31 | <browser:url | 31 | <lp:url |
1146 | 32 | for="lp.services.auth.interfaces.IAccessToken" | 32 | for="lp.services.auth.interfaces.IAccessToken" |
1147 | 33 | path_expression="string:+access-token/${id}" | 33 | path_expression="string:+access-token/${id}" |
1148 | 34 | attribute_to_parent="target" /> | 34 | attribute_to_parent="target" /> |
1149 | diff --git a/lib/lp/services/features/browser/configure.zcml b/lib/lp/services/features/browser/configure.zcml | |||
1150 | index 344dbf8..9346db5 100644 | |||
1151 | --- a/lib/lp/services/features/browser/configure.zcml | |||
1152 | +++ b/lib/lp/services/features/browser/configure.zcml | |||
1153 | @@ -6,10 +6,11 @@ | |||
1154 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
1155 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
1156 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1157 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
1158 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
1159 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
1160 | 11 | 12 | ||
1162 | 12 | <browser:url | 13 | <lp:url |
1163 | 13 | for="lp.services.features.interfaces.IFeatureRules" | 14 | for="lp.services.features.interfaces.IFeatureRules" |
1164 | 14 | path_expression="string:+feature-rules" | 15 | path_expression="string:+feature-rules" |
1165 | 15 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 16 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
1166 | diff --git a/lib/lp/services/identity/configure.zcml b/lib/lp/services/identity/configure.zcml | |||
1167 | index c04e72d..690b52f 100644 | |||
1168 | --- a/lib/lp/services/identity/configure.zcml | |||
1169 | +++ b/lib/lp/services/identity/configure.zcml | |||
1170 | @@ -40,7 +40,7 @@ | |||
1171 | 40 | interface="lp.services.identity.interfaces.emailaddress.IEmailAddressSet"/> | 40 | interface="lp.services.identity.interfaces.emailaddress.IEmailAddressSet"/> |
1172 | 41 | </lp:securedutility> | 41 | </lp:securedutility> |
1173 | 42 | 42 | ||
1175 | 43 | <browser:url | 43 | <lp:url |
1176 | 44 | for="lp.services.identity.interfaces.emailaddress.IEmailAddress" | 44 | for="lp.services.identity.interfaces.emailaddress.IEmailAddress" |
1177 | 45 | path_expression="string:+email/${email}" | 45 | path_expression="string:+email/${email}" |
1178 | 46 | rootsite="api" | 46 | rootsite="api" |
1179 | diff --git a/lib/lp/services/messages/browser/configure.zcml b/lib/lp/services/messages/browser/configure.zcml | |||
1180 | index 0413ba9..a86cecf 100644 | |||
1181 | --- a/lib/lp/services/messages/browser/configure.zcml | |||
1182 | +++ b/lib/lp/services/messages/browser/configure.zcml | |||
1183 | @@ -1,9 +1,9 @@ | |||
1184 | 1 | <configure | 1 | <configure |
1185 | 2 | xmlns="http://namespaces.zope.org/zope" | 2 | xmlns="http://namespaces.zope.org/zope" |
1186 | 3 | xmlns:browser="http://namespaces.zope.org/browser" | ||
1187 | 4 | xmlns:i18n="http://namespaces.zope.org/i18n" | 3 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1188 | 4 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
1189 | 5 | i18n_domain="launchpad"> | 5 | i18n_domain="launchpad"> |
1191 | 6 | <browser:url | 6 | <lp:url |
1192 | 7 | for="lp.services.messages.interfaces.messagerevision.IMessageRevision" | 7 | for="lp.services.messages.interfaces.messagerevision.IMessageRevision" |
1193 | 8 | path_expression="string:revisions/${revision}" | 8 | path_expression="string:revisions/${revision}" |
1194 | 9 | attribute_to_parent="message_implementation" /> | 9 | attribute_to_parent="message_implementation" /> |
1195 | diff --git a/lib/lp/services/statistics/browser/configure.zcml b/lib/lp/services/statistics/browser/configure.zcml | |||
1196 | index d30cc51..04ab11e 100644 | |||
1197 | --- a/lib/lp/services/statistics/browser/configure.zcml | |||
1198 | +++ b/lib/lp/services/statistics/browser/configure.zcml | |||
1199 | @@ -2,9 +2,10 @@ | |||
1200 | 2 | xmlns="http://namespaces.zope.org/zope" | 2 | xmlns="http://namespaces.zope.org/zope" |
1201 | 3 | xmlns:browser="http://namespaces.zope.org/browser" | 3 | xmlns:browser="http://namespaces.zope.org/browser" |
1202 | 4 | xmlns:i18n="http://namespaces.zope.org/i18n" | 4 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1203 | 5 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
1204 | 5 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 6 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
1205 | 6 | i18n_domain="launchpad"> | 7 | i18n_domain="launchpad"> |
1207 | 7 | <browser:url | 8 | <lp:url |
1208 | 8 | for="lp.services.statistics.interfaces.statistic.ILaunchpadStatisticSet" | 9 | for="lp.services.statistics.interfaces.statistic.ILaunchpadStatisticSet" |
1209 | 9 | path_expression="string:+statistics" | 10 | path_expression="string:+statistics" |
1210 | 10 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 11 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
1211 | @@ -20,4 +21,4 @@ | |||
1212 | 20 | name="+index" | 21 | name="+index" |
1213 | 21 | template="../templates/launchpadstatisticset-index.pt"/> | 22 | template="../templates/launchpadstatisticset-index.pt"/> |
1214 | 22 | </browser:pages> | 23 | </browser:pages> |
1215 | 23 | </configure> | ||
1216 | 24 | \ No newline at end of file | 24 | \ No newline at end of file |
1217 | 25 | </configure> | ||
1218 | diff --git a/lib/lp/services/temporaryblobstorage/configure.zcml b/lib/lp/services/temporaryblobstorage/configure.zcml | |||
1219 | index e696b52..598ebfa 100644 | |||
1220 | --- a/lib/lp/services/temporaryblobstorage/configure.zcml | |||
1221 | +++ b/lib/lp/services/temporaryblobstorage/configure.zcml | |||
1222 | @@ -43,12 +43,12 @@ | |||
1223 | 43 | classes="TemporaryBlobStorageNavigation" | 43 | classes="TemporaryBlobStorageNavigation" |
1224 | 44 | /> | 44 | /> |
1225 | 45 | 45 | ||
1227 | 46 | <browser:url | 46 | <lp:url |
1228 | 47 | for="lp.services.temporaryblobstorage.interfaces.ITemporaryBlobStorage" | 47 | for="lp.services.temporaryblobstorage.interfaces.ITemporaryBlobStorage" |
1229 | 48 | urldata="lp.services.temporaryblobstorage.browser.TemporaryBlobStorageURL" | 48 | urldata="lp.services.temporaryblobstorage.browser.TemporaryBlobStorageURL" |
1230 | 49 | parent_utility="lp.services.webservice.interfaces.IWebServiceApplication"/> | 49 | parent_utility="lp.services.webservice.interfaces.IWebServiceApplication"/> |
1231 | 50 | 50 | ||
1233 | 51 | <browser:url | 51 | <lp:url |
1234 | 52 | for="lp.services.temporaryblobstorage.interfaces.ITemporaryStorageManager" | 52 | for="lp.services.temporaryblobstorage.interfaces.ITemporaryStorageManager" |
1235 | 53 | path_expression="string:temporary-blobs" | 53 | path_expression="string:temporary-blobs" |
1236 | 54 | parent_utility="lp.services.webservice.interfaces.IWebServiceApplication"/> | 54 | parent_utility="lp.services.webservice.interfaces.IWebServiceApplication"/> |
1237 | diff --git a/lib/lp/services/verification/browser/configure.zcml b/lib/lp/services/verification/browser/configure.zcml | |||
1238 | index 856da04..a3a0765 100644 | |||
1239 | --- a/lib/lp/services/verification/browser/configure.zcml | |||
1240 | +++ b/lib/lp/services/verification/browser/configure.zcml | |||
1241 | @@ -2,9 +2,9 @@ | |||
1242 | 2 | xmlns="http://namespaces.zope.org/zope" | 2 | xmlns="http://namespaces.zope.org/zope" |
1243 | 3 | xmlns:browser="http://namespaces.zope.org/browser" | 3 | xmlns:browser="http://namespaces.zope.org/browser" |
1244 | 4 | xmlns:i18n="http://namespaces.zope.org/i18n" | 4 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1246 | 5 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 5 | xmlns:lp="http://namespaces.canonical.com/lp" |
1247 | 6 | i18n_domain="launchpad"> | 6 | i18n_domain="launchpad"> |
1249 | 7 | <browser:url | 7 | <lp:url |
1250 | 8 | for="lp.services.verification.interfaces.logintoken.ILoginTokenSet" | 8 | for="lp.services.verification.interfaces.logintoken.ILoginTokenSet" |
1251 | 9 | path_expression="string:token" | 9 | path_expression="string:token" |
1252 | 10 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 10 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1253 | @@ -14,7 +14,7 @@ | |||
1254 | 14 | <browser:defaultView | 14 | <browser:defaultView |
1255 | 15 | for="lp.services.verification.interfaces.logintoken.ILoginToken" | 15 | for="lp.services.verification.interfaces.logintoken.ILoginToken" |
1256 | 16 | name="+index"/> | 16 | name="+index"/> |
1258 | 17 | <browser:url | 17 | <lp:url |
1259 | 18 | for="lp.services.verification.interfaces.logintoken.ILoginToken" | 18 | for="lp.services.verification.interfaces.logintoken.ILoginToken" |
1260 | 19 | path_expression="token" | 19 | path_expression="token" |
1261 | 20 | parent_utility="lp.services.verification.interfaces.logintoken.ILoginTokenSet"/> | 20 | parent_utility="lp.services.verification.interfaces.logintoken.ILoginTokenSet"/> |
1262 | diff --git a/lib/lp/services/webapp/doc/canonical_url.rst b/lib/lp/services/webapp/doc/canonical_url.rst | |||
1263 | index 32123e4..f2825cc 100644 | |||
1264 | --- a/lib/lp/services/webapp/doc/canonical_url.rst | |||
1265 | +++ b/lib/lp/services/webapp/doc/canonical_url.rst | |||
1266 | @@ -3,10 +3,10 @@ Canonical URLs | |||
1267 | 3 | 3 | ||
1268 | 4 | https://launchpad.canonical.com/CanonicalUrls | 4 | https://launchpad.canonical.com/CanonicalUrls |
1269 | 5 | 5 | ||
1272 | 6 | The browser:url ZCML directive | 6 | The lp:url ZCML directive |
1273 | 7 | ------------------------------ | 7 | ------------------------- |
1274 | 8 | 8 | ||
1276 | 9 | The browser:url directive registers an ICanonicalUrlData adapter. | 9 | The lp:url directive registers an ICanonicalUrlData adapter. |
1277 | 10 | 10 | ||
1278 | 11 | In this test, we'll use a URL hierarchy /countries/England/+towns/London | 11 | In this test, we'll use a URL hierarchy /countries/England/+towns/London |
1279 | 12 | 12 | ||
1280 | @@ -31,7 +31,7 @@ will put in a temporary module. | |||
1281 | 31 | ... | 31 | ... |
1282 | 32 | 32 | ||
1283 | 33 | >>> class ITown(Interface): | 33 | >>> class ITown(Interface): |
1285 | 34 | ... """Dummy interface for use in browser:url tests.""" | 34 | ... """Dummy interface for use in lp:url tests.""" |
1286 | 35 | ... | 35 | ... |
1287 | 36 | ... __module__ = module.__name__ | 36 | ... __module__ = module.__name__ |
1288 | 37 | ... country = Attribute("the country the town is in") | 37 | ... country = Attribute("the country the town is in") |
1289 | @@ -118,16 +118,16 @@ Next, we check there are no ICanonicalUrlData adapters for these objects. | |||
1290 | 118 | ... assert ICanonicalUrlData(obj, None) is None | 118 | ... assert ICanonicalUrlData(obj, None) is None |
1291 | 119 | ... | 119 | ... |
1292 | 120 | 120 | ||
1294 | 121 | Configure a browser:url for ITown. Our first attempt fails because we | 121 | Configure a lp:url for ITown. Our first attempt fails because we |
1295 | 122 | mistyped 'countryOopsTypo', and there is no such name in ITown. | 122 | mistyped 'countryOopsTypo', and there is no such name in ITown. |
1296 | 123 | 123 | ||
1297 | 124 | >>> from zope.configuration import xmlconfig | 124 | >>> from zope.configuration import xmlconfig |
1298 | 125 | >>> zcmlcontext = xmlconfig.string( | 125 | >>> zcmlcontext = xmlconfig.string( |
1299 | 126 | ... """ | 126 | ... """ |
1301 | 127 | ... <configure xmlns:browser="http://namespaces.zope.org/browser"> | 127 | ... <configure xmlns:lp="http://namespaces.canonical.com/lp"> |
1302 | 128 | ... <include package="zope.component" file="meta.zcml" /> | 128 | ... <include package="zope.component" file="meta.zcml" /> |
1303 | 129 | ... <include package="lp.services.webapp" file="meta.zcml" /> | 129 | ... <include package="lp.services.webapp" file="meta.zcml" /> |
1305 | 130 | ... <browser:url | 130 | ... <lp:url |
1306 | 131 | ... for="{module_name}.ITown" | 131 | ... for="{module_name}.ITown" |
1307 | 132 | ... path_expression="string:+towns/${{name}}" | 132 | ... path_expression="string:+towns/${{name}}" |
1308 | 133 | ... attribute_to_parent="countryOopsTypo" | 133 | ... attribute_to_parent="countryOopsTypo" |
1309 | @@ -144,9 +144,9 @@ mistyped 'countryOopsTypo', and there is no such name in ITown. | |||
1310 | 144 | 144 | ||
1311 | 145 | >>> zcmlcontext = xmlconfig.string( | 145 | >>> zcmlcontext = xmlconfig.string( |
1312 | 146 | ... """ | 146 | ... """ |
1314 | 147 | ... <configure xmlns:browser="http://namespaces.zope.org/browser"> | 147 | ... <configure xmlns:lp="http://namespaces.canonical.com/lp"> |
1315 | 148 | ... <include package="lp.services.webapp" file="meta.zcml" /> | 148 | ... <include package="lp.services.webapp" file="meta.zcml" /> |
1317 | 149 | ... <browser:url | 149 | ... <lp:url |
1318 | 150 | ... for="{module_name}.ITown" | 150 | ... for="{module_name}.ITown" |
1319 | 151 | ... path_expression="string:+towns/${{name}}" | 151 | ... path_expression="string:+towns/${{name}}" |
1320 | 152 | ... attribute_to_parent="country" | 152 | ... attribute_to_parent="country" |
1321 | @@ -179,7 +179,7 @@ at it from zcml. I'll put it in our temporary module. | |||
1322 | 179 | ... """ | 179 | ... """ |
1323 | 180 | ... <configure | 180 | ... <configure |
1324 | 181 | ... xmlns="http://namespaces.zope.org/zope" | 181 | ... xmlns="http://namespaces.zope.org/zope" |
1326 | 182 | ... xmlns:browser="http://namespaces.zope.org/browser"> | 182 | ... xmlns:lp="http://namespaces.canonical.com/lp"> |
1327 | 183 | ... <include package="zope.component" file="meta.zcml" /> | 183 | ... <include package="zope.component" file="meta.zcml" /> |
1328 | 184 | ... <include package="lp.services.webapp" file="meta.zcml" /> | 184 | ... <include package="lp.services.webapp" file="meta.zcml" /> |
1329 | 185 | ... <configure package="zope.security"> | 185 | ... <configure package="zope.security"> |
1330 | @@ -189,7 +189,7 @@ at it from zcml. I'll put it in our temporary module. | |||
1331 | 189 | ... provides="{module_name}.ICountrySet" | 189 | ... provides="{module_name}.ICountrySet" |
1332 | 190 | ... component="{module_name}.countryset_instance" | 190 | ... component="{module_name}.countryset_instance" |
1333 | 191 | ... /> | 191 | ... /> |
1335 | 192 | ... <browser:url | 192 | ... <lp:url |
1336 | 193 | ... for="{module_name}.ICountry" | 193 | ... for="{module_name}.ICountry" |
1337 | 194 | ... path_expression="name" | 194 | ... path_expression="name" |
1338 | 195 | ... parent_utility="{module_name}.ICountrySet" | 195 | ... parent_utility="{module_name}.ICountrySet" |
1339 | @@ -211,7 +211,7 @@ Now, there is an ICanonicalUrlData registered for ICountry. | |||
1340 | 211 | >>> country_urldata.inside is countryset_instance | 211 | >>> country_urldata.inside is countryset_instance |
1341 | 212 | True | 212 | True |
1342 | 213 | 213 | ||
1344 | 214 | We need to specify a browser:url for ICountrySet. We'll use a variation on | 214 | We need to specify an lp:url for ICountrySet. We'll use a variation on |
1345 | 215 | the zcml that allows us to directly set an ICanonicalUrlData adapter to use. | 215 | the zcml that allows us to directly set an ICanonicalUrlData adapter to use. |
1346 | 216 | The adapter will make its parent the ILaunchpadRoot utility. This is not the | 216 | The adapter will make its parent the ILaunchpadRoot utility. This is not the |
1347 | 217 | normal way to do this. Normally, we'd just say | 217 | normal way to do this. Normally, we'd just say |
1348 | @@ -243,9 +243,9 @@ in our temporary module. | |||
1349 | 243 | 243 | ||
1350 | 244 | >>> zcmlcontext = xmlconfig.string( | 244 | >>> zcmlcontext = xmlconfig.string( |
1351 | 245 | ... """ | 245 | ... """ |
1353 | 246 | ... <configure xmlns:browser="http://namespaces.zope.org/browser"> | 246 | ... <configure xmlns:lp="http://namespaces.canonical.com/lp"> |
1354 | 247 | ... <include package="lp.services.webapp" file="meta.zcml" /> | 247 | ... <include package="lp.services.webapp" file="meta.zcml" /> |
1356 | 248 | ... <browser:url | 248 | ... <lp:url |
1357 | 249 | ... for="{module_name}.ICountrySet" | 249 | ... for="{module_name}.ICountrySet" |
1358 | 250 | ... urldata="{module_name}.CountrySetUrl" | 250 | ... urldata="{module_name}.CountrySetUrl" |
1359 | 251 | ... /> | 251 | ... /> |
1360 | @@ -485,14 +485,14 @@ And if the configuration does provide a rootsite: | |||
1361 | 485 | ... """ | 485 | ... """ |
1362 | 486 | ... <configure | 486 | ... <configure |
1363 | 487 | ... xmlns="http://namespaces.zope.org/zope" | 487 | ... xmlns="http://namespaces.zope.org/zope" |
1365 | 488 | ... xmlns:browser="http://namespaces.zope.org/browser"> | 488 | ... xmlns:lp="http://namespaces.canonical.com/lp"> |
1366 | 489 | ... <include package="zope.component" file="meta.zcml" /> | 489 | ... <include package="zope.component" file="meta.zcml" /> |
1367 | 490 | ... <include package="lp.services.webapp" file="meta.zcml" /> | 490 | ... <include package="lp.services.webapp" file="meta.zcml" /> |
1368 | 491 | ... <utility | 491 | ... <utility |
1369 | 492 | ... provides="{module_name}.ICountrySet" | 492 | ... provides="{module_name}.ICountrySet" |
1370 | 493 | ... component="{module_name}.countryset_instance" | 493 | ... component="{module_name}.countryset_instance" |
1371 | 494 | ... /> | 494 | ... /> |
1373 | 495 | ... <browser:url | 495 | ... <lp:url |
1374 | 496 | ... for="{module_name}.ICountry" | 496 | ... for="{module_name}.ICountry" |
1375 | 497 | ... path_expression="name" | 497 | ... path_expression="name" |
1376 | 498 | ... parent_utility="{module_name}.ICountrySet" | 498 | ... parent_utility="{module_name}.ICountrySet" |
1377 | diff --git a/lib/lp/services/webapp/doc/zcmldirectives.rst b/lib/lp/services/webapp/doc/zcmldirectives.rst | |||
1378 | index 49e5434..ec7708e 100644 | |||
1379 | --- a/lib/lp/services/webapp/doc/zcmldirectives.rst | |||
1380 | +++ b/lib/lp/services/webapp/doc/zcmldirectives.rst | |||
1381 | @@ -6,7 +6,7 @@ We have a bunch of custom zcml directives in Launchpad. | |||
1382 | 6 | Canonical URLs | 6 | Canonical URLs |
1383 | 7 | -------------- | 7 | -------------- |
1384 | 8 | 8 | ||
1386 | 9 | See canonical_url.rst for information and tests of the browser:url directive. | 9 | See canonical_url.rst for information and tests of the lp:url directive. |
1387 | 10 | 10 | ||
1388 | 11 | 11 | ||
1389 | 12 | A zcml context for zcml directive unittests | 12 | A zcml context for zcml directive unittests |
1390 | diff --git a/lib/lp/services/webapp/meta.zcml b/lib/lp/services/webapp/meta.zcml | |||
1391 | index 04d8934..8d59765 100644 | |||
1392 | --- a/lib/lp/services/webapp/meta.zcml | |||
1393 | +++ b/lib/lp/services/webapp/meta.zcml | |||
1394 | @@ -5,7 +5,7 @@ | |||
1395 | 5 | <configure xmlns="http://namespaces.zope.org/meta"> | 5 | <configure xmlns="http://namespaces.zope.org/meta"> |
1396 | 6 | 6 | ||
1397 | 7 | <directive | 7 | <directive |
1399 | 8 | namespace="http://namespaces.zope.org/browser" | 8 | namespace="http://namespaces.canonical.com/lp" |
1400 | 9 | name="url" | 9 | name="url" |
1401 | 10 | schema="lp.services.webapp.metazcml.IURLDirective" | 10 | schema="lp.services.webapp.metazcml.IURLDirective" |
1402 | 11 | handler="lp.services.webapp.metazcml.url" | 11 | handler="lp.services.webapp.metazcml.url" |
1403 | diff --git a/lib/lp/services/webapp/metazcml.py b/lib/lp/services/webapp/metazcml.py | |||
1404 | index 6f34f26..5576f9f 100644 | |||
1405 | --- a/lib/lp/services/webapp/metazcml.py | |||
1406 | +++ b/lib/lp/services/webapp/metazcml.py | |||
1407 | @@ -403,7 +403,7 @@ def url( | |||
1408 | 403 | parent_utility=None, | 403 | parent_utility=None, |
1409 | 404 | rootsite=None, | 404 | rootsite=None, |
1410 | 405 | ): | 405 | ): |
1412 | 406 | """browser:url directive handler.""" | 406 | """lp:url directive handler.""" |
1413 | 407 | if not attribute_to_parent and not parent_utility and not urldata: | 407 | if not attribute_to_parent and not parent_utility and not urldata: |
1414 | 408 | raise TypeError( | 408 | raise TypeError( |
1415 | 409 | "Must provide attribute_to_parent, urldata or parent_utility." | 409 | "Must provide attribute_to_parent, urldata or parent_utility." |
1416 | diff --git a/lib/lp/services/webhooks/configure.zcml b/lib/lp/services/webhooks/configure.zcml | |||
1417 | index d35fe99..f93d21c 100644 | |||
1418 | --- a/lib/lp/services/webhooks/configure.zcml | |||
1419 | +++ b/lib/lp/services/webhooks/configure.zcml | |||
1420 | @@ -70,7 +70,7 @@ | |||
1421 | 70 | factory="lp.services.webhooks.payload.WebhookAbsoluteURL" | 70 | factory="lp.services.webhooks.payload.WebhookAbsoluteURL" |
1422 | 71 | /> | 71 | /> |
1423 | 72 | 72 | ||
1425 | 73 | <browser:url | 73 | <lp:url |
1426 | 74 | for="lp.services.webhooks.interfaces.IWebhook" | 74 | for="lp.services.webhooks.interfaces.IWebhook" |
1427 | 75 | path_expression="string:+webhook/${id}" | 75 | path_expression="string:+webhook/${id}" |
1428 | 76 | attribute_to_parent="target" | 76 | attribute_to_parent="target" |
1429 | @@ -78,7 +78,7 @@ | |||
1430 | 78 | <browser:navigation | 78 | <browser:navigation |
1431 | 79 | module="lp.services.webhooks.browser" classes="WebhookNavigation" /> | 79 | module="lp.services.webhooks.browser" classes="WebhookNavigation" /> |
1432 | 80 | 80 | ||
1434 | 81 | <browser:url | 81 | <lp:url |
1435 | 82 | for="lp.services.webhooks.interfaces.IWebhookDeliveryJob" | 82 | for="lp.services.webhooks.interfaces.IWebhookDeliveryJob" |
1436 | 83 | path_expression="string:+delivery/${job_id}" | 83 | path_expression="string:+delivery/${job_id}" |
1437 | 84 | attribute_to_parent="webhook" | 84 | attribute_to_parent="webhook" |
1438 | diff --git a/lib/lp/services/worlddata/browser/configure.zcml b/lib/lp/services/worlddata/browser/configure.zcml | |||
1439 | index 2e94fa3..9315d35 100644 | |||
1440 | --- a/lib/lp/services/worlddata/browser/configure.zcml | |||
1441 | +++ b/lib/lp/services/worlddata/browser/configure.zcml | |||
1442 | @@ -6,16 +6,17 @@ | |||
1443 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
1444 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
1445 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1446 | 9 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
1447 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 10 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" |
1448 | 10 | i18n_domain="launchpad"> | 11 | i18n_domain="launchpad"> |
1449 | 11 | 12 | ||
1451 | 12 | <browser:url | 13 | <lp:url |
1452 | 13 | for="lp.services.worlddata.interfaces.country.ICountry" | 14 | for="lp.services.worlddata.interfaces.country.ICountry" |
1453 | 14 | path_expression="iso3166code2" | 15 | path_expression="iso3166code2" |
1454 | 15 | parent_utility="lp.services.worlddata.interfaces.country.ICountrySet" | 16 | parent_utility="lp.services.worlddata.interfaces.country.ICountrySet" |
1455 | 16 | rootsite="mainsite" /> | 17 | rootsite="mainsite" /> |
1456 | 17 | 18 | ||
1458 | 18 | <browser:url | 19 | <lp:url |
1459 | 19 | for="lp.services.worlddata.interfaces.country.ICountrySet" | 20 | for="lp.services.worlddata.interfaces.country.ICountrySet" |
1460 | 20 | path_expression="string:+countries" | 21 | path_expression="string:+countries" |
1461 | 21 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 22 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1462 | diff --git a/lib/lp/snappy/browser/configure.zcml b/lib/lp/snappy/browser/configure.zcml | |||
1463 | index 21d849f..f2d8fa3 100644 | |||
1464 | --- a/lib/lp/snappy/browser/configure.zcml | |||
1465 | +++ b/lib/lp/snappy/browser/configure.zcml | |||
1466 | @@ -6,10 +6,10 @@ | |||
1467 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
1468 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
1469 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1471 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 9 | xmlns:lp="http://namespaces.canonical.com/lp" |
1472 | 10 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
1473 | 11 | <facet facet="overview"> | 11 | <facet facet="overview"> |
1475 | 12 | <browser:url | 12 | <lp:url |
1476 | 13 | for="lp.snappy.interfaces.snap.ISnap" | 13 | for="lp.snappy.interfaces.snap.ISnap" |
1477 | 14 | urldata="lp.snappy.browser.snap.SnapURL" /> | 14 | urldata="lp.snappy.browser.snap.SnapURL" /> |
1478 | 15 | <browser:defaultView | 15 | <browser:defaultView |
1479 | @@ -68,7 +68,7 @@ | |||
1480 | 68 | permission="launchpad.AnyPerson" | 68 | permission="launchpad.AnyPerson" |
1481 | 69 | name="+addsubscriber" | 69 | name="+addsubscriber" |
1482 | 70 | template="../../app/templates/generic-edit.pt"/> | 70 | template="../../app/templates/generic-edit.pt"/> |
1484 | 71 | <browser:url | 71 | <lp:url |
1485 | 72 | for="lp.snappy.interfaces.snapsubscription.ISnapSubscription" | 72 | for="lp.snappy.interfaces.snapsubscription.ISnapSubscription" |
1486 | 73 | path_expression="string:+subscription/${person/name}" | 73 | path_expression="string:+subscription/${person/name}" |
1487 | 74 | attribute_to_parent="snap" | 74 | attribute_to_parent="snap" |
1488 | @@ -127,15 +127,15 @@ | |||
1489 | 127 | for="lp.snappy.interfaces.snap.ISnap" | 127 | for="lp.snappy.interfaces.snap.ISnap" |
1490 | 128 | factory="lp.snappy.browser.snap.SnapBreadcrumb" | 128 | factory="lp.snappy.browser.snap.SnapBreadcrumb" |
1491 | 129 | permission="zope.Public" /> | 129 | permission="zope.Public" /> |
1493 | 130 | <browser:url | 130 | <lp:url |
1494 | 131 | for="lp.snappy.interfaces.snap.ISnapSet" | 131 | for="lp.snappy.interfaces.snap.ISnapSet" |
1495 | 132 | path_expression="string:+snaps" | 132 | path_expression="string:+snaps" |
1496 | 133 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> | 133 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> |
1498 | 134 | <browser:url | 134 | <lp:url |
1499 | 135 | for="lp.snappy.interfaces.snap.ISnapBuildRequest" | 135 | for="lp.snappy.interfaces.snap.ISnapBuildRequest" |
1500 | 136 | path_expression="string:+build-request/${id}" | 136 | path_expression="string:+build-request/${id}" |
1501 | 137 | attribute_to_parent="snap" /> | 137 | attribute_to_parent="snap" /> |
1503 | 138 | <browser:url | 138 | <lp:url |
1504 | 139 | for="lp.snappy.interfaces.snapbuild.ISnapBuild" | 139 | for="lp.snappy.interfaces.snapbuild.ISnapBuild" |
1505 | 140 | path_expression="string:+build/${id}" | 140 | path_expression="string:+build/${id}" |
1506 | 141 | attribute_to_parent="snap" /> | 141 | attribute_to_parent="snap" /> |
1507 | @@ -177,22 +177,22 @@ | |||
1508 | 177 | for="lp.snappy.interfaces.snapbuild.ISnapBuild" | 177 | for="lp.snappy.interfaces.snapbuild.ISnapBuild" |
1509 | 178 | factory="lp.services.webapp.breadcrumb.TitleBreadcrumb" | 178 | factory="lp.services.webapp.breadcrumb.TitleBreadcrumb" |
1510 | 179 | permission="zope.Public" /> | 179 | permission="zope.Public" /> |
1512 | 180 | <browser:url | 180 | <lp:url |
1513 | 181 | for="lp.snappy.interfaces.snappyseries.ISnappySeries" | 181 | for="lp.snappy.interfaces.snappyseries.ISnappySeries" |
1514 | 182 | path_expression="name" | 182 | path_expression="name" |
1515 | 183 | parent_utility="lp.snappy.interfaces.snappyseries.ISnappySeriesSet" /> | 183 | parent_utility="lp.snappy.interfaces.snappyseries.ISnappySeriesSet" /> |
1517 | 184 | <browser:url | 184 | <lp:url |
1518 | 185 | for="lp.snappy.interfaces.snappyseries.ISnappySeriesSet" | 185 | for="lp.snappy.interfaces.snappyseries.ISnappySeriesSet" |
1519 | 186 | path_expression="string:+snappy-series" | 186 | path_expression="string:+snappy-series" |
1520 | 187 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> | 187 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> |
1521 | 188 | <browser:navigation | 188 | <browser:navigation |
1522 | 189 | module="lp.snappy.browser.snappyseries" | 189 | module="lp.snappy.browser.snappyseries" |
1523 | 190 | classes="SnappySeriesSetNavigation" /> | 190 | classes="SnappySeriesSetNavigation" /> |
1525 | 191 | <browser:url | 191 | <lp:url |
1526 | 192 | for="lp.snappy.interfaces.snapbase.ISnapBase" | 192 | for="lp.snappy.interfaces.snapbase.ISnapBase" |
1527 | 193 | path_expression="name" | 193 | path_expression="name" |
1528 | 194 | parent_utility="lp.snappy.interfaces.snapbase.ISnapBaseSet" /> | 194 | parent_utility="lp.snappy.interfaces.snapbase.ISnapBaseSet" /> |
1530 | 195 | <browser:url | 195 | <lp:url |
1531 | 196 | for="lp.snappy.interfaces.snapbase.ISnapBaseSet" | 196 | for="lp.snappy.interfaces.snapbase.ISnapBaseSet" |
1532 | 197 | path_expression="string:+snap-bases" | 197 | path_expression="string:+snap-bases" |
1533 | 198 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> | 198 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" /> |
1534 | diff --git a/lib/lp/soyuz/browser/configure.zcml b/lib/lp/soyuz/browser/configure.zcml | |||
1535 | index ea111dd..fa27b2a 100644 | |||
1536 | --- a/lib/lp/soyuz/browser/configure.zcml | |||
1537 | +++ b/lib/lp/soyuz/browser/configure.zcml | |||
1538 | @@ -6,9 +6,9 @@ | |||
1539 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
1540 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
1541 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1543 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 9 | xmlns:lp="http://namespaces.canonical.com/lp" |
1544 | 10 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
1546 | 11 | <browser:url | 11 | <lp:url |
1547 | 12 | for="lp.soyuz.interfaces.binarypackagename.IBinaryPackageNameSet" | 12 | for="lp.soyuz.interfaces.binarypackagename.IBinaryPackageNameSet" |
1548 | 13 | path_expression="string:binarypackagenames" | 13 | path_expression="string:binarypackagenames" |
1549 | 14 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 14 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1550 | @@ -29,7 +29,7 @@ | |||
1551 | 29 | name="+record-details" | 29 | name="+record-details" |
1552 | 30 | template="../templates/packagepublishing-details.pt"/> | 30 | template="../templates/packagepublishing-details.pt"/> |
1553 | 31 | </browser:pages> | 31 | </browser:pages> |
1555 | 32 | <browser:url | 32 | <lp:url |
1556 | 33 | for="lp.soyuz.interfaces.publishing.IBinaryPackagePublishingHistory" | 33 | for="lp.soyuz.interfaces.publishing.IBinaryPackagePublishingHistory" |
1557 | 34 | path_expression="string:+binarypub" | 34 | path_expression="string:+binarypub" |
1558 | 35 | attribute_to_parent="archive" | 35 | attribute_to_parent="archive" |
1559 | @@ -125,7 +125,7 @@ | |||
1560 | 125 | name="+listing-archive-detailed-selectable" | 125 | name="+listing-archive-detailed-selectable" |
1561 | 126 | template="../templates/sourcepackagepublishinghistory-listing-archive-detailed.pt"/> | 126 | template="../templates/sourcepackagepublishinghistory-listing-archive-detailed.pt"/> |
1562 | 127 | </browser:pages> | 127 | </browser:pages> |
1564 | 128 | <browser:url | 128 | <lp:url |
1565 | 129 | for="lp.soyuz.interfaces.publishing.ISourcePackagePublishingHistory" | 129 | for="lp.soyuz.interfaces.publishing.ISourcePackagePublishingHistory" |
1566 | 130 | path_expression="string:+sourcepub" | 130 | path_expression="string:+sourcepub" |
1567 | 131 | attribute_to_parent="archive" | 131 | attribute_to_parent="archive" |
1568 | @@ -136,7 +136,7 @@ | |||
1569 | 136 | <browser:defaultView | 136 | <browser:defaultView |
1570 | 137 | for="lp.soyuz.interfaces.distroarchseriesbinarypackagerelease.IDistroArchSeriesBinaryPackageRelease" | 137 | for="lp.soyuz.interfaces.distroarchseriesbinarypackagerelease.IDistroArchSeriesBinaryPackageRelease" |
1571 | 138 | name="+index"/> | 138 | name="+index"/> |
1573 | 139 | <browser:url | 139 | <lp:url |
1574 | 140 | for="lp.soyuz.interfaces.distroarchseriesbinarypackagerelease.IDistroArchSeriesBinaryPackageRelease" | 140 | for="lp.soyuz.interfaces.distroarchseriesbinarypackagerelease.IDistroArchSeriesBinaryPackageRelease" |
1575 | 141 | path_expression="version" | 141 | path_expression="version" |
1576 | 142 | attribute_to_parent="distroarchseriesbinarypackage"/> | 142 | attribute_to_parent="distroarchseriesbinarypackage"/> |
1577 | @@ -158,11 +158,11 @@ | |||
1578 | 158 | name="+portlet-details" | 158 | name="+portlet-details" |
1579 | 159 | template="../templates/distroarchseriesbinarypackagerelease-portlet-details.pt"/> | 159 | template="../templates/distroarchseriesbinarypackagerelease-portlet-details.pt"/> |
1580 | 160 | </browser:pages> | 160 | </browser:pages> |
1582 | 161 | <browser:url | 161 | <lp:url |
1583 | 162 | for="lp.soyuz.interfaces.distroarchseriesfilter.IDistroArchSeriesFilter" | 162 | for="lp.soyuz.interfaces.distroarchseriesfilter.IDistroArchSeriesFilter" |
1584 | 163 | path_expression="string:+source-filter" | 163 | path_expression="string:+source-filter" |
1585 | 164 | attribute_to_parent="distroarchseries"/> | 164 | attribute_to_parent="distroarchseries"/> |
1587 | 165 | <browser:url | 165 | <lp:url |
1588 | 166 | for="lp.soyuz.interfaces.archive.IArchiveSet" | 166 | for="lp.soyuz.interfaces.archive.IArchiveSet" |
1589 | 167 | path_expression="string:archives" | 167 | path_expression="string:archives" |
1590 | 168 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 168 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1591 | @@ -173,12 +173,12 @@ | |||
1592 | 173 | <browser:navigation | 173 | <browser:navigation |
1593 | 174 | module="lp.soyuz.browser.archive" | 174 | module="lp.soyuz.browser.archive" |
1594 | 175 | classes="ArchiveNavigation" /> | 175 | classes="ArchiveNavigation" /> |
1596 | 176 | <browser:url | 176 | <lp:url |
1597 | 177 | for="lp.soyuz.interfaces.archive.IPPA" | 177 | for="lp.soyuz.interfaces.archive.IPPA" |
1598 | 178 | path_expression="string:+archive" | 178 | path_expression="string:+archive" |
1599 | 179 | attribute_to_parent="owner" | 179 | attribute_to_parent="owner" |
1600 | 180 | urldata="lp.soyuz.browser.archive.PPAURL"/> | 180 | urldata="lp.soyuz.browser.archive.PPAURL"/> |
1602 | 181 | <browser:url | 181 | <lp:url |
1603 | 182 | for="lp.soyuz.interfaces.archive.IDistributionArchive" | 182 | for="lp.soyuz.interfaces.archive.IDistributionArchive" |
1604 | 183 | path_expression="string:+archive" | 183 | path_expression="string:+archive" |
1605 | 184 | attribute_to_parent="distribution" | 184 | attribute_to_parent="distribution" |
1606 | @@ -278,12 +278,12 @@ | |||
1607 | 278 | ArchiveIndexActionsMenu | 278 | ArchiveIndexActionsMenu |
1608 | 279 | ArchivePackagesActionMenu" | 279 | ArchivePackagesActionMenu" |
1609 | 280 | module="lp.soyuz.browser.archive"/> | 280 | module="lp.soyuz.browser.archive"/> |
1611 | 281 | <browser:url | 281 | <lp:url |
1612 | 282 | for="lp.soyuz.interfaces.archivepermission.IArchiveUploader" | 282 | for="lp.soyuz.interfaces.archivepermission.IArchiveUploader" |
1613 | 283 | path_expression="string:+upload" | 283 | path_expression="string:+upload" |
1614 | 284 | attribute_to_parent="archive" | 284 | attribute_to_parent="archive" |
1615 | 285 | urldata="lp.soyuz.browser.archivepermission.ArchivePermissionURL"/> | 285 | urldata="lp.soyuz.browser.archivepermission.ArchivePermissionURL"/> |
1617 | 286 | <browser:url | 286 | <lp:url |
1618 | 287 | for="lp.soyuz.interfaces.archivepermission.IArchiveQueueAdmin" | 287 | for="lp.soyuz.interfaces.archivepermission.IArchiveQueueAdmin" |
1619 | 288 | path_expression="string:+queue-admin" | 288 | path_expression="string:+queue-admin" |
1620 | 289 | attribute_to_parent="archive" | 289 | attribute_to_parent="archive" |
1621 | @@ -291,7 +291,7 @@ | |||
1622 | 291 | <browser:defaultView | 291 | <browser:defaultView |
1623 | 292 | for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild" | 292 | for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild" |
1624 | 293 | name="+index"/> | 293 | name="+index"/> |
1626 | 294 | <browser:url | 294 | <lp:url |
1627 | 295 | for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild" | 295 | for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild" |
1628 | 296 | urldata="lp.soyuz.browser.build.BuildUrl"/> | 296 | urldata="lp.soyuz.browser.build.BuildUrl"/> |
1629 | 297 | <browser:navigation | 297 | <browser:navigation |
1630 | @@ -337,7 +337,7 @@ | |||
1631 | 337 | <browser:defaultView | 337 | <browser:defaultView |
1632 | 338 | for="lp.soyuz.interfaces.distroarchseriesbinarypackage.IDistroArchSeriesBinaryPackage" | 338 | for="lp.soyuz.interfaces.distroarchseriesbinarypackage.IDistroArchSeriesBinaryPackage" |
1633 | 339 | name="+index"/> | 339 | name="+index"/> |
1635 | 340 | <browser:url | 340 | <lp:url |
1636 | 341 | for="lp.soyuz.interfaces.distroarchseriesbinarypackage.IDistroArchSeriesBinaryPackage" | 341 | for="lp.soyuz.interfaces.distroarchseriesbinarypackage.IDistroArchSeriesBinaryPackage" |
1637 | 342 | path_expression="name" | 342 | path_expression="name" |
1638 | 343 | attribute_to_parent="distroarchseries"/> | 343 | attribute_to_parent="distroarchseries"/> |
1639 | @@ -362,11 +362,11 @@ | |||
1640 | 362 | name="+portlet-releases" | 362 | name="+portlet-releases" |
1641 | 363 | template="../templates/distroarchseriesbinarypackage-portlet-releases.pt"/> | 363 | template="../templates/distroarchseriesbinarypackage-portlet-releases.pt"/> |
1642 | 364 | </browser:pages> | 364 | </browser:pages> |
1644 | 365 | <browser:url | 365 | <lp:url |
1645 | 366 | for="lp.soyuz.interfaces.archivesubscriber.IArchiveSubscriber" | 366 | for="lp.soyuz.interfaces.archivesubscriber.IArchiveSubscriber" |
1646 | 367 | path_expression="string:+subscriptions/${subscriber/name}" | 367 | path_expression="string:+subscriptions/${subscriber/name}" |
1647 | 368 | attribute_to_parent="archive"/> | 368 | attribute_to_parent="archive"/> |
1649 | 369 | <browser:url | 369 | <lp:url |
1650 | 370 | for="lp.soyuz.interfaces.archivesubscriber.IPersonalArchiveSubscription" | 370 | for="lp.soyuz.interfaces.archivesubscriber.IPersonalArchiveSubscription" |
1651 | 371 | path_expression="string:+archivesubscriptions/${archive/id}" | 371 | path_expression="string:+archivesubscriptions/${archive/id}" |
1652 | 372 | attribute_to_parent="subscriber"/> | 372 | attribute_to_parent="subscriber"/> |
1653 | @@ -394,7 +394,7 @@ | |||
1654 | 394 | <browser:defaultView | 394 | <browser:defaultView |
1655 | 395 | for="lp.soyuz.interfaces.distributionsourcepackagerelease.IDistributionSourcePackageRelease" | 395 | for="lp.soyuz.interfaces.distributionsourcepackagerelease.IDistributionSourcePackageRelease" |
1656 | 396 | name="+index"/> | 396 | name="+index"/> |
1658 | 397 | <browser:url | 397 | <lp:url |
1659 | 398 | for="lp.soyuz.interfaces.distributionsourcepackagerelease.IDistributionSourcePackageRelease" | 398 | for="lp.soyuz.interfaces.distributionsourcepackagerelease.IDistributionSourcePackageRelease" |
1660 | 399 | path_expression="version" | 399 | path_expression="version" |
1661 | 400 | attribute_to_parent="sourcepackage"/> | 400 | attribute_to_parent="sourcepackage"/> |
1662 | @@ -425,7 +425,7 @@ | |||
1663 | 425 | <browser:defaultView | 425 | <browser:defaultView |
1664 | 426 | for="lp.soyuz.interfaces.distroseriesbinarypackage.IDistroSeriesBinaryPackage" | 426 | for="lp.soyuz.interfaces.distroseriesbinarypackage.IDistroSeriesBinaryPackage" |
1665 | 427 | name="+index"/> | 427 | name="+index"/> |
1667 | 428 | <browser:url | 428 | <lp:url |
1668 | 429 | for="lp.soyuz.interfaces.distroseriesbinarypackage.IDistroSeriesBinaryPackage" | 429 | for="lp.soyuz.interfaces.distroseriesbinarypackage.IDistroSeriesBinaryPackage" |
1669 | 430 | path_expression="string:+package/${name}" | 430 | path_expression="string:+package/${name}" |
1670 | 431 | attribute_to_parent="distroseries"/> | 431 | attribute_to_parent="distroseries"/> |
1671 | @@ -458,7 +458,7 @@ | |||
1672 | 458 | module="lp.soyuz.browser.distroarchseries" | 458 | module="lp.soyuz.browser.distroarchseries" |
1673 | 459 | classes=" | 459 | classes=" |
1674 | 460 | DistroArchSeriesActionMenu"/> | 460 | DistroArchSeriesActionMenu"/> |
1676 | 461 | <browser:url | 461 | <lp:url |
1677 | 462 | for="lp.soyuz.interfaces.distroarchseries.IDistroArchSeries" | 462 | for="lp.soyuz.interfaces.distroarchseries.IDistroArchSeries" |
1678 | 463 | path_expression="architecturetag" | 463 | path_expression="architecturetag" |
1679 | 464 | attribute_to_parent="distroseries"/> | 464 | attribute_to_parent="distroseries"/> |
1680 | @@ -645,7 +645,7 @@ | |||
1681 | 645 | template="../templates/distroseries-portlet-latestuploads.pt"/> | 645 | template="../templates/distroseries-portlet-latestuploads.pt"/> |
1682 | 646 | </browser:pages> | 646 | </browser:pages> |
1683 | 647 | 647 | ||
1685 | 648 | <browser:url | 648 | <lp:url |
1686 | 649 | for="lp.soyuz.interfaces.packageset.IPackagesetSet" | 649 | for="lp.soyuz.interfaces.packageset.IPackagesetSet" |
1687 | 650 | path_expression="string:package-sets" | 650 | path_expression="string:package-sets" |
1688 | 651 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 651 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1689 | @@ -654,17 +654,17 @@ | |||
1690 | 654 | module="lp.soyuz.browser.packageset" | 654 | module="lp.soyuz.browser.packageset" |
1691 | 655 | classes="PackagesetSetNavigation" | 655 | classes="PackagesetSetNavigation" |
1692 | 656 | /> | 656 | /> |
1694 | 657 | <browser:url | 657 | <lp:url |
1695 | 658 | for="lp.soyuz.interfaces.packageset.IPackageset" | 658 | for="lp.soyuz.interfaces.packageset.IPackageset" |
1696 | 659 | path_expression="string:${distroseries/distribution/name}/${distroseries/name}/${name}" | 659 | path_expression="string:${distroseries/distribution/name}/${distroseries/name}/${name}" |
1697 | 660 | parent_utility="lp.soyuz.interfaces.packageset.IPackagesetSet" | 660 | parent_utility="lp.soyuz.interfaces.packageset.IPackagesetSet" |
1698 | 661 | /> | 661 | /> |
1700 | 662 | <browser:url | 662 | <lp:url |
1701 | 663 | for="lp.soyuz.interfaces.queue.IPackageUpload" | 663 | for="lp.soyuz.interfaces.queue.IPackageUpload" |
1702 | 664 | path_expression="string:+upload/${id}" | 664 | path_expression="string:+upload/${id}" |
1703 | 665 | attribute_to_parent="distroseries" | 665 | attribute_to_parent="distroseries" |
1704 | 666 | /> | 666 | /> |
1706 | 667 | <browser:url | 667 | <lp:url |
1707 | 668 | for="lp.soyuz.interfaces.queue.IPackageUploadLog" | 668 | for="lp.soyuz.interfaces.queue.IPackageUploadLog" |
1708 | 669 | path_expression="string:+log/${id}" | 669 | path_expression="string:+log/${id}" |
1709 | 670 | attribute_to_parent="package_upload" | 670 | attribute_to_parent="package_upload" |
1710 | @@ -673,12 +673,12 @@ | |||
1711 | 673 | module="lp.soyuz.browser.queue" | 673 | module="lp.soyuz.browser.queue" |
1712 | 674 | classes="PackageUploadNavigation" | 674 | classes="PackageUploadNavigation" |
1713 | 675 | /> | 675 | /> |
1715 | 676 | <browser:url | 676 | <lp:url |
1716 | 677 | for="lp.soyuz.interfaces.archivedependency.IArchiveDependency" | 677 | for="lp.soyuz.interfaces.archivedependency.IArchiveDependency" |
1717 | 678 | path_expression="string:+dependency/${dependency/id}" | 678 | path_expression="string:+dependency/${dependency/id}" |
1718 | 679 | attribute_to_parent="parent" | 679 | attribute_to_parent="parent" |
1719 | 680 | /> | 680 | /> |
1721 | 681 | <browser:url | 681 | <lp:url |
1722 | 682 | for="lp.soyuz.interfaces.binarypackagerelease.IBinaryPackageReleaseDownloadCount" | 682 | for="lp.soyuz.interfaces.binarypackagerelease.IBinaryPackageReleaseDownloadCount" |
1723 | 683 | path_expression="string:+binaryhits/${binary_package_release/name}/${binary_package_release/version}/${binary_package_release/build/distro_arch_series/architecturetag}/${day}/${country_code}" | 683 | path_expression="string:+binaryhits/${binary_package_release/name}/${binary_package_release/version}/${binary_package_release/build/distro_arch_series/architecturetag}/${day}/${country_code}" |
1724 | 684 | attribute_to_parent="archive" | 684 | attribute_to_parent="archive" |
1725 | @@ -692,7 +692,7 @@ | |||
1726 | 692 | template="../templates/packagerelationship-list.pt" | 692 | template="../templates/packagerelationship-list.pt" |
1727 | 693 | /> | 693 | /> |
1728 | 694 | </browser:pages> | 694 | </browser:pages> |
1730 | 695 | <browser:url | 695 | <lp:url |
1731 | 696 | for="lp.soyuz.interfaces.livefs.ILiveFS" | 696 | for="lp.soyuz.interfaces.livefs.ILiveFS" |
1732 | 697 | path_expression="string:+livefs/${distro_series/distribution/name}/${distro_series/name}/${name}" | 697 | path_expression="string:+livefs/${distro_series/distribution/name}/${distro_series/name}/${name}" |
1733 | 698 | attribute_to_parent="owner" | 698 | attribute_to_parent="owner" |
1734 | @@ -747,12 +747,12 @@ | |||
1735 | 747 | factory="lp.soyuz.browser.livefs.LiveFSBreadcrumb" | 747 | factory="lp.soyuz.browser.livefs.LiveFSBreadcrumb" |
1736 | 748 | permission="zope.Public" | 748 | permission="zope.Public" |
1737 | 749 | /> | 749 | /> |
1739 | 750 | <browser:url | 750 | <lp:url |
1740 | 751 | for="lp.soyuz.interfaces.livefs.ILiveFSSet" | 751 | for="lp.soyuz.interfaces.livefs.ILiveFSSet" |
1741 | 752 | path_expression="string:livefses" | 752 | path_expression="string:livefses" |
1742 | 753 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 753 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1743 | 754 | /> | 754 | /> |
1745 | 755 | <browser:url | 755 | <lp:url |
1746 | 756 | for="lp.soyuz.interfaces.livefsbuild.ILiveFSBuild" | 756 | for="lp.soyuz.interfaces.livefsbuild.ILiveFSBuild" |
1747 | 757 | path_expression="string:+build/${id}" | 757 | path_expression="string:+build/${id}" |
1748 | 758 | attribute_to_parent="livefs" | 758 | attribute_to_parent="livefs" |
1749 | diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py | |||
1750 | index 3eb9387..32b23dd 100644 | |||
1751 | --- a/lib/lp/soyuz/model/archive.py | |||
1752 | +++ b/lib/lp/soyuz/model/archive.py | |||
1753 | @@ -364,7 +364,7 @@ class Archive(SQLBase): | |||
1754 | 364 | SQLBase._init(self, *args, **kw) | 364 | SQLBase._init(self, *args, **kw) |
1755 | 365 | 365 | ||
1756 | 366 | # Provide the additional marker interface depending on what type | 366 | # Provide the additional marker interface depending on what type |
1758 | 367 | # of archive this is. See also the browser:url declarations in | 367 | # of archive this is. See also the lp:url declarations in |
1759 | 368 | # zcml/archive.zcml. | 368 | # zcml/archive.zcml. |
1760 | 369 | if self.is_ppa: | 369 | if self.is_ppa: |
1761 | 370 | alsoProvides(self, IPPA) | 370 | alsoProvides(self, IPPA) |
1762 | diff --git a/lib/lp/soyuz/model/archivepermission.py b/lib/lp/soyuz/model/archivepermission.py | |||
1763 | index 86ca48c..6697808 100644 | |||
1764 | --- a/lib/lp/soyuz/model/archivepermission.py | |||
1765 | +++ b/lib/lp/soyuz/model/archivepermission.py | |||
1766 | @@ -118,7 +118,7 @@ class ArchivePermission(StormBase): | |||
1767 | 118 | 118 | ||
1768 | 119 | def __storm_loaded__(self): | 119 | def __storm_loaded__(self): |
1769 | 120 | # Provide the additional marker interface depending on what type | 120 | # Provide the additional marker interface depending on what type |
1771 | 121 | # of archive this is. See also the browser:url declarations in | 121 | # of archive this is. See also the lp:url declarations in |
1772 | 122 | # zcml/archivepermission.zcml. | 122 | # zcml/archivepermission.zcml. |
1773 | 123 | if self.permission == ArchivePermissionType.UPLOAD: | 123 | if self.permission == ArchivePermissionType.UPLOAD: |
1774 | 124 | alsoProvides(self, IArchiveUploader) | 124 | alsoProvides(self, IArchiveUploader) |
1775 | diff --git a/lib/lp/testopenid/browser/configure.zcml b/lib/lp/testopenid/browser/configure.zcml | |||
1776 | index 79f46c9..a1cc217 100644 | |||
1777 | --- a/lib/lp/testopenid/browser/configure.zcml | |||
1778 | +++ b/lib/lp/testopenid/browser/configure.zcml | |||
1779 | @@ -5,6 +5,7 @@ | |||
1780 | 5 | <configure | 5 | <configure |
1781 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
1782 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
1783 | 8 | xmlns:lp="http://namespaces.canonical.com/lp" | ||
1784 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 9 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1785 | 9 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
1786 | 10 | 11 | ||
1787 | @@ -43,7 +44,7 @@ | |||
1788 | 43 | name="+auth" | 44 | name="+auth" |
1789 | 44 | /> | 45 | /> |
1790 | 45 | 46 | ||
1792 | 46 | <browser:url | 47 | <lp:url |
1793 | 47 | for="..interfaces.server.ITestOpenIDPersistentIdentity" | 48 | for="..interfaces.server.ITestOpenIDPersistentIdentity" |
1794 | 48 | path_expression="string:${openid_identifier}" | 49 | path_expression="string:${openid_identifier}" |
1795 | 49 | parent_utility="..interfaces.server.ITestOpenIDApplication" | 50 | parent_utility="..interfaces.server.ITestOpenIDApplication" |
1796 | diff --git a/lib/lp/translations/browser/configure.zcml b/lib/lp/translations/browser/configure.zcml | |||
1797 | index 61fcbc1..a96acd0 100644 | |||
1798 | --- a/lib/lp/translations/browser/configure.zcml | |||
1799 | +++ b/lib/lp/translations/browser/configure.zcml | |||
1800 | @@ -6,10 +6,10 @@ | |||
1801 | 6 | xmlns="http://namespaces.zope.org/zope" | 6 | xmlns="http://namespaces.zope.org/zope" |
1802 | 7 | xmlns:browser="http://namespaces.zope.org/browser" | 7 | xmlns:browser="http://namespaces.zope.org/browser" |
1803 | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" | 8 | xmlns:i18n="http://namespaces.zope.org/i18n" |
1805 | 9 | xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc" | 9 | xmlns:lp="http://namespaces.canonical.com/lp" |
1806 | 10 | i18n_domain="launchpad"> | 10 | i18n_domain="launchpad"> |
1807 | 11 | <facet facet="translations"> | 11 | <facet facet="translations"> |
1809 | 12 | <browser:url | 12 | <lp:url |
1810 | 13 | for="lp.translations.interfaces.translations.IRosettaApplication" | 13 | for="lp.translations.interfaces.translations.IRosettaApplication" |
1811 | 14 | path_expression="string:translations" | 14 | path_expression="string:translations" |
1812 | 15 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 15 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
1813 | @@ -68,7 +68,7 @@ | |||
1814 | 68 | <browser:defaultView | 68 | <browser:defaultView |
1815 | 69 | for="lp.translations.interfaces.translator.ITranslator" | 69 | for="lp.translations.interfaces.translator.ITranslator" |
1816 | 70 | name="+admin"/> | 70 | name="+admin"/> |
1818 | 71 | <browser:url | 71 | <lp:url |
1819 | 72 | for="lp.translations.interfaces.translator.ITranslator" | 72 | for="lp.translations.interfaces.translator.ITranslator" |
1820 | 73 | path_expression="string:${language/code}" | 73 | path_expression="string:${language/code}" |
1821 | 74 | attribute_to_parent="translationgroup" | 74 | attribute_to_parent="translationgroup" |
1822 | @@ -99,7 +99,7 @@ | |||
1823 | 99 | <browser:defaultView | 99 | <browser:defaultView |
1824 | 100 | for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueueEntry" | 100 | for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueueEntry" |
1825 | 101 | name="+index"/> | 101 | name="+index"/> |
1827 | 102 | <browser:url | 102 | <lp:url |
1828 | 103 | for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueueEntry" | 103 | for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueueEntry" |
1829 | 104 | path_expression="string:${id}" | 104 | path_expression="string:${id}" |
1830 | 105 | parent_utility="lp.translations.interfaces.translationimportqueue.ITranslationImportQueue"/> | 105 | parent_utility="lp.translations.interfaces.translationimportqueue.ITranslationImportQueue"/> |
1831 | @@ -115,7 +115,7 @@ | |||
1832 | 115 | name="+portlet-details" | 115 | name="+portlet-details" |
1833 | 116 | class="lp.translations.browser.translationimportqueue.TranslationImportQueueEntryView" | 116 | class="lp.translations.browser.translationimportqueue.TranslationImportQueueEntryView" |
1834 | 117 | template="../templates/translationimportqueueentry-portlet-details.pt"/> | 117 | template="../templates/translationimportqueueentry-portlet-details.pt"/> |
1836 | 118 | <browser:url | 118 | <lp:url |
1837 | 119 | for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueue" | 119 | for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueue" |
1838 | 120 | path_expression="string:+imports" | 120 | path_expression="string:+imports" |
1839 | 121 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> | 121 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/> |
1840 | @@ -128,7 +128,7 @@ | |||
1841 | 128 | class="lp.translations.browser.translationimportqueue.TranslationImportQueueView" | 128 | class="lp.translations.browser.translationimportqueue.TranslationImportQueueView" |
1842 | 129 | permission="zope.Public" | 129 | permission="zope.Public" |
1843 | 130 | template="../templates/translationimportqueue-index.pt"/> | 130 | template="../templates/translationimportqueue-index.pt"/> |
1845 | 131 | <browser:url | 131 | <lp:url |
1846 | 132 | for="lp.translations.interfaces.distroserieslanguage.IDistroSeriesLanguage" | 132 | for="lp.translations.interfaces.distroserieslanguage.IDistroSeriesLanguage" |
1847 | 133 | path_expression="string:+lang/${language/code}" | 133 | path_expression="string:+lang/${language/code}" |
1848 | 134 | attribute_to_parent="distroseries" | 134 | attribute_to_parent="distroseries" |
1849 | @@ -156,7 +156,7 @@ | |||
1850 | 156 | module="lp.translations.browser.pofile" | 156 | module="lp.translations.browser.pofile" |
1851 | 157 | classes=" | 157 | classes=" |
1852 | 158 | POFileNavigation"/> | 158 | POFileNavigation"/> |
1854 | 159 | <browser:url | 159 | <lp:url |
1855 | 160 | for="lp.translations.interfaces.pofile.IPOFile" | 160 | for="lp.translations.interfaces.pofile.IPOFile" |
1856 | 161 | path_expression="language/code" | 161 | path_expression="language/code" |
1857 | 162 | attribute_to_parent="potemplate" | 162 | attribute_to_parent="potemplate" |
1858 | @@ -215,7 +215,7 @@ | |||
1859 | 215 | permission="zope.Public" | 215 | permission="zope.Public" |
1860 | 216 | template="../templates/pofile-filter.pt" | 216 | template="../templates/pofile-filter.pt" |
1861 | 217 | class="lp.translations.browser.pofile.POFileFilteredView"/> | 217 | class="lp.translations.browser.pofile.POFileFilteredView"/> |
1863 | 218 | <browser:url | 218 | <lp:url |
1864 | 219 | for="lp.translations.interfaces.productserieslanguage.IProductSeriesLanguage" | 219 | for="lp.translations.interfaces.productserieslanguage.IProductSeriesLanguage" |
1865 | 220 | path_expression="string:+lang/${language/code}" | 220 | path_expression="string:+lang/${language/code}" |
1866 | 221 | attribute_to_parent="parent" | 221 | attribute_to_parent="parent" |
1867 | @@ -252,7 +252,7 @@ | |||
1868 | 252 | classes=" | 252 | classes=" |
1869 | 253 | LanguageSetContextMenu | 253 | LanguageSetContextMenu |
1870 | 254 | LanguageNavigationMenu"/> | 254 | LanguageNavigationMenu"/> |
1872 | 255 | <browser:url | 255 | <lp:url |
1873 | 256 | for="lp.services.worlddata.interfaces.language.ILanguage" | 256 | for="lp.services.worlddata.interfaces.language.ILanguage" |
1874 | 257 | path_expression="code" | 257 | path_expression="code" |
1875 | 258 | parent_utility="lp.services.worlddata.interfaces.language.ILanguageSet" | 258 | parent_utility="lp.services.worlddata.interfaces.language.ILanguageSet" |
1876 | @@ -283,7 +283,7 @@ | |||
1877 | 283 | <browser:defaultView | 283 | <browser:defaultView |
1878 | 284 | for="lp.services.worlddata.interfaces.language.ILanguageSet" | 284 | for="lp.services.worlddata.interfaces.language.ILanguageSet" |
1879 | 285 | name="+index"/> | 285 | name="+index"/> |
1881 | 286 | <browser:url | 286 | <lp:url |
1882 | 287 | for="lp.services.worlddata.interfaces.language.ILanguageSet" | 287 | for="lp.services.worlddata.interfaces.language.ILanguageSet" |
1883 | 288 | path_expression="string:+languages" | 288 | path_expression="string:+languages" |
1884 | 289 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 289 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1885 | @@ -362,10 +362,10 @@ | |||
1886 | 362 | <browser:menus | 362 | <browser:menus |
1887 | 363 | module="lp.translations.browser.potemplate" | 363 | module="lp.translations.browser.potemplate" |
1888 | 364 | classes="POTemplateMenu"/> | 364 | classes="POTemplateMenu"/> |
1890 | 365 | <browser:url | 365 | <lp:url |
1891 | 366 | for="lp.translations.interfaces.potemplate.IPOTemplateSubset" | 366 | for="lp.translations.interfaces.potemplate.IPOTemplateSubset" |
1892 | 367 | urldata="lp.translations.browser.potemplate.POTemplateSubsetURL"/> | 367 | urldata="lp.translations.browser.potemplate.POTemplateSubsetURL"/> |
1894 | 368 | <browser:url | 368 | <lp:url |
1895 | 369 | for="lp.translations.interfaces.potemplate.IPOTemplate" | 369 | for="lp.translations.interfaces.potemplate.IPOTemplate" |
1896 | 370 | urldata="lp.translations.browser.potemplate.POTemplateURL"/> | 370 | urldata="lp.translations.browser.potemplate.POTemplateURL"/> |
1897 | 371 | <browser:defaultView | 371 | <browser:defaultView |
1898 | @@ -385,7 +385,7 @@ | |||
1899 | 385 | <browser:defaultView | 385 | <browser:defaultView |
1900 | 386 | for="lp.translations.interfaces.translationgroup.ITranslationGroup" | 386 | for="lp.translations.interfaces.translationgroup.ITranslationGroup" |
1901 | 387 | name="+index"/> | 387 | name="+index"/> |
1903 | 388 | <browser:url | 388 | <lp:url |
1904 | 389 | for="lp.translations.interfaces.translationgroup.ITranslationGroup" | 389 | for="lp.translations.interfaces.translationgroup.ITranslationGroup" |
1905 | 390 | path_expression="name" | 390 | path_expression="name" |
1906 | 391 | rootsite="translations" | 391 | rootsite="translations" |
1907 | @@ -427,7 +427,7 @@ | |||
1908 | 427 | permission="launchpad.Edit" | 427 | permission="launchpad.Edit" |
1909 | 428 | name="+object-reassignment" | 428 | name="+object-reassignment" |
1910 | 429 | template="../../app/templates/object-reassignment.pt"/> | 429 | template="../../app/templates/object-reassignment.pt"/> |
1912 | 430 | <browser:url | 430 | <lp:url |
1913 | 431 | for="lp.translations.interfaces.translationgroup.ITranslationGroupSet" | 431 | for="lp.translations.interfaces.translationgroup.ITranslationGroupSet" |
1914 | 432 | path_expression="string:+groups" | 432 | path_expression="string:+groups" |
1915 | 433 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" | 433 | parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" |
1916 | @@ -447,7 +447,7 @@ | |||
1917 | 447 | permission="zope.Public" | 447 | permission="zope.Public" |
1918 | 448 | template="../templates/translationgroups-index.pt" | 448 | template="../templates/translationgroups-index.pt" |
1919 | 449 | name="+index"/> | 449 | name="+index"/> |
1921 | 450 | <browser:url | 450 | <lp:url |
1922 | 451 | for="lp.translations.interfaces.translationmessage.ITranslationMessage" | 451 | for="lp.translations.interfaces.translationmessage.ITranslationMessage" |
1923 | 452 | path_expression="string:${sequence}" | 452 | path_expression="string:${sequence}" |
1924 | 453 | attribute_to_parent="browser_pofile" | 453 | attribute_to_parent="browser_pofile" |
1925 | @@ -845,7 +845,7 @@ | |||
1926 | 845 | <browser:defaultView | 845 | <browser:defaultView |
1927 | 846 | for="lp.translations.interfaces.customlanguagecode.ICustomLanguageCode" | 846 | for="lp.translations.interfaces.customlanguagecode.ICustomLanguageCode" |
1928 | 847 | name="+index"/> | 847 | name="+index"/> |
1930 | 848 | <browser:url | 848 | <lp:url |
1931 | 849 | for="lp.translations.interfaces.customlanguagecode.ICustomLanguageCode" | 849 | for="lp.translations.interfaces.customlanguagecode.ICustomLanguageCode" |
1932 | 850 | path_expression="string:+customcode/${language_code}" | 850 | path_expression="string:+customcode/${language_code}" |
1933 | 851 | attribute_to_parent="translation_target" | 851 | attribute_to_parent="translation_target" |
1934 | @@ -884,7 +884,7 @@ | |||
1935 | 884 | <browser:defaultView | 884 | <browser:defaultView |
1936 | 885 | for="lp.translations.interfaces.translationtemplatesbuild.ITranslationTemplatesBuild" | 885 | for="lp.translations.interfaces.translationtemplatesbuild.ITranslationTemplatesBuild" |
1937 | 886 | name="+index"/> | 886 | name="+index"/> |
1939 | 887 | <browser:url | 887 | <lp:url |
1940 | 888 | for="lp.translations.interfaces.translationtemplatesbuild.ITranslationTemplatesBuild" | 888 | for="lp.translations.interfaces.translationtemplatesbuild.ITranslationTemplatesBuild" |
1941 | 889 | path_expression="string:+translation-templates-build/${id}" | 889 | path_expression="string:+translation-templates-build/${id}" |
1942 | 890 | attribute_to_parent="branch"/> | 890 | attribute_to_parent="branch"/> |
Self-approving mechanical change in line with previous work.