Revert "make jetpack upgrader prettier and more effective (bug 684412)"
This reverts commit 57eca56bfe
.
This commit is contained in:
Родитель
cbadabc0d5
Коммит
212f73b4e7
|
@ -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 }} – {{ 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 }} – {{ 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…</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):
|
||||
|
|
Загрузка…
Ссылка в новой задаче