def _get_items(self, collection, context): request = context.get('request', None) section = self._get_section(request, context) items = collection.get_items(section) ignore_filters = request and request.GET.get('__ignore_filters', None) if not ignore_filters: # This a code to smarsearch plugin searcher_id = request.GET.get('__searcher', None) searcher = None if searcher_id and 'plugins.smartsearch' in settings.INSTALLED_APPS: try: from plugins.smartsearch.models import Searcher searcher = Searcher.objects.get(pk=searcher_id) except (ImportError, ObjectDoesNotExist): pass if searcher: from autoreports.utils import pre_procession_request, filtering_from_request model = collection.get_first_parents_of_content_types() request_processing = pre_procession_request(request, model) filters, items = filtering_from_request( request_processing, items, searcher) # Here end the code to smartsearch plugin if not searcher and request: items = self._filter_by_request(request, items) if context: items = self._filter_by_context(context, items) result = items elif isinstance(items, list): result = Collection.objects.none() for queryset in items: result |= queryset else: result = items return items
def _get_items(self, collection, context): request = context.get('request', None) section = self._get_section(request, context) items = collection.get_items(section) ignore_filters = request and request.GET.get('__ignore_filters', None) if not ignore_filters: # This a code to smarsearch plugin searcher_id = request.GET.get('__searcher', None) searcher = None if searcher_id and 'plugins.smartsearch' in settings.INSTALLED_APPS: try: from plugins.smartsearch.models import Searcher searcher = Searcher.objects.get(pk=searcher_id) except (ImportError, ObjectDoesNotExist): pass if searcher: from autoreports.utils import pre_procession_request, filtering_from_request model = collection.get_first_parents_of_content_types() request_processing = pre_procession_request(request, model) filters, items = filtering_from_request(request_processing, items, searcher) # Here end the code to smartsearch plugin if not searcher and request: items = self._filter_by_request(request, items) if context: items = self._filter_by_context(context, items) result = items elif isinstance(items, list): result = Collection.objects.none() for queryset in items: result |= queryset else: result = items return items
def get_query_set(self): query_set = super(AutoReportChangeList, self).get_query_set() try: filters, query_set = filtering_from_request(self.request, query_set, report=self.report) self._adavanced_filters = filters except ValidationError: self._adavanced_filters = None return query_set
def reports_view(request, app_name, model_name, fields=None, list_headers=None, ordering=None, filters=Q(), api=None, queryset=None, report_to='csv', report=None, separated_field=SEPARATED_FIELD, pre_procession_lite=False): class_model = models.get_model(app_name, model_name) request = pre_procession_request(request, class_model, pre_procession_lite) list_fields = fields formats = get_available_formats() if not list_fields: api = api or site._registry.get(class_model, None) if api: list_fields = api.list_display set_fields = set(list_fields) - set(EXCLUDE_FIELDS) list_fields = list(set_fields) else: list_fields = ['__unicode__'] list_headers = [_('Object')] list_headers = list_headers if not list_headers: list_headers = translate_fields(list_fields, class_model) name = "%s-%s.%s" % (app_name, model_name, formats[report_to]['file_extension']) object_list = queryset and queryset.filter( filters) or class_model.objects.filter(filters) filters, object_list = filtering_from_request(request, object_list, report=report) if ordering: object_list = object_list.order_by(*ordering) response = csv_head(name, list_headers) csv_body(response, class_model, object_list, list_fields, separated_field=separated_field, api=api) if report_to == 'excel': convert_to_excel(response) return response
def reports_view(request, app_name, model_name, fields=None, list_headers=None, ordering=None, filters=Q(), api=None, queryset=None, report_to='csv', report=None, separated_field=SEPARATED_FIELD, pre_procession_lite=False): class_model = models.get_model(app_name, model_name) request = pre_procession_request(request, class_model, pre_procession_lite) list_fields = fields formats = get_available_formats() if not list_fields: api = api or site._registry.get(class_model, None) if api: list_fields = api.list_display set_fields = set(list_fields) - set(EXCLUDE_FIELDS) list_fields = list(set_fields) else: list_fields = ['__unicode__'] list_headers = [_('Object')] list_headers = list_headers if not list_headers: list_headers = translate_fields(list_fields, class_model) name = "%s-%s.%s" % (app_name, model_name, formats[report_to]['file_extension']) object_list = queryset and queryset.filter(filters) or class_model.objects.filter(filters) filters, object_list = filtering_from_request(request, object_list, report=report) if ordering: object_list = object_list.order_by(*ordering) response = csv_head(name, list_headers) csv_body(response, class_model, object_list, list_fields, separated_field=separated_field, api=api) if report_to == 'excel': convert_to_excel(response) return response