Don't show frozen add-ons on personas promo (bug 694590)

This commit is contained in:
Gregory Koberger 2011-10-19 15:42:01 -07:00
Родитель 3a53a1d218
Коммит 38a22f6291
2 изменённых файлов: 24 добавлений и 3 удалений

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

@ -21,7 +21,7 @@ from amo.urlresolvers import reverse
from amo.helpers import absolutify, numberfmt, urlparams from amo.helpers import absolutify, numberfmt, urlparams
from addons.tests.test_views import TestMobile from addons.tests.test_views import TestMobile
from addons.models import (Addon, AddonCategory, Category, AppSupport, Feature, from addons.models import (Addon, AddonCategory, Category, AppSupport, Feature,
Persona) FrozenAddon, Persona)
from addons.utils import FeaturedManager from addons.utils import FeaturedManager
from applications.models import Application from applications.models import Application
from bandwagon.models import Collection, CollectionAddon, FeaturedCollection from bandwagon.models import Collection, CollectionAddon, FeaturedCollection
@ -1323,6 +1323,24 @@ class TestPersonas(amo.tests.TestCase):
r = self.client.get(category_url) r = self.client.get(category_url)
self.assertTemplateUsed(r, landing) self.assertTemplateUsed(r, landing)
def test_personas_category_landing_frozen(self):
# Check to make sure add-on is there.
category_url = reverse('browse.personas')
r = self.client.get(category_url)
personas = pq(r.content).find('.persona-preview')
eq_(personas.length, 2)
eq_(personas.eq(1).find('a').text(), "My Persona")
# Freeze the add-on
FrozenAddon.objects.create(addon_id=15663)
# Make sure it's not there anymore
res = self.client.get(category_url)
personas = pq(res.content).find('.persona-preview')
eq_(personas.length, 1)
class TestMobileFeatured(TestMobile): class TestMobileFeatured(TestMobile):

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

@ -15,7 +15,7 @@ import amo
import amo.models import amo.models
from amo.models import manual_order from amo.models import manual_order
from amo.urlresolvers import reverse from amo.urlresolvers import reverse
from addons.models import Addon, Category, AddonCategory from addons.models import Addon, AddonCategory, Category, FrozenAddon
from addons.utils import FeaturedManager, CreaturedManager from addons.utils import FeaturedManager, CreaturedManager
from addons.views import BaseFilter, ESBaseFilter from addons.views import BaseFilter, ESBaseFilter
from translations.query import order_by_translation from translations.query import order_by_translation
@ -310,8 +310,11 @@ def personas_listing(request, category=None):
type=TYPE) type=TYPE)
categories = order_by_translation(q, 'name') categories = order_by_translation(q, 'name')
frozen = FrozenAddon.objects.values_list('addon', flat=True)
base = (Addon.objects.public().filter(type=TYPE) base = (Addon.objects.public().filter(type=TYPE)
.extra(select={'_app': request.APP.id})) .exclude(id__in=frozen)
.extra(select={'_app': request.APP.id}))
if category is not None: if category is not None:
category = get_object_or_404(q, slug=category) category = get_object_or_404(q, slug=category)