From 972da04b39664465b55ad0dbda4741212ed77f17 Mon Sep 17 00:00:00 2001 From: Rob Hudson Date: Thu, 13 Sep 2012 09:39:47 -0700 Subject: [PATCH] Added ability to delete versions for packaged apps (bug 785979) --- apps/addons/models.py | 3 +- apps/amo/tests/__init__.py | 2 +- apps/versions/models.py | 1 + media/css/devreg/typography.less | 3 + media/js/devreg/devhub.js | 26 +++- .../apps/listing/item_actions_app.html | 4 +- .../templates/developers/apps/status.html | 35 +++++- .../developers/includes/addons_edit_nav.html | 5 +- mkt/developers/tests/test_views_versions.py | 112 +++++++++++++----- mkt/developers/urls.py | 2 + mkt/developers/views.py | 19 +++ mkt/reviewers/templates/reviewers/review.html | 22 ---- 12 files changed, 170 insertions(+), 64 deletions(-) diff --git a/apps/addons/models.py b/apps/addons/models.py index a219534bed8..b4704caea47 100644 --- a/apps/addons/models.py +++ b/apps/addons/models.py @@ -808,8 +808,7 @@ def get_icon_url(self, size, use_default=True): def update_status(self, using=None): if (self.status in [amo.STATUS_NULL, amo.STATUS_DELETED] - or self.is_disabled - or self.is_webapp() or self.is_persona()): + or self.is_disabled or self.is_persona()): return def logit(reason, old=self.status): diff --git a/apps/amo/tests/__init__.py b/apps/amo/tests/__init__.py index a13668fc49b..98d280feb38 100644 --- a/apps/amo/tests/__init__.py +++ b/apps/amo/tests/__init__.py @@ -282,7 +282,7 @@ def assertNoFormErrors(self, response): def assertLoginRedirects(self, response, to, status_code=302): # Not using urlparams, because that escapes the variables, which # is good, but bad for assertRedirects which will fail. - self.assertRedirects(response, + self.assert3xx(response, '%s?to=%s' % (reverse('users.login'), to), status_code) def assert3xx(self, response, expected_url, status_code=302, diff --git a/apps/versions/models.py b/apps/versions/models.py index da5bf27ae51..0c381ad53d7 100644 --- a/apps/versions/models.py +++ b/apps/versions/models.py @@ -153,6 +153,7 @@ def get_url_path(self): return reverse('addons.versions', args=[self.addon.slug, self.version]) def delete(self): + log.info(u'Version deleted: %r (%s)' % (self, self.id)) amo.log(amo.LOG.DELETE_VERSION, self.addon, str(self.version)) super(Version, self).delete() diff --git a/media/css/devreg/typography.less b/media/css/devreg/typography.less index 42e7e968a95..7a9cf54021e 100644 --- a/media/css/devreg/typography.less +++ b/media/css/devreg/typography.less @@ -86,6 +86,9 @@ pre { } p { margin-top: 1em; + &.call-to-action { + font-weight: bold; + } } > p:first-child { margin: 0; diff --git a/media/js/devreg/devhub.js b/media/js/devreg/devhub.js index 81fe4daaaac..e4b1ca68377 100644 --- a/media/js/devreg/devhub.js +++ b/media/js/devreg/devhub.js @@ -200,12 +200,36 @@ $(document).ready(function() { }); $('#modal-disable').modal('#disable-addon', { width: 400, - callback: function(d){ + callback: function(d) { $('.version_id', this).val($(d.click_target).attr('data-version')); return true; } }); + $('#version-list').exists(function() { + var status = $('#version-status').data('status'); + var versions = $('#modal-delete-version').data('versions'); + $('#modal-delete-version').modal('.delete-version', { + width: 400, + callback: function(d) { + var version = versions[$(d.click_target).data('version')], + $header = $('h3', this); + $header.text(format($header.attr('data-tmpl'), version)); + $('.version-id', this).val(version.id); + if (versions.num == 1) { + $('#last-version, #last-version-other').show(); + if (status == 2) { // PENDING + $('#last-version-pending').show(); + } else if (status == 4) { // PUBLIC + $('#last-version-public').show(); + } + } else { + $('#not-last-version').show(); + } + } + }); + }); + // In-app payments config. if ($('#in-app-config').length) { initInAppConfig($('#in-app-config')); diff --git a/mkt/developers/templates/developers/apps/listing/item_actions_app.html b/mkt/developers/templates/developers/apps/listing/item_actions_app.html index d7013743cd7..1920a6ab768 100644 --- a/mkt/developers/templates/developers/apps/listing/item_actions_app.html +++ b/mkt/developers/templates/developers/apps/listing/item_actions_app.html @@ -36,7 +36,7 @@
{{ _('Actions') }}
{% endif %} {% if waffle.switch('disabled-payments') %}
  • - {{ _('Manage Status') }} + {% if addon.is_packaged %}{{ _('Manage Status & Versions') }}{% else %}{{ _('Manage Status') }}{% endif %}
  • {% endif %} {% if request.can_view_consumer %} @@ -54,7 +54,7 @@
    {{ _('Actions') }}
    {{ _('More') }}