Exemplo n.º 1
0
 def get_query(self, request, base_filters=None, region=None):
     return Webapp.from_search(request,
                               region=region,
                               gaia=request.GAIA,
                               mobile=request.MOBILE,
                               tablet=request.TABLET,
                               filter_overrides=base_filters)
Exemplo n.º 2
0
 def _filter(self, req, filters, sorting=None):
     form = ApiSearchForm(filters)
     if form.is_valid():
         qs = Webapp.from_search().facet("category")
         return _filter_search(self.req, qs, form.cleaned_data, sorting)._build_query()
     else:
         return form.errors.copy()
Exemplo n.º 3
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a FeaturedSearchView instance in self.context['view']
        to properly rehydrate results returned by ES.
        """
        profile = get_feature_profile(request)
        region = self.context['view'].get_region(request)
        platform = mkt.PLATFORM_LOOKUP.get(request.GET.get('dev'))

        _rget = lambda d: getattr(request, d, False)
        qs = Webapp.from_search(request, region=region)
        filters = {'collection.id': obj.pk}
        filters.update(**self._get_filters(request, es=True))
        if profile:
            filters.update(**profile.to_kwargs(prefix='features.has_'))
        qs = qs.filter(**filters).order_by({
            'collection.order': {
                'order': 'asc',
                'nested_filter': {
                    'term': {'collection.id': obj.pk}
                }
            }
        })

        return self.to_native_es(qs)
Exemplo n.º 4
0
 def _filter(self, req, filters, sorting=None, **kwargs):
     form = self.form_class(filters)
     if form.is_valid():
         qs = Webapp.from_search(self.req, **kwargs)
         return _filter_search(self.req, qs, form.cleaned_data, sorting)._build_query()
     else:
         return form.errors.copy()
Exemplo n.º 5
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a FeaturedSearchView instance in self.context['view']
        to properly rehydrate results returned by ES.
        """
        profile = get_feature_profile(request)
        region = self.context['view'].get_region(request)
        device = self._get_device(request)

        _rget = lambda d: getattr(request, d, False)
        qs = Webapp.from_search(request,
                                region=region,
                                gaia=_rget('GAIA'),
                                mobile=_rget('MOBILE'),
                                tablet=_rget('TABLET'))
        filters = {'collection.id': obj.pk}
        if device and device != amo.DEVICE_DESKTOP:
            filters['device'] = device.id
        if profile:
            filters.update(**profile.to_kwargs(prefix='features.has_'))
        qs = qs.filter(**filters).order_by({
            'collection.order': {
                'order': 'asc',
                'nested_filter': {
                    'term': {
                        'collection.id': obj.pk
                    }
                }
            }
        })

        return self.to_native_es(qs)
Exemplo n.º 6
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a FeaturedSearchView instance in self.context['view']
        to properly rehydrate results returned by ES.
        """
        profile = get_feature_profile(request)
        region = self.context['view'].get_region_from_request(request)
        device = self._get_device(request)

        _rget = lambda d: getattr(request, d, False)
        qs = Webapp.from_search(request, region=region, gaia=_rget('GAIA'),
                                mobile=_rget('MOBILE'), tablet=_rget('TABLET'))
        filters = {'collection.id': obj.pk}
        if device and device != amo.DEVICE_DESKTOP:
            filters['device'] = device.id
        if profile:
            filters.update(**profile.to_kwargs(prefix='features.has_'))
        qs = qs.filter(**filters).order_by({
            'collection.order': {
                'order': 'asc',
                'nested_filter': {
                    'term': {'collection.id': obj.pk}
                }
            }
        })

        return self.to_native(qs, use_es=True)
Exemplo n.º 7
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a FeaturedSearchView instance in self.context['view']
        to properly rehydrate results returned by ES.
        """
        profile = get_feature_profile(request)
        region = self.context['view'].get_region(request)

        qs = Webapp.from_search(request, region=region)
        filters = {'collection.id': obj.pk}
        if profile:
            filters.update(**profile.to_kwargs(prefix='features.has_'))
        qs = qs.filter(**filters).order_by({
            'collection.order': {
                'order': 'asc',
                'nested_filter': {
                    'term': {'collection.id': obj.pk}
                }
            }
        })

        return self.to_native_es(qs)
Exemplo n.º 8
0
 def _filter(self, req, filters, **kwargs):
     form = self.form_class(filters)
     if form.is_valid():
         qs = Webapp.from_search(self.req, **kwargs)
         return _filter_search(
             self.req, qs, form.cleaned_data).to_dict()
     else:
         return form.errors.copy()
Exemplo n.º 9
0
 def _filter(self, req, filters, **kwargs):
     form = ApiSearchForm(filters)
     if form.is_valid():
         qs = Webapp.from_search(self.req, **kwargs)
         return _filter_search(
             self.req, qs, form.cleaned_data)._build_query()
     else:
         return form.errors.copy()
