1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
|
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
metal:use-macro="view/macro:page/main_only"
i18n:domain="launchpad"
>
<h1 metal:fill-slot="heading">Download project files</h1>
<body>
<div metal:fill-slot="main"
tal:define="has_edit context/required:launchpad.Edit">
<p tal:condition="view/has_download_files">
<a
href="/+help/verify-downloads.html" target="help">How do I verify a
download?</a>
</p>
<br />
<form id="project-downloads" method="POST"
tal:attributes="action request/URL">
<div tal:condition="not: view/has_download_files" id="no-downloads">
<p>No download files exist for this project.</p>
<p>You might want to check
<a tal:attributes="href context/fmt:url:code">this project's Bazaar
branches</a>
<span tal:condition="context/homepageurl">or its
<a tal:attributes="href context/homepageurl">home page</a>
</span>.
</p>
</div>
<div class="freeform-batch">
<tal:batch condition="view/has_download_files"
define="batch view/series_and_releases_batch">
<tal:multipage tal:condition="batch/has_multiple_pages">
<tal:navigation
replace="structure batch/@@+navigation-links-upper"/>
</tal:multipage>
<tal:repeat_current_batch repeat="batch_item batch/currentBatch">
<div tal:define="series batch_item/series;
release batch_item/release"
tal:attributes="id series/name/fmt:css-id/series-">
<tal:seriesfilesexist condition="series/has_release_files">
<div tal:condition="not: repeat/batch_item/start" class="portlet-border" />
<tal:releasefilesexist condition="release/files">
<div class="top-portlet">
<h3>
<a tal:attributes="href release/fmt:url">
<span tal:replace="release/name_with_codename" /> release</a>
from the
<a tal:attributes="href series/fmt:url"
tal:content="series/name">name</a> series released
<span
tal:attributes="title release/datereleased/fmt:datetime"
tal:content="release/datereleased/fmt:approximatedate" />
</h3>
<div tal:attributes="id release/version/fmt:css-id/release-information-"
tal:condition="python: release.release_notes or release.changelog">
<fieldset class="collapsible collapsed" style="padding: 0px;">
<legend>Release information</legend>
<div tal:condition="release/release_notes">
<strong>Release notes:</strong>
<div style="margin-bottom: 0px;"
tal:attributes="id release/version/fmt:css-id/release-notes-"
tal:define="notes release/release_notes/fmt:shorten/800"
tal:content="structure notes/fmt:text-to-html">
ProductRelease.release_notes
</div>
</div>
<div tal:condition="release/changelog">
<strong>Changelog:</strong>
<div style="margin-bottom: 0px;"
tal:attributes="id release/version/fmt:css-id/changelog-"
tal:content="structure release/changelog/fmt:obfuscate-email/fmt:text-to-html">
ProductRelease.changelog.
</div>
</div>
</fieldset>
</div>
<div>
<table class="listing" style="margin-top: 1em;">
<thead>
<tr>
<th width="35%">File</th>
<th width="45%">Description</th>
<th>Downloads</th>
<th tal:condition="has_edit">Delete</th>
</tr>
</thead>
<tbody>
<tr tal:repeat="file release/files">
<tal:define-vars
tal:define="checkbox_index string:${repeat/batch_item/index}_${repeat/file/index}">
<tal:release-file
metal:use-macro="file/@@+macros/detailed_display" />
</tal:define-vars>
</tr>
</tbody>
<tfoot tal:condition="release/total_downloads">
<tr>
<th colspan="2" style="padding-top: 1em; text-align: right;">
Total downloads:
</th>
<td style="border: none; text-align: center;">
<span tal:replace="release/total_downloads/fmt:intcomma" />
</td>
<td style="border: none;"
tal:condition="has_edit" />
</tr>
</tfoot>
</table>
</div>
<div tal:condition="not: release/total_downloads"
style="margin-bottom: 1em;" />
<tal:linkexists
define="link release/menu:context/add_file"
condition="link/enabled">
<ul style="float: right; margin-top: 1em;">
<li>
<a tal:replace="structure link/fmt:link" />
</li>
</ul>
</tal:linkexists>
</div>
</tal:releasefilesexist>
<br />
</tal:seriesfilesexist>
</div>
</tal:repeat_current_batch>
<tal:multipage condition="batch/has_multiple_pages">
<tal:navigation
replace="structure batch/@@+navigation-links-lower"/>
</tal:multipage>
</tal:batch>
</div>
<div id="admin-links">
<tal:series repeat="series view/sorted_series_list">
<tal:releases condition="series/releases">
<p tal:condition="has_edit" class="add-files">
Add download file to the
<a tal:attributes="href series/fmt:url"
tal:content="series/name">name</a> series for release:
<tal:release repeat="release series/releases">
<a tal:attributes="href string:${series/name}/${release/version}/+adddownloadfile"
tal:content="release/version"
>version</a><tal:comma condition="not:repeat/release/end">,</tal:comma>
</tal:release>
</p>
</tal:releases>
</tal:series>
</div>
<input tal:condition="python: has_edit and view.has_download_files"
type="submit"
name="delete_files"
value="Delete Files" />
</form>
</div>
</body>
</html>
|