Merge lp:~wgrant/launchpad/diffs-in-queue into lp:launchpad

Proposed by William Grant
Status: Merged
Approved by: Michael Nelson
Approved revision: no longer in the source branch.
Merged at revision: 10929
Proposed branch: lp:~wgrant/launchpad/diffs-in-queue
Merge into: lp:launchpad
Diff against target: 529 lines (+116/-82)
12 files modified
lib/canonical/launchpad/webapp/configure.zcml (+6/-0)
lib/canonical/launchpad/webapp/tales.py (+13/-0)
lib/lp/archiveuploader/nascentupload.py (+1/-1)
lib/lp/soyuz/doc/nascentupload-announcements.txt (+3/-3)
lib/lp/soyuz/doc/package-diff.txt (+31/-31)
lib/lp/soyuz/doc/publishing.txt (+4/-4)
lib/lp/soyuz/model/packagediff.py (+1/-1)
lib/lp/soyuz/stories/soyuz/xx-package-diff.txt (+13/-13)
lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt (+28/-2)
lib/lp/soyuz/templates/distroseries-queue.pt (+14/-0)
lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-extra.pt (+1/-14)
lib/lp/soyuz/templates/sourcepackagerelease-diffs.pt (+1/-13)
To merge this branch: bzr merge lp:~wgrant/launchpad/diffs-in-queue
Reviewer Review Type Date Requested Status
Eleanor Berger (community) Approve
Michael Nelson (community) ui Approve
Review via email: mp+25135@code.launchpad.net

Commit message

Display diffs in the distroseries queue interface.

Description of the change

This branch exposes package diffs in the distroseries queue UI. Archive admins want to be able to see diffs without having to grab the packages locally. While we have calculated them in LP for a couple of years, they have not previously been shown until the package was accepted.

Since this was to be the third place that an identical PackageDiff link was required, I created an fmt:link for IPackageDiff, updating the two existing link locations to use it, and added a new row to the queue file listing.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) wrote :
Revision history for this message
Michael Nelson (michael.nelson) wrote :

Hey William,

As per our conversation, we both agreed that including the "diff from" in the link (ie. generated by the formatter) would be clearer.

Thanks!

review: Approve (ui)
Revision history for this message
William Grant (wgrant) wrote :

Thanks Michael. I've moved 'diff from' into PackageDiff.title, and fixed most of the obvious fallout.

