Merge lp://staging/~allenap/launchpad/ui-convert-bug-tracker-3.0-bug-418155-pt2 into lp://staging/~allenap/launchpad/ui-convert-bug-tracker-3.0-bug-418155

Proposed by Gavin Panella
Status: Merged
Approved by: Gavin Panella
Approved revision: no longer in the source branch.
Merge reported by: Gavin Panella
Merged at revision: not available
Proposed branch: lp://staging/~allenap/launchpad/ui-convert-bug-tracker-3.0-bug-418155-pt2
Merge into: lp://staging/~allenap/launchpad/ui-convert-bug-tracker-3.0-bug-418155
Diff against target: None lines
To merge this branch: bzr merge lp://staging/~allenap/launchpad/ui-convert-bug-tracker-3.0-bug-418155-pt2
Reviewer Review Type Date Requested Status
Michael Nelson (community) ui Approve
Graham Binns (community) code Approve
Review via email: mp+10969@code.staging.launchpad.net
To post a comment you must log in.
Revision history for this message
Gavin Panella (allenap) wrote :

This branch converts the bug tracker edit page, the bug tracker
details and projects portlets, and the remote bug index pages to the
3.0 layout. It also makes some small adjustments to the bug tracker
index page.

*** The parent of this branch is:
*** lp:~allenap/launchpad/ui-convert-bug-tracker-3.0-bug-418155

./bin/test -vvt bug-?tracker

lib/canonical/launchpad/testing/pages.py

  Change the print_table() doctest helper function to only print rows
  if cells are found. I've checked that this does not affect
  print_table()'s use in other tests.

lib/lp/bugs/browser/bugtracker.py

  Add a cancel link to the bug tracker edit view.

lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt

  This test was printing whole pages and relying on ellipsis matching,
  so I've changed parts to use print_location(), print_table() and
  print_feedback_messages() instead.

lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt

  Show the presence of the cancel link from above, change the expected
  wording from the projects portlet, and change the expected
  capitalization from the details portlet. An addition section has
  been added to demonstrate how the contact details are not rendered
  at all if there are none recorded.

lib/lp/bugs/templates/bugtracker-edit.pt

  Conversion to main_side layout. I changed a <ul> to an <ol> because
  <ul>s have been castrated in the new style sheet. I imagine I'll
  have a UI review discussion about this :)

lib/lp/bugs/templates/bugtracker-index.pt

  Changed the layout here a bit, to better work with the new
  breadcrumbs. The <h1> on the page is now simply the bug tracker
  title, and the summary is now introduced with an <h2>.

lib/lp/bugs/templates/bugtracker-portlet-details.pt

  Convert this to use a <dl> instead of <b> and <br> tags (arg!). The
  contact details now only appear if there are some.

lib/lp/bugs/templates/bugtracker-portlet-projects.pt

  Convert this portlet to have the intro text within a <p> and the
  list of projects within a <ul>.

lib/lp/bugs/templates/remotebug-index.pt

  Convert to main_side layout. I've also changed the text on the page
  to, ya know, make sense :)

  I think this page is almost unused. It is not linked to from any
  page in Launchpad as far as I'm aware, and is really just a URL hack
  for use by external bug trackers linking back to Launchpad. Also,
  this page is only rendered if there are 2 or more Launchpad bugs
  watching the remote bug. In other words, for UI review especially,
  please don't agonize over appearance here.

  Having said that, I had a very quick go at adding a breadcrumb for
  this page. However, no breadcrumb was rendered and I couldn't fathom
  why. See <http://pastebin.ubuntu.com/263018/> for the diff if you're
  keen; maybe you can spot something I missed.

Revision history for this message
Graham Binns (gmb) :
review: Approve (code)
Revision history for this message
Gavin Panella (allenap) wrote :

To walk through the UI, try:

 * Go to the bug trackers page (for IBugTrackerSet) at
   <https://bugs.launchpad.dev/bugs/bugtrackers>,

 * There's nothing new in this page for this branch, so just click on
   "This Mozilla.prg Bug Tracker" to see its overview page,

 * Look at the portlets. The top portlet replicates some of the info
   that's in the page, but it is used elsewhere in Launchpad so it's
   useful to keep.

 * Click "Change details",

 * This is one place where the details portlet is useful.

 * Use the new cancel link to return to the previous page,

 * Notice the new h1 title and h2 "Summary" heading,

 * Append /42 to the URL and see the remote bug index page, including
   the h2 "Is watched by..." and the new text. I think the text is
   good, but the heading was a tough one. I'm simply still not sure
   exactly how to use the heading slot.

Revision history for this message
Michael Nelson (michael.nelson) wrote :

> To walk through the UI, try:

Thanks for providing these walk-throughs... much easier to review! I'll start doing that too.
And sorry for the two 'needs fixing' reviews! The pages really do look great (we initially tried to re-use our soyuz context portlets in the same way), but afaik, it's left-over from 1.0 (or maybe I'm confused at that point - I wasn't around then), but it's not meant to be in the 3.0 side-bar.

>
> * Go to the bug trackers page (for IBugTrackerSet) at
> <https://bugs.launchpad.dev/bugs/bugtrackers>,
>
> * There's nothing new in this page for this branch, so just click on
> "This Mozilla.prg Bug Tracker" to see its overview page,
>
> * Look at the portlets. The top portlet replicates some of the info
> that's in the page, but it is used elsewhere in Launchpad so it's
> useful to keep.

See comments on the first MP. I think it's really 1.0 templates trying to be forced into the 3.0 mold (I tried the same thing with some soyuz pages and got rejected ;) ).

>
> * Click "Change details",
>
> * This is one place where the details portlet is useful.

Well, not really - the only extra information presented in the portlet is not really relevant to the person editing the watch? Otherwise it's just duplicated info, and as mentioned in the previous MP, afaik, isn't the type of content that is meant to go in the side portlet. I'd recommend using main_only for this template, you might even be able to get rid of the template and use generic-edit.pt?

>
> * Use the new cancel link to return to the previous page,

Great!

>
> * Notice the new h1 title and h2 "Summary" heading,

Great! Note that both of these above two points will happen automatically with generic-edit.

>
> * Append /42 to the URL and see the remote bug index page, including
> the h2 "Is watched by..." and the new text. I think the text is
> good, but the heading was a tough one. I'm simply still not sure
> exactly how to use the heading slot.

Yeah, it's been confusing and could change again - but afaik, you've done the right thing for the current rules (ie. this is an +index page, so putting an <h1>context.title</h1> is correct).

I'm not so sure about "Is watched by...". I think this h2 shouldn't be a continuation of a sentance. In fact, I'm not even sure that the h2 is necessary. I know I'm looking at the Remote bug #42 for the Mozilla.org bug tracker, and your overview para tells me exactly what I need to know.

And again, I don't think we can put the context details portlet in the side-bar (it was requested for 1.0 and afaik meant to be removed for 2.0(?) and doesn't belong in the side-bar for 3.0).

