Merge lp:~sinzui/launchpad/remove-sp-packaging-bug-272343 into lp:launchpad

Proposed by Curtis Hovey
Status: Merged
Approved by: Curtis Hovey
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~sinzui/launchpad/remove-sp-packaging-bug-272343
Merge into: lp:launchpad
Diff against target: 605 lines (+134/-280)
12 files modified
lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt (+0/-1)
lib/lp/answers/templates/question-portlet-details.pt (+4/-4)
lib/lp/registry/browser/configure.zcml (+0/-7)
lib/lp/registry/browser/sourcepackage.py (+1/-14)
lib/lp/registry/interfaces/person.py (+6/-6)
lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt (+50/-127)
lib/lp/registry/templates/distroseries-index.pt (+1/-3)
lib/lp/registry/templates/distroseries-packaging.pt (+36/-31)
lib/lp/registry/templates/sourcepackage-index.pt (+27/-21)
lib/lp/registry/templates/sourcepackage-packaging.pt (+0/-62)
lib/lp/soyuz/stories/soyuz/xx-distroseries-index.txt (+2/-2)
lib/lp/soyuz/templates/distroseries-portlet-latestuploads.pt (+7/-2)
To merge this branch: bzr merge lp:~sinzui/launchpad/remove-sp-packaging-bug-272343
Reviewer Review Type Date Requested Status
Paul Hummer (community) Approve
Review via email: mp+15617@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Curtis Hovey (sinzui) wrote :
Download full text (4.3 KiB)

This is my branch to remove the redundant and awkward source package
+packaging page. This branch also as a drive-by fix for answers.

    lp:~sinzui/launchpad/remove-sp-packaging-bug-272343
    Diff size: 462
    Launchpad bug: https://bugs.launchpad.net/bugs/272343
                   https://bugs.launchpad.net/bugs/491744
    Test command: ./bin/test -vv \
        -t "reg.*packaging"
        -t "answers.*question-overview"
    Pre-implementation: beuno
    Target release: 3.1.12

= Remove the redundant and awkward source package +packaging page =

Bug 272343 [Redundant "Upstream links" pages for each source package in each
    distribution series]
    Each series source package has a page that shows the package in other
    distributions. The page is irrelevant for the series, and each series
    has the same page. The page duplicates the information on the the
    project's +packages page, and overlaps the with distro source package
    +index page.

Bug 491744 [For: package link always rendered as "mozilla-firefox"]
    The hard-coded value in the template is always displayed. The tal:content
    instruction is missing.

== Rules ==

    * Remove the SP +packages URL, view, and template.
      * I do not think a redirect for the old URL is needed given how
        hidden and useless this page was.
    * Update stories to show where users really get this information.

    ADDENDUM
    * Add the missing tal:content instruction to the answers source package
      link.

== QA ==

    * Visit https://edge.launchpad.net/ubuntu/lucid/+packaging
    * Follow the link to
    * Verify you are seeing +index
    * Verify the Upstream associations portlet explains the value of linking
      to upstream
    * Follow the set the upstream project in Launchpad link
    * Verify that you are seeing the edit page

    * Visit https://edge.launchpad.net/ubuntu/lucid/+packaging
    * Follow the link to
    * Verify you are seeing +index
    * Follow the Show upstream links link.
    * Verify that you are seeing the project's +packages link.

== Lint ==

Linting changed files:
  lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt
  lib/lp/answers/templates/question-portlet-details.pt
  lib/lp/registry/browser/configure.zcml
  lib/lp/registry/browser/sourcepackage.py
  lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt
  lib/lp/registry/templates/distroseries-packaging.pt
  lib/lp/registry/templates/sourcepackage-index.pt

== Test ==

    * lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt
      * Removed check for old URL
    * lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt
      * Rewrote the entire test. This test was a prefect example of what a
        story is *not*. The story was impossible; it employed crafted
        links that the user had to read source code to accomplish his task.
        The new story shows how the user gets to the pages and explains why he
        is doing it.

== Implementation ==

    * lib/lp/answers/templates/question-portlet-details.pt
      * A drive by fix for bug 491744. I replaced the real info in the
        template with impossible values to verify the...

Read more...

