Revert "make jetpack upgrader prettier and more effective (bug 684412)"

This reverts commit 57eca56bfe.
This commit is contained in:
Chris Van 2011-10-31 11:07:47 -07:00
Родитель cbadabc0d5
Коммит 212f73b4e7
4 изменённых файлов: 66 добавлений и 170 удалений

Просмотреть файл

@ -1,129 +1,51 @@
{% extends "admin/base.html" %}
{% set title = 'Jetpack' %}
{% block title %}{{ page_title(title) }}{% endblock %}
{% block title %}{{ page_title('Jetpack') }}{% endblock %}
{% block extrahead %}
<style>
.upgrade { color: green }
tr.upgrade { background-color: #efe }
#ranges { background: #cef }
td { font-family: monospace }
.upgrade { color: green; }
#jetpacks tbody { font-family: monospace; }
.fail { color: red }
form.highlight { background: #eee; border: 1px solid #ccc }
form.upgrading, .upgrade td { background: #efe; border-color: #9c9 }
.upgrade td { border-top: 1px solid #9c9 }
table { margin: .5em 0 }
tbody th { background: #fff; color: #000 }
tfoot th { background: #e1e1e1 }
tfoot td { vertical-align: middle }
</style>
{% endblock %}
{% set minver, maxver = upgrader.jetpack_versions() %}
{% block js %}
<script>
$(function() {
$('#change-range, #cancel-range').click(_pd(function() {
$('#ranges, #proceed').toggleClass('hidden').slideDown();
$('#change-range').fadeToggle();
}));
});
</script>
{% endblock %}
{% macro jetpack_head() %}
<thead>
<tr>
<th>Add-on</th>
<th>Version</th>
<th>Status</th>
<th>Jetpack</th>
<th>File</th>
{% if upgrading %}
<th>Upgrade</th>
<th></th>
{% endif %}
</tr>
</thead>
{% endmacro %}
{% macro jetpack_row(file, is_upgraded=False) %}
<tr {% if is_upgraded or file.needs_upgrade %}class="upgrade"{% endif %}>
<td><a href="{{ url('devhub.versions', file.version.addon_id) }}">{{ file.version.addon_id }}</a></td>
<td><a href="{{ url('devhub.versions.edit', file.version.addon_id, file.version.id) }}">{{ file.version.version }}</a></td>
<td>{{ amo.STATUS_CHOICES[file.status] }}</td>
<td>{{ file.jetpack_version }}</td>
<td><a href="{{ file.get_url_path('') }}">{{ file.id }}</a></td>
{% if upgrading %}
{% if file.id|string in repack_status %}
{% with repack = repack_status[file.id|string] %}
{% if repack.status == 'failed' %}
<td class="fail"><pre>{{ repack.msg }}</pre></td>
{% else %}
<td>{{ repack.status }} {{ repack.time|timesince }}</td>
{% endif %}
{% endwith %}
{% else %}
<td></td>
{% endif %}
<td><a href="{{ url('zadmin.jetpack.resend', file.id) }}">Resend</a></td>
{% endif %}
</tr>
{% endmacro %}
{% set upgrading = upgrader.version() %}
{% set repack_status = upgrader.files() %}
{% block content %}
{% include "messages.html" %}
<h2>{{ title }}</h2>
<p>
Jetpacks built with SDK versions <b>{{ minver }} &ndash; {{ maxver }}</b>
{{ 'are being' if upgrading else 'will be' }} upgraded.
<a href="#" id="change-range">Select a different range.</a>
</p>
<form id="ranges" method="post" action=""
class="highlight{{ ' hidden' if not form.errors }}">
<h2>Jetpack</h2>
<p>Jetpacks built with SDK versions <b>{{ minver }} &ndash; {{ maxver }}</b> will be upgraded.</p>
<p>Should it be something different?</p>
<form method="post" action="">
{{ csrf() }}
{{ form.minver }} to {{ form.maxver }}
<input type="submit" value="Update range">
or <a href="#" id="cancel-range">Cancel</a>
<button>Hit it.</button>
</form>
<form id="proceed" method="post" action=""
class="highlight{{ ' upgrading' if upgrading }}{{ ' hidden' if form.errors }}">
<h3>Jetpack Files ({{ jetpacks|length }})</h3>
<p>These are all the jetpack files we know about. Disabled files and add-ons are excluded.</p>
{% if upgrading %}
<p>We're running an upgrade to Jetpack <b>{{ upgrading }}</b> right now! Patience, my child.</p>
{% else %}
<p>Files in green will be upgraded to <b>{{ maxver }}</b> when you press the button.</p>
{% if settings.SEND_REAL_EMAIL %}
<p>Note: upgrade emails <b>will be sent</b> to developers.</p>
{% else %}
<p>Upgrade emails <b>will not</b> be sent to developers. You can find the logged emails at <a href="{{ url('zadmin.mail') }}">admin/mail</a>.</p>
{% endif %}
{% endif %}
<form method="post" action="">
{{ csrf() }}
{% if upgrading %}
<h3>Upgrade in progress&hellip;</h3>
<p>We're running an upgrade to Jetpack <b>{{ upgrading }}</b> right now! Patience, my child.</p>
<input type="submit" name="cancel" value="Cancel the upgrade">
{% else %}
<h3>Are you sure you want to upgrade?</h3>
<p>{{ need_upgrade|length }} file(s) below will be upgraded to <b>{{ maxver }}</b> when you press the button.</p>
<table>
{{ jetpack_head() }}
<tbody class="upgrade">
{% for file in need_upgrade %}
{{ jetpack_row(file) }}
{% endfor %}
</tbody>
</table>
{% if settings.SEND_REAL_EMAIL %}
<p>Note: upgrade emails <b>will be sent</b> to developers.</p>
{% else %}
<p>Upgrade emails <b>will not</b> be sent to developers. You can find the logged emails at <a href="{{ url('zadmin.mail') }}">admin/mail</a>.</p>
{% endif %}
<input type="submit" name="upgrade" value="Upgrade to Jetpack {{ maxver }}">
{% endif %}
<p>
{% if upgrading %}
<input type="submit" name="cancel" value="Cancel the upgrade">
{% else %}
<input type="submit" name="upgrade" value="Upgrade to Jetpack {{ maxver }}">
{% endif %}
</p>
</form>
<h3>Jetpack Tallies</h3>
<table>
<thead>
<tr>
@ -139,32 +61,44 @@ $(function() {
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<th>Total</th>
<td>{{ jetpacks|length }}</td>
</tr>
</tfoot>
</table>
<h3>Jetpack Files</h3>
<p>These are all the Jetpack files we know about. Disabled files and add-ons are excluded.</p>
<table id="jetpacks">
{{ jetpack_head() }}
<thead>
<tr>
<th>Add-on</th>
<th>Version</th>
<th>Status</th>
<th>Jetpack</th>
<th>File</th>
{% if upgrading %}
<th>Upgrade</th>
{% endif %}
</tr>
</thead>
<tbody>
{% for status, files in repacked %}
<th colspan="0">{{ status }}</th>
{% for file in files %}
{{ jetpack_row(file.file, True) }}
{% endfor %}
{% for file in jetpacks %}
<tr {% if file.needs_upgrade %}class="upgrade"{% endif %}>
<td><a href="{{ url('devhub.versions', file.version.addon_id) }}">{{ file.version.addon_id }}</a></td>
<td><a href="{{ url('devhub.versions.edit', file.version.addon_id, file.version.id) }}">{{ file.version.version }}</a></td>
<td>{{ amo.STATUS_CHOICES[file.status] }}</td>
<td>{{ file.jetpack_version }}</td>
<td><a href="{{ file.get_url_path('') }}">{{ file.id }}</a></td>
{% if upgrading %}
{% if file.id|string in repack_status %}
{% with repack = repack_status[file.id|string] %}
{% if repack.status == 'failed' %}
<td class="fail"><pre>{{ repack.msg }}</pre></td>
{% else %}
<td>{{ repack.status }} {{ repack.time|timesince }}</td>
{% endif %}
{% endwith %}
{% else %}
<td></td>
{% endif %}
{% endif %}
</tr>
{% endfor %}
{% if not upgrading %}
<th colspan="0">Archived</th>
{% for file in archived %}
{{ jetpack_row(file) }}
{% endfor %}
{% endif %}
</tbody>
</table>
{% endblock %}

Просмотреть файл

@ -1405,13 +1405,11 @@ class TestJetpack(amo.tests.TestCase):
def test_change_range_success(self):
self.set_range('1.0', '1.1')
def submit_upgrade(self):
r = self.client.post(self.url, {'upgrade': True})
self.assertRedirects(r, self.url)
def test_upgrade(self):
self.set_range('1.2', '1.2.1')
self.submit_upgrade()
r = self.client.post(self.url, {'upgrade': True})
self.assertRedirects(r, self.url)
r = self.client.get(self.url)
eq_(r.status_code, 200)
@ -1420,7 +1418,9 @@ class TestJetpack(amo.tests.TestCase):
def test_cancel(self):
self.set_range('1.2', '1.2.1')
self.submit_upgrade()
r = self.client.post(self.url, {'upgrade': True})
self.assertRedirects(r, self.url)
r = self.client.post(self.url, {'cancel': True})
self.assertRedirects(r, self.url)
@ -1428,12 +1428,3 @@ class TestJetpack(amo.tests.TestCase):
r = self.client.get(self.url)
eq_(r.status_code, 200)
eq_(r.context['upgrader'].version(), None)
@mock.patch('zadmin.views.files.tasks.start_upgrade.delay')
def test_resend(self, start_upgrade):
self.set_range('1.2', '1.2.1')
self.submit_upgrade()
file_id = str(5)
r = self.client.get(reverse('zadmin.jetpack.resend', args=[file_id]))
start_upgrade.assert_called_with([file_id], sdk_version='1.2.1')

Просмотреть файл

@ -40,8 +40,6 @@ urlpatterns = patterns('',
url(r'^email_preview/(?P<topic>.*)\.csv$',
views.email_preview_csv, name='zadmin.email_preview_csv'),
url(r'^jetpack$', views.jetpack, name='zadmin.jetpack'),
url(r'^jetpack/resend/(?P<file_id>\d+)$', views.jetpack_resend,
name='zadmin.jetpack.resend'),
url('^features$', views.features, name='zadmin.features'),
url('^features/collections\.json$', views.es_collections_json,

Просмотреть файл

@ -345,31 +345,11 @@ def jetpack(request):
messages.error(request, form.errors.as_text())
jetpacks = files.utils.find_jetpacks(minver, maxver)
need_upgrade = filter(lambda f: f.needs_upgrade, jetpacks)
archived = filter(lambda f: not f.needs_upgrade, jetpacks)
repacked = []
upgrading = upgrader.version() # Current Jetpack version upgrading to.
repack_status = upgrader.files() # The files being repacked.
if upgrading:
# Group the repacked files by status for this Jetpack upgrade.
grouped_files = sorted_groupby(repack_status.values(),
key=lambda f: f['status'])
for group, rows in grouped_files:
rows = sorted(list(rows), key=lambda f: f['file'])
for idx, row in enumerate(rows):
rows[idx]['file'] = File.objects.get(id=row['file'])
repacked.append((group, rows))
groups = sorted_groupby(jetpacks, 'jetpack_version')
by_version = dict((version, len(list(files))) for version, files in groups)
return jingo.render(request, 'zadmin/jetpack.html',
dict(form=form, upgrader=upgrader,
by_version=by_version, upgrading=upgrading,
need_upgrade=need_upgrade, archived=archived,
repacked=repacked, repack_status=repack_status))
dict(form=form, jetpacks=jetpacks, upgrader=upgrader,
by_version=by_version))
def start_upgrade(minver, maxver):
@ -380,13 +360,6 @@ def start_upgrade(minver, maxver):
files.tasks.start_upgrade.delay(ids, sdk_version=maxver)
def jetpack_resend(request, file_id):
maxver = files.utils.JetpackUpgrader().version()
log.info('Starting a jetpack upgrade to %s [1 file].' % maxver)
files.tasks.start_upgrade.delay([file_id], sdk_version=maxver)
return redirect('zadmin.jetpack')
@login_required
@json_view
def es_collections_json(request):