Ejemplo n.º 1
0
    def __init__(self, queryset, request, view, filters=[]):
        self.original_queryset = queryset
        self.queryset = queryset
        self.request = request
        self.view = view
        self.selected_choices = {}
        self.filter_mapper = {}
        self.filters = []
        logger.info('Initializing filterset %s' % self.filters)

        for filter in filters:
            filter_kwargs = {
                'queryset': self.queryset,
                'request': request,
                'view': self.view
            }
            if type(filter) == str:
                constructed_filter = construct_object(filter, **filter_kwargs)
            else:
                constructed_filter = filter(**filter_kwargs)

            self.filters.append(constructed_filter)
            self.filter_mapper[constructed_filter.name] = constructed_filter

            if constructed_filter.is_active:
                self.queryset = constructed_filter.get_results()
Ejemplo n.º 2
0
    def process_request(self, request):
        if self.override_url:
            try:
                original_urlconf = __import__(getattr(request, 'urlconf', settings.ROOT_URLCONF), {}, {}, ['*'])
            except TypeError:
                original_urlconf = request.urlconf
            for filter_location in settings.PRODUCT_LIST_FILTERS:
                filter = construct_object(filter_location, **{'queryset': None, 'request': request, 'view': 'novomore.apps.catalog.views.product_showcase_list'})
                if hasattr(filter, 'get_urls'):
                    original_urlconf.urlpatterns = filter.get_urls() + original_urlconf.urlpatterns

            self.override_url = False
            request.urlconf = original_urlconf
Ejemplo n.º 3
0
    def __init__(self, queryset, request, view, filters=[]):
        self.original_queryset = queryset
        self.queryset = queryset
        self.request = request
        self.view = view
        self.selected_choices = {}
        self.filter_mapper = {}
        self.filters = []
        logger.info('Initializing filterset %s' % self.filters)

        for filter in filters:
            filter_kwargs = {'queryset': self.queryset, 'request': request, 'view': self.view}
            if type(filter) == str:
                constructed_filter = construct_object(filter, **filter_kwargs)
            else:
                constructed_filter = filter(**filter_kwargs)

            self.filters.append(constructed_filter)
            self.filter_mapper[constructed_filter.name] = constructed_filter

            if constructed_filter.is_active:
                self.queryset = constructed_filter.get_results()