Revision history for this message
Eleanor Berger (intellectronica) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/canonical/launchpad/webapp/configure.zcml'
2--- lib/canonical/launchpad/webapp/configure.zcml 2010-05-16 23:56:51 +0000
3+++ lib/canonical/launchpad/webapp/configure.zcml 2010-05-27 09:11:17 +0000
4@@ -535,6 +535,12 @@
5 name="fmt"
6 />
7 <adapter
8+ for="lp.soyuz.interfaces.packagediff.IPackageDiff"
9+ provides="zope.traversing.interfaces.IPathAdapter"
10+ factory="canonical.launchpad.webapp.tales.PackageDiffFormatterAPI"
11+ name="fmt"
12+ />
13+ <adapter
14 for="*"
15 provides="zope.traversing.interfaces.IPathAdapter"
16 factory="canonical.launchpad.webapp.tales.PermissionRequiredQuery"
17
18=== modified file 'lib/canonical/launchpad/webapp/tales.py'
19--- lib/canonical/launchpad/webapp/tales.py 2010-05-21 02:33:14 +0000
20+++ lib/canonical/launchpad/webapp/tales.py 2010-05-27 09:11:17 +0000
21@@ -2460,3 +2460,16 @@
22 def displayname(self, view_name, rootsite=None):
23 """Return the displayname as a string."""
24 return self._context.title
25+
26+
27+class PackageDiffFormatterAPI(ObjectFormatterAPI):
28+ def link(self, view_name, rootsite=None):
29+ diff = self._context
30+ if not diff.date_fulfilled:
31+ return '%s (pending)' % cgi.escape(diff.title)
32+ else:
33+ file_size = NumberFormatterAPI(
34+ diff.diff_content.content.filesize).bytes()
35+ return '<a href="%s">%s</a> (%s)' % (
36+ cgi.escape(diff.diff_content.http_url),
37+ cgi.escape(diff.title), file_size)
38
39=== modified file 'lib/lp/archiveuploader/nascentupload.py'
40--- lib/lp/archiveuploader/nascentupload.py 2010-03-30 13:53:25 +0000
41+++ lib/lp/archiveuploader/nascentupload.py 2010-05-27 09:11:17 +0000
42@@ -920,7 +920,7 @@
43 diff = to_sourcepackagerelease.requestDiffTo(
44 sourcepackagerelease.creator, sourcepackagerelease)
45 self.logger.debug(
46- 'Package diff for %s from %s requested' % (
47+ '%s %s requested' % (
48 diff.from_source.name, diff.title))
49
50 if self.binaryful:
51
52=== modified file 'lib/lp/soyuz/doc/nascentupload-announcements.txt'
53--- lib/lp/soyuz/doc/nascentupload-announcements.txt 2009-12-13 11:55:40 +0000
54+++ lib/lp/soyuz/doc/nascentupload-announcements.txt 2010-05-27 09:11:17 +0000
55@@ -143,7 +143,7 @@
56 >>> bar_src.logger = mock_logger
57 >>> result = bar_src.do_accept()
58 DEBUG: Creating queue entry
59- DEBUG: Package diff for bar from 1.0-1 to 1.0-1 requested
60+ DEBUG: bar diff from 1.0-1 to 1.0-1 requested
61 DEBUG: Setting it to ACCEPTED
62 ...
63 DEBUG: Sending rejection email.
64@@ -408,7 +408,7 @@
65 >>> lang_pack.logger = mock_logger
66 >>> result = lang_pack.do_accept()
67 DEBUG: Creating queue entry
68- DEBUG: Package diff for language-pack-pt from 1.0-2 to 1.0-3 requested
69+ DEBUG: language-pack-pt diff from 1.0-2 to 1.0-3 requested
70 DEBUG: Setting it to UNAPPROVED
71 DEBUG: Skipping acceptance and announcement, it is a language-package upload.
72
73@@ -461,7 +461,7 @@
74 >>> bar_src.logger = mock_logger
75 >>> result = bar_src.do_accept()
76 DEBUG: Creating queue entry
77- DEBUG: Package diff for bar from 1.0-1 to 1.0-3 requested
78+ DEBUG: bar diff from 1.0-1 to 1.0-3 requested
79 DEBUG: Setting it to UNAPPROVED
80 ...
81
82
83=== modified file 'lib/lp/soyuz/doc/package-diff.txt'
84--- lib/lp/soyuz/doc/package-diff.txt 2010-02-23 08:33:11 +0000
85+++ lib/lp/soyuz/doc/package-diff.txt 2010-05-27 09:11:17 +0000
86@@ -87,7 +87,7 @@
87 request.
88
89 >>> print package_diff.title
90- 0.1-1 to 0.1-2
91+ diff from 0.1-1 to 0.1-2
92
93 IPackageDiff has a property which indicates whether a diff content
94 should be private or not. See section 'PackageDiff privacy' below.
95@@ -102,8 +102,8 @@
96 ... requester=cprov, to_sourcepackagerelease=pmount_to)
97 Traceback (most recent call last):
98 ...
99- PackageDiffAlreadyRequested: 0.1-1 to 0.1-2 was already requested
100- by Celso Providelo
101+ PackageDiffAlreadyRequested: diff from 0.1-1 to 0.1-2 was already
102+ requested by Celso Providelo
103
104
105 == Diff request for source uploads ==
106@@ -167,7 +167,7 @@
107
108 >>> [diff] = biscuit_eight_pub.sourcepackagerelease.package_diffs
109 >>> print diff.title
110- 1.0-1 to 1.0-8
111+ diff from 1.0-1 to 1.0-8
112
113 We will release ubuntu/hoary so we can upload to post-RELEASE pockets
114 and ubuntu/breezy-autotest.
115@@ -185,7 +185,7 @@
116
117 >>> [diff] = biscuit_nine_pub.sourcepackagerelease.package_diffs
118 >>> print diff.title
119- 1.0-8 to 1.0-9
120+ diff from 1.0-8 to 1.0-9
121
122 Now version 1.0-12 gets uploaded to the just opened distroseries. It
123 gets diffed against the last version present in the RELEASE pocket of
124@@ -199,7 +199,7 @@
125
126 >>> [diff] = biscuit_twelve_pub.sourcepackagerelease.package_diffs
127 >>> print diff.title
128- 1.0-8 to 1.0-12
129+ diff from 1.0-8 to 1.0-12
130
131 The subsequent version uploaded to hoary-updates will get a diff
132 against 1.0-9.
133@@ -211,7 +211,7 @@
134
135 >>> [diff] = biscuit_ten_pub.sourcepackagerelease.package_diffs
136 >>> print diff.title
137- 1.0-9 to 1.0-10
138+ diff from 1.0-9 to 1.0-10
139
140 An upload to other pocket, in this case hoary-proposed, will get a diff
141 against the last version in the RELEASE pocket.
142@@ -223,7 +223,7 @@
143
144 >>> [diff] = biscuit_eleven_pub.sourcepackagerelease.package_diffs
145 >>> print diff.title
146- 1.0-8 to 1.0-11
147+ diff from 1.0-8 to 1.0-11
148
149 For testing diffs in the PPA context we need to activate the PPA for
150 Foo Bar.
151@@ -245,7 +245,7 @@
152
153 >>> [diff] = biscuit_two_pub.sourcepackagerelease.package_diffs
154 >>> print diff.title
155- 1.0-8 (in Ubuntu) to 1.0-2
156+ diff from 1.0-8 (in Ubuntu) to 1.0-2
157
158 A subsequent upload in the PPA context will get a diff against 1.0-2,
159 the version found in its context.
160@@ -257,7 +257,7 @@
161
162 >>> [diff] = biscuit_three_pub.sourcepackagerelease.package_diffs
163 >>> print diff.title
164- 1.0-2 to 1.0-3
165+ diff from 1.0-2 to 1.0-3
166
167
168 == Performing a Diff ==
169@@ -422,25 +422,25 @@
170 ... diff.date_fulfilled is not None, id_diff
171
172 >>> print_diffs(packagediff_set)
173- biscuit 1.0-2 to 1.0-3 False 0
174- biscuit 1.0-8 (in Ubuntu) to 1.0-2 False -1
175- biscuit 1.0-8 to 1.0-11 False -2
176- biscuit 1.0-9 to 1.0-10 False -3
177- biscuit 1.0-8 to 1.0-12 False -4
178- biscuit 1.0-8 to 1.0-9 False -5
179- biscuit 1.0-1 to 1.0-8 True -6
180- pmount 0.1-1 to 0.1-2 False -7
181+ biscuit diff from 1.0-2 to 1.0-3 False 0
182+ biscuit diff from 1.0-8 (in Ubuntu) to 1.0-2 False -1
183+ biscuit diff from 1.0-8 to 1.0-11 False -2
184+ biscuit diff from 1.0-9 to 1.0-10 False -3
185+ biscuit diff from 1.0-8 to 1.0-12 False -4
186+ biscuit diff from 1.0-8 to 1.0-9 False -5
187+ biscuit diff from 1.0-1 to 1.0-8 True -6
188+ pmount diff from 0.1-1 to 0.1-2 False -7
189
190 Or only the PackageDiffs not yet fullfilled.
191
192 >>> print_diffs(packagediff_set.getPendingDiffs())
193- pmount 0.1-1 to 0.1-2 False 0
194- biscuit 1.0-8 to 1.0-9 False 2
195- biscuit 1.0-8 to 1.0-12 False 3
196- biscuit 1.0-9 to 1.0-10 False 4
197- biscuit 1.0-8 to 1.0-11 False 5
198- biscuit 1.0-8 (in Ubuntu) to 1.0-2 False 6
199- biscuit 1.0-2 to 1.0-3 False 7
200+ pmount diff from 0.1-1 to 0.1-2 False 0
201+ biscuit diff from 1.0-8 to 1.0-9 False 2
202+ biscuit diff from 1.0-8 to 1.0-12 False 3
203+ biscuit diff from 1.0-9 to 1.0-10 False 4
204+ biscuit diff from 1.0-8 to 1.0-11 False 5
205+ biscuit diff from 1.0-8 (in Ubuntu) to 1.0-2 False 6
206+ biscuit diff from 1.0-2 to 1.0-3 False 7
207
208 Note that the iteration over all PackageDiffs is sorted by descending
209 database ID, i.e. newest first, and getPendingDiffs() results are
210@@ -466,8 +466,8 @@
211 >>> sprs = [biscuit_eight_pub.sourcepackagerelease,
212 ... biscuit_nine_pub.sourcepackagerelease]
213 >>> print_diffs(packagediff_set.getDiffsToReleases(sprs))
214- biscuit 1.0-1 to 1.0-8 True 0
215- biscuit 1.0-8 to 1.0-9 False 1
216+ biscuit diff from 1.0-1 to 1.0-8 True 0
217+ biscuit diff from 1.0-8 to 1.0-9 False 1
218
219 The method will return an empty result if no source package releases
220 are passed to it:
221@@ -514,7 +514,7 @@
222 ... '1.0-1', archive=foobar.archive)
223 >>> [diff] = staging_ppa_pub.sourcepackagerelease.package_diffs
224 >>> print diff.title
225- 1.0-1 (in Ubuntu) to 1.0-1
226+ diff from 1.0-1 (in Ubuntu) to 1.0-1
227
228 Commit the transaction for make the uploaded files available in
229 librarian:
230@@ -567,7 +567,7 @@
231 ... '1.0-1', archive=foobar.archive)
232 >>> [diff] = collision_ppa_pub.sourcepackagerelease.package_diffs
233 >>> print diff.title
234- 1.0-1 (in Ubuntu) to 1.0-1
235+ diff from 1.0-1 (in Ubuntu) to 1.0-1
236
237 Note that, despite of having the same name and version, the diff.gz
238 and dsc files have different contents.
239@@ -654,7 +654,7 @@
240
241 >>> [broken_diff] = pub.sourcepackagerelease.package_diffs
242 >>> print broken_diff.title
243- 1.0-1 (in Ubuntu) to 1.0-2
244+ diff from 1.0-1 (in Ubuntu) to 1.0-2
245
246 With a tainted DSC 'debdiff' cannot do much and fails, resulting in a
247 FAILED request (empty 'diff_content' and 'date_fullfilled').
248@@ -710,7 +710,7 @@
249
250 >>> [diff] = biscuit_two_pub.sourcepackagerelease.package_diffs
251 >>> print diff.title
252- 1.0-8 (in Ubuntu) to 1.0-2
253+ diff from 1.0-8 (in Ubuntu) to 1.0-2
254
255 The chosen diff is for a source uploaded to a public PPA.
256
257
258=== modified file 'lib/lp/soyuz/doc/publishing.txt'
259--- lib/lp/soyuz/doc/publishing.txt 2010-03-22 07:10:45 +0000
260+++ lib/lp/soyuz/doc/publishing.txt 2010-05-27 09:11:17 +0000
261@@ -1314,12 +1314,12 @@
262 >>> pmount_diff = a_source.sourcepackagerelease.requestDiffTo(
263 ... cprov, to_source.sourcepackagerelease)
264 >>> print pmount_diff.title
265- 1.0 (in Ubuntu) to 0.1-1
266+ diff from 1.0 (in Ubuntu) to 0.1-1
267
268 >>> iceweasel_diff = to_source.sourcepackagerelease.requestDiffTo(
269 ... cprov, a_source.sourcepackagerelease)
270 >>> print iceweasel_diff.title
271- 0.1-1 (in Ubuntu) to 1.0
272+ diff from 0.1-1 (in Ubuntu) to 1.0
273
274 >>> from canonical.database.sqlbase import flush_database_updates
275 >>> flush_database_updates()
276@@ -1359,7 +1359,7 @@
277 pmount 0.1-1 in warty
278
279 >>> print diff.title
280- 1.0 (in Ubuntu) to 0.1-1
281+ diff from 1.0 (in Ubuntu) to 0.1-1
282
283 >>> print file.filename
284 netapplet-1.0.0.tar.gz
285@@ -1378,7 +1378,7 @@
286 iceweasel 1.0 in warty
287
288 >>> print diff.title
289- 0.1-1 (in Ubuntu) to 1.0
290+ diff from 0.1-1 (in Ubuntu) to 1.0
291
292 >>> print file
293 None
294
295=== modified file 'lib/lp/soyuz/model/packagediff.py'
296--- lib/lp/soyuz/model/packagediff.py 2010-02-04 10:59:30 +0000
297+++ lib/lp/soyuz/model/packagediff.py 2010-05-27 09:11:17 +0000
298@@ -123,7 +123,7 @@
299 ancestry_identifier = "%s (in %s)" % (
300 self.from_source.version,
301 ancestry_archive.distribution.name.capitalize())
302- return '%s to %s' % (ancestry_identifier, self.to_source.version)
303+ return 'diff from %s to %s' % (ancestry_identifier, self.to_source.version)
304
305 @property
306 def private(self):
307
308=== modified file 'lib/lp/soyuz/stories/soyuz/xx-package-diff.txt'
309--- lib/lp/soyuz/stories/soyuz/xx-package-diff.txt 2009-09-18 11:12:22 +0000
310+++ lib/lp/soyuz/stories/soyuz/xx-package-diff.txt 2010-05-27 09:11:17 +0000
311@@ -87,9 +87,9 @@
312 >>> diffs = list(diff_set.getPendingDiffs())
313 >>> for diff in diffs:
314 ... print diff.title
315- 1.0-1 to 1.0-2
316- 1.0-2 to 1.0-3
317- 1.0-3 (in Ubuntu) to 1.0-4
318+ diff from 1.0-1 to 1.0-2
319+ diff from 1.0-2 to 1.0-3
320+ diff from 1.0-3 (in Ubuntu) to 1.0-4
321
322 Perform some diffs in advance, the first diff in ubuntu and the diff
323 in PPA will be performed, the second diff in ubuntu will be performed
324@@ -139,13 +139,13 @@
325 Pending in hoary-release
326 ...
327 Available diffs
328- 1.0-2 to 1.0-3 (pending)
329+ diff from 1.0-2 to 1.0-3 (pending)
330 ==============================
331 1.0-2
332 Pending in hoary-release
333 ...
334 Available diffs
335- 1.0-1 to 1.0-2 (3 bytes)
336+ diff from 1.0-1 to 1.0-2 (3 bytes)
337 ==============================
338 1.0-1
339 Pending in hoary-release
340@@ -153,14 +153,14 @@
341
342 Diffs already performed are rendered as link to the librarian file.
343
344- >>> print anon_browser.getLink('1.0-1 to 1.0-2').url
345+ >>> print anon_browser.getLink('diff from 1.0-1 to 1.0-2').url
346 http://.../biscuit_1.0-1_1.0-2.diff.gz
347
348 On the other hand, diffs not yet performed are rendered as plain text,
349 and "(pending)" is appended to the text as a further hint that it's not
350 ready yet.
351
352- >>> anon_browser.getLink('1.0-2 to 1.0-3')
353+ >>> anon_browser.getLink('diff from 1.0-2 to 1.0-3')
354 Traceback (most recent call last):
355 ...
356 LinkNotFoundError
357@@ -176,7 +176,7 @@
358 >>> logout()
359
360 >>> anon_browser.reload()
361- >>> print anon_browser.getLink('1.0-2 to 1.0-3').url
362+ >>> print anon_browser.getLink('diff from 1.0-2 to 1.0-3').url
363 http://.../biscuit_1.0-2_1.0-3.diff.gz
364
365 The same page section is presented in the corresponding
366@@ -188,9 +188,9 @@
367 ... anon_browser.contents, 'diff-for-1.0-3')
368 >>> print extract_text(diff_section)
369 Available diffs
370- 1.0-2 to 1.0-3 (3 bytes)
371+ diff from 1.0-2 to 1.0-3 (3 bytes)
372
373- >>> print anon_browser.getLink('1.0-2 to 1.0-3').url
374+ >>> print anon_browser.getLink('diff from 1.0-2 to 1.0-3').url
375 http://.../biscuit_1.0-2_1.0-3.diff.gz
376
377
378@@ -218,7 +218,7 @@
379 Publishing details
380 ...
381 Available diffs
382- 1.0-3 (in Ubuntu) to 1.0-4 (pending)
383+ diff from 1.0-3 (in Ubuntu) to 1.0-4 (pending)
384 ...
385
386 If we complete the diff, the text changes.
387@@ -233,11 +233,11 @@
388 Publishing details
389 ...
390 Available diffs
391- 1.0-3 (in Ubuntu) to 1.0-4 (3 bytes)
392+ diff from 1.0-3 (in Ubuntu) to 1.0-4 (3 bytes)
393 ...
394
395 The text also links to the librarian file containing the diff.
396
397 >>> print anon_browser.getLink(
398- ... '1.0-3 (in Ubuntu) to 1.0-4').url
399+ ... 'diff from 1.0-3 (in Ubuntu) to 1.0-4').url
400 http://.../biscuit_1.0-3_1.0-4.diff.gz
401
402=== modified file 'lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt'
403--- lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt 2010-03-17 01:53:33 +0000
404+++ lib/lp/soyuz/stories/soyuz/xx-queue-pages.txt 2010-05-27 09:11:17 +0000
405@@ -170,6 +170,29 @@
406
407 == Queue item filelist ==
408
409+First set up some additional data: a package diff to show in the listing.
410+
411+ >>> from StringIO import StringIO
412+ >>> from zope.security.proxy import removeSecurityProxy
413+ >>> from canonical.database.constants import UTC_NOW
414+ >>> from canonical.librarian.interfaces import ILibrarianClient
415+ >>> from lp.soyuz.interfaces.packagediff import (
416+ ... PackageDiffStatus)
417+ >>> login(ANONYMOUS)
418+ >>> old = main_archive.getPublishedSources(
419+ ... name='alsa-utils', version='1.0.9a-4')[0].sourcepackagerelease
420+ >>> new = main_archive.getPublishedSources(
421+ ... name='alsa-utils',
422+ ... version='1.0.9a-4ubuntu1')[0].sourcepackagerelease
423+ >>> diff = removeSecurityProxy(old.requestDiffTo(
424+ ... requester=name12, to_sourcepackagerelease=new))
425+ >>> diff.date_fulfilled = UTC_NOW
426+ >>> diff.status = PackageDiffStatus.COMPLETED
427+ >>> diff.diff_content = getUtility(ILibrarianClient).addFile(
428+ ... 'alsa-utils.diff.gz', 11, StringIO('i am a diff'),
429+ ... 'application/gzipped-patch')
430+ >>> logout()
431+
432 Each queue item has a hidden 'filelist' section which is
433 toggled via javascript by clicking in the 'expand' arrow
434 image:
435@@ -195,13 +218,16 @@
436 >>> for row in filelist:
437 ... print extract_text(row)
438 alsa-utils_1.0.9a-4ubuntu1.dsc (3 bytes)
439+ diff from 1.0.9a-4 to 1.0.9a-4ubuntu1 (11 bytes)
440
441 Each filename links to its respective librarian URL:
442
443- >>> print row.find('a')
444- <a href="http://localhost:58000/43/alsa-utils_1.0.9a-4ubuntu1.dsc">
445+ >>> for row in filelist:
446+ ... print row.find('a')
447+ <a href="http://localhost:58000/.../alsa-utils_1.0.9a-4ubuntu1.dsc">
448 alsa-utils_1.0.9a-4ubuntu1.dsc
449 </a>
450+ <a href="http://localhost:58000/.../alsa-utils.diff.gz">diff from 1.0.9a-4 to 1.0.9a-4ubuntu1</a>
451
452 On binary queue items we also present the stamp 'NEW' for files never
453 published in the archive (it helps archive admins when reviewing
454
455=== modified file 'lib/lp/soyuz/templates/distroseries-queue.pt'
456--- lib/lp/soyuz/templates/distroseries-queue.pt 2010-03-16 01:13:05 +0000
457+++ lib/lp/soyuz/templates/distroseries-queue.pt 2010-05-27 09:11:17 +0000
458@@ -284,6 +284,20 @@
459 <td colspan="6"/>
460 </tr>
461 </tal:custom>
462+
463+ <tal:diffs condition="packageupload/sourcepackagerelease">
464+ <tr tal:define="diffs packageupload/sourcepackagerelease/package_diffs"
465+ tal:repeat="diff diffs"
466+ tal:attributes="class string:${filelist_class}"
467+ style="display:none">
468+ <td/>
469+ <td tal:condition="view/availableActions"></td>
470+ <td>
471+ <tal:difflink replace="structure diff/fmt:link" />
472+ </td>
473+ <td colspan="6"/>
474+ </tr>
475+ </tal:diffs>
476 </tal:upload>
477
478 </metal:macro>
479
480=== modified file 'lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-extra.pt'
481--- lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-extra.pt 2009-09-18 11:12:22 +0000
482+++ lib/lp/soyuz/templates/sourcepackagepublishinghistory-listing-archive-extra.pt 2010-05-27 09:11:17 +0000
483@@ -22,20 +22,7 @@
484 tal:condition="diffs">
485 <h3>Available diffs</h3>
486 <ul>
487- <li tal:repeat="diff diffs">
488- <tal:pending condition="not: diff/date_fulfilled">
489- <tal:pending-diff replace="diff/title">
490- 1.0 (in Ubuntu) to 1.1
491- </tal:pending-diff> (pending)
492- </tal:pending>
493- <tal:fulfilled condition="diff/date_fulfilled">
494- <a tal:attributes="href diff/diff_content/http_url"
495- tal:content="diff/title">1.0 (in Ubuntu) to 1.1</a>
496- (<tal:size
497- replace="diff/diff_content/content/filesize/fmt:bytes"
498- >100 bytes</tal:size>)
499- </tal:fulfilled>
500- </li>
501+ <li tal:repeat="diff diffs" tal:content="structure diff/fmt:link" />
502 </ul>
503 </div>
504
505
506=== modified file 'lib/lp/soyuz/templates/sourcepackagerelease-diffs.pt'
507--- lib/lp/soyuz/templates/sourcepackagerelease-diffs.pt 2009-09-18 11:12:22 +0000
508+++ lib/lp/soyuz/templates/sourcepackagerelease-diffs.pt 2010-05-27 09:11:17 +0000
509@@ -11,19 +11,7 @@
510 <h3>Available diffs</h3>
511
512 <ul>
513- <li tal:repeat="diff diffs">
514- <tal:pending condition="not: diff/date_fulfilled">
515- <tal:pending-diff replace="diff/title">
516- 1.0 (in Ubuntu) to 1.1
517- </tal:pending-diff> (pending)
518- </tal:pending>
519- <tal:fulfilled condition="diff/date_fulfilled">
520- <a tal:attributes="href diff/diff_content/http_url"
521- tal:content="diff/title">1.0 (in Ubuntu) to 1.1</a>
522- (<tal:size replace="diff/diff_content/content/filesize/fmt:bytes"
523- >100 bytes</tal:size>)
524- </tal:fulfilled>
525- </li>
526+ <li tal:repeat="diff diffs" tal:content="structure diff/fmt:link" />
527 </ul>
528
529 </div>