review: Needs Fixing (ui)
Revision history for this message
Gavin Panella (allenap) wrote :
Download full text (3.8 KiB)

On Tue, 01 Sep 2009 11:43:19 -0000
Michael Nelson <email address hidden> wrote:

> Review: Needs Fixing ui
> > To walk through the UI, try:
>
> Thanks for providing these walk-throughs... much easier to review!
> I'll start doing that too. And sorry for the two 'needs fixing'
> reviews! The pages really do look great (we initially tried to
> re-use our soyuz context portlets in the same way), but afaik, it's
> left-over from 1.0 (or maybe I'm confused at that point - I wasn't
> around then), but it's not meant to be in the 3.0 side-bar.

No worries about the needs-fixing. They need fixing! :)

>
> >
> > * Go to the bug trackers page (for IBugTrackerSet) at
> > <https://bugs.launchpad.dev/bugs/bugtrackers>,
> >
> > * There's nothing new in this page for this branch, so just click on
> > "This Mozilla.prg Bug Tracker" to see its overview page,
> >
> > * Look at the portlets. The top portlet replicates some of the info
> > that's in the page, but it is used elsewhere in Launchpad so it's
> > useful to keep.
>
> See comments on the first MP. I think it's really 1.0 templates
> trying to be forced into the 3.0 mold (I tried the same thing with
> some soyuz pages and got rejected ;) ).

Yes, I've removed all the side portlets from all of the bug tracker
pages; they don't make sense anywhere. The navigation menu for the bug
tracker index page remains.

>
> >
> > * Click "Change details",
> >
> > * This is one place where the details portlet is useful.
>
> Well, not really - the only extra information presented in the
> portlet is not really relevant to the person editing the watch?
> Otherwise it's just duplicated info, and as mentioned in the
> previous MP, afaik, isn't the type of content that is meant to go in
> the side portlet. I'd recommend using main_only for this template,
> you might even be able to get rid of the template and use
> generic-edit.pt?

I'd not heard of generic-edit before; it'll be handy for the
future. However, I don't think it'll be suitable here because the edit
page has some blurb at the beginning, including an explanation of why
a particular bug tracker cannot be deleted (which is not static).

>
> >
> > * Use the new cancel link to return to the previous page,
>
> Great!
>
> >
> > * Notice the new h1 title and h2 "Summary" heading,
>
> Great! Note that both of these above two points will happen
> automatically with generic-edit.
>
> >
> > * Append /42 to the URL and see the remote bug index page, including
> > the h2 "Is watched by..." and the new text. I think the text is
> > good, but the heading was a tough one. I'm simply still not sure
> > exactly how to use the heading slot.
>
>
> Yeah, it's been confusing and could change again - but afaik, you've
> done the right thing for the current rules (ie. this is an +index
> page, so putting an <h1>context.title</h1> is correct).
>
> I'm not so sure about "Is watched by...". I think this h2 shouldn't
> be a continuation of a sentance. In fact, I'm not even sure that the
> h2 is necessary. I know I'm looking at the Remote bug #42 for the
> Mozilla.org bug tracker, and your overview para tells me exactly
> what I need to know.

I've rem...

Read more...

