Merge lp://staging/~allenap/launchpad/ui-convert-malone-index-3.0-bug-416942 into lp://staging/launchpad

Proposed by Gavin Panella
Status: Merged
Merged at revision: not available
Proposed branch: lp://staging/~allenap/launchpad/ui-convert-malone-index-3.0-bug-416942
Merge into: lp://staging/launchpad
Diff against target: None lines
To merge this branch: bzr merge lp://staging/~allenap/launchpad/ui-convert-malone-index-3.0-bug-416942
Reviewer Review Type Date Requested Status
Eleanor Berger (community) ui Approve
Abel Deuring (community) Approve
Review via email: mp+11208@code.staging.launchpad.net
To post a comment you must log in.
Revision history for this message
Gavin Panella (allenap) wrote :

This does the mechanical changes to the malone index page
(i.e. https://bugs.launchpad.dev/) to convert it to 3.0 layout. It
looks okay, but frankly, it needs some design before it'll make much
sense.

I manually changed the side links (Report a bug and Take a tour) into
an involvement menu, but it was suggested (don't remember who by) that
the links it contained (Take a tour and Report a bug) should be folded
into the main content of the page (Take a tour) or dropped from the
page (Report a bug). Apparently, we're going to phase out reporting
bugs from the bugs front page, so this makes sense.

I changed the stats portlet into a 3.0 stats portlet and dropped the
application-footer class, because it looked wrong. As I said before,
this pages needs more design, but it looks crap in production already
so I don't think it'll do any harm to land this as-is.

I've also added a Related pages portlet, just because I've noticed
before that the only link to the list of external bug trackers is from
the stats blurb. I think it needs a better link, if only to have
something concrete to refer to from the help wiki. It also has a link
to the CVE tracker, just for good measure, and because it has a cool
icon.

./bin/test -vvct 'lp/bugs.*(malone|front-?page)'

Lint free.

Revision history for this message
Gavin Panella (allenap) wrote :

I also remembered I meant to remove MaloneContextMenu as it's unused, so here's a small additional diff for that:

=== modified file 'lib/canonical/launchpad/zcml/launchpad.zcml'
--- lib/canonical/launchpad/zcml/launchpad.zcml 2009-09-03 12:36:28 +0000
+++ lib/canonical/launchpad/zcml/launchpad.zcml 2009-09-04 15:32:52 +0000
@@ -322,11 +322,6 @@
       classes="LaunchpadRootFacets"
       />

- <browser:menus
- module="lp.bugs.browser.malone"
- classes="MaloneContextMenu"
- />
-
   <!-- This is a view on TALES CONTEXTS rather than all dicts. -->
   <browser:page
       for="*"

=== modified file 'lib/lp/bugs/browser/malone.py'
--- lib/lp/bugs/browser/malone.py 2009-09-04 15:06:34 +0000
+++ lib/lp/bugs/browser/malone.py 2009-09-04 15:32:52 +0000
@@ -6,7 +6,7 @@
 __metaclass__ = type
 __all__ = [
     'MaloneApplicationNavigation',
- 'MaloneContextMenu',
+ 'MaloneRelatedPages',
     ]

@@ -16,7 +16,7 @@
 import canonical.launchpad.layers

 from canonical.launchpad.webapp import (
- ContextMenu, Link, Navigation, canonical_url, stepto)
+ Link, Navigation, canonical_url, stepto)
 from canonical.launchpad.webapp.authorization import check_permission
 from canonical.launchpad.webapp.menu import NavigationMenu

@@ -69,16 +69,6 @@
         return bug

-class MaloneContextMenu(ContextMenu):
- # XXX mpt 2006-03-27: No longer visible on Bugs front page.
- usedfor = IMaloneApplication
- links = ['cvetracker']
-
- def cvetracker(self):
- text = 'CVE tracker'
- return Link('cve/', text, icon='cve')
-
-
 class MaloneRelatedPages(NavigationMenu):

     facet = 'bugs'

Revision history for this message
Abel Deuring (adeuring) :
review: Approve
Revision history for this message
Eleanor Berger (intellectronica) wrote :

We agreed that this page could do with a redesign at some point, but for now this conversion is sufficient.

review: Approve (ui)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/bugs/browser/configure.zcml'
--- lib/lp/bugs/browser/configure.zcml 2009-08-27 15:11:38 +0000
+++ lib/lp/bugs/browser/configure.zcml 2009-09-04 15:06:34 +0000
@@ -209,12 +209,12 @@
209 facet="bugs"209 facet="bugs"
210 permission="zope.Public">210 permission="zope.Public">
211 <browser:page211 <browser:page
212 name="+about"
213 template="../templates/malone-about.pt"/>
214 <browser:page
215 name="+portlet-stats"212 name="+portlet-stats"
216 template="../templates/malone-portlet-stats.pt"/>213 template="../templates/malone-portlet-stats.pt"/>
217 </browser:pages>214 </browser:pages>
215 <browser:menus
216 classes="MaloneRelatedPages"
217 module="lp.bugs.browser.malone"/>
218 <browser:page218 <browser:page
219 name="+filebug"219 name="+filebug"
220 for="lp.bugs.interfaces.malone.IMaloneApplication"220 for="lp.bugs.interfaces.malone.IMaloneApplication"
221221
=== modified file 'lib/lp/bugs/browser/malone.py'
--- lib/lp/bugs/browser/malone.py 2009-06-25 00:40:31 +0000
+++ lib/lp/bugs/browser/malone.py 2009-09-04 15:06:34 +0000
@@ -18,7 +18,9 @@
18from canonical.launchpad.webapp import (18from canonical.launchpad.webapp import (
19 ContextMenu, Link, Navigation, canonical_url, stepto)19 ContextMenu, Link, Navigation, canonical_url, stepto)
20from canonical.launchpad.webapp.authorization import check_permission20from canonical.launchpad.webapp.authorization import check_permission
21from canonical.launchpad.webapp.menu import NavigationMenu
2122
23from lp.bugs.browser.bug import MaloneView
22from lp.bugs.interfaces.bug import IBugSet24from lp.bugs.interfaces.bug import IBugSet
23from lp.bugs.interfaces.bugtracker import IBugTrackerSet25from lp.bugs.interfaces.bugtracker import IBugTrackerSet
24from lp.bugs.interfaces.cve import ICveSet26from lp.bugs.interfaces.cve import ICveSet
@@ -75,3 +77,20 @@
75 def cvetracker(self):77 def cvetracker(self):
76 text = 'CVE tracker'78 text = 'CVE tracker'
77 return Link('cve/', text, icon='cve')79 return Link('cve/', text, icon='cve')
80
81
82class MaloneRelatedPages(NavigationMenu):
83
84 facet = 'bugs'
85 title = 'Related pages'
86 usedfor = MaloneView
87 links = ['bugtrackers', 'cvetracker']
88
89 def bugtrackers(self):
90 url = canonical_url(getUtility(IBugTrackerSet))
91 text = "Bug trackers"
92 return Link(url, text, icon='bug')
93
94 def cvetracker(self):
95 text = 'CVE tracker'
96 return Link('cve/', text, icon='cve')
7897
=== modified file 'lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt'
--- lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt 2009-06-12 16:36:02 +0000
+++ lib/lp/bugs/stories/bugs/xx-front-page-statistics.txt 2009-09-04 15:05:26 +0000
@@ -8,11 +8,10 @@
8* number of CVE bug links8* number of CVE bug links
99
10 >>> anon_browser.open('http://bugs.launchpad.dev/')10 >>> anon_browser.open('http://bugs.launchpad.dev/')
11 >>> statistics = find_tag_by_id(11 >>> statistics = find_portlet(
12 ... anon_browser.contents, 'application-footer')12 ... anon_browser.contents, 'Statistics')
13 >>> for text in statistics.findAll(text=True):13 >>> print extract_text(statistics)
14 ... if text.strip():14 Statistics
15 ... print text
16 14 bugs reported across 7 projects15 14 bugs reported across 7 projects
17 including 12 links to 8 bug trackers16 including 12 links to 8 bug trackers
18 4 bugs are shared across multiple projects17 4 bugs are shared across multiple projects
@@ -31,4 +30,3 @@
31 >>> anon_browser.getLink('CVE entries').click()30 >>> anon_browser.getLink('CVE entries').click()
32 >>> anon_browser.title31 >>> anon_browser.title
33 'Launchpad CVE tracker'32 'Launchpad CVE tracker'
34
3533
=== modified file 'lib/lp/bugs/stories/bugs/xx-malone-homepage.txt'
--- lib/lp/bugs/stories/bugs/xx-malone-homepage.txt 2009-06-12 16:36:02 +0000
+++ lib/lp/bugs/stories/bugs/xx-malone-homepage.txt 2009-09-04 15:06:34 +0000
@@ -3,7 +3,24 @@
3 >>> browser.open('http://bugs.launchpad.dev/')3 >>> browser.open('http://bugs.launchpad.dev/')
4 >>> browser.url4 >>> browser.url
5 'http://bugs.launchpad.dev/'5 'http://bugs.launchpad.dev/'
6 >>> print browser.contents6
7 <!DOCTYPE...7 >>> print_location(browser.contents)
8 ...Bug tracking...8 Hierarchy: None displayed
9 ...9 Tabs:
10 * Launchpad Home - http://launchpad.dev/
11 * Code - http://code.launchpad.dev/
12 * Bugs (selected) - http://bugs.launchpad.dev/
13 * Blueprints - http://blueprints.launchpad.dev/
14 * Translations - http://translations.launchpad.dev/
15 * Answers - http://answers.launchpad.dev/
16 Main heading: Bug tracking
17
18There are a few related pages linked in a portlet:
19
20 >>> related_pages = find_portlet(browser.contents, 'Related pages')
21 >>> for link in related_pages.findAll('a'):
22 ... print "%s\n --> %s" % (extract_text(link), link.get('href'))
23 Bug trackers
24 --> http://bugs.launchpad.dev/bugs/bugtrackers
25 CVE tracker
26 --> http://bugs.launchpad.dev/bugs/cve
1027
=== modified file 'lib/lp/bugs/stories/guided-filebug/xx-filing-security-bugs.txt'
--- lib/lp/bugs/stories/guided-filebug/xx-filing-security-bugs.txt 2009-06-12 16:36:02 +0000
+++ lib/lp/bugs/stories/guided-filebug/xx-filing-security-bugs.txt 2009-08-24 15:27:48 +0000
@@ -3,8 +3,7 @@
3There's an option to file a security related bug on the +filebug page.3There's an option to file a security related bug on the +filebug page.
4It's only visible on the second step, after the summary has been submitted.4It's only visible on the second step, after the summary has been submitted.
55
6 >>> user_browser.open('http://bugs.launchpad.dev/')6 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
7 >>> user_browser.getLink('Report a bug').click()
8 >>> user_browser.getControl('This bug is a security vulnerability')7 >>> user_browser.getControl('This bug is a security vulnerability')
9 Traceback (most recent call last):8 Traceback (most recent call last):
10 ...9 ...
1110
=== modified file 'lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-distribution.txt'
--- lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-distribution.txt 2009-07-24 15:35:47 +0000
+++ lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-distribution.txt 2009-08-24 15:27:48 +0000
@@ -2,8 +2,7 @@
22
3On the Bugs front page there is a link to file a bug.3On the Bugs front page there is a link to file a bug.
44
5 >>> user_browser.open('http://bugs.launchpad.dev/')5 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
6 >>> user_browser.getLink('Report a bug').click()
7 >>> user_browser.title6 >>> user_browser.title
8 'Report a bug'7 'Report a bug'
98
@@ -41,8 +40,7 @@
41After we selected a target and entered a summary, a list of possible40After we selected a target and entered a summary, a list of possible
42duplicates are presented.41duplicates are presented.
4342
44 >>> user_browser.open('http://bugs.launchpad.dev/')43 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
45 >>> user_browser.getLink('Report a bug').click()
4644
47 >>> user_browser.getControl('Distribution').selected = True45 >>> user_browser.getControl('Distribution').selected = True
48 >>> user_browser.getControl(46 >>> user_browser.getControl(
@@ -72,8 +70,7 @@
72When reporting a new bug a user might enter a summary, leaving the70When reporting a new bug a user might enter a summary, leaving the
73location as it is (which is Ubuntu, no package):71location as it is (which is Ubuntu, no package):
7472
75 >>> user_browser.open('http://bugs.launchpad.dev/')73 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
76 >>> user_browser.getLink('Report a bug').click()
77 >>> user_browser.getControl('Summary').value = 'Foo'74 >>> user_browser.getControl('Summary').value = 'Foo'
78 >>> user_browser.getControl('Continue').click()75 >>> user_browser.getControl('Continue').click()
79 >>> user_browser.url76 >>> user_browser.url
8077
=== modified file 'lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-package.txt'
--- lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-package.txt 2009-07-24 15:35:47 +0000
+++ lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-package.txt 2009-08-24 15:27:48 +0000
@@ -2,8 +2,7 @@
22
3On the Bugs front page there is a link to file a bug.3On the Bugs front page there is a link to file a bug.
44
5 >>> user_browser.open('http://bugs.launchpad.dev/')5 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
6 >>> user_browser.getLink('Report a bug').click()
7 >>> user_browser.title6 >>> user_browser.title
8 'Report a bug'7 'Report a bug'
98
@@ -39,8 +38,7 @@
3938
40If we enter an non-existent package, we get an error message.39If we enter an non-existent package, we get an error message.
4140
42 >>> user_browser.open('http://bugs.launchpad.dev/')41 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
43 >>> user_browser.getLink('Report a bug').click()
44 >>> user_browser.getControl('Distribution').selected = True42 >>> user_browser.getControl('Distribution').selected = True
45 >>> user_browser.getControl(43 >>> user_browser.getControl(
46 ... name='field.bugtarget.distribution').value = ['ubuntu']44 ... name='field.bugtarget.distribution').value = ['ubuntu']
4745
=== modified file 'lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-product.txt'
--- lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-product.txt 2009-07-24 15:35:47 +0000
+++ lib/lp/bugs/stories/guided-filebug/xx-frontpage-filebug-product.txt 2009-08-24 16:11:21 +0000
@@ -2,8 +2,7 @@
22
3On the Bugs front page there is a link to file a bug.3On the Bugs front page there is a link to file a bug.
44
5 >>> user_browser.open('http://bugs.launchpad.dev/')5 >>> user_browser.open('http://bugs.launchpad.dev/bugs/+filebug')
6 >>> user_browser.getLink('Report a bug').click()
7 >>> user_browser.title6 >>> user_browser.title
8 'Report a bug'7 'Report a bug'
98
109
=== removed file 'lib/lp/bugs/templates/malone-about.pt'
--- lib/lp/bugs/templates/malone-about.pt 2009-07-17 17:59:07 +0000
+++ lib/lp/bugs/templates/malone-about.pt 1970-01-01 00:00:00 +0000
@@ -1,56 +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 xml:lang="en"
7 lang="en"
8 dir="ltr"
9 metal:use-macro="context/@@main_template/master"
10 i18n:domain="malone"
11>
12 <body>
13 <metal:heading fill-slot="pageheading">
14 <h1>About the Launchpad Bug Tracker</h1>
15 </metal:heading>
16
17<metal:leftportlets fill-slot="portlets_one">
18 <div tal:replace="structure context/@@+portlet-stats" />
19</metal:leftportlets>
20
21<div metal:fill-slot="main">
22
23 <p>
24 The Launchpad Bug Tracker is a collaborative bug tracker for the
25 Free Software universe. It works a bit differently from other
26 trackers.
27 </p>
28 <h2>One bug, many places</h2>
29 <p>
30 Some people find bugs in software they install directly from its
31 developers.
32 Other people find bugs in software packages they install as part of
33 a distribution.
34 </p>
35 <p>
36 When these are the same bug, Launchpad can link them together.
37 Once one team fixes the bug, others can share the fix.
38 </p>
39 <h2>One world, many bug trackers</h2>
40 <p>
41 The more software teams use Launchpad, the more useful it becomes.
42 But if a team uses Bugzilla, Sourceforge, or debbugs,
43 Launchpad can link their bug reports with those in Launchpad,
44 and let you know when they&#8217;re fixed.
45 </p>
46 <h2>How to get started</h2>
47 <p>
48 To use Launchpad for your project, first
49 <a href="/projects">check whether it&#8217;s registered already</a>.
50 The admin for a project can set that project to use Launchpad
51 (this is off by default so that people don&#8217;t report bugs that
52 nobody reads).
53 </p>
54 </div>
55 </body>
56</html>
570
=== modified file 'lib/lp/bugs/templates/malone-index.pt'
--- lib/lp/bugs/templates/malone-index.pt 2009-07-17 17:59:07 +0000
+++ lib/lp/bugs/templates/malone-index.pt 2009-09-04 15:06:34 +0000
@@ -1,77 +1,30 @@
1<html1<malone-index
2 xmlns="http://www.w3.org/1999/xhtml"2 xmlns="http://www.w3.org/1999/xhtml"
3 xmlns:tal="http://xml.zope.org/namespaces/tal"3 xmlns:tal="http://xml.zope.org/namespaces/tal"
4 xmlns:metal="http://xml.zope.org/namespaces/metal"4 xmlns:metal="http://xml.zope.org/namespaces/metal"
5 xmlns:i18n="http://xml.zope.org/namespaces/i18n"5 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
6 xml:lang="en"6 metal:use-macro="view/macro:page/main_only"
7 lang="en"7 i18n:domain="malone">
8 dir="ltr"8
9 metal:use-macro="view/macro:page/applicationhome"9 <h1 metal:fill-slot="heading">Bug tracking</h1>
10 i18n:domain="malone"10
11>11 <div metal:fill-slot="main">
12 <body>12
1313 <div class="top-portlet">
14 <div metal:fill-slot="help">14 <p class="error message"
15 <p>15 tal:condition="view/error_message"
16 Read more <a href="+about">about the Launchpad Bug Tracker</a>,16 tal:content="view/error_message">
17 the collaborative bug tracker for the open source world, and how you17 Error message.
18 can share information about bugs in distributions and upstream.
19 </p>18 </p>
20 <ul class="info">
21 <li>
22 <a href="https://help.launchpad.net/BugTrackerEmailInterface"
23 >Sending commands by e-mail</a>
24 </li>
25 </ul>
26 </div>
27
28 <h1 metal:fill-slot="heading">Bug tracking</h1>
29
30 <div metal:fill-slot="main">
31
32 <ul class="rollover buttons">
33 <li>
34 <a href="/+tour/bugs"
35 tal:attributes="href string:${rooturl}+tour/bugs">
36 <img
37 alt="Take a tour"
38 src="/+icing/but-lrg-takeatour.gif"
39 />
40 </a>
41 </li>
42 <li>
43 <a href="+filebug">
44 <img
45 alt="Report a bug"
46 src="/+icing/but-lrg-reportabug.gif"
47 />
48 </a>
49 </li>
50 </ul>
51 <p
52 tal:condition="view/error_message"
53 tal:content="view/error_message"
54 class="error message"
55 >Error message.</p>
56 <form class="central" action="/bugs/+bugs" method="get">19 <form class="central" action="/bugs/+bugs" method="get">
57 <table>20 <table>
58 <tbody>21 <tbody>
59 <tr>22 <tr>
60 <td style="text-align: right;">23 <td style="text-align: right;">
61 <input24 <input tal:replace="structure view/widgets/searchtext" />
62 tal:replace="structure view/widgets/searchtext"
63 id="text"
64 type="text"
65 name="field.searchtext"
66 size="50"
67 />
68 </td>25 </td>
69 <td>26 <td>
70 <input27 <input type="submit" name="search" value="Search Bug Reports" />
71 type="submit"
72 name="search"
73 value="Search Bug Reports"
74 />
75 </td>28 </td>
76 </tr>29 </tr>
77 <tr tal:define="options nocall:view/widgets/scope/options;30 <tr tal:define="options nocall:view/widgets/scope/options;
@@ -80,24 +33,11 @@
80 style="text-align: right;">33 style="text-align: right;">
81 <div>34 <div>
82 <label>35 <label>
83 <input36 <input tal:replace="structure options/all" />
84 tal:replace="structure options/all"
85 name="scope"
86 type="radio"
87 value="all"
88 checked="checked"
89 />
90 All projects37 All projects
91 </label>38 </label>
92 <label>39 <label>
93 <input40 <input tal:replace="structure options/project" />
94 tal:replace="structure options/project"
95 name="scope"
96 id="scope.project"
97 type="radio"
98 value="project"
99 onclick="document.getElementById('field.target').focus();"
100 />
101 One project:41 One project:
102 <tal:input replace="structure target_widget/inputField" />42 <tal:input replace="structure target_widget/inputField" />
103 </label>43 </label>
@@ -118,41 +58,47 @@
118 tal:content="structure script" />58 tal:content="structure script" />
119 </form>59 </form>
120 <p id="application-summary">60 <p id="application-summary">
121 Launchpad&rsquo;s bug tracker helps software teams to 61 Launchpad&rsquo;s bug tracker helps software teams to
122 collaborate on bug reports and fixes. 62 collaborate on bug reports and fixes.
123 (<a href="https://help.launchpad.net/Bugs">Read our guide</a>)63 (<a href="https://help.launchpad.net/Bugs">Read our guide</a> or
64 <a href="/+tour">take a tour</a>)
124 </p>65 </p>
125 <div class="columns">66 </div>
126 <div class="two column left">67
68 <div class="yui-g">
69 <div class="first yui-u">
70 <div class="portlet">
127 <h2>Recently reported</h2>71 <h2>Recently reported</h2>
128 <table>72 <table>
129 <tbody>73 <tbody>
130 <tr74 <tr tal:repeat="bug context/latest_bugs"
131 tal:repeat="bug context/latest_bugs"75 tal:replace="structure bug/@@+listing-detailed" />
132 tal:replace="structure bug/@@+listing-detailed"
133 />
134 </tbody>76 </tbody>
135 </table>77 </table>
136 </div>78 </div>
137 <div class="two column right">79 </div>
80 <div class="yui-u">
81 <div class="portlet">
138 <h2>Recently fixed</h2>82 <h2>Recently fixed</h2>
139 <table id="fixed-bugs">83 <table id="fixed-bugs">
140 <tbody>84 <tbody>
141 <tr85 <tr tal:repeat="fixed_bug view/getMostRecentlyFixedBugs"
142 tal:repeat="fixed_bug view/getMostRecentlyFixedBugs"86 tal:replace="structure fixed_bug/@@+listing-detailed" />
143 tal:replace="structure fixed_bug/@@+listing-detailed"
144 />
145 </tbody>87 </tbody>
146 </table>88 </table>
147 </div>89 </div>
148 </div><!--columns-->90 </div>
149 <div class="clear"></div>91 </div>
150 <div92
151 id="application-footer"93 <div class="yui-g">
152 tal:content="structure context/@@+portlet-stats"94 <div class="first yui-u">
153 />95 <div tal:replace="structure context/@@+portlet-stats" />
15496 </div>
15597 <div class="yui-u">
156 </div><!--main-->98 <tal:menu replace="structure view/@@+related-pages" />
157 </body>99 </div>
158</html>100 </div>
101
102 </div>
103
104</malone-index>
159105
=== modified file 'lib/lp/bugs/templates/malone-portlet-stats.pt'
--- lib/lp/bugs/templates/malone-portlet-stats.pt 2009-07-17 17:59:07 +0000
+++ lib/lp/bugs/templates/malone-portlet-stats.pt 2009-09-04 15:05:26 +0000
@@ -1,24 +1,28 @@
1<tal:root1<div
2 xmlns:tal="http://xml.zope.org/namespaces/tal"2 xmlns:tal="http://xml.zope.org/namespaces/tal"
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 omit-tag="">5 class="portlet">
6<div>6 <h2>Statistics</h2>
7 <strong tal:content="context/bug_count">5</strong> bugs reported across7 <ul>
8 <strong tal:content="context/projects_with_bugs_count">5</strong> projects8 <li>
9</div>9 <strong tal:content="context/bug_count">5</strong> bugs reported
10<div>10 across <strong tal:content="context/projects_with_bugs_count" />
11 including <strong tal:content="context/bugwatch_count">5</strong> links11 projects
12 to <strong tal:content="context/bugtracker_count">5</strong>12 </li>
13 <a href="/bugs/bugtrackers">bug trackers</a>13 <li>
14</div>14 including <strong tal:content="context/bugwatch_count" /> links
15<div>15 to <strong tal:content="context/bugtracker_count">5</strong> <a
16 <strong tal:content="context/shared_bug_count">7</strong> bugs are16 href="/bugs/bugtrackers">bug trackers</a>
17 <a href="http://help.launchpad.net/CrossProjectBugTracking">shared across17 </li>
18 multiple projects</a>18 <li>
19</div>19 <strong tal:content="context/shared_bug_count">7</strong> bugs are
20<div>20 <a href="http://help.launchpad.net/CrossProjectBugTracking">shared
21 and <strong tal:content="view/getCveBugLinkCount">5</strong>21 across multiple projects</a>
22 bugs are related to <a href="/bugs/cve">CVE entries</a>22 </li>
23</div>23 <li>
24</tal:root>24 and <strong tal:content="view/getCveBugLinkCount">5</strong>
25 bugs are related to <a href="/bugs/cve">CVE entries</a>
26 </li>
27 </ul>
28</div>