예제 #1
0
 def get_queryset(self):
     qs = Category.objects.filter(type=amo.ADDON_WEBAPP, weight__gte=0)
     if self.action == "list":
         qs = qs.filter(Q(region__isnull=True) | Q(region=get_region_id()))
         # Check carrier.
         carrier = get_carrier_id()
         carrier_f = Q(carrier__isnull=True)
         if carrier:
             carrier_f |= Q(carrier=carrier)
         qs = qs.filter(carrier_f)
     return qs.order_by("-carrier", "-region", "-weight")
예제 #2
0
 def get_queryset(self):
     qs = Category.objects.filter(type=amo.ADDON_WEBAPP, weight__gte=0)
     if self.action == 'list':
         qs = qs.filter(Q(region__isnull=True) | Q(region=get_region_id()))
         # Check carrier.
         carrier = get_carrier_id()
         carrier_f = Q(carrier__isnull=True)
         if carrier:
             carrier_f |= Q(carrier=carrier)
         qs = qs.filter(carrier_f)
     return qs.order_by('-carrier', '-region', '-weight')
예제 #3
0
    def obj_get_list(self, request=None, **kwargs):
        objs = super(CategoryResource, self).obj_get_list(request, **kwargs)

        # Filter by region or worldwide.
        objs = objs.filter(Q(region__isnull=True) | Q(region=get_region_id()))

        # Check carrier.
        carrier = get_carrier_id()
        carrier_f = Q(carrier__isnull=True)
        if carrier:
            carrier_f |= Q(carrier=carrier)
        objs = objs.filter(carrier_f)

        return objs
예제 #4
0
    def obj_get_list(self, request=None, **kwargs):
        objs = super(CategoryResource, self).obj_get_list(request, **kwargs)

        # Filter by region or worldwide.
        objs = objs.filter(Q(region__isnull=True) | Q(region=get_region_id()))

        # Check carrier.
        carrier = get_carrier_id()
        carrier_f = Q(carrier__isnull=True)
        if carrier:
            carrier_f |= Q(carrier=carrier)
        objs = objs.filter(carrier_f)

        return objs
예제 #5
0
파일: models.py 프로젝트: sunbiz/zamboni
    def featured_ids(self, cat=None, region=None, profile=None):
        carrier = get_carrier_id()
        cache_key = 'featured:%s:%s:%s:%s' % (
            region.id if region else 0, ','.join(cat) if cat else 0,
            profile.to_signature() if profile else 0,
            carrier if carrier else 0)

        val = cache.get(cache_key)
        if val is not None:
            return val

        val = list(
            self.featured(cat=cat, region=region,
                          profile=profile).values_list('app_id', flat=True))

        cache.set(cache_key, val, settings.CACHE_SEARCH_FEATURED_API_TIMEOUT)
        return val
예제 #6
0
    def featured_ids(self, cat=None, region=None, profile=None):
        carrier = get_carrier_id()
        cache_key = 'featured:%s:%s:%s:%s' % (
            region.id if region else 0,
            ','.join(cat) if cat else 0,
            profile.to_signature() if profile else 0,
            carrier if carrier else 0)

        val = cache.get(cache_key)
        if val is not None:
            return val

        val = list(self.featured(
            cat=cat, region=region,
            profile=profile).values_list('app_id', flat=True))

        cache.set(cache_key, val, settings.CACHE_SEARCH_FEATURED_API_TIMEOUT)
        return val