Avoid 500s when changing the group of a promoted add-on (#15797)
This commit is contained in:
Родитель
20bc21fcee
Коммит
132101a762
|
@ -102,7 +102,8 @@ class PromotedAddonAdmin(admin.ModelAdmin):
|
|||
|
||||
def get_inline_instances(self, request, obj=None):
|
||||
inlines = self.inlines
|
||||
if obj and obj.group in PROMOTED_GROUPS_FOR_SUBSCRIPTION:
|
||||
if (obj and obj.group in PROMOTED_GROUPS_FOR_SUBSCRIPTION and
|
||||
request.method != "POST"):
|
||||
inlines = inlines + (PromotedSubscriptionInline,)
|
||||
return [inline(self.model, self.admin_site) for inline in inlines]
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ from olympia.amo.tests import (
|
|||
from olympia.amo.tests.test_helpers import get_uploaded_file
|
||||
from olympia.amo.urlresolvers import django_reverse, reverse
|
||||
from olympia.constants.promoted import (
|
||||
LINE, RECOMMENDED, VERIFIED, SPONSORED)
|
||||
LINE, RECOMMENDED, VERIFIED, SPONSORED, NOT_PROMOTED)
|
||||
from olympia.hero.models import PrimaryHero, PrimaryHeroImage
|
||||
from olympia.promoted.models import PromotedAddon, PromotedApproval
|
||||
|
||||
|
@ -539,3 +539,24 @@ class TestPromotedAddonAdmin(TestCase):
|
|||
|
||||
assert response.status_code == 200
|
||||
assert b'Promoted subscriptions' in response.content
|
||||
|
||||
def test_updates_not_promoted_to_verified(self):
|
||||
item = PromotedAddon.objects.create(
|
||||
addon=addon_factory(), group_id=NOT_PROMOTED.id
|
||||
)
|
||||
detail_url = reverse(self.detail_url_name, args=(item.pk,))
|
||||
user = user_factory(email='someone@mozilla.com')
|
||||
self.grant_permission(user, 'Discovery:Edit')
|
||||
self.client.login(email=user.email)
|
||||
|
||||
response = self.client.post(
|
||||
detail_url,
|
||||
dict(
|
||||
self._get_approval_form(item, []),
|
||||
**self._get_heroform(''),
|
||||
**{'group_id': VERIFIED.id}, # change group
|
||||
),
|
||||
follow=True,
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
|
|
Загрузка…
Ссылка в новой задаче