1=== modified file 'lib/lp/bugs/browser/configure.zcml'
2--- lib/lp/bugs/browser/configure.zcml 2009-08-28 12:57:41 +0000
3+++ lib/lp/bugs/browser/configure.zcml 2009-09-01 14:31:18 +0000
4@@ -740,6 +740,9 @@
5 <browser:page
6 name="+portlet-projects"
7 template="../templates/bugtracker-portlet-projects.pt"/>
8+ <browser:page
9+ name="+portlet-watches"
10+ template="../templates/bugtracker-portlet-watches.pt"/>
11 </browser:pages>
12 <browser:page
13 name="+edit"
14
15=== modified file 'lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt'
16--- lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt 2009-08-28 12:57:41 +0000
17+++ lib/lp/bugs/stories/bugtracker/bugtrackers-index.txt 2009-09-01 16:19:33 +0000
18@@ -147,17 +147,3 @@
19 >>> user_browser.getLink("Register another bug tracker").click()
20 >>> user_browser.url
21 'http://bugs.launchpad.dev/bugs/bugtrackers/+newbugtracker'
22-
23-In fact, the link is there twice: once at the top of the page, once at
24-the bottom.
25-
26- >>> user_browser.open('http://launchpad.dev/bugs/bugtrackers')
27- >>> links = find_tags_by_class(
28- ... user_browser.contents, 'menu-link-newbugtracker')
29- >>> len(links)
30- 2
31-
32- >>> for link in links:
33- ... print extract_text(link)
34- Register another bug tracker
35- Register another bug tracker
36
37=== modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt'
38--- lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt 2009-08-28 15:43:29 +0000
39+++ lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt 2009-09-01 16:47:37 +0000
40@@ -24,9 +24,9 @@
41 * Answers - http://answers.launchpad.dev/
42 Main heading: Remote Bug #42 in The Mozilla.org Bug Tracker
43
44- >>> print_table(find_tag_by_id(browser.contents, 'watchedbugs'))
45- #1: Firefox does not support SVG
46- #2: Blackhole Trash folder
47+ >>> print extract_text(find_tag_by_id(browser.contents, 'watchedbugs'))
48+ Bug #1: Firefox does not support SVG
49+ Bug #2: Blackhole Trash folder
50
51 If there is only a single bug watching the remote bug, then we skip
52 the list page and redirect the user directly to that bug's page:
53@@ -80,16 +80,16 @@
54 * Answers - http://answers.launchpad.dev/
55 Main heading: Remote Bug #42 in The Mozilla.org Bug Tracker
56
57- >>> print_table(find_tag_by_id(anon_browser.contents, 'watchedbugs'))
58- #1: Private bug
59- #2: Blackhole Trash folder
60+ >>> print extract_text(find_tag_by_id(anon_browser.contents, 'watchedbugs'))
61+ Bug #1: (Private)
62+ Bug #2: Blackhole Trash folder
63
64 The bug title is still provided if the user can view the private bug:
65
66 >>> browser.open('http://launchpad.dev/bugs/bugtrackers/mozilla.org/42')
67- >>> print_table(find_tag_by_id(browser.contents, 'watchedbugs'))
68- #1: Firefox does not support SVG
69- #2: Blackhole Trash folder
70+ >>> print extract_text(find_tag_by_id(browser.contents, 'watchedbugs'))
71+ Bug #1: Firefox does not support SVG
72+ Bug #2: Blackhole Trash folder
73
74 For the case where the private bug is the only one watching the given
75 remote bug, we don't perform the redirect ahead of time:
76
77=== modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt'
78--- lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt 2009-08-28 14:09:24 +0000
79+++ lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt 2009-09-01 15:20:28 +0000
80@@ -677,15 +677,13 @@
81
82 >>> user_browser.open('http://launchpad.dev/bugs/bugtrackers/email')
83 >>> print extract_text(find_portlet(
84- ... user_browser.contents, 'Email bugtracker'))
85- Email bugtracker
86- Location:
87+ ... user_browser.contents, 'Details'))
88+ Details
89+ Location
90 mailto:bugs@example.com
91- Tracker type:
92+ Tracker type
93 Email Address
94- Number of watches:
95- 1
96- Creator:
97+ Created by
98 Foo Bar
99
100 If the user is not logged in, email addresses in the Location field
101@@ -693,9 +691,9 @@
102
103 >>> anon_browser.open('http://launchpad.dev/bugs/bugtrackers/email')
104 >>> print extract_text(find_portlet(
105- ... anon_browser.contents, 'Email bugtracker'))
106- Email bugtracker
107- Location:
108+ ... anon_browser.contents, 'Details'))
109+ Details
110+ Location
111 mailto:&lt;email address hidden&gt;
112 ...
113
114@@ -704,15 +702,14 @@
115 >>> anon_browser.open(
116 ... 'http://bugs.launchpad.dev/bugs/bugtrackers/gnome-bugzilla')
117 >>> print extract_text(find_portlet(
118- ... anon_browser.contents, 'GnomeGBug GTracker'))
119- GnomeGBug GTracker
120- Location:
121- http://bugzilla.gnome.org/bugs
122- Tracker type:
123+ ... anon_browser.contents, 'Details'))
124+ Details
125+ Location
126+ http://bugzilla.gnome.org/bugs
127+ http://alias.example.com/ (Alias)
128+ Tracker type
129 Bugzilla
130- Number of watches:
131- 2
132- Contact details:
133+ Contact details
134 Jeff Waugh, in his pants.
135- Creator:
136+ Created by
137 Foo Bar
138
139=== modified file 'lib/lp/bugs/templates/bugtracker-edit.pt'
140--- lib/lp/bugs/templates/bugtracker-edit.pt 2009-08-28 13:47:50 +0000
141+++ lib/lp/bugs/templates/bugtracker-edit.pt 2009-09-01 16:01:09 +0000
142@@ -3,13 +3,9 @@
143 xmlns:tal="http://xml.zope.org/namespaces/tal"
144 xmlns:metal="http://xml.zope.org/namespaces/metal"
145 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
146- metal:use-macro="view/macro:page/main_side"
147+ metal:use-macro="view/macro:page/main_only"
148 i18n:domain="malone">
149
150- <div metal:fill-slot="side">
151- <div tal:replace="structure context/@@+portlet-details" />
152- </div>
153-
154 <div metal:fill-slot="main">
155 <h1>Change bug tracker details</h1>
156 <div class="top-portlet">
157
158=== modified file 'lib/lp/bugs/templates/bugtracker-index.pt'
159--- lib/lp/bugs/templates/bugtracker-index.pt 2009-08-28 13:42:10 +0000
160+++ lib/lp/bugs/templates/bugtracker-index.pt 2009-09-01 16:07:16 +0000
161@@ -12,104 +12,35 @@
162
163 <metal:side fill-slot="side">
164 <tal:menu replace="structure view/@@+global-actions" />
165- <div tal:replace="structure context/@@+portlet-details" />
166- <div tal:replace="structure context/@@+portlet-projects" />
167 </metal:side>
168
169- <metal:macros fill-slot="bogus">
170- <metal:macro define-macro="watchlisting">
171- <table class="sortable listing" id="latestwatches">
172- <thead>
173- <tr>
174- <th>Launchpad bug</th>
175- <th>Remote bug</th>
176- <th>Status</th>
177- </tr>
178- </thead>
179- <tbody>
180- <tal:watches repeat="watch watches">
181- <tr tal:define="show watch/bug/required:launchpad.View">
182- <tal:hide-watch-details condition="not:show">
183- <td>
184- <img alt="" src="/@@/bug" />
185- #<span tal:replace="watch/bug/id">34</span>:
186- <em>(Private)</em>
187- </td>
188- <td><em>-</em></td>
189- <td></td>
190- </tal:hide-watch-details>
191- <tal:show-watch-details condition="show">
192- <td>
193- <img alt="" src="/@@/bug" />
194- <a href="#" tal:attributes="href watch/bug/fmt:url">
195- #<span tal:replace="watch/bug/id">34</span>:
196- <span tal:replace="watch/bug/title">
197- Launchpad Bug Title
198- </span>
199- </a>
200- </td>
201- <td>
202- <a tal:replace="structure watch/fmt:external-link-short">
203- 1234
204- </a>
205- </td>
206- <td><tal:status tal:replace="watch/remotestatus"/></td>
207- </tal:show-watch-details>
208- </tr>
209- </tal:watches>
210- </tbody>
211- </table>
212- </metal:macro>
213- </metal:macros>
214-
215 <div metal:fill-slot="main">
216 <div class="top-portlet">
217- <h2>Summary</h2>
218- <p tal:content="context/summary">
219- $BugTracker.summary goes here. This should be quite short,
220- just a single paragraph of text really, giving the BugTracker
221- highlights.
222- </p>
223+ <tal:summary condition="context/summary">
224+ <h2>Summary</h2>
225+ <p tal:content="context/summary">
226+ $BugTracker.summary goes here. This should be quite short,
227+ just a single paragraph of text really, giving the BugTracker
228+ highlights.
229+ </p>
230+ </tal:summary>
231 <p tal:condition="not: context/active" id="inactive-message">
232 <strong>
233 Bug watch updates for <tal:bugtracker
234 content="context/title" /> are disabled.
235 </strong>
236 </p>
237-
238- <h2>Location</h2>
239- <ul id="bugtracker-urls">
240- <li>
241- <strong>
242- <a tal:replace="structure context/fmt:external-link">
243- http://bugs.example.com/
244- </a>
245- </strong>
246- </li>
247- <li tal:repeat="alias context/fmt:aliases">
248- <strong tal:content="alias" /> (Alias)
249- </li>
250- </ul>
251-
252- <tal:contact-details condition="context/contactdetails">
253- <h2>Contact details</h2>
254- <div tal:condition="context/contactdetails"
255- tal:content="context/contactdetails" >
256- The contact details for the admins of this bug tracker go
257- here, so we can get to them in an emergency.
258- </div>
259- </tal:contact-details>
260-
261- <tal:watches condition="context/watches">
262- <h2>Bug watches</h2>
263- <tal:navigation
264- replace="structure view/batchnav/@@+navigation-links-upper" />
265- <tal:block define="watches view/batchnav/batch" condition="watches">
266- <metal:watches use-macro="template/macros/watchlisting" />
267- </tal:block>
268- <tal:navigation
269- replace="structure view/batchnav/@@+navigation-links-lower" />
270- </tal:watches>
271+ </div>
272+ <div class="yui-g">
273+ <div class="first yui-u">
274+ <div tal:replace="structure context/@@+portlet-details" />
275+ </div>
276+ <div class="yui-u">
277+ <div tal:replace="structure context/@@+portlet-projects" />
278+ </div>
279+ </div>
280+ <div class="yui-u" tal:condition="context/watches">
281+ <div tal:replace="structure context/@@+portlet-watches" />
282 </div>
283 </div>
284
285
286=== modified file 'lib/lp/bugs/templates/bugtracker-portlet-details.pt'
287--- lib/lp/bugs/templates/bugtracker-portlet-details.pt 2009-08-28 14:00:23 +0000
288+++ lib/lp/bugs/templates/bugtracker-portlet-details.pt 2009-09-01 15:14:51 +0000
289@@ -1,27 +1,32 @@
290 <div
291- xmlns:tal="http://xml.zope.org/namespaces/tal"
292- xmlns:metal="http://xml.zope.org/namespaces/metal"
293- xmlns:i18n="http://xml.zope.org/namespaces/i18n"
294- class="portlet" id="portlet-details">
295-
296- <h2 tal:content="context/title">bugtracker title</h2>
297-
298+ xmlns:tal="http://xml.zope.org/namespaces/tal"
299+ xmlns:metal="http://xml.zope.org/namespaces/metal"
300+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
301+ class="portlet" id="portlet-details">
302+ <h2>Details</h2>
303 <dl>
304- <dt>Location:</dt>
305+ <dt>Location</dt>
306 <dd>
307- <img alt="" src="/@@/link" />
308- <a tal:replace="structure context/fmt:external-link" />
309+ <ul id="bugtracker-urls">
310+ <li>
311+ <strong>
312+ <a tal:replace="structure context/fmt:external-link">
313+ http://bugs.example.com/
314+ </a>
315+ </strong>
316+ </li>
317+ <li tal:repeat="alias context/fmt:aliases">
318+ <strong tal:content="alias" /> (Alias)
319+ </li>
320+ </ul>
321 </dd>
322- <dt>Tracker type:</dt>
323+ <dt>Tracker type</dt>
324 <dd tal:content="context/bugtrackertype/title" />
325- <dt>Number of watches:</dt>
326- <dd tal:content="context/watches/count" />
327 <tal:contact-details condition="context/contactdetails">
328- <dt>Contact details:</dt>
329+ <dt>Contact details</dt>
330 <dd tal:content="context/contactdetails" />
331 </tal:contact-details>
332- <dt>Creator:</dt>
333+ <dt>Created by</dt>
334 <dd tal:content="structure context/owner/fmt:link" />
335 </dl>
336-
337 </div>
338
339=== modified file 'lib/lp/bugs/templates/bugtracker-portlet-projects.pt'
340--- lib/lp/bugs/templates/bugtracker-portlet-projects.pt 2009-08-28 13:51:06 +0000
341+++ lib/lp/bugs/templates/bugtracker-portlet-projects.pt 2009-09-01 15:16:10 +0000
342@@ -1,16 +1,13 @@
343 <div
344- xmlns:tal="http://xml.zope.org/namespaces/tal"
345- xmlns:metal="http://xml.zope.org/namespaces/metal"
346- xmlns:i18n="http://xml.zope.org/namespaces/i18n"
347- class="portlet" id="portlet-projects">
348-
349+ xmlns:tal="http://xml.zope.org/namespaces/tal"
350+ xmlns:metal="http://xml.zope.org/namespaces/metal"
351+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
352+ class="portlet" id="portlet-projects">
353 <h2>Related projects</h2>
354-
355 <p>
356 You can link a registered bug tracker with a <a
357 href="/projects/">registered project</a> in Launchpad:
358 </p>
359-
360 <ul tal:define="related_projects view/related_projects">
361 <li tal:repeat="project related_projects">
362 <a tal:replace="structure project/fmt:link" />
363@@ -19,5 +16,4 @@
364 <i>There are no projects linked to this bug tracker.</i>
365 </li>
366 </ul>
367-
368 </div>
369
370=== added file 'lib/lp/bugs/templates/bugtracker-portlet-watches.pt'
371--- lib/lp/bugs/templates/bugtracker-portlet-watches.pt 1970-01-01 00:00:00 +0000
372+++ lib/lp/bugs/templates/bugtracker-portlet-watches.pt 2009-09-01 15:15:00 +0000
373@@ -0,0 +1,54 @@
374+<div
375+ xmlns:tal="http://xml.zope.org/namespaces/tal"
376+ xmlns:metal="http://xml.zope.org/namespaces/metal"
377+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
378+ class="portlet" id="portlet-watches">
379+ <h2>Bug watches</h2>
380+ <tal:navigation
381+ replace="structure view/batchnav/@@+navigation-links-upper" />
382+ <tal:block define="watches view/batchnav/batch">
383+ <table class="sortable listing" id="latestwatches">
384+ <thead>
385+ <tr>
386+ <th>Launchpad bug</th>
387+ <th>Remote bug</th>
388+ <th>Status</th>
389+ </tr>
390+ </thead>
391+ <tbody>
392+ <tal:watches repeat="watch watches">
393+ <tr tal:define="show watch/bug/required:launchpad.View">
394+ <tal:hide-watch-details condition="not:show">
395+ <td>
396+ <img alt="" src="/@@/bug" />
397+ #<span tal:replace="watch/bug/id">34</span>:
398+ <em>(Private)</em>
399+ </td>
400+ <td><em>-</em></td>
401+ <td></td>
402+ </tal:hide-watch-details>
403+ <tal:show-watch-details condition="show">
404+ <td>
405+ <img alt="" src="/@@/bug" />
406+ <a href="#" tal:attributes="href watch/bug/fmt:url">
407+ #<span tal:replace="watch/bug/id">34</span>:
408+ <span tal:replace="watch/bug/title">
409+ Launchpad Bug Title
410+ </span>
411+ </a>
412+ </td>
413+ <td>
414+ <a tal:replace="structure watch/fmt:external-link-short">
415+ 1234
416+ </a>
417+ </td>
418+ <td><tal:status tal:replace="watch/remotestatus"/></td>
419+ </tal:show-watch-details>
420+ </tr>
421+ </tal:watches>
422+ </tbody>
423+ </table>
424+ </tal:block>
425+ <tal:navigation
426+ replace="structure view/batchnav/@@+navigation-links-lower" />
427+</div>
428
429=== modified file 'lib/lp/bugs/templates/bugtrackers-index.pt'
430--- lib/lp/bugs/templates/bugtrackers-index.pt 2009-09-01 09:53:09 +0000
431+++ lib/lp/bugs/templates/bugtrackers-index.pt 2009-09-01 16:23:56 +0000
432@@ -69,11 +69,6 @@
433 shown in Launchpad, and Launchpad subscribers are notified when
434 the external status changes.
435 </p>
436- <p tal:define="link context/menu:context/newbugtracker"
437- tal:content="structure link/render"
438- tal:condition="link/enabled">
439- Add a new bug tracker
440- </p>
441 <tal:table define="id string:trackers;
442 trackers view/active_bug_trackers">
443 <metal:table use-macro="template/macros/tracker-table" />
444
445=== modified file 'lib/lp/bugs/templates/remotebug-index.pt'
446--- lib/lp/bugs/templates/remotebug-index.pt 2009-08-28 15:43:29 +0000
447+++ lib/lp/bugs/templates/remotebug-index.pt 2009-09-01 16:45:43 +0000
448@@ -3,7 +3,7 @@
449 xmlns:tal="http://xml.zope.org/namespaces/tal"
450 xmlns:metal="http://xml.zope.org/namespaces/metal"
451 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
452- metal:use-macro="view/macro:page/main_side"
453+ metal:use-macro="view/macro:page/main_only"
454 i18n:domain="launchpad">
455
456 <metal:heading fill-slot="heading">
457@@ -16,7 +16,6 @@
458
459 <div metal:fill-slot="main">
460 <div class="top-portlet">
461- <h2>Is watched by...</h2>
462 <p>
463 The following bugs in Launchpad are watching bug #<span
464 tal:replace="context/remotebug">1234</span> in <span
465@@ -25,26 +24,20 @@
466 using &ldquo;Also affects project&rdquo; or &ldquo;Also
467 affects distribution&rdquo; on the bug page.
468 </p>
469- <table class="listing" id="watchedbugs">
470- <thead>
471- <tr>
472- <th>Bug</th>
473- </tr>
474- </thead>
475- <tbody>
476- <tal:bugs tal:repeat="bug context/bugs">
477- <tr tal:define="visible bug/required:launchpad.View">
478- <td tal:condition="visible">
479- <a class="sprite bug"
480- tal:attributes="href bug/fmt:url"
481- tal:content="string:#${bug/id}: ${bug/title}" />
482- </td>
483- <td tal:condition="not:visible"
484- tal:content="string:#${bug/id}: Private bug" />
485- </tr>
486- </tal:bugs>
487- </tbody>
488- </table>
489+ <ul id="watchedbugs">
490+ <tal:bugs repeat="bug context/bugs">
491+ <li tal:define="visible bug/required:launchpad.View">
492+ <tal:visible condition="visible">
493+ <a tal:replace="structure bug/fmt:link" />
494+ </tal:visible>
495+ <tal:hidden condition="not:visible">
496+ <span class="sprite bug">
497+ Bug #<span tal:replace="bug/id" />: <em>(Private)</em>
498+ </span>
499+ </tal:hidden>
500+ </li>
501+ </tal:bugs>
502+ </ul>
503 </div>
504 </div>
505
Revision history for this message
Michael Nelson (michael.nelson) wrote :
Download full text (4.4 KiB)

