Merge lp:~wgrant/launchpad/series-breadcrumbs-later into lp:launchpad
- series-breadcrumbs-later
- Merge into devel
Proposed by
William Grant
Status: | Merged |
---|---|
Merged at revision: | 17262 |
Proposed branch: | lp:~wgrant/launchpad/series-breadcrumbs-later |
Merge into: | lp:launchpad |
Diff against target: |
1004 lines (+171/-168) 37 files modified
lib/canonical/launchpad/icing/css/layout.css (+8/-3) lib/lp/app/browser/launchpad.py (+21/-12) lib/lp/app/browser/tales.py (+10/-7) lib/lp/app/templates/base-layout.pt (+2/-2) lib/lp/blueprints/stories/standalone/xx-overview.txt (+4/-8) lib/lp/bugs/stories/bugs/xx-bugs.txt (+1/-1) lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt (+1/-1) lib/lp/bugs/stories/patches-view/patches-view.txt (+1/-1) lib/lp/code/stories/branches/xx-distroseries-branches.txt (+0/-7) lib/lp/registry/browser/distroseries.py (+1/-6) lib/lp/registry/browser/productseries.py (+0/-2) lib/lp/registry/browser/sourcepackage.py (+7/-8) lib/lp/registry/stories/distroseries/xx-distroseries-index.txt (+2/-2) lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt (+1/-1) lib/lp/services/webapp/breadcrumb.py (+4/-4) lib/lp/services/webapp/doc/menus.txt (+1/-0) lib/lp/services/webapp/tests/test_breadcrumbs.py (+4/-3) lib/lp/soyuz/stories/packaging/package-pages-navigation.txt (+31/-34) lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt (+1/-1) lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt (+1/-1) lib/lp/soyuz/stories/soyuz/xx-person-packages.txt (+1/-1) lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt (+6/-6) lib/lp/translations/browser/tests/test_breadcrumbs.py (+12/-6) lib/lp/translations/stories/importqueue/xx-entry-details.txt (+1/-1) lib/lp/translations/stories/navigation-links/pofile.txt (+12/-12) lib/lp/translations/stories/navigation-links/pomsgset.txt (+10/-10) lib/lp/translations/stories/navigation-links/potemplate.txt (+12/-12) lib/lp/translations/stories/productseries/xx-productseries-translation-export.txt (+1/-1) lib/lp/translations/stories/productseries/xx-productseries-translations.txt (+1/-1) lib/lp/translations/stories/standalone/xx-licensing.txt (+2/-2) lib/lp/translations/stories/standalone/xx-pofile-export.txt (+2/-2) lib/lp/translations/stories/standalone/xx-pofile-translate-message-filtering.txt (+4/-4) lib/lp/translations/stories/standalone/xx-potemplate-index.txt (+2/-2) lib/lp/translations/stories/standalone/xx-product-export.txt (+1/-1) lib/lp/translations/stories/standalone/xx-rosetta-sourcepackage-list.txt (+1/-1) lib/lp/translations/stories/standalone/xx-serieslanguage-index.txt (+1/-1) lib/lp/translations/stories/standalone/xx-sourcepackage-export.txt (+1/-1) |
To merge this branch: | bzr merge lp:~wgrant/launchpad/series-breadcrumbs-later |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
William Grant | code | Approve | |
Review via email: mp+242010@code.launchpad.net |
Commit message
Include the source package in the page heading, and make facet links always match the heading. Any series now comes *after* the facet in the breadcrumbs.
Description of the change
To post a comment you must log in.
Revision history for this message
William Grant (wgrant) : | # |
review:
Approve
(code)
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/canonical/launchpad/icing/css/layout.css' |
2 | --- lib/canonical/launchpad/icing/css/layout.css 2012-03-21 02:32:44 +0000 |
3 | +++ lib/canonical/launchpad/icing/css/layout.css 2014-11-27 00:47:32 +0000 |
4 | @@ -85,17 +85,22 @@ |
5 | div.watermark-apps-portlet > div > img, |
6 | div.watermark-apps-portlet > div > a > img { |
7 | display: block; |
8 | - margin: 0 1.5em 0 0; |
9 | + margin: 0 1em 0 0; |
10 | } |
11 | div.watermark-apps-portlet h1, div.watermark-apps-portlet h2 { |
12 | color: #000; |
13 | font-weight: bold; |
14 | font-size: 30px; |
15 | - line-height: 34px; |
16 | + line-height: 30px; |
17 | margin: 0; |
18 | } |
19 | +div.watermark-apps-portlet h2.secondary { |
20 | + font-weight: normal; |
21 | + font-size: 20px; |
22 | + line-height: 26px; |
23 | + } |
24 | .watermark-apps-portlet ul.facetmenu { |
25 | - margin-top: 6px; |
26 | + margin-top: 12px; |
27 | margin-left: -0.5em; |
28 | white-space: nowrap; |
29 | } |
30 | |
31 | === modified file 'lib/lp/app/browser/launchpad.py' |
32 | --- lib/lp/app/browser/launchpad.py 2014-11-24 04:31:14 +0000 |
33 | +++ lib/lp/app/browser/launchpad.py 2014-11-27 00:47:32 +0000 |
34 | @@ -310,6 +310,10 @@ |
35 | Breadcrumb( |
36 | breadcrumb.context, rootsite=facet.rootsite, |
37 | text=facet.text)) |
38 | + # Ensure that all remaining breadcrumbs are |
39 | + # themselves faceted. |
40 | + for remaining_crumb in breadcrumbs[idx + 1:]: |
41 | + remaining_crumb.rootsite_override = facet.rootsite |
42 | break |
43 | if len(breadcrumbs) > 0: |
44 | page_crumb = self.makeBreadcrumbForRequestedPage() |
45 | @@ -346,7 +350,7 @@ |
46 | facet = queryUtility(IFacet, name=get_facet(view)) |
47 | if facet is not None: |
48 | default_views.append(facet.default_view) |
49 | - if view.__name__ not in default_views: |
50 | + if hasattr(view, '__name__') and view.__name__ not in default_views: |
51 | title = getattr(view, 'page_title', None) |
52 | if title is None: |
53 | title = getattr(view, 'label', None) |
54 | @@ -369,13 +373,12 @@ |
55 | return len(self.items) > 1 and not has_major_heading |
56 | |
57 | @property |
58 | - def heading_breadcrumb(self): |
59 | - try: |
60 | - return ( |
61 | - crumb for crumb in self.items |
62 | - if IHeadingBreadcrumb.providedBy(crumb)).next() |
63 | - except StopIteration: |
64 | - return None |
65 | + def heading_breadcrumbs(self): |
66 | + crumbs = [ |
67 | + crumb for crumb in self.items |
68 | + if IHeadingBreadcrumb.providedBy(crumb)] |
69 | + assert len(crumbs) <= 2 |
70 | + return crumbs |
71 | |
72 | def heading(self): |
73 | """Return the heading text for the page. |
74 | @@ -394,19 +397,25 @@ |
75 | heading = 'h1' if IMajorHeadingView.providedBy(self.context) else 'h2' |
76 | # If there is actually no root context, then it's a top-level |
77 | # context-less page so Launchpad.net is shown as the branding. |
78 | - if self.heading_breadcrumb: |
79 | - title = self.heading_breadcrumb.detail |
80 | + crumbs = self.heading_breadcrumbs |
81 | + if len(crumbs) >= 1: |
82 | + title = crumbs[0].detail |
83 | else: |
84 | title = 'Launchpad.net' |
85 | # For non-editable titles, generate the static heading. |
86 | - return structured( |
87 | + markup = structured( |
88 | "<%(heading)s>%(title)s</%(heading)s>", |
89 | heading=heading, title=title).escapedtext |
90 | + if len(crumbs) >= 2: |
91 | + markup += structured( |
92 | + '\n<%(heading)s class="secondary">%(title)s</%(heading)s>', |
93 | + heading=heading, title=crumbs[1].detail).escapedtext |
94 | + return markup |
95 | |
96 | def logo(self): |
97 | """Return the logo image for the top header breadcrumb's context.""" |
98 | logo_context = ( |
99 | - self.heading_breadcrumb.context if self.heading_breadcrumb |
100 | + self.heading_breadcrumbs[0].context if self.heading_breadcrumbs |
101 | else None) |
102 | adapter = queryAdapter(logo_context, IPathAdapter, 'image') |
103 | if logo_context != self.context.context and logo_context is not None: |
104 | |
105 | === modified file 'lib/lp/app/browser/tales.py' |
106 | --- lib/lp/app/browser/tales.py 2014-11-16 15:13:55 +0000 |
107 | +++ lib/lp/app/browser/tales.py 2014-11-27 00:47:32 +0000 |
108 | @@ -81,8 +81,8 @@ |
109 | IContextMenu, |
110 | IFacetMenu, |
111 | ILaunchBag, |
112 | + ILaunchpadRoot, |
113 | INavigationMenu, |
114 | - IPrimaryContext, |
115 | NoCanonicalUrl, |
116 | ) |
117 | from lp.services.webapp.menu import ( |
118 | @@ -276,13 +276,16 @@ |
119 | |
120 | def _facet_menu(self): |
121 | """Return the IFacetMenu related to the context.""" |
122 | + # XXX wgrant 2014-11-26: Manually instantiate a Hierarchy view |
123 | + # to find the lowest IHeadingBreadcrumb that's in the title, |
124 | + # ensuring that the facet tabs match what's above them. This |
125 | + # whole class needs refactoring once the UI is stable. |
126 | + from lp.app.browser.launchpad import Hierarchy |
127 | try: |
128 | - try: |
129 | - context = IPrimaryContext(self._context).context |
130 | - except TypeError: |
131 | - # Could not adapt raises a type error. If there was no |
132 | - # way to adapt, then just use self._context. |
133 | - context = self._context |
134 | + context = self._context |
135 | + crumbs = Hierarchy(context, self._request).heading_breadcrumbs |
136 | + if crumbs: |
137 | + context = crumbs[-1].context |
138 | menu = nearest_adapter(context, IFacetMenu) |
139 | except NoCanonicalUrl: |
140 | menu = None |
141 | |
142 | === modified file 'lib/lp/app/templates/base-layout.pt' |
143 | --- lib/lp/app/templates/base-layout.pt 2014-11-16 15:13:55 +0000 |
144 | +++ lib/lp/app/templates/base-layout.pt 2014-11-27 00:47:32 +0000 |
145 | @@ -99,9 +99,9 @@ |
146 | <h2 tal:replace="structure view/@@+hierarchy/heading"> |
147 | Celso Providelo |
148 | </h2> |
149 | - <metal:heading_nav |
150 | - use-macro="context/@@+base-layout-macros/application-buttons"/> |
151 | </div> |
152 | + <metal:heading_nav |
153 | + use-macro="context/@@+base-layout-macros/application-buttons"/> |
154 | </div> |
155 | |
156 | <div class="yui-t4" |
157 | |
158 | === modified file 'lib/lp/blueprints/stories/standalone/xx-overview.txt' |
159 | --- lib/lp/blueprints/stories/standalone/xx-overview.txt 2011-12-21 08:26:19 +0000 |
160 | +++ lib/lp/blueprints/stories/standalone/xx-overview.txt 2014-11-27 00:47:32 +0000 |
161 | @@ -50,8 +50,7 @@ |
162 | series as an example. To begin with, there are no blueprints listed on |
163 | the blueprints page for 1.0: |
164 | |
165 | - >>> user_browser.open('http://launchpad.dev/firefox/1.0') |
166 | - >>> user_browser.getLink('Blueprints').click() |
167 | + >>> user_browser.open('http://blueprints.launchpad.dev/firefox/1.0') |
168 | >>> main = find_main_content(user_browser.contents) |
169 | >>> print extract_text(main).encode('ascii', 'backslashreplace') |
170 | Blueprints for 1.0 |
171 | @@ -114,8 +113,7 @@ |
172 | Now the blueprint listing for the 1.0 series includes an entry for our chosen |
173 | blueprint. It also lists the milestone to which the blueprint is targeted: |
174 | |
175 | - >>> user_browser.open('http://launchpad.dev/firefox/1.0') |
176 | - >>> user_browser.getLink('Blueprints').click() |
177 | + >>> user_browser.open('http://blueprints.launchpad.dev/firefox/1.0') |
178 | >>> main = find_main_content(user_browser.contents) |
179 | >>> print extract_text(main).encode('ascii', 'backslashreplace') |
180 | Blueprints for 1.0... |
181 | @@ -152,8 +150,7 @@ |
182 | series as an example. To begin with, there are no blueprints listed on the |
183 | blueprints page for Grumpy: |
184 | |
185 | - >>> user_browser.open('http://launchpad.dev/ubuntu/grumpy') |
186 | - >>> user_browser.getLink('Blueprints').click() |
187 | + >>> user_browser.open('http://blueprints.launchpad.dev/ubuntu/grumpy') |
188 | >>> main = find_main_content(user_browser.contents) |
189 | >>> print extract_text(main).encode('ascii', 'backslashreplace') |
190 | Blueprints for Grumpy |
191 | @@ -215,8 +212,7 @@ |
192 | Finally, the blueprint listing for Grumpy includes an entry for our chosen |
193 | blueprint. It also lists the milestone to which the blueprint is targeted: |
194 | |
195 | - >>> user_browser.open('http://launchpad.dev/ubuntu/grumpy') |
196 | - >>> user_browser.getLink('Blueprints').click() |
197 | + >>> user_browser.open('http://blueprints.launchpad.dev/ubuntu/grumpy') |
198 | >>> main = find_main_content(user_browser.contents) |
199 | >>> print extract_text(main).encode('ascii', 'backslashreplace') |
200 | Blueprints for Grumpy... |
201 | |
202 | === modified file 'lib/lp/bugs/stories/bugs/xx-bugs.txt' |
203 | --- lib/lp/bugs/stories/bugs/xx-bugs.txt 2014-02-25 09:43:29 +0000 |
204 | +++ lib/lp/bugs/stories/bugs/xx-bugs.txt 2014-11-27 00:47:32 +0000 |
205 | @@ -3,7 +3,7 @@ |
206 | |
207 | >>> browser.open('http://localhost/ubuntu/hoary/+bugs') |
208 | >>> print browser.title |
209 | - Bugs : Hoary (5.04) : Ubuntu |
210 | + Hoary (5.04) : Bugs : Ubuntu |
211 | |
212 | This page checks that we can see a list of bugs on the distributions, in |
213 | this case Ubuntu. |
214 | |
215 | === modified file 'lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt' |
216 | --- lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt 2012-10-02 06:36:44 +0000 |
217 | +++ lib/lp/bugs/stories/bugs/xx-distrorelease-bugs-page.txt 2014-11-27 00:47:32 +0000 |
218 | @@ -5,7 +5,7 @@ |
219 | |
220 | >>> anon_browser.open('http://bugs.launchpad.dev/ubuntu/warty/+bugs') |
221 | >>> anon_browser.title |
222 | - 'Bugs : Warty (4.10) : Ubuntu' |
223 | + 'Warty (4.10) : Bugs : Ubuntu' |
224 | |
225 | >>> find_tags_by_class(anon_browser.contents, 'buglisting-row') is not None |
226 | True |
227 | |
228 | === modified file 'lib/lp/bugs/stories/patches-view/patches-view.txt' |
229 | --- lib/lp/bugs/stories/patches-view/patches-view.txt 2012-10-09 10:28:02 +0000 |
230 | +++ lib/lp/bugs/stories/patches-view/patches-view.txt 2014-11-27 00:47:32 +0000 |
231 | @@ -276,6 +276,6 @@ |
232 | The page title and other wording in the page reflects the contents. |
233 | |
234 | >>> print_location(anon_browser.contents) |
235 | - Hierarchy: Patchy 1 > Series trunk > Bugs > Patch attachments in trunk |
236 | + Hierarchy: Patchy 1 > Bugs > Series trunk > Patch attachments in trunk |
237 | Tabs: ... |
238 | Main heading: Patch attachments in trunk |
239 | |
240 | === modified file 'lib/lp/code/stories/branches/xx-distroseries-branches.txt' |
241 | --- lib/lp/code/stories/branches/xx-distroseries-branches.txt 2011-08-03 11:00:11 +0000 |
242 | +++ lib/lp/code/stories/branches/xx-distroseries-branches.txt 2014-11-27 00:47:32 +0000 |
243 | @@ -19,13 +19,6 @@ |
244 | |
245 | >>> browser.open('http://launchpad.dev/mint/stable') |
246 | |
247 | -The code tab is now enabled at the distribution series level. |
248 | - |
249 | - >>> print_location_apps(browser.contents) |
250 | - * Overview (selected) ... |
251 | - * Code - http://code.launchpad.dev/mint/stable |
252 | - ... |
253 | - |
254 | Going to this page shows us a listing of all branches associated with that |
255 | distribution series ordered by most recently changed first. |
256 | |
257 | |
258 | === modified file 'lib/lp/registry/browser/distroseries.py' |
259 | --- lib/lp/registry/browser/distroseries.py 2014-11-24 01:20:26 +0000 |
260 | +++ lib/lp/registry/browser/distroseries.py 2014-11-27 00:47:32 +0000 |
261 | @@ -27,10 +27,7 @@ |
262 | from zope.component import getUtility |
263 | from zope.event import notify |
264 | from zope.formlib import form |
265 | -from zope.interface import ( |
266 | - implements, |
267 | - Interface, |
268 | - ) |
269 | +from zope.interface import Interface |
270 | from zope.lifecycleevent import ObjectCreatedEvent |
271 | from zope.schema import ( |
272 | Choice, |
273 | @@ -93,7 +90,6 @@ |
274 | from lp.services.webapp.batching import BatchNavigator |
275 | from lp.services.webapp.breadcrumb import Breadcrumb |
276 | from lp.services.webapp.escaping import structured |
277 | -from lp.services.webapp.interfaces import IMultiFacetedBreadcrumb |
278 | from lp.services.webapp.menu import ( |
279 | ApplicationMenu, |
280 | enabled_with_permission, |
281 | @@ -202,7 +198,6 @@ |
282 | |
283 | class DistroSeriesBreadcrumb(Breadcrumb): |
284 | """Builds a breadcrumb for an `IDistroSeries`.""" |
285 | - implements(IMultiFacetedBreadcrumb) |
286 | |
287 | @property |
288 | def text(self): |
289 | |
290 | === modified file 'lib/lp/registry/browser/productseries.py' |
291 | --- lib/lp/registry/browser/productseries.py 2014-11-24 01:20:26 +0000 |
292 | +++ lib/lp/registry/browser/productseries.py 2014-11-27 00:47:32 +0000 |
293 | @@ -136,7 +136,6 @@ |
294 | from lp.services.webapp.batching import BatchNavigator |
295 | from lp.services.webapp.breadcrumb import Breadcrumb |
296 | from lp.services.webapp.escaping import structured |
297 | -from lp.services.webapp.interfaces import IMultiFacetedBreadcrumb |
298 | from lp.services.worlddata.helpers import browser_languages |
299 | from lp.services.worlddata.interfaces.country import ICountry |
300 | from lp.services.worlddata.interfaces.language import ILanguageSet |
301 | @@ -189,7 +188,6 @@ |
302 | |
303 | class ProductSeriesBreadcrumb(Breadcrumb): |
304 | """Builds a breadcrumb for an `IProductSeries`.""" |
305 | - implements(IMultiFacetedBreadcrumb) |
306 | |
307 | @property |
308 | def text(self): |
309 | |
310 | === modified file 'lib/lp/registry/browser/sourcepackage.py' |
311 | --- lib/lp/registry/browser/sourcepackage.py 2014-11-24 03:49:26 +0000 |
312 | +++ lib/lp/registry/browser/sourcepackage.py 2014-11-27 00:47:32 +0000 |
313 | @@ -31,7 +31,6 @@ |
314 | Item, |
315 | ) |
316 | from lazr.restful.interface import copy_field |
317 | -from lazr.restful.utils import smartquote |
318 | from z3c.ptcompat import ViewPageTemplateFile |
319 | from zope.component import ( |
320 | adapter, |
321 | @@ -41,10 +40,7 @@ |
322 | from zope.formlib.form import Fields |
323 | from zope.formlib.interfaces import IInputWidget |
324 | from zope.formlib.widgets import DropdownWidget |
325 | -from zope.interface import ( |
326 | - implements, |
327 | - Interface, |
328 | - ) |
329 | +from zope.interface import Interface |
330 | from zope.schema import ( |
331 | Choice, |
332 | TextLine, |
333 | @@ -94,7 +90,7 @@ |
334 | ) |
335 | from lp.services.webapp.breadcrumb import Breadcrumb |
336 | from lp.services.webapp.escaping import structured |
337 | -from lp.services.webapp.interfaces import IMultiFacetedBreadcrumb |
338 | +from lp.services.webapp.interfaces import IBreadcrumb |
339 | from lp.services.webapp.publisher import LaunchpadView |
340 | from lp.services.worlddata.helpers import browser_languages |
341 | from lp.services.worlddata.interfaces.country import ICountry |
342 | @@ -203,11 +199,14 @@ |
343 | @adapter(ISourcePackage) |
344 | class SourcePackageBreadcrumb(Breadcrumb): |
345 | """Builds a breadcrumb for an `ISourcePackage`.""" |
346 | - implements(IMultiFacetedBreadcrumb) |
347 | |
348 | @property |
349 | def text(self): |
350 | - return smartquote('"%s" source package') % (self.context.name) |
351 | + return IBreadcrumb(self.context.distroseries).text |
352 | + |
353 | + @property |
354 | + def inside(self): |
355 | + return self.context.distribution_sourcepackage |
356 | |
357 | |
358 | class SourcePackageFacets(StandardLaunchpadFacets): |
359 | |
360 | === modified file 'lib/lp/registry/stories/distroseries/xx-distroseries-index.txt' |
361 | --- lib/lp/registry/stories/distroseries/xx-distroseries-index.txt 2014-02-19 02:11:16 +0000 |
362 | +++ lib/lp/registry/stories/distroseries/xx-distroseries-index.txt 2014-11-27 00:47:32 +0000 |
363 | @@ -7,7 +7,7 @@ |
364 | >>> user_browser.open('http://launchpad.dev/ubuntu/hoary') |
365 | >>> user_browser.getLink('Help translate').click() |
366 | >>> print user_browser.title |
367 | - Translations : Hoary (5.04) : Ubuntu |
368 | + Hoary (5.04) : Translations : Ubuntu |
369 | |
370 | |
371 | Registering information |
372 | @@ -120,7 +120,7 @@ |
373 | http://launchpad.dev/ubuntu/warty/+subscribe |
374 | |
375 | >>> print admin_browser.title |
376 | - Subscribe : Bugs : Warty (4.10) : Ubuntu |
377 | + Subscribe : Warty (4.10) : Bugs : Ubuntu |
378 | |
379 | |
380 | Upstream packaging portlet |
381 | |
382 | === modified file 'lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt' |
383 | --- lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt 2014-02-19 02:11:16 +0000 |
384 | +++ lib/lp/registry/stories/productseries/xx-productseries-add-and-edit.txt 2014-11-27 00:47:32 +0000 |
385 | @@ -126,4 +126,4 @@ |
386 | >>> print browser.url |
387 | http://launchpad.dev/firefox/unstable/+subscribe |
388 | >>> print browser.title |
389 | - Subscribe : Bugs : Series unstable : Mozilla Firefox |
390 | + Subscribe : Series unstable : Bugs : Mozilla Firefox |
391 | |
392 | === modified file 'lib/lp/services/webapp/breadcrumb.py' |
393 | --- lib/lp/services/webapp/breadcrumb.py 2014-11-24 01:24:27 +0000 |
394 | +++ lib/lp/services/webapp/breadcrumb.py 2014-11-27 00:47:32 +0000 |
395 | @@ -33,7 +33,7 @@ |
396 | _detail = None |
397 | _url = None |
398 | inside = None |
399 | - _rootsite = None |
400 | + rootsite_override = None |
401 | |
402 | def __init__(self, context, url=None, text=None, inside=None, |
403 | rootsite=None): |
404 | @@ -45,7 +45,7 @@ |
405 | if inside is not None: |
406 | self.inside = inside |
407 | if rootsite is not None: |
408 | - self._rootsite = rootsite |
409 | + self.rootsite_override = rootsite |
410 | |
411 | @property |
412 | def rootsite(self): |
413 | @@ -54,8 +54,8 @@ |
414 | If the `ICanonicalUrlData` for our context defines a rootsite, we |
415 | return that, otherwise we return 'mainsite'. |
416 | """ |
417 | - if self._rootsite is not None: |
418 | - return self._rootsite |
419 | + if self.rootsite_override is not None: |
420 | + return self.rootsite_override |
421 | url_data = ICanonicalUrlData(self.context) |
422 | if url_data.rootsite: |
423 | return url_data.rootsite |
424 | |
425 | === modified file 'lib/lp/services/webapp/doc/menus.txt' |
426 | --- lib/lp/services/webapp/doc/menus.txt 2013-04-09 08:22:58 +0000 |
427 | +++ lib/lp/services/webapp/doc/menus.txt 2014-11-27 00:47:32 +0000 |
428 | @@ -693,6 +693,7 @@ |
429 | ... self.url1 = url1 # returned from getURL(1) |
430 | ... self.method = 'GET' |
431 | ... self.annotations = {} |
432 | + ... self.traversed_objects = [] |
433 | ... |
434 | ... def getURL(self, level=0): |
435 | ... assert 0 <= level <=1, 'level must be 0 or 1' |
436 | |
437 | === modified file 'lib/lp/services/webapp/tests/test_breadcrumbs.py' |
438 | --- lib/lp/services/webapp/tests/test_breadcrumbs.py 2014-11-16 16:23:16 +0000 |
439 | +++ lib/lp/services/webapp/tests/test_breadcrumbs.py 2014-11-27 00:47:32 +0000 |
440 | @@ -174,11 +174,12 @@ |
441 | def test_package_bugtask(self): |
442 | target = self.package_bugtask.target |
443 | distro_url = canonical_url(target.distribution) |
444 | - distroseries_url = canonical_url(target.distroseries) |
445 | - package_url = canonical_url(target) |
446 | + dsp_url = canonical_url(target.distribution_sourcepackage) |
447 | + dsp_bugs_url = canonical_url( |
448 | + target.distribution_sourcepackage, rootsite='bugs') |
449 | package_bugs_url = canonical_url(target, rootsite='bugs') |
450 | |
451 | self.assertBreadcrumbUrls( |
452 | - [distro_url, distroseries_url, package_url, package_bugs_url, |
453 | + [distro_url, dsp_url, dsp_bugs_url, package_bugs_url, |
454 | self.package_bugtask_url], |
455 | self.package_bugtask) |
456 | |
457 | === modified file 'lib/lp/soyuz/stories/packaging/package-pages-navigation.txt' |
458 | --- lib/lp/soyuz/stories/packaging/package-pages-navigation.txt 2014-11-25 07:56:07 +0000 |
459 | +++ lib/lp/soyuz/stories/packaging/package-pages-navigation.txt 2014-11-27 00:47:32 +0000 |
460 | @@ -65,9 +65,6 @@ |
461 | A distribution source package release build should have almost the same |
462 | navigation as its parent distribution source package release. |
463 | |
464 | -(XXX 20080611 mpt: A build probably should belong to a distribution *series* |
465 | -source package release, but that's more than I can chew off for now.) |
466 | - |
467 | >>> anon_browser.open( |
468 | ... 'http://launchpad.dev/ubuntu/+source/alsa-utils/1.0.9a-4ubuntu1/+build/11') |
469 | >>> print_location(anon_browser.contents) |
470 | @@ -84,73 +81,73 @@ |
471 | |
472 | == Distribution series source package == |
473 | |
474 | -A distribution series source package has its own Bugs, Translations, |
475 | -and Answers. |
476 | +A distribution series source package inherits its distribution source |
477 | +package's facets. |
478 | |
479 | >>> anon_browser.open( |
480 | ... 'http://launchpad.dev/ubuntu/hoary/+source/alsa-utils') |
481 | >>> print_location(anon_browser.contents) |
482 | - Hierarchy: Ubuntu > Hoary (5.04) > ?alsa-utils? source package |
483 | + Hierarchy: Ubuntu > ?alsa-utils? package > Hoary (5.04) |
484 | Tabs: |
485 | - * Overview (selected) - not linked |
486 | - * Code - http://code.launchpad.dev/ubuntu/hoary/+source/alsa-utils |
487 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary/+source/alsa-utils |
488 | + * Overview (selected) - http://launchpad.dev/ubuntu/+source/alsa-utils |
489 | + * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils |
490 | + * Bugs - http://bugs.launchpad.dev/ubuntu/+source/alsa-utils |
491 | * Blueprints - not linked |
492 | - * Translations - http://translations.launchpad.dev/ubuntu/hoary/+source/alsa-utils |
493 | - * Answers - not linked |
494 | + * Translations - http://translations.launchpad.dev/ubuntu/+source/alsa-utils |
495 | + * Answers - http://answers.launchpad.dev/ubuntu/+source/alsa-utils |
496 | Main heading: ?alsa-utils? source package in Hoary |
497 | |
498 | |
499 | == Distribution series architecture == |
500 | |
501 | -Distribution series architectures pages inherit Code, Bugs, Blueprints and |
502 | -Translations from the distribution series. |
503 | +Distribution series architectures pages inherit facets from the |
504 | +distribution. |
505 | |
506 | >>> anon_browser.open('http://launchpad.dev/ubuntu/hoary/i386') |
507 | >>> print_location(anon_browser.contents) |
508 | Hierarchy: Ubuntu > Hoary (5.04) > i386 |
509 | Tabs: |
510 | - * Overview (selected) - http://launchpad.dev/ubuntu/hoary |
511 | - * Code - http://code.launchpad.dev/ubuntu/hoary |
512 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary |
513 | - * Blueprints - http://blueprints.launchpad.dev/ubuntu/hoary |
514 | - * Translations - http://translations.launchpad.dev/ubuntu/hoary |
515 | - * Answers - not linked |
516 | + * Overview (selected) - http://launchpad.dev/ubuntu |
517 | + * Code - http://code.launchpad.dev/ubuntu |
518 | + * Bugs - http://bugs.launchpad.dev/ubuntu |
519 | + * Blueprints - http://blueprints.launchpad.dev/ubuntu |
520 | + * Translations - http://translations.launchpad.dev/ubuntu |
521 | + * Answers - http://answers.launchpad.dev/ubuntu |
522 | Main heading: Ubuntu Hoary for i386 |
523 | |
524 | |
525 | == Distribution series architecture binary package == |
526 | |
527 | The distribution series architecture binary packages page inherits Code, |
528 | -Bugs, Blueprints and Translations from the distribution series. |
529 | +Bugs, Blueprints and Translations from the distribution. |
530 | |
531 | >>> anon_browser.open('http://launchpad.dev/ubuntu/hoary/i386/pmount') |
532 | >>> print_location(anon_browser.contents) |
533 | Hierarchy: Ubuntu > Hoary (5.04) > i386 > pmount |
534 | Tabs: |
535 | - * Overview (selected) - http://launchpad.dev/ubuntu/hoary |
536 | - * Code - http://code.launchpad.dev/ubuntu/hoary |
537 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary |
538 | - * Blueprints - http://blueprints.launchpad.dev/ubuntu/hoary |
539 | - * Translations - http://translations.launchpad.dev/ubuntu/hoary |
540 | - * Answers - not linked |
541 | + * Overview (selected) - http://launchpad.dev/ubuntu |
542 | + * Code - http://code.launchpad.dev/ubuntu |
543 | + * Bugs - http://bugs.launchpad.dev/ubuntu |
544 | + * Blueprints - http://blueprints.launchpad.dev/ubuntu |
545 | + * Translations - http://translations.launchpad.dev/ubuntu |
546 | + * Answers - http://answers.launchpad.dev/ubuntu |
547 | Main heading: ?pmount? binary package in Ubuntu Hoary i386 |
548 | |
549 | |
550 | == Distribution series architecture binary package release == |
551 | |
552 | -Distribution series architecture binary package releases pages inherit Code, |
553 | -Bugs, Blueprints and Translations from the distribution series. |
554 | +Distribution series architecture binary package releases pages inherit |
555 | +facets from the distribution. |
556 | |
557 | >>> anon_browser.open( |
558 | ... 'http://launchpad.dev/ubuntu/hoary/i386/pmount/0.1-1') |
559 | >>> print_location(anon_browser.contents) |
560 | Hierarchy: Ubuntu > Hoary (5.04) > i386 > pmount > 0.1-1 |
561 | Tabs: |
562 | - * Overview (selected) - http://launchpad.dev/ubuntu/hoary |
563 | - * Code - http://code.launchpad.dev/ubuntu/hoary |
564 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary |
565 | - * Blueprints - http://blueprints.launchpad.dev/ubuntu/hoary |
566 | - * Translations - http://translations.launchpad.dev/ubuntu/hoary |
567 | - * Answers - not linked |
568 | + * Overview (selected) - http://launchpad.dev/ubuntu |
569 | + * Code - http://code.launchpad.dev/ubuntu |
570 | + * Bugs - http://bugs.launchpad.dev/ubuntu |
571 | + * Blueprints - http://blueprints.launchpad.dev/ubuntu |
572 | + * Translations - http://translations.launchpad.dev/ubuntu |
573 | + * Answers - http://answers.launchpad.dev/ubuntu |
574 | Main heading: pmount 0.1-1 (i386 binary) in ubuntu hoary |
575 | |
576 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt' |
577 | --- lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt 2013-07-25 13:45:17 +0000 |
578 | +++ lib/lp/soyuz/stories/soyuz/xx-builds-pages.txt 2014-11-27 00:47:32 +0000 |
579 | @@ -95,7 +95,7 @@ |
580 | ... "http://launchpad.dev/ubuntu/hoary/+source/pmount") |
581 | >>> anon_browser.getLink("Show builds").click() |
582 | >>> print anon_browser.title |
583 | - Builds : ...pmount... source package : Hoary (5.04) : Ubuntu |
584 | + Builds : Hoary (5.04) : ...pmount... package : Ubuntu |
585 | |
586 | >>> print check_builds_options(anon_browser.contents) |
587 | State present, Name not present |
588 | |
589 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt' |
590 | --- lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt 2014-11-09 23:12:08 +0000 |
591 | +++ lib/lp/soyuz/stories/soyuz/xx-distroseries-sources.txt 2014-11-27 00:47:32 +0000 |
592 | @@ -223,7 +223,7 @@ |
593 | |
594 | >>> browser.getLink('copyright').click() |
595 | >>> print browser.title |
596 | - Copyright : ...mozilla-firefox... source package : Warty (4.10) : Ubuntu |
597 | + Copyright : Warty (4.10) : ...mozilla-firefox... package : Ubuntu |
598 | |
599 | >>> print extract_text(find_tag_by_id(browser.contents, 'copyright')) |
600 | Copyright 2010 Ford Prefect. |
601 | |
602 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-person-packages.txt' |
603 | --- lib/lp/soyuz/stories/soyuz/xx-person-packages.txt 2014-07-08 06:34:37 +0000 |
604 | +++ lib/lp/soyuz/stories/soyuz/xx-person-packages.txt 2014-11-27 00:47:32 +0000 |
605 | @@ -71,7 +71,7 @@ |
606 | <Link text='Ubuntu Hoary' ...> |
607 | >>> link.click() |
608 | >>> browser.title |
609 | - '...cnews... package : Hoary (5.04) : Ubuntu' |
610 | + 'Hoary (5.04) : ...cnews... package : Ubuntu' |
611 | |
612 | The third column links to the distribution source package release page. The |
613 | user follows the cnews version link to see the page. |
614 | |
615 | === modified file 'lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt' |
616 | --- lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt 2014-11-09 22:19:51 +0000 |
617 | +++ lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt 2014-11-27 00:47:32 +0000 |
618 | @@ -6,14 +6,14 @@ |
619 | >>> user_browser.open( |
620 | ... "http://launchpad.dev/ubuntu/hoary/+source/pmount/+changelog") |
621 | >>> print_location(user_browser.contents) |
622 | - Hierarchy: Ubuntu > Hoary (5.04) > ...pmount... source package > Change log |
623 | + Hierarchy: Ubuntu > ...pmount... package > Hoary (5.04) > Change log |
624 | Tabs: |
625 | - * Overview (selected) - http://launchpad.dev/ubuntu/hoary/+source/pmount |
626 | - * Code - http://code.launchpad.dev/ubuntu/hoary/+source/pmount |
627 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary/+source/pmount |
628 | + * Overview (selected) - http://launchpad.dev/ubuntu/+source/pmount |
629 | + * Code - http://code.launchpad.dev/ubuntu/+source/pmount |
630 | + * Bugs - http://bugs.launchpad.dev/ubuntu/+source/pmount |
631 | * Blueprints - not linked |
632 | - * Translations - http://translations.launchpad.dev/ubuntu/hoary/+source/pmount |
633 | - * Answers - not linked |
634 | + * Translations - http://translations.launchpad.dev/ubuntu/+source/pmount |
635 | + * Answers - http://answers.launchpad.dev/ubuntu/+source/pmount |
636 | Main heading: Change logs for ...pmount... in Hoary |
637 | |
638 | >>> print extract_text( |
639 | |
640 | === modified file 'lib/lp/translations/browser/tests/test_breadcrumbs.py' |
641 | --- lib/lp/translations/browser/tests/test_breadcrumbs.py 2014-02-19 00:35:25 +0000 |
642 | +++ lib/lp/translations/browser/tests/test_breadcrumbs.py 2014-11-27 00:47:32 +0000 |
643 | @@ -36,8 +36,9 @@ |
644 | series = self.factory.makeProductSeries(name="test", product=product) |
645 | self.assertBreadcrumbs( |
646 | [("Crumb Tester", 'http://launchpad.dev/crumb-tester'), |
647 | - ("Series test", 'http://launchpad.dev/crumb-tester/test'), |
648 | ("Translations", |
649 | + 'http://translations.launchpad.dev/crumb-tester'), |
650 | + ("Series test", |
651 | 'http://translations.launchpad.dev/crumb-tester/test')], |
652 | series, rootsite='translations') |
653 | |
654 | @@ -57,8 +58,9 @@ |
655 | name="test", version="1.0", distribution=distribution) |
656 | self.assertBreadcrumbs( |
657 | [("Crumb Tester", 'http://launchpad.dev/crumb-tester'), |
658 | - ("Test (1.0)", 'http://launchpad.dev/crumb-tester/test'), |
659 | ("Translations", |
660 | + 'http://translations.launchpad.dev/crumb-tester'), |
661 | + ("Test (1.0)", |
662 | 'http://translations.launchpad.dev/crumb-tester/test')], |
663 | series, rootsite='translations') |
664 | |
665 | @@ -119,8 +121,9 @@ |
666 | |
667 | self.assertBreadcrumbs( |
668 | [("Crumb Tester", "http://launchpad.dev/crumb-tester"), |
669 | - ("Test (1.0)", "http://launchpad.dev/crumb-tester/test"), |
670 | ("Translations", |
671 | + "http://translations.launchpad.dev/crumb-tester"), |
672 | + ("Test (1.0)", |
673 | "http://translations.launchpad.dev/crumb-tester/test"), |
674 | ("Serbian (sr)", |
675 | "http://translations.launchpad.dev/" |
676 | @@ -138,8 +141,9 @@ |
677 | |
678 | self.assertBreadcrumbs( |
679 | [("Crumb Tester", "http://launchpad.dev/crumb-tester"), |
680 | - ("Series test", "http://launchpad.dev/crumb-tester/test"), |
681 | ("Translations", |
682 | + "http://translations.launchpad.dev/crumb-tester"), |
683 | + ("Series test", |
684 | "http://translations.launchpad.dev/crumb-tester/test"), |
685 | ("Serbian (sr)", |
686 | "http://translations.launchpad.dev/" |
687 | @@ -160,8 +164,9 @@ |
688 | name="template", productseries=series) |
689 | self.assertBreadcrumbs( |
690 | [("Crumb Tester", "http://launchpad.dev/crumb-tester"), |
691 | - ("Series test", "http://launchpad.dev/crumb-tester/test"), |
692 | ("Translations", |
693 | + "http://translations.launchpad.dev/crumb-tester"), |
694 | + ("Series test", |
695 | "http://translations.launchpad.dev/crumb-tester/test"), |
696 | (smartquote('Template "template"'), |
697 | "http://translations.launchpad.dev/" |
698 | @@ -184,8 +189,9 @@ |
699 | |
700 | self.assertBreadcrumbs( |
701 | [("Crumb Tester", "http://launchpad.dev/crumb-tester"), |
702 | - ("Series test", "http://launchpad.dev/crumb-tester/test"), |
703 | ("Translations", |
704 | + "http://translations.launchpad.dev/crumb-tester"), |
705 | + ("Series test", |
706 | "http://translations.launchpad.dev/crumb-tester/test"), |
707 | (smartquote('Template "test-template"'), |
708 | "http://translations.launchpad.dev/crumb-tester/test" |
709 | |
710 | === modified file 'lib/lp/translations/stories/importqueue/xx-entry-details.txt' |
711 | --- lib/lp/translations/stories/importqueue/xx-entry-details.txt 2012-10-09 10:28:02 +0000 |
712 | +++ lib/lp/translations/stories/importqueue/xx-entry-details.txt 2014-11-27 00:47:32 +0000 |
713 | @@ -74,7 +74,7 @@ |
714 | |
715 | >>> admin_browser.getLink('1 template').click() |
716 | >>> print admin_browser.title |
717 | - All templates : Translations : Series trunk : ... |
718 | + All templates : Series trunk : Translations : ... |
719 | |
720 | In that case, the product is also shown to have translatable series. |
721 | |
722 | |
723 | === modified file 'lib/lp/translations/stories/navigation-links/pofile.txt' |
724 | --- lib/lp/translations/stories/navigation-links/pofile.txt 2011-05-13 03:26:21 +0000 |
725 | +++ lib/lp/translations/stories/navigation-links/pofile.txt 2014-11-27 00:47:32 +0000 |
726 | @@ -11,15 +11,15 @@ |
727 | >>> print admin_browser.url |
728 | http://translations.launchpad.dev/evolution/trunk/+pots/evolution-2.2/es |
729 | |
730 | -The Application tabs should point to IProductSeries URLs. |
731 | +The Application tabs should point to IProduct URLs. |
732 | |
733 | >>> print_location_apps(admin_browser.contents) |
734 | - * Overview - http://launchpad.dev/evolution/trunk |
735 | + * Overview - http://launchpad.dev/evolution |
736 | * Code - http://code.launchpad.dev/evolution |
737 | - * Bugs - http://bugs.launchpad.dev/evolution/trunk |
738 | - * Blueprints - http://blueprints.launchpad.dev/evolution/trunk |
739 | - * Translations (selected) - http://translations.launchpad.dev/evolution/trunk |
740 | - * Answers - not linked |
741 | + * Bugs - http://bugs.launchpad.dev/evolution |
742 | + * Blueprints - http://blueprints.launchpad.dev/evolution |
743 | + * Translations (selected) - http://translations.launchpad.dev/evolution |
744 | + * Answers - http://answers.launchpad.dev/evolution |
745 | |
746 | Taking an IPOFile for ISourcePackage context: |
747 | |
748 | @@ -29,13 +29,13 @@ |
749 | >>> print admin_browser.url |
750 | http://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+pots/evolution-2.2/es |
751 | |
752 | -The Application tabs should point to ISourcePackage URLs. |
753 | +The Application tabs should point to IDistributionSourcePackage URLs. |
754 | |
755 | >>> print_location_apps(admin_browser.contents) |
756 | - * Overview - http://launchpad.dev/ubuntu/hoary/+source/evolution |
757 | - * Code - http://code.launchpad.dev/ubuntu/hoary/+source/evolution |
758 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary/+source/evolution |
759 | + * Overview - http://launchpad.dev/ubuntu/+source/evolution |
760 | + * Code - http://code.launchpad.dev/ubuntu/+source/evolution |
761 | + * Bugs - http://bugs.launchpad.dev/ubuntu/+source/evolution |
762 | * Blueprints - not linked |
763 | - * Translations (selected) - http://translations.launchpad.dev/ubuntu/hoary/+source/evolution |
764 | - * Answers - not linked |
765 | + * Translations (selected) - http://translations.launchpad.dev/ubuntu/+source/evolution |
766 | + * Answers - http://answers.launchpad.dev/ubuntu/+source/evolution |
767 | |
768 | |
769 | === modified file 'lib/lp/translations/stories/navigation-links/pomsgset.txt' |
770 | --- lib/lp/translations/stories/navigation-links/pomsgset.txt 2011-05-13 03:26:21 +0000 |
771 | +++ lib/lp/translations/stories/navigation-links/pomsgset.txt 2014-11-27 00:47:32 +0000 |
772 | @@ -16,12 +16,12 @@ |
773 | The Application tabs should point to IProductSeries URLs. |
774 | |
775 | >>> print_location_apps(browser.contents) |
776 | - * Overview - http://launchpad.dev/evolution/trunk |
777 | + * Overview - http://launchpad.dev/evolution |
778 | * Code - http://code.launchpad.dev/evolution |
779 | - * Bugs - http://bugs.launchpad.dev/evolution/trunk |
780 | - * Blueprints - http://blueprints.launchpad.dev/evolution/trunk |
781 | - * Translations (selected) - http://translations.launchpad.dev/evolution/trunk |
782 | - * Answers - not linked |
783 | + * Bugs - http://bugs.launchpad.dev/evolution |
784 | + * Blueprints - http://blueprints.launchpad.dev/evolution |
785 | + * Translations (selected) - http://translations.launchpad.dev/evolution |
786 | + * Answers - http://answers.launchpad.dev/evolution |
787 | |
788 | Taking an IPOMsgSet for ISourcePackage context: |
789 | |
790 | @@ -38,9 +38,9 @@ |
791 | The Application tabs should point to ISourcePackage URLs. |
792 | |
793 | >>> print_location_apps(browser.contents) |
794 | - * Overview - http://launchpad.dev/ubuntu/hoary/+source/evolution |
795 | - * Code - http://code.launchpad.dev/ubuntu/hoary/+source/evolution |
796 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary/+source/evolution |
797 | + * Overview - http://launchpad.dev/ubuntu/+source/evolution |
798 | + * Code - http://code.launchpad.dev/ubuntu/+source/evolution |
799 | + * Bugs - http://bugs.launchpad.dev/ubuntu/+source/evolution |
800 | * Blueprints - not linked |
801 | - * Translations (selected) - http://translations.launchpad.dev/ubuntu/hoary/+source/evolution |
802 | - * Answers - not linked |
803 | + * Translations (selected) - http://translations.launchpad.dev/ubuntu/+source/evolution |
804 | + * Answers - http://answers.launchpad.dev/ubuntu/+source/evolution |
805 | |
806 | === modified file 'lib/lp/translations/stories/navigation-links/potemplate.txt' |
807 | --- lib/lp/translations/stories/navigation-links/potemplate.txt 2011-05-13 03:26:21 +0000 |
808 | +++ lib/lp/translations/stories/navigation-links/potemplate.txt 2014-11-27 00:47:32 +0000 |
809 | @@ -9,15 +9,15 @@ |
810 | >>> print admin_browser.url |
811 | http://translations.launchpad.dev/evolution/trunk/+pots/evolution-2.2 |
812 | |
813 | -The Application tabs should point to IProductSeries URLs. |
814 | +The Application tabs should point to IProduct URLs. |
815 | |
816 | >>> print_location_apps(admin_browser.contents) |
817 | - * Overview - http://launchpad.dev/evolution/trunk |
818 | + * Overview - http://launchpad.dev/evolution |
819 | * Code - http://code.launchpad.dev/evolution |
820 | - * Bugs - http://bugs.launchpad.dev/evolution/trunk |
821 | - * Blueprints - http://blueprints.launchpad.dev/evolution/trunk |
822 | - * Translations (selected) - http://translations.launchpad.dev/evolution/trunk |
823 | - * Answers - not linked |
824 | + * Bugs - http://bugs.launchpad.dev/evolution |
825 | + * Blueprints - http://blueprints.launchpad.dev/evolution |
826 | + * Translations (selected) - http://translations.launchpad.dev/evolution |
827 | + * Answers - http://answers.launchpad.dev/evolution |
828 | |
829 | Taking an IPOTemplate for ISourcePackage context: |
830 | |
831 | @@ -27,12 +27,12 @@ |
832 | >>> print admin_browser.url |
833 | http://translations.launchpad.dev/ubuntu/hoary/+source/evolution/+pots/evolution-2.2 |
834 | |
835 | -The Application tabs should point to ISourcePackage URLs. |
836 | +The Application tabs should point to IDistributionSourcePackage URLs. |
837 | |
838 | >>> print_location_apps(admin_browser.contents) |
839 | - * Overview - http://launchpad.dev/ubuntu/hoary/+source/evolution |
840 | - * Code - http://code.launchpad.dev/ubuntu/hoary/+source/evolution |
841 | - * Bugs - http://bugs.launchpad.dev/ubuntu/hoary/+source/evolution |
842 | + * Overview - http://launchpad.dev/ubuntu/+source/evolution |
843 | + * Code - http://code.launchpad.dev/ubuntu/+source/evolution |
844 | + * Bugs - http://bugs.launchpad.dev/ubuntu/+source/evolution |
845 | * Blueprints - not linked |
846 | - * Translations (selected) - http://translations.launchpad.dev/ubuntu/hoary/+source/evolution |
847 | - * Answers - not linked |
848 | + * Translations (selected) - http://translations.launchpad.dev/ubuntu/+source/evolution |
849 | + * Answers - http://answers.launchpad.dev/ubuntu/+source/evolution |
850 | |
851 | === modified file 'lib/lp/translations/stories/productseries/xx-productseries-translation-export.txt' |
852 | --- lib/lp/translations/stories/productseries/xx-productseries-translation-export.txt 2013-09-27 04:13:23 +0000 |
853 | +++ lib/lp/translations/stories/productseries/xx-productseries-translation-export.txt 2014-11-27 00:47:32 +0000 |
854 | @@ -45,7 +45,7 @@ |
855 | request the download. |
856 | |
857 | >>> print user_browser.title |
858 | - Download : Translations... |
859 | + Download : Series trunk : Translations... |
860 | |
861 | |
862 | === File format === |
863 | |
864 | === modified file 'lib/lp/translations/stories/productseries/xx-productseries-translations.txt' |
865 | --- lib/lp/translations/stories/productseries/xx-productseries-translations.txt 2012-09-19 01:19:35 +0000 |
866 | +++ lib/lp/translations/stories/productseries/xx-productseries-translations.txt 2014-11-27 00:47:32 +0000 |
867 | @@ -47,7 +47,7 @@ |
868 | |
869 | >>> anon_browser.open(frobnicator_trunk_url) |
870 | >>> print anon_browser.title |
871 | - Translations : Series trunk : Frobnicator |
872 | + Series trunk : Translations : Frobnicator |
873 | |
874 | >>> main_content = find_main_content(anon_browser.contents) |
875 | >>> print extract_text(main_content.findAll('h1')[0]) |
876 | |
877 | === modified file 'lib/lp/translations/stories/standalone/xx-licensing.txt' |
878 | --- lib/lp/translations/stories/standalone/xx-licensing.txt 2013-09-27 04:13:23 +0000 |
879 | +++ lib/lp/translations/stories/standalone/xx-licensing.txt 2014-11-27 00:47:32 +0000 |
880 | @@ -85,8 +85,8 @@ |
881 | >>> browser.url |
882 | 'http://.../alsa-utils/trunk/+pots/alsa-utils/es/+translate' |
883 | >>> print browser.title |
884 | - Spanish (es) : Template ...alsa-utils... : Translations : |
885 | - Series trunk : alsa-utils |
886 | + Spanish (es) : Template ...alsa-utils... : Series trunk : |
887 | + Translations : alsa-utils |
888 | |
889 | |
890 | Permissions |
891 | |
892 | === modified file 'lib/lp/translations/stories/standalone/xx-pofile-export.txt' |
893 | --- lib/lp/translations/stories/standalone/xx-pofile-export.txt 2014-11-24 01:25:09 +0000 |
894 | +++ lib/lp/translations/stories/standalone/xx-pofile-export.txt 2014-11-27 00:47:32 +0000 |
895 | @@ -19,8 +19,8 @@ |
896 | >>> user_browser.getLink('Download').click() |
897 | |
898 | >>> print user_browser.title |
899 | - Download translation : Spanish (es)... : Translations : |
900 | - ...evolution... package : Hoary (5.04) : Ubuntu |
901 | + Download translation : Spanish (es)... : Hoary (5.04) : |
902 | + Translations : ...evolution... package : Ubuntu |
903 | |
904 | >>> print find_main_content(user_browser.contents) |
905 | <... |
906 | |
907 | === modified file 'lib/lp/translations/stories/standalone/xx-pofile-translate-message-filtering.txt' |
908 | --- lib/lp/translations/stories/standalone/xx-pofile-translate-message-filtering.txt 2014-11-24 01:25:09 +0000 |
909 | +++ lib/lp/translations/stories/standalone/xx-pofile-translate-message-filtering.txt 2014-11-27 00:47:32 +0000 |
910 | @@ -48,8 +48,8 @@ |
911 | ... 'http://translations.launchpad.dev/ubuntu/hoary/' |
912 | ... '+source/evolution/+pots/evolution-2.2/es/+translate') |
913 | >>> print user_browser.title |
914 | - Spanish (es) : Template ...evolution-2.2... : Translations : |
915 | - ...evolution... package : Hoary (5.04) : Ubuntu |
916 | + Spanish (es) : Template ...evolution-2.2... : |
917 | + Hoary (5.04) : Translations : ...evolution... package : Ubuntu |
918 | |
919 | He can see that there are 22 messages. |
920 | |
921 | @@ -126,7 +126,7 @@ |
922 | >>> user_browser.getControl('Change').click() |
923 | >>> print user_browser.title |
924 | English (Australia) (en_AU) : Template ...evolution-2.2... : |
925 | - Translations : ...evolution... package : Hoary (5.04) : Ubuntu |
926 | + Hoary (5.04) : Translations : ...evolution... package : Ubuntu |
927 | |
928 | >>> contents = find_main_content(user_browser.contents) |
929 | >>> print_batch_header(contents) |
930 | @@ -194,7 +194,7 @@ |
931 | >>> user_browser.getControl('Change').click() |
932 | >>> print user_browser.title |
933 | English (Australia) (en_AU) : Template ...evolution-2.2... : |
934 | - Translations : Series trunk : Evolution |
935 | + Series trunk : Translations : Evolution |
936 | |
937 | >>> contents = find_main_content(user_browser.contents) |
938 | >>> print_batch_header(contents) |
939 | |
940 | === modified file 'lib/lp/translations/stories/standalone/xx-potemplate-index.txt' |
941 | --- lib/lp/translations/stories/standalone/xx-potemplate-index.txt 2014-11-24 01:25:09 +0000 |
942 | +++ lib/lp/translations/stories/standalone/xx-potemplate-index.txt 2014-11-27 00:47:32 +0000 |
943 | @@ -12,8 +12,8 @@ |
944 | >>> anon_browser.open("http://translations.launchpad.dev/" |
945 | ... "ubuntu/hoary/+source/evolution/+pots/evolution-2.2/") |
946 | >>> print anon_browser.title |
947 | - Template ...evolution-2.2... : Translations : |
948 | - ...evolution... package : Hoary (5.04) : Ubuntu |
949 | + Template ...evolution-2.2... : Hoary (5.04) : |
950 | + Translations : ...evolution... package : Ubuntu |
951 | |
952 | The owner of the template is diplayed. |
953 | |
954 | |
955 | === modified file 'lib/lp/translations/stories/standalone/xx-product-export.txt' |
956 | --- lib/lp/translations/stories/standalone/xx-product-export.txt 2013-09-27 04:13:23 +0000 |
957 | +++ lib/lp/translations/stories/standalone/xx-product-export.txt 2014-11-27 00:47:32 +0000 |
958 | @@ -26,7 +26,7 @@ |
959 | it for source packages (tested and documented separately). |
960 | |
961 | >>> print user_browser.title |
962 | - Download : Translations... |
963 | + Download : Series trunk : Translations... |
964 | |
965 | >>> user_browser.getControl('Request Download').click() |
966 | >>> print_feedback_messages(user_browser.contents) |
967 | |
968 | === modified file 'lib/lp/translations/stories/standalone/xx-rosetta-sourcepackage-list.txt' |
969 | --- lib/lp/translations/stories/standalone/xx-rosetta-sourcepackage-list.txt 2014-11-24 01:25:09 +0000 |
970 | +++ lib/lp/translations/stories/standalone/xx-rosetta-sourcepackage-list.txt 2014-11-27 00:47:32 +0000 |
971 | @@ -8,7 +8,7 @@ |
972 | ... 'http://translations.launchpad.dev/ubuntu/hoary/' |
973 | ... '+source/evolution') |
974 | >>> anon_browser.title |
975 | - 'Translations : ...evolution...package : Hoary (5.04) : Ubuntu' |
976 | + 'Hoary (5.04) : Translations : ...evolution...package : Ubuntu' |
977 | |
978 | >>> content = find_main_content(anon_browser.contents) |
979 | >>> print extract_text(content.findAll('h1')[0]).encode( |
980 | |
981 | === modified file 'lib/lp/translations/stories/standalone/xx-serieslanguage-index.txt' |
982 | --- lib/lp/translations/stories/standalone/xx-serieslanguage-index.txt 2012-05-24 20:25:54 +0000 |
983 | +++ lib/lp/translations/stories/standalone/xx-serieslanguage-index.txt 2014-11-27 00:47:32 +0000 |
984 | @@ -14,7 +14,7 @@ |
985 | http://translations.launchpad.dev/evolution/trunk/+lang/pt_BR |
986 | |
987 | >>> print browser.title |
988 | - Portuguese (Brazil) (pt_BR) : Translations : Series trunk : Evolution |
989 | + Portuguese (Brazil) (pt_BR) : Series trunk : Translations : Evolution |
990 | |
991 | Since there is no translation team to manage Portuguese (Brazil) language |
992 | in the Evolution's translation group, all users will be informed about it |
993 | |
994 | === modified file 'lib/lp/translations/stories/standalone/xx-sourcepackage-export.txt' |
995 | --- lib/lp/translations/stories/standalone/xx-sourcepackage-export.txt 2014-11-24 01:25:09 +0000 |
996 | +++ lib/lp/translations/stories/standalone/xx-sourcepackage-export.txt 2014-11-27 00:47:32 +0000 |
997 | @@ -166,7 +166,7 @@ |
998 | ... 'http://translations.launchpad.dev/' |
999 | ... 'ubuntu/hoary/+source/mozilla/+export') |
1000 | >>> browser.title |
1001 | - 'Download : Translations : \xe2\x80\x9cmozilla... |
1002 | + 'Download : Hoary (5.04) : Translations : \xe2\x80\x9cmozilla... |
1003 | |
1004 | >>> browser.getControl('Request Download').click() |
1005 |