Revision history for this message
Paul Hummer (rockstar) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt'
--- lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt 2009-11-20 15:02:39 +0000
+++ lib/canonical/launchpad/pagetests/basics/notfound-traversals.txt 2009-12-05 03:17:29 +0000
@@ -191,7 +191,6 @@
191... host='translations.launchpad.dev')191... host='translations.launchpad.dev')
192192
193>>> check("/ubuntu/hoary/+source/evolution/+changelog")193>>> check("/ubuntu/hoary/+source/evolution/+changelog")
194>>> check("/ubuntu/hoary/+source/evolution/+packaging")
195>>> check("/ubuntu/hoary/+source/evolution/+edit-packaging", auth=True)194>>> check("/ubuntu/hoary/+source/evolution/+edit-packaging", auth=True)
196>>> check("/ubuntu/hoary/+source/evolution/+gethelp")195>>> check("/ubuntu/hoary/+source/evolution/+gethelp")
197196
198197
=== modified file 'lib/lp/answers/templates/question-portlet-details.pt'
--- lib/lp/answers/templates/question-portlet-details.pt 2009-11-11 22:17:17 +0000
+++ lib/lp/answers/templates/question-portlet-details.pt 2009-12-05 03:17:29 +0000
@@ -31,13 +31,13 @@
31 <dt>For:</dt>31 <dt>For:</dt>
32 <dd>32 <dd>
33 <a tal:condition="context/product"33 <a tal:condition="context/product"
34 tal:replace="structure context/product/fmt:link">Firefox</a>34 tal:replace="structure context/product/fmt:link">UFOs</a>
35 <a tal:condition="context/distribution"35 <a tal:condition="context/distribution"
36 tal:replace="structure context/distribution/fmt:link">ubuntu</a>36 tal:replace="structure context/distribution/fmt:link">Illumanati</a>
37 <a tal:condition="context/sourcepackagename"37 <a tal:condition="context/sourcepackagename"
38 tal:attributes="href38 tal:attributes="href
39 string:${context/distribution/fmt:url}/+source/${context/sourcepackagename/name}">39 string:${context/distribution/fmt:url}/+source/${context/sourcepackagename/name}"
40 mozilla-firefox</a>40 tal:content="context/sourcepackagename/name">fnord</a>
41 <a tal:replace="structure context/menu:answers/edit/fmt:icon" />41 <a tal:replace="structure context/menu:answers/edit/fmt:icon" />
42 </dd>42 </dd>
43 </dl>43 </dl>
4444
=== modified file 'lib/lp/registry/browser/configure.zcml'
--- lib/lp/registry/browser/configure.zcml 2009-11-26 06:41:27 +0000
+++ lib/lp/registry/browser/configure.zcml 2009-12-05 03:17:29 +0000
@@ -1934,13 +1934,6 @@
1934 <browser:page1934 <browser:page
1935 for="lp.registry.interfaces.sourcepackage.ISourcePackage"1935 for="lp.registry.interfaces.sourcepackage.ISourcePackage"
1936 permission="zope.Public"1936 permission="zope.Public"
1937 class="lp.registry.browser.sourcepackage.SourcePackagePackaging"
1938 name="+packaging"
1939 facet="overview"
1940 template="../templates/sourcepackage-packaging.pt"/>
1941 <browser:page
1942 for="lp.registry.interfaces.sourcepackage.ISourcePackage"
1943 permission="zope.Public"
1944 class="lp.registry.browser.sourcepackage.SourcePackageHelpView"1937 class="lp.registry.browser.sourcepackage.SourcePackageHelpView"
1945 name="+gethelp"1938 name="+gethelp"
1946 facet="answers"1939 facet="answers"
19471940
=== modified file 'lib/lp/registry/browser/sourcepackage.py'
--- lib/lp/registry/browser/sourcepackage.py 2009-10-28 02:43:36 +0000
+++ lib/lp/registry/browser/sourcepackage.py 2009-12-05 03:17:29 +0000
@@ -93,7 +93,7 @@
93 usedfor = ISourcePackage93 usedfor = ISourcePackage
94 facet = 'overview'94 facet = 'overview'
95 links = [95 links = [
96 'distribution_source_package', 'packaging', 'edit_packaging',96 'distribution_source_package', 'edit_packaging',
97 'changelog', 'builds', 'set_upstream',97 'changelog', 'builds', 'set_upstream',
98 ]98 ]
9999
@@ -106,9 +106,6 @@
106 def changelog(self):106 def changelog(self):
107 return Link('+changelog', 'View changelog', icon='list')107 return Link('+changelog', 'View changelog', icon='list')
108108
109 def packaging(self):
110 return Link('+packaging', 'Show upstream links', icon='info')
111
112 def edit_packaging(self):109 def edit_packaging(self):
113 return Link('+edit-packaging', 'Change upstream link', icon='edit')110 return Link('+edit-packaging', 'Change upstream link', icon='edit')
114111
@@ -292,16 +289,6 @@
292 return list(self.context.getCurrentTranslationTemplates())289 return list(self.context.getCurrentTranslationTemplates())
293290
294291
295class SourcePackagePackaging(SourcePackageView):
296 """A View to show where the package is packged."""
297
298 page_title = 'Upstream links'
299
300 @property
301 def label(self):
302 return "Upstream links for %s" % self.context.title
303
304
305class SourcePackageHelpView:292class SourcePackageHelpView:
306 """A View to show Answers help."""293 """A View to show Answers help."""
307294
308295
=== modified file 'lib/lp/registry/interfaces/person.py'
--- lib/lp/registry/interfaces/person.py 2009-09-08 12:30:13 +0000
+++ lib/lp/registry/interfaces/person.py 2009-12-05 03:17:29 +0000
@@ -333,7 +333,7 @@
333 MODERATED = DBItem(1, """333 MODERATED = DBItem(1, """
334 Moderated Team334 Moderated Team
335335
336 All subscriptions for this team are subject to approval by one of336 All subscriptions for this team are subject to approval by one of
337 the team's administrators.337 the team's administrators.
338 """)338 """)
339339
@@ -366,17 +366,17 @@
366 PRIVATE_MEMBERSHIP = DBItem(20, """366 PRIVATE_MEMBERSHIP = DBItem(20, """
367 Private Membership367 Private Membership
368368
369 Only Launchpad admins and team members can view the369 Only Launchpad admins and team members can view the
370 membership list for this team. The team is severely restricted in the370 membership list for this team. The team is severely restricted in the
371 roles it can assume.371 roles it can assume.
372 """)372 """)
373373
374 PRIVATE = DBItem(30, """374 PRIVATE = DBItem(30, """
375 Private375 Private
376376
377 Only Launchpad admins and team members can view the membership list377 Only Launchpad admins and team members can view the membership list
378 for this team or its name. The team roles are restricted to378 for this team or its name. The team roles are restricted to
379 subscribing to bugs, being bug supervisor, owning code branches, and379 subscribing to bugs, being bug supervisor, owning code branches, and
380 having a PPA.380 having a PPA.
381 """)381 """)
382382
383383
=== modified file 'lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt'
--- lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt 2009-11-09 17:08:21 +0000
+++ lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt 2009-12-05 03:17:29 +0000
@@ -1,129 +1,52 @@
1= Packaging =1= Packaging =
22
3The Packaging records of a source package can be via the source3No Privileges Person visit the distroseries upstream linkes page for Hoary
4package's +packaging page:4and sees that pmount is not linked.
55
6 >>> user_browser.open(6 >>> user_browser.open('http://launchpad.dev/ubuntu/hoary/+packaging')
7 ... "http://launchpad.dev/ubuntu/warty/+source/mozilla/+packaging")7 >>> print extract_text(find_tag_by_id(
88 ... user_browser.contents, 'unlinked-translatables'))
9 >>> print_location(user_browser.contents)9 Unlinked translatable packages
10 Hierarchy: Ubuntu > Warty (4.10) >10 pmount mozilla
11 ...mozilla... source package > Upstream links11
12 Tabs:12He looks at the pmount source package page in Hoary and reads that the
13 * Overview (selected) - http://launchpad.dev/ubuntu/warty/+source/mozilla13upstream project is not set.
14 * Branches - http://code.launchpad.dev/ubuntu/warty/+source/mozilla14
15 * Bugs - http://bugs.launchpad.dev/ubuntu/warty/+source/mozilla15 >>> user_browser.getLink('pmount').click()
16 * Blueprints - not linked16 >>> print extract_text(find_tag_by_id(
17 * Translations - http://translations.launchpad.dev/ubuntu/warty/+source/mozilla17 ... user_browser.contents, 'no-upstreams'))
18 * Answers - http://answers.launchpad.dev/ubuntu/warty/+source/mozilla18 Launchpad doesn&#8217;t know which project and series this package
19 Main heading: Upstream links for ...mozilla... source package in Warty19 belongs to. ... Can you set the upstream project in Launchpad?
2020
21 >>> print extract_text(21No Privileges Person knows that the pmount package comes from the thunderbird
22 ... find_tags_by_class(user_browser.contents, 'informational')[0])22project. He sets the upstream packaging link and sees that it is set.
23 Launchpad doesn&#8217;t know which project and series this package23
24 belongs to.24 >>> user_browser.getLink('set the upstream project in Launchpad').click()
25 If you can, please let us know.25 >>> user_browser.getControl(
2626 ... name="field.productseries").value = 'thunderbird/trunk'
27As we could see 'mozilla' sourcepackage has no established Packaging27 >>> user_browser.getControl("Change").click()
28records. We can add or edit the Packaging information for a specific28 >>> print extract_text(find_tag_by_id(
29distroseries context. Let's try it for "grumpy":29 ... user_browser.contents, 'upstreams'))
3030 Project Group: the Mozilla Project
31 >>> user_browser.open(31 Project: Mozilla Thunderbird ...
32 ... "http://launchpad.dev/ubuntu/grumpy/+source/mozilla/+edit-packaging")32 Series: trunk ...
33 >>> user_browser.getControl(name="field.productseries").value = 'firefox/trunk'33
34 >>> user_browser.getControl("Change").click()34He see the "Show upstream links" link and takes a look at the project's
3535packaging in distributions.
3636
37Now we can check if the Packaging record for "grumpy" is annotated:37 >>> user_browser.getLink('Show upstream links').click()
3838 >>> print extract_text(
39 >>> user_browser.open(39 ... find_tag_by_id(user_browser.contents, 'distribution-series'))
40 ... "http://launchpad.dev/ubuntu/grumpy/+source/mozilla/+packaging")40 Distribution series Source package Version Project series
41 >>> print extract_text(41 Hoary (5.04) pmount 0.1-2 Mozilla Thunderbird trunk...
42 ... find_tag_by_id(user_browser.contents, 'packaging-table'))42
43 Upstream links for all source packages called43No Privileges Person returns to the pmount source package page, sees the
44 "mozilla"44link to all versions and follows it to the distro source package page.
45 Distribution45
46 Version46 >>> user_browser.getLink('pmount').click()
47 Upstream Project Series47 >>> user_browser.getLink(
48 Ubuntu48 ... 'All versions of pmount source in Ubuntu').click()
49 Grumpy49 >>> print extract_text(find_tag_by_id(
50 Mozilla Firefox trunk series50 ... user_browser.contents, 'packages_list'))
5151 The Hoary Hedgehog Release (active development) ...
5252 0.1-2 release (main) ... weeks ago
53The same Packaging record is also presented in "warty", because the
54list of Packaging records depends only on the source package name:
55
56 >>> user_browser.open(
57 ... "http://launchpad.dev/ubuntu/warty/+source/mozilla/+packaging")
58 >>> print extract_text(
59 ... find_tag_by_id(user_browser.contents, 'packaging-table'))
60 Upstream links for all source packages called
61 "mozilla"
62 Distribution
63 Version
64 Upstream Project Series
65 Ubuntu
66 Grumpy
67 Mozilla Firefox trunk series
68
69
70Now, let's add a Packaging record to the warty context:
71
72 >>> user_browser.open(
73 ... "http://launchpad.dev/ubuntu/warty/+source/mozilla/+edit-packaging")
74 >>> user_browser.getControl(name="field.productseries").value = 'firefox/1.0'
75 >>> user_browser.getControl("Change").click()
76
77
78Now in the "warty" context both Packaging records are presented:
79
80 >>> user_browser.open(
81 ... "http://launchpad.dev/ubuntu/warty/+source/mozilla/+packaging")
82 >>> print extract_text(
83 ... find_tag_by_id(user_browser.contents, 'packaging-table'))
84 Upstream links for all source packages called
85 "mozilla"
86 Distribution
87 Version
88 Upstream Project Series
89 Ubuntu
90 Grumpy
91 Mozilla Firefox trunk series
92 Ubuntu
93 Warty
94 Mozilla Firefox 1.0 series
95
96And the Packaging record for "warty" context is highlighted:
97
98 >>> print extract_text(
99 ... find_tags_by_class(user_browser.contents, 'highlight')[0])
100 Ubuntu
101 Warty
102 Mozilla Firefox 1.0 series
103
104In the same way when we are back to the "grumpy" context the both
105stored Packaging records are presented but now, the "grumpy" Packaging
106record is highlighted.
107
108 >>> user_browser.open(
109 ... "http://launchpad.dev/ubuntu/grumpy/+source/mozilla/+packaging")
110
111 >>> print extract_text(
112 ... find_tag_by_id(user_browser.contents, 'packaging-table'))
113 Upstream links for all source packages called
114 "mozilla"
115 Distribution
116 Version
117 Upstream Project Series
118 Ubuntu
119 Grumpy
120 Mozilla Firefox trunk series
121 Ubuntu
122 Warty
123 Mozilla Firefox 1.0 series
124
125 >>> print extract_text(
126 ... find_tags_by_class(user_browser.contents, 'highlight')[0])
127 Ubuntu
128 Grumpy
129 Mozilla Firefox trunk series
13053
=== modified file 'lib/lp/registry/templates/distroseries-index.pt'
--- lib/lp/registry/templates/distroseries-index.pt 2009-09-15 22:12:44 +0000
+++ lib/lp/registry/templates/distroseries-index.pt 2009-12-05 03:17:29 +0000
@@ -58,9 +58,7 @@
58 </div>58 </div>
5959
60 <div class="yui-u">60 <div class="yui-u">
61 <div61 <div tal:replace="structure context/@@+portlet-latestuploads" />
62 tal:condition="context/getLatestUploads"
63 tal:replace="structure context/@@+portlet-latestuploads" />
64 </div>62 </div>
65 </div>63 </div>
6664
6765
=== modified file 'lib/lp/registry/templates/distroseries-packaging.pt'
--- lib/lp/registry/templates/distroseries-packaging.pt 2009-09-15 01:17:46 +0000
+++ lib/lp/registry/templates/distroseries-packaging.pt 2009-12-05 03:17:29 +0000
@@ -7,35 +7,42 @@
7 i18n:domain="launchpad">7 i18n:domain="launchpad">
8 <body>8 <body>
9 <div metal:fill-slot="main"9 <div metal:fill-slot="main"
10 tal:define="packagings view/cached_packagings;10 tal:define="packagings view/cached_packagings;">
11 unlinked_translatables view/unlinked_translatables">11 <div class="top-portlet">
12 <p>Links from distribution packages to upstream project series let12 <p>
13 distribution and upstream maintainers share bugs, patches, and translations13 Links from distribution packages to upstream project series let
14 efficiently.</p>14 distribution and upstream maintainers share bugs, patches, and
1515 translations efficiently.
16 <p tal:condition="not: packagings" class="informational message">16 </p>
17 There are no links between packages in <span17
18 tal:replace="context/displayname">Hoary</span> and upstream. By adding18 <p class="informational message"
19 information for specific packages, you can help the distribution developers19 tal:condition="not: packagings">
20 collaborate with upstream.20 There are no links between packages in <span
21 </p>21 tal:replace="context/displayname">Hoary</span> and upstream. By
2222 adding information for specific packages, you can help the
23 <tal:unlinked_translatables condition="unlinked_translatables">23 distribution developers collaborate with upstream.
24 <h2>Unlinked translatable packages</h2>24 </p>
2525
26 <a tal:repeat="sp unlinked_translatables"26 <tal:unlinked_translatables
27 tal:content="sp/sourcepackagename/name"27 condition="view/unlinked_translatables">
28 tal:attributes="href string:${sp/fmt:url}/+packaging">evolution</a>28 <div id="unlinked-translatables">
2929 <h2>Unlinked translatable packages</h2>
30 </tal:unlinked_translatables>30
31 <ul class="horizontal">
32 <li tal:repeat="sp view/unlinked_translatables">
33 <a class="sprite package-source"
34 tal:attributes="href sp/fmt:url"
35 tal:content="sp/sourcepackagename/name">evolution</a>
36 </li>
37 </ul>
38 </div>
39 </tal:unlinked_translatables>
40 </div>
3141
32 <tal:known_links condition="packagings">42 <tal:known_links condition="packagings">
33 <h2>Upstream links</h2>43 <h2>Upstream links</h2>
44
34 <table class="listing">45 <table class="listing">
35 <caption>
36 Upstream links for all source packages in
37 <span tal:replace="context/title">Ubuntu Hoary</span>
38 </caption>
39 <thead>46 <thead>
40 <tr>47 <tr>
41 <th>Source Package</th>48 <th>Source Package</th>
@@ -45,20 +52,18 @@
4552
46 <tbody>53 <tbody>
47 <tr tal:repeat="packaging packagings">54 <tr tal:repeat="packaging packagings">
48 <td><a tal:attributes="href55 <td>
49 string:${packaging/sourcepackage/fmt:url}/+packaging"56 <a class="sprite package-source"
50 tal:content="packaging/sourcepackagename/name">57 tal:attributes="href packaging/sourcepackage/fmt:url"
51 evolution</a>58 tal:content="packaging/sourcepackagename/name">evolution</a>
52 </td>59 </td>
53 <td>60 <td>
54 <a tal:replace="structure packaging/productseries/fmt:link" />61 <a tal:replace="structure packaging/productseries/fmt:link" />
55 </td>62 </td>
56 </tr>63 </tr>
57 </tbody>64 </tbody>
58
59 </table>65 </table>
60 </tal:known_links>66 </tal:known_links>
61
62 </div>67 </div>
63 </body>68 </body>
64</html>69</html>
6570
=== modified file 'lib/lp/registry/templates/sourcepackage-index.pt'
--- lib/lp/registry/templates/sourcepackage-index.pt 2009-10-27 03:23:05 +0000
+++ lib/lp/registry/templates/sourcepackage-index.pt 2009-12-05 03:17:29 +0000
@@ -55,12 +55,12 @@
55 </div>55 </div>
5656
57 <div class="yui-u">57 <div class="yui-u">
58 <div class="portlet">58 <div class="portlet"
59 tal:define="series context/productseries">
59 <h2>Upstream associations</h2>60 <h2>Upstream associations</h2>
6061
61 <div id="upstreams" class="two-column-list"62 <tal:has_series condition="series">
62 tal:define="series context/productseries">63 <div id="upstreams" class="two-column-list">
63 <tal:has_series condition="series">
64 <dl64 <dl
65 tal:define="project series/product/project"65 tal:define="project series/product/project"
66 tal:condition="project">66 tal:condition="project">
@@ -86,23 +86,29 @@
86 <a tal:replace="structure context/menu:overview/edit_packaging/fmt:icon" />86 <a tal:replace="structure context/menu:overview/edit_packaging/fmt:icon" />
87 </dd>87 </dd>
88 </dl>88 </dl>
89 </tal:has_series>89 </div>
9090
91 <tal:has_no_series condition="not: context/productseries">91 <ul class="horizontal">
92 <dl>92 <li>
93 <dt>Related project:</dt>93 <a
94 <dd>94 tal:attributes="href series/product/menu:overview/packages/fmt:url"
95 <em>No project associated with this sourcepackage</em>95 >Show upstream links</a>
96 </dd>96 </li>
97 </dl>97 </ul>
98 </tal:has_no_series>98 </tal:has_series>
99 </div>99
100100 <tal:has_no_series condition="not: series">
101 <ul class="horizontal">101 <p id="no-upstreams">
102 <li>102 Launchpad doesn&#8217;t know which project and series this
103 <a tal:replace="structure context/menu:overview/packaging/fmt:link" />103 package belongs to. Links from distribution packages to
104 </li>104 upstream project let distribution and upstream
105 </ul>105 maintainers share bugs, patches, and translations
106 efficiently. Can you
107 <a tal:attributes="
108 href context/menu:overview/edit_packaging/url">set
109 the upstream project in Launchpad</a>?
110 </p>
111 </tal:has_no_series>
106 </div>112 </div>
107 </div>113 </div>
108 </div>114 </div>
109115
=== removed file 'lib/lp/registry/templates/sourcepackage-packaging.pt'
--- lib/lp/registry/templates/sourcepackage-packaging.pt 2009-09-22 13:10:45 +0000
+++ lib/lp/registry/templates/sourcepackage-packaging.pt 1970-01-01 00:00:00 +0000
@@ -1,62 +0,0 @@
1<html
2 xmlns="http://www.w3.org/1999/xhtml"
3 xmlns:tal="http://xml.zope.org/namespaces/tal"
4 xmlns:metal="http://xml.zope.org/namespaces/metal"
5 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
6 metal:use-macro="view/macro:page/main_only"
7 i18n:domain="launchpad"
8>
9
10<body>
11
12<div metal:fill-slot="main">
13
14 <p>
15 Linking distribution packages to upstream series allows
16 distribution and upstream developers share bugs, patches, and translations
17 efficiently.
18 </p>
19
20 <p class="informational message" tal:condition="not: context/productseries">
21 Launchpad doesn&#8217;t know which project and series this package
22 belongs to.
23 If you can, please <a href="+edit-packaging">let us know</a>.
24 </p>
25
26 <table id="packaging-table" class="listing"
27 tal:condition="context/sourcepackagename/packagings">
28 <caption>Upstream links for all source packages called
29 "<span tal:replace="context/name">apache</span>"
30 </caption>
31
32 <thead>
33 <tr>
34 <th>Distribution</th>
35 <th>Version</th>
36 <th>Upstream Project Series</th>
37 </tr>
38 </thead>
39
40 <tbody>
41 <tal:block repeat="packaging context/sourcepackagename/packagings">
42 <tr tal:attributes="
43 class python: packaging == context.packaging and 'highlight' or None">
44
45 <td>
46 <a tal:replace="structure packaging/distroseries/distribution/fmt:link" />
47 </td>
48 <td>
49 <a tal:replace="structure packaging/distroseries/fmt:link" />
50 </td>
51 <td>
52 <a tal:replace="structure packaging/productseries/fmt:link" />
53 </td>
54
55 </tr>
56 </tal:block>
57 </tbody>
58 </table>
59
60</div>
61</body>
62</html>
630
=== renamed file 'lib/lp/registry/stories/person/xx-resetpassword-of-sso-account.txt' => 'lib/lp/services/openid/stories/xx-resetpassword-of-sso-account.txt'
=== modified file 'lib/lp/soyuz/stories/soyuz/xx-distroseries-index.txt'
--- lib/lp/soyuz/stories/soyuz/xx-distroseries-index.txt 2009-09-09 17:02:43 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-distroseries-index.txt 2009-12-05 03:17:29 +0000
@@ -52,5 +52,5 @@
52 >>> anon_browser.open(52 >>> anon_browser.open(
53 ... "http://launchpad.dev/ubuntutest/breezy-autotest/"53 ... "http://launchpad.dev/ubuntutest/breezy-autotest/"
54 ... "+portlet-latestuploads")54 ... "+portlet-latestuploads")
55 >>> "<ul" in anon_browser.contents55 >>> find_tag_by_id(anon_browser.contents, 'no-latest-uploads') is not None
56 False56 True
5757
=== modified file 'lib/lp/soyuz/templates/distroseries-portlet-latestuploads.pt'
--- lib/lp/soyuz/templates/distroseries-portlet-latestuploads.pt 2009-09-09 03:44:13 +0000
+++ lib/lp/soyuz/templates/distroseries-portlet-latestuploads.pt 2009-12-05 03:17:29 +0000
@@ -3,7 +3,7 @@
3 xmlns:metal="http://xml.zope.org/namespaces/metal"3 xmlns:metal="http://xml.zope.org/namespaces/metal"
4 xmlns:i18n="http://xml.zope.org/namespaces/i18n"4 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
5 class="portlet"5 class="portlet"
6 tal:condition="context/getLatestUploads">6 tal:define="latest_uploads context/getLatestUploads">
7 <h2>7 <h2>
8 <span class="see-all"><a8 <span class="see-all"><a
9 tal:attributes="href context/menu:overview/queue/fmt:url">All9 tal:attributes="href context/menu:overview/queue/fmt:url">All
@@ -11,7 +11,8 @@
11 Latest uploads11 Latest uploads
12 </h2>12 </h2>
1313
14 <ul id="latest-uploads" class="binary package">14 <ul id="latest-uploads" class="binary package"
15 tal:condition="latest_uploads">
15 <li tal:repeat="source context/getLatestUploads">16 <li tal:repeat="source context/getLatestUploads">
16 <a17 <a
17 tal:attributes="href source/fmt:url"18 tal:attributes="href source/fmt:url"
@@ -23,6 +24,10 @@
23 </li>24 </li>
24 </ul>25 </ul>
2526
27 <p id="no-latest-uploads" tal:condition="not: latest_uploads">
28 There are no recent source package uploads.
29 </p>
30
26 <ul class="horizontal">31 <ul class="horizontal">
27 <li>32 <li>
28 <a tal:replace="structure context/menu:overview/queue/fmt:link" />33 <a tal:replace="structure context/menu:overview/queue/fmt:link" />