> On Tue, 01 Sep 2009 11:43:19 -0000
> Michael Nelson <email address hidden> wrote:
>
> > Review: Needs Fixing ui
> > > To walk through the UI, try:
> >
> > Thanks for providing these walk-throughs... much easier to review!
> > I'll start doing that too. And sorry for the two 'needs fixing'
> > reviews! The pages really do look great (we initially tried to
> > re-use our soyuz context portlets in the same way), but afaik, it's
> > left-over from 1.0 (or maybe I'm confused at that point - I wasn't
> > around then), but it's not meant to be in the 3.0 side-bar.
>
> No worries about the needs-fixing. They need fixing! :)
>
> >
> > >
> > > * Go to the bug trackers page (for IBugTrackerSet) at
> > > <https://bugs.launchpad.dev/bugs/bugtrackers>,
> > >
> > > * There's nothing new in this page for this branch, so just click on
> > > "This Mozilla.prg Bug Tracker" to see its overview page,
> > >
> > > * Look at the portlets. The top portlet replicates some of the info
> > > that's in the page, but it is used elsewhere in Launchpad so it's
> > > useful to keep.
> >
> > See comments on the first MP. I think it's really 1.0 templates
> > trying to be forced into the 3.0 mold (I tried the same thing with
> > some soyuz pages and got rejected ;) ).
>
> Yes, I've removed all the side portlets from all of the bug tracker
> pages; they don't make sense anywhere. The navigation menu for the bug
> tracker index page remains.