Exemplo n.º 10
0
 def _filter(self, req, filters, sorting=None, **kwargs):
     form = self.form_class(filters)
     if form.is_valid():
         qs = Webapp.from_search(self.req, **kwargs)
         return _filter_search(
             self.req, qs, form.cleaned_data, sorting)._build_query()
     else:
         return form.errors.copy()
Exemplo n.º 11
0
 def _filter(self, req, filters, sorting=None):
     form = ApiSearchForm(filters)
     if form.is_valid():
         qs = Webapp.from_search().facet('category')
         return _filter_search(self.req, qs, form.cleaned_data,
                               sorting)._build_query()
     else:
         return form.errors.copy()
Exemplo n.º 12
0
 def get_query(self, request, base_filters=None, region=None):
     return Webapp.from_search(
         request,
         region=region,
         gaia=request.GAIA,
         mobile=request.MOBILE,
         tablet=request.TABLET,
         filter_overrides=base_filters,
     )
Exemplo n.º 13
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a FeaturedSearchView instance in self.context['view']
        to properly rehydrate results returned by ES.
        """
        profile = get_feature_profile(request)
        region = self.context["view"].get_region(request)

        qs = Webapp.from_search(request, region=region)
        filters = {"collection.id": obj.pk}
        if profile:
            filters.update(**profile.to_kwargs(prefix="features.has_"))
        qs = qs.filter(**filters).order_by("collection.order")

        return [self.to_native_es(app) for app in qs]
Exemplo n.º 14
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a SearchResource instance in self.context['search_resource']
        to properly rehydrate results returned by ES.
        """
        search_resource = self.context["search_resource"]
        profile = get_feature_profile(request)
        region = search_resource.get_region(request)

        qs = Webapp.from_search(request, region=region)
        filters = {"collection.id": obj.pk}
        if profile and waffle.switch_is_active("buchets"):
            filters.update(**profile.to_kwargs(prefix="features.has_"))
        qs = qs.filter(**filters).order_by("collection.order")

        return [bundle.data for bundle in search_resource.rehydrate_results(request, qs)]
Exemplo n.º 15
0
    def field_to_native_es(self, obj, request):
        """
        A version of field_to_native that uses ElasticSearch to fetch the apps
        belonging to the collection instead of SQL.

        Relies on a SearchResource instance in self.context['search_resource']
        to properly rehydrate results returned by ES.
        """
        search_resource = self.context['search_resource']
        profile = get_feature_profile(request)
        region = search_resource.get_region(request)

        qs = Webapp.from_search(request, region=region)
        filters = {'collection.id': obj.pk}
        if profile:
            filters.update(**profile.to_kwargs(prefix='features.has_'))
        qs = qs.filter(**filters).order_by('collection.order')

        return [bundle.data
                for bundle in search_resource.rehydrate_results(request, qs)]
Exemplo n.º 16
0
def _get_query(region, gaia, mobile, tablet, status=amo.STATUS_PUBLIC):
    return Webapp.from_search(region=region, gaia=gaia, mobile=mobile,
                              tablet=tablet, status=status).facet('category')
Exemplo n.º 17
0
def _get_query(region, gaia, mobile, tablet):
    return Webapp.from_search(region=region, gaia=gaia,
                              mobile=mobile, tablet=tablet).facet('category')
Exemplo n.º 18
0
def _get_query(region):
    return Webapp.from_search(region=region).facet('category')
Exemplo n.º 19
0
def _get_query(region):
    return Webapp.from_search(region=region).facet("category")
Exemplo n.º 20
0
def _get_query(region, gaia):
    return Webapp.from_search(region=region, gaia=gaia).facet('category')
Exemplo n.º 21
0
 def get_query(self, request, base_filters=None, region=None):
     return Webapp.from_search(request, region=region, filter_overrides=base_filters)
Exemplo n.º 22
0
def _get_query(region, gaia, mobile, tablet, filters=None, new_idx=False):
    return Webapp.from_search(
        region=region, gaia=gaia, mobile=mobile, tablet=tablet,
        filter_overrides=filters, new_idx=new_idx).facet('category')
Exemplo n.º 23
0
def _get_query(request, region, gaia, mobile, tablet, filters=None,
               new_idx=False):
    return Webapp.from_search(
        request, region=region, gaia=gaia, mobile=mobile, tablet=tablet,
        filter_overrides=filters, new_idx=new_idx)
Exemplo n.º 24
0
def _get_query(region, gaia, mobile, tablet, filters=None):
    return Webapp.from_search(region=region,
                              gaia=gaia,
                              mobile=mobile,
                              tablet=tablet,
                              filter_overrides=filters).facet('category')
Exemplo n.º 25
0
 def get_query(self, request, region=None):
     return Webapp.from_search(request, region=region, gaia=request.GAIA,
                               mobile=request.MOBILE, tablet=request.TABLET)