Ejemplo n.º 1
0
 def test_is_featured(self):
     self.assertContains(make_call("addon/5299", version=1.5), "<featured>0</featured>")
     c = CollectionAddon.objects.create(addon=Addon.objects.get(id=5299), collection=Collection.objects.create())
     FeaturedCollection.objects.create(
         locale="ja", application=Application.objects.get(id=amo.FIREFOX.id), collection=c.collection
     )
     FeaturedManager.redis().kv.clear()
     reset_featured_addons()
     for lang, app, result in [("ja", "firefox", 1), ("en-US", "firefox", 0), ("ja", "seamonkey", 0)]:
         self.assertContains(
             make_call("addon/5299", version=1.5, lang=lang, app=app), "<featured>%s</featured>" % result
         )
Ejemplo n.º 2
0
 def test_new_is_featured(self):
     self.assertContains(make_call('addon/5299', version=1.5),
                         '<featured>0</featured>')
     c = CollectionAddon.objects.create(
             addon=Addon.objects.get(id=5299),
             collection=Collection.objects.create())
     FeaturedCollection.objects.create(locale='ja',
         application=Application.objects.get(id=amo.FIREFOX.id),
         collection=c.collection)
     FeaturedManager.redis().kv.clear()
     reset_featured_addons()
     for lang, app, result in [('ja', 'firefox', 1),
                               ('en-US', 'firefox', 0),
                               ('ja', 'seamonkey', 0)]:
         self.assertContains(make_call('addon/5299', version=1.5,
                                       lang=lang, app=app),
                             '<featured>%s</featured>' % result)
Ejemplo n.º 3
0
 def test_is_featured(self):
     self.assertContains(make_call('addon/5299', version=1.5),
                         '<featured>0</featured>')
     c = CollectionAddon.objects.create(
             addon=Addon.objects.get(id=5299),
             collection=Collection.objects.create())
     FeaturedCollection.objects.create(locale='ja',
         application=Application.objects.get(id=amo.FIREFOX.id),
         collection=c.collection)
     FeaturedManager.redis().kv.clear()
     reset_featured_addons()
     for lang, app, result in [('ja', 'firefox', 1),
                               ('en-US', 'firefox', 0),
                               ('ja', 'seamonkey', 0)]:
         self.assertContains(make_call('addon/5299', version=1.5,
                                       lang=lang, app=app),
                             '<featured>%s</featured>' % result)
Ejemplo n.º 4
0
    def filter_featured(self):
        # Featured search add-ons in all locales:
        APP, LANG = self.request.APP, self.request.LANG
        ids = FeaturedManager.featured_ids(APP, LANG, amo.ADDON_SEARCH)

        try:
            search_cat = Category.objects.get(slug="search-tools", application=APP.id)
            others = CreaturedManager.creatured_ids(search_cat, LANG)
            ids.extend(o for o in others if o not in ids)
        except Category.DoesNotExist:
            pass

        return manual_order(Addon.objects.valid(), ids, "addons.id")
Ejemplo n.º 5
0
    def filter_featured(self):
        # Featured search add-ons in all locales:
        APP, LANG = self.request.APP, self.request.LANG
        ids = FeaturedManager.featured_ids(APP, LANG, amo.ADDON_SEARCH)

        try:
            search_cat = Category.objects.get(slug='search-tools',
                                              application=APP.id)
            others = CreaturedManager.creatured_ids(search_cat, LANG)
            ids.extend(o for o in others if o not in ids)
        except Category.DoesNotExist:
            pass

        return manual_order(Addon.objects.valid(), ids, 'addons.id')
Ejemplo n.º 6
0
def impala_home(request):
    # Add-ons.
    base = Addon.objects.listed(request.APP).filter(type=amo.ADDON_EXTENSION)
    featured_ext = FeaturedManager.featured_ids(request.APP, request.LANG,
                                                type=amo.ADDON_EXTENSION)
    featured_personas = FeaturedManager.featured_ids(request.APP, request.LANG,
                                                     type=amo.ADDON_PERSONA)
    # This is lame for performance. Kill it with ES.
    frozen = FrozenAddon.objects.values_list('addon', flat=True)

    # Collections.
    collections = Collection.objects.filter(listed=True,
                                            application=request.APP.id,
                                            type=amo.COLLECTION_FEATURED)
    featured = base.filter(id__in=featured_ext[:18])
    popular = base.exclude(id__in=frozen).order_by('-average_daily_users')[:10]
    hotness = base.exclude(id__in=frozen).order_by('-hotness')[:18]
    personas = (Addon.objects.listed(request.APP)
                .filter(type=amo.ADDON_PERSONA, id__in=featured_personas[:18]))

    return jingo.render(request, 'addons/impala/home.html',
                        {'popular': popular, 'featured': featured,
                         'hotness': hotness, 'personas': personas,
                         'src': 'homepage', 'collections': collections})
Ejemplo n.º 7
0
def get_featured_personas(request):
    categories, filter, base, category = personas_listing(request)
    ids = FeaturedManager.featured_ids(request.APP, request.LANG, type=amo.ADDON_PERSONA)
    return manual_order(base, ids)[:6]
Ejemplo n.º 8
0
def reset_featured_addons():
    FeaturedManager.build()
    CreaturedManager.build()
Ejemplo n.º 9
0
def get_featured_personas(request):
    categories, filter, base, category = personas_listing(request)
    ids = FeaturedManager.featured_ids(request.APP, request.LANG,
                                       type=amo.ADDON_PERSONA)
    return manual_order(base, ids)[:6]
Ejemplo n.º 10
0
Archivo: cron.py Proyecto: vdt/zamboni
def reset_featured_addons():
    FeaturedManager.build()
    CreaturedManager.build()
Ejemplo n.º 11
0
 def reset(self):
     cache.clear()
     FeaturedManager.redis().flushall()
     reset_featured_addons()
     FeaturedManager.featured_ids.clear()
     CreaturedManager.creatured_ids.clear()
Ejemplo n.º 12
0
def get_featured_personas(request, category=None, num_personas=6):
    categories, filter, base, category = personas_listing(request, category)
    ids = FeaturedManager.featured_ids(request.APP, request.LANG,
                                       type=amo.ADDON_PERSONA)

    return manual_order(base, ids, 'addons.id')[:num_personas]
Ejemplo n.º 13
0
 def reset(self):
     cache.clear()
     FeaturedManager.redis().flushall()
     self.reset_featured_addons()
Ejemplo n.º 14
0
def get_featured_personas(request, category=None, num_personas=6):
    categories, filter, base, category = personas_listing(request, category)
    ids = FeaturedManager.featured_ids(request.APP, request.LANG,
                                       type=amo.ADDON_PERSONA)

    return manual_order(base, ids, 'addons.id')[:num_personas]