Looks good. I just noticed that you removed the colons from the dt's in the details portlet. I have no idea what is correct, but I usually just do what registry has done (ie. https://launchpad.dev/firefox ). Up to you.

>
> >
> > >
> > > * Click "Change details",
> > >
> > > * This is one place where the details portlet is useful.
> >
> > Well, not really - the only extra information presented in the
> > portlet is not really relevant to the person editing the watch?
> > Otherwise it's just duplicated info, and as mentioned in the
> > previous MP, afaik, isn't the type of content that is meant to go in
> > the side portlet. I'd recommend using main_only for this template,
> > you might even be able to get rid of the template and use
> > generic-edit.pt?
>
> I'd not heard of generic-edit before; it'll be handy for the
> future. However, I don't think it'll be suitable here because the edit
> page has some blurb at the beginning, including an explanation of why
> a particular bug tracker cannot be deleted (which is not static).

Sure - I don't mind either way, but just note that there is an extra_info slot on launchpad-form.pt (that is used by generic-edit.pt).

>
> >
> > >
> > > * Use the new cancel link to return to the previous page,
> >
> > Great!
> >
> > >
> > > * Notice the new h1 title and h2 "Summary" heading,
> >
> > Great! Note that both of these above two points will happen
> > automatically with generic-edit.
> >
> > >
> > > * Append /42 to the URL and see the remote bug index page, including
> > > the h2 "Is watched by..." and the new text. I think the text is
> > > good, but the heading was a tough one. I'm simply still not sure
> > > exactly how to use the heading slot.
> >
> >
> ...

Read more...

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

On Wed, 02 Sep 2009 07:30:40 -0000
Michael Nelson <email address hidden> wrote:

...
> I just noticed that you removed the colons from the dt's in the
> details portlet. I have no idea what is correct, but I usually just
> do what registry has done (ie. https://launchpad.dev/firefox ). Up
> to you.

Heh, I thought I was being clever! I've added them back in.

...
> > I'd not heard of generic-edit before; it'll be handy for the
> > future. However, I don't think it'll be suitable here because the edit
> > page has some blurb at the beginning, including an explanation of why
> > a particular bug tracker cannot be deleted (which is not static).
>
> Sure - I don't mind either way, but just note that there is an
> extra_info slot on launchpad-form.pt (that is used by
> generic-edit.pt).

Is there a way to define a slot without requiring a template for this
view anyway?

Revision history for this message
Michael Nelson (michael.nelson) wrote :

> On Wed, 02 Sep 2009 07:30:40 -0000
> Michael Nelson <email address hidden> wrote:
>
> ...
> > I just noticed that you removed the colons from the dt's in the
> > details portlet. I have no idea what is correct, but I usually just
> > do what registry has done (ie. https://launchpad.dev/firefox ). Up
> > to you.
>
> Heh, I thought I was being clever! I've added them back in.
>
> ...
> > > I'd not heard of generic-edit before; it'll be handy for the
> > > future. However, I don't think it'll be suitable here because the edit
> > > page has some blurb at the beginning, including an explanation of why
> > > a particular bug tracker cannot be deleted (which is not static).
> >
> > Sure - I don't mind either way, but just note that there is an
> > extra_info slot on launchpad-form.pt (that is used by
> > generic-edit.pt).
>
> Is there a way to define a slot without requiring a template for this
> view anyway?

Erm, good point. I was getting confused - so what I've seen others doing is creating a template that is basically like generic edit, but just fills that slot. For example, look at lp/registry/templates/milestone-edit.pt (ignoring the head_epilogue section there).

Again, I think what you've done is fine - it was just something to be aware of.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/canonical/launchpad/testing/pages.py'
2--- lib/canonical/launchpad/testing/pages.py 2009-08-27 19:55:58 +0000
3+++ lib/canonical/launchpad/testing/pages.py 2009-09-01 09:54:54 +0000
4@@ -258,7 +258,8 @@
5 for col_num, item in enumerate(row.findAll('td')):
6 if columns is None or col_num in columns:
7 row_content.append(extract_text(item))
8- print sep.join(row_content)
9+ if len(row_content) > 0:
10+ print sep.join(row_content)
11
12 def print_radio_button_field(content, name):
13 """Find the input called field.name, and print a friendly representation.
14
15=== modified file 'lib/lp/bugs/browser/bugtracker.py'
16--- lib/lp/bugs/browser/bugtracker.py 2009-08-25 16:40:03 +0000
17+++ lib/lp/bugs/browser/bugtracker.py 2009-08-28 14:09:24 +0000
18@@ -353,6 +353,10 @@
19 # Go back to the bug tracker listing.
20 self.next_url = canonical_url(getUtility(IBugTrackerSet))
21
22+ @property
23+ def cancel_url(self):
24+ return canonical_url(self.context)
25+
26
27 class BugTrackerNavigation(Navigation):
28
29
30=== modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt'
31--- lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt 2009-08-12 13:34:48 +0000
32+++ lib/lp/bugs/stories/bugtracker/xx-bugtracker-remote-bug.txt 2009-08-28 15:43:29 +0000
33@@ -12,17 +12,21 @@
34 then a list of the relevant Launchpad bugs:
35
36 >>> browser.open('http://launchpad.dev/bugs/bugtrackers/mozilla.org/42')
37- >>> print browser.contents
38- <!DOCTYPE...
39- <title>Remote Bug #42 in The Mozilla.org Bug Tracker</title>
40- ...
41- <h1>Remote Bug #42 in The Mozilla.org Bug Tracker</h1>
42- ...
43- <a href=".../bugs/1">#1: Firefox does not support SVG</a>
44- ...
45- <a href=".../bugs/2">#2: Blackhole Trash folder</a>
46- ...
47-
48+
49+ >>> print_location(browser.contents)
50+ Hierarchy: Bug trackers > The Mozilla.org Bug Tracker
51+ Tabs:
52+ * Launchpad Home - http://launchpad.dev/
53+ * Code - http://code.launchpad.dev/
54+ * Bugs (selected) - http://bugs.launchpad.dev/
55+ * Blueprints - http://blueprints.launchpad.dev/
56+ * Translations - http://translations.launchpad.dev/
57+ * Answers - http://answers.launchpad.dev/
58+ Main heading: Remote Bug #42 in The Mozilla.org Bug Tracker
59+
60+ >>> print_table(find_tag_by_id(browser.contents, 'watchedbugs'))
61+ #1: Firefox does not support SVG
62+ #2: Blackhole Trash folder
63
64 If there is only a single bug watching the remote bug, then we skip
65 the list page and redirect the user directly to that bug's page:
66@@ -60,46 +64,41 @@
67 >>> browser.url
68 'http://bugs.launchpad.dev/firefox/+bug/1'
69
70-
71 List Launchpad bugs watching Mozilla bug 42:
72
73- >>> anon_browser.open('http://launchpad.dev/bugs/bugtrackers/mozilla.org/42')
74- >>> print anon_browser.contents
75- <!DOCTYPE...
76- ...
77- <title>Remote Bug #42 in The Mozilla.org Bug Tracker</title>
78- ...
79- <a href=".../bugs/1">#1: Private Bug</a>
80- ...
81- <a href=".../bugs/2">#2: Blackhole Trash folder</a>
82- ...
83-
84+ >>> anon_browser.open(
85+ ... 'http://launchpad.dev/bugs/bugtrackers/mozilla.org/42')
86+
87+ >>> print_location(anon_browser.contents)
88+ Hierarchy: Bug trackers > The Mozilla.org Bug Tracker
89+ Tabs:
90+ * Launchpad Home - http://launchpad.dev/
91+ * Code - http://code.launchpad.dev/
92+ * Bugs (selected) - http://bugs.launchpad.dev/
93+ * Blueprints - http://blueprints.launchpad.dev/
94+ * Translations - http://translations.launchpad.dev/
95+ * Answers - http://answers.launchpad.dev/
96+ Main heading: Remote Bug #42 in The Mozilla.org Bug Tracker
97+
98+ >>> print_table(find_tag_by_id(anon_browser.contents, 'watchedbugs'))
99+ #1: Private bug
100+ #2: Blackhole Trash folder
101
102 The bug title is still provided if the user can view the private bug:
103
104 >>> browser.open('http://launchpad.dev/bugs/bugtrackers/mozilla.org/42')
105- >>> print browser.contents
106- <!DOCTYPE...
107- ...
108- <title>Remote Bug #42 in The Mozilla.org Bug Tracker</title>
109- ...
110- <a href=".../bugs/1">#1: Firefox does not support SVG</a>
111- ...
112- <a href=".../bugs/2">#2: Blackhole Trash folder</a>
113- ...
114-
115+ >>> print_table(find_tag_by_id(browser.contents, 'watchedbugs'))
116+ #1: Firefox does not support SVG
117+ #2: Blackhole Trash folder
118
119 For the case where the private bug is the only one watching the given
120 remote bug, we don't perform the redirect ahead of time:
121
122 >>> anon_browser.handleErrors = True
123- >>> anon_browser.open('http://bugs.launchpad.dev/bugs/bugtrackers/mozilla.org/2000')
124- >>> print anon_browser.contents
125- <!DOCTYPE...
126- ...To continue, you must log in to Launchpad...
127- ...<input type="hidden" name="redirection_url"
128- value="http://bugs.launchpad.dev/bugs/1" />...
129-
130+ >>> anon_browser.open(
131+ ... 'http://bugs.launchpad.dev/bugs/bugtrackers/mozilla.org/2000')
132+ >>> print_feedback_messages(anon_browser.contents)
133+ To continue, you must log in to Launchpad.
134
135 Set the bug back to public:
136
137
138=== modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt'
139--- lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt 2009-08-25 15:59:44 +0000
140+++ lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt 2009-08-28 14:09:24 +0000
141@@ -184,6 +184,11 @@
142 >>> user_browser.getControl(
143 ... 'Summary').value = 'This is used to be a test TRAC bug tracker.'
144
145+There is a cancel link if we change our mind:
146+
147+ >>> user_browser.getLink('Cancel').url
148+ 'http://bugs.launchpad.dev/bugs/bugtrackers/testmantis'
149+
150 It's not possible to change the base URL to something that another bug
151 tracker uses.
152
153@@ -661,8 +666,8 @@
154 Related projects
155 You can link a registered bug tracker with a registered project in
156 Launchpad:
157- The Mozilla Project
158- Jokosher Audio Editor
159+ the Mozilla Project
160+ Jokosher (Unspecified)
161
162
163 == Info portlet ==
164@@ -676,11 +681,10 @@
165 Email bugtracker
166 Location:
167 mailto:bugs@example.com
168- Tracker Type:
169+ Tracker type:
170 Email Address
171 Number of watches:
172 1
173- Contact Details:
174 Creator:
175 Foo Bar
176
177@@ -694,3 +698,21 @@
178 Location:
179 mailto:&lt;email address hidden&gt;
180 ...
181+
182+If the bug tracker has contact details, they will be shown:
183+
184+ >>> anon_browser.open(
185+ ... 'http://bugs.launchpad.dev/bugs/bugtrackers/gnome-bugzilla')
186+ >>> print extract_text(find_portlet(
187+ ... anon_browser.contents, 'GnomeGBug GTracker'))
188+ GnomeGBug GTracker
189+ Location:
190+ http://bugzilla.gnome.org/bugs
191+ Tracker type:
192+ Bugzilla
193+ Number of watches:
194+ 2
195+ Contact details:
196+ Jeff Waugh, in his pants.
197+ Creator:
198+ Foo Bar
199
200=== modified file 'lib/lp/bugs/templates/bugtracker-edit.pt'
201--- lib/lp/bugs/templates/bugtracker-edit.pt 2009-07-17 17:59:07 +0000
202+++ lib/lp/bugs/templates/bugtracker-edit.pt 2009-08-28 13:47:50 +0000
203@@ -1,48 +1,35 @@
204-<html
205+<bug-tracker-edit
206 xmlns="http://www.w3.org/1999/xhtml"
207 xmlns:tal="http://xml.zope.org/namespaces/tal"
208 xmlns:metal="http://xml.zope.org/namespaces/metal"
209 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
210- xml:lang="en"
211- lang="en"
212- dir="ltr"
213- metal:use-macro="context/@@main_template/master"
214- i18n:domain="malone"
215->
216-<tal:tag condition="view/update"/>
217- <body>
218- <metal:heading fill-slot="pageheading">
219- <h1>Change bug tracker details</h1>
220- </metal:heading>
221+ metal:use-macro="view/macro:page/main_side"
222+ i18n:domain="malone">
223
224-<metal:leftportlets fill-slot="portlets_one">
225- <div tal:replace="structure context/@@+portlet-details" />
226-</metal:leftportlets>
227+ <div metal:fill-slot="side">
228+ <div tal:replace="structure context/@@+portlet-details" />
229+ </div>
230
231 <div metal:fill-slot="main">
232-
233- <div metal:use-macro="context/@@launchpad_form/form">
234-
235- <metal:extra-info fill-slot="extra_info">
236+ <h1>Change bug tracker details</h1>
237+ <div class="top-portlet">
238 <div id="bugtracker-delete-not-possible-reasons"
239 tal:define="reasons view/delete_not_possible_reasons"
240 tal:condition="reasons">
241 <p>
242 Please note, this bug tracker cannot be deleted because:
243 </p>
244- <ul>
245+ <ol>
246 <li tal:repeat="reason reasons" tal:content="reason" />
247- </ul>
248+ </ol>
249 </div>
250-
251 <p>
252 If you need to change the type of bug tracker, please ask for
253- admin support on #launchpad (see the bottom of the page for details).
254+ admin support on #launchpad (see the bottom of the page for
255+ details).
256 </p>
257- </metal:extra-info>
258-
259+ <div metal:use-macro="context/@@launchpad_form/form" />
260+ </div>
261 </div>
262
263-</div>
264-</body>
265-</html>
266+</bug-tracker-edit>
267
268=== modified file 'lib/lp/bugs/templates/bugtracker-index.pt'
269--- lib/lp/bugs/templates/bugtracker-index.pt 2009-08-28 12:57:41 +0000
270+++ lib/lp/bugs/templates/bugtracker-index.pt 2009-08-28 13:42:10 +0000
271@@ -7,10 +7,7 @@
272 i18n:domain="malone">
273
274 <metal:heading fill-slot="heading">
275- <h1>
276- <tal:tracker replace="context/title">Gnome Bugzilla</tal:tracker>
277- overview
278- </h1>
279+ <h1 tal:content="context/title" />
280 </metal:heading>
281
282 <metal:side fill-slot="side">
283@@ -67,6 +64,12 @@
284
285 <div metal:fill-slot="main">
286 <div class="top-portlet">
287+ <h2>Summary</h2>
288+ <p tal:content="context/summary">
289+ $BugTracker.summary goes here. This should be quite short,
290+ just a single paragraph of text really, giving the BugTracker
291+ highlights.
292+ </p>
293 <p tal:condition="not: context/active" id="inactive-message">
294 <strong>
295 Bug watch updates for <tal:bugtracker
296@@ -74,12 +77,6 @@
297 </strong>
298 </p>
299
300- <p tal:content="context/summary">
301- $BugTracker.summary goes here. This should be quite short,
302- just a single paragraph of text really, giving the BugTracker
303- highlights.
304- </p>
305-
306 <h2>Location</h2>
307 <ul id="bugtracker-urls">
308 <li>
309
310=== modified file 'lib/lp/bugs/templates/bugtracker-portlet-details.pt'
311--- lib/lp/bugs/templates/bugtracker-portlet-details.pt 2009-07-17 17:59:07 +0000
312+++ lib/lp/bugs/templates/bugtracker-portlet-details.pt 2009-08-28 14:00:23 +0000
313@@ -3,29 +3,25 @@
314 xmlns:metal="http://xml.zope.org/namespaces/metal"
315 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
316 class="portlet" id="portlet-details">
317- <h2 tal:content="context/title">bugtracker title</h2>
318-
319- <div class="portletBody">
320- <div class="portletContent">
321-
322- <b>Location:</b><br />
323- <img alt="" src="/@@/link" />
324- <a tal:replace="structure context/fmt:external-link" /><br />
325-
326- <b>Tracker Type:</b>
327- <span tal:replace="context/bugtrackertype/title">BugZilla</span>
328- <br />
329-
330- <b>Number of watches:</b>
331- <span tal:replace="context/watches/count" /><br />
332-
333- <b>Contact Details:</b><br />
334- <span tal:replace="context/contactdetails">contact details go here
335- in a long mess</span><br />
336-
337- <b>Creator:</b>
338- <a tal:replace="structure context/owner/fmt:link">ownername</a><br />
339-
340- </div>
341- </div>
342+
343+ <h2 tal:content="context/title">bugtracker title</h2>
344+
345+ <dl>
346+ <dt>Location:</dt>
347+ <dd>
348+ <img alt="" src="/@@/link" />
349+ <a tal:replace="structure context/fmt:external-link" />
350+ </dd>
351+ <dt>Tracker type:</dt>
352+ <dd tal:content="context/bugtrackertype/title" />
353+ <dt>Number of watches:</dt>
354+ <dd tal:content="context/watches/count" />
355+ <tal:contact-details condition="context/contactdetails">
356+ <dt>Contact details:</dt>
357+ <dd tal:content="context/contactdetails" />
358+ </tal:contact-details>
359+ <dt>Creator:</dt>
360+ <dd tal:content="structure context/owner/fmt:link" />
361+ </dl>
362+
363 </div>
364
365=== modified file 'lib/lp/bugs/templates/bugtracker-portlet-projects.pt'
366--- lib/lp/bugs/templates/bugtracker-portlet-projects.pt 2009-07-17 17:59:07 +0000
367+++ lib/lp/bugs/templates/bugtracker-portlet-projects.pt 2009-08-28 13:51:06 +0000
368@@ -6,21 +6,18 @@
369
370 <h2>Related projects</h2>
371
372- <div class="portletBody portletContent">
373-
374- You can link a registered bug tracker with a
375- <a href="/projects/">registered project</a> in Launchpad:
376-
377- <ul tal:define="related_projects view/related_projects">
378- <li tal:repeat="project related_projects"
379- class="info">
380- <a tal:attributes="href project/fmt:url"
381- tal:content="project/title">The Mozilla Project</a>
382- </li>
383- <li tal:condition="not: related_projects">
384- <i>There are no projects linked to this bug tracker.</i>
385- </li>
386- </ul>
387- </div>
388+ <p>
389+ You can link a registered bug tracker with a <a
390+ href="/projects/">registered project</a> in Launchpad:
391+ </p>
392+
393+ <ul tal:define="related_projects view/related_projects">
394+ <li tal:repeat="project related_projects">
395+ <a tal:replace="structure project/fmt:link" />
396+ </li>
397+ <li tal:condition="not: related_projects">
398+ <i>There are no projects linked to this bug tracker.</i>
399+ </li>
400+ </ul>
401
402 </div>
403
404=== modified file 'lib/lp/bugs/templates/remotebug-index.pt'
405--- lib/lp/bugs/templates/remotebug-index.pt 2009-07-17 17:59:07 +0000
406+++ lib/lp/bugs/templates/remotebug-index.pt 2009-08-28 15:43:29 +0000
407@@ -1,57 +1,51 @@
408-<html
409+<bug-tracker-remote-bug-index
410 xmlns="http://www.w3.org/1999/xhtml"
411 xmlns:tal="http://xml.zope.org/namespaces/tal"
412 xmlns:metal="http://xml.zope.org/namespaces/metal"
413 xmlns:i18n="http://xml.zope.org/namespaces/i18n"
414- xml:lang="en"
415- lang="en"
416- dir="ltr"
417- metal:use-macro="context/@@main_template/master"
418- i18n:domain="launchpad"
419->
420- <body>
421- <metal:heading fill-slot="pageheading">
422- <h1 tal:content="context/title">Bug #123 in bugzilla.gnome.org</h1>
423- </metal:heading>
424-
425-<metal:leftportlets fill-slot="portlets_one">
426+ metal:use-macro="view/macro:page/main_side"
427+ i18n:domain="launchpad">
428+
429+ <metal:heading fill-slot="heading">
430+ <h1 tal:content="context/title" />
431+ </metal:heading>
432+
433+ <metal:leftportlets fill-slot="side">
434 <div tal:replace="structure context/bugtracker/@@+portlet-details" />
435-</metal:leftportlets>
436-
437-<div metal:fill-slot="main">
438-
439- <p>These bugs in Launchpad are watching
440- bug #<span tal:replace="context/remotebug">1234</span>
441- in <span tal:replace="context/bugtracker/title">some bugtracker</span>.
442- You can make other Launchpad bugs watch this remote bug using the
443- "Link to other bugtracker" link.</p>
444-
445- <table class="listing" id="watchedbugs">
446- <thead>
447- <tr>
448- <th>Bug</th>
449- </tr>
450- </thead>
451- <tbody>
452- <tr tal:repeat="bug context/bugs">
453- <td>
454- <img alt="" src="/@@/bug" />
455- <a href="#" tal:attributes="href bug/fmt:url"
456- ><span tal:replace="string:#${bug/id}: ${bug/title}"
457- tal:condition="bug/required:launchpad.View">
458- #42: Bug Title
459- </span
460- ><span tal:replace="string:#${bug/id}: Private Bug"
461- tal:condition="not:bug/required:launchpad.View">
462- #42: Private Bug
463- </span></a>
464- </td>
465- </tr>
466- </tbody>
467- </table>
468-
469-</div>
470-
471-</body>
472-</html>
473-
474+ </metal:leftportlets>
475+
476+ <div metal:fill-slot="main">
477+ <div class="top-portlet">
478+ <h2>Is watched by...</h2>
479+ <p>
480+ The following bugs in Launchpad are watching bug #<span
481+ tal:replace="context/remotebug">1234</span> in <span
482+ tal:replace="context/bugtracker/title">some bugtracker</span>.
483+ You can make other Launchpad bugs watch this remote bug by
484+ using &ldquo;Also affects project&rdquo; or &ldquo;Also
485+ affects distribution&rdquo; on the bug page.
486+ </p>
487+ <table class="listing" id="watchedbugs">
488+ <thead>
489+ <tr>
490+ <th>Bug</th>
491+ </tr>
492+ </thead>
493+ <tbody>
494+ <tal:bugs tal:repeat="bug context/bugs">
495+ <tr tal:define="visible bug/required:launchpad.View">
496+ <td tal:condition="visible">
497+ <a class="sprite bug"
498+ tal:attributes="href bug/fmt:url"
499+ tal:content="string:#${bug/id}: ${bug/title}" />
500+ </td>
501+ <td tal:condition="not:visible"
502+ tal:content="string:#${bug/id}: Private bug" />
503+ </tr>
504+ </tal:bugs>
505+ </tbody>
506+ </table>
507+ </div>
508+ </div>
509+
510+</bug-tracker-remote-bug-index>

Subscribers

People subscribed via source and target branches

to all changes: