def filter_queryset(self, queryset): queries = self.request.GET.copy() if self.request.user.username == '': return queryset form = FilterForm(self.request.user.userprofile, self.request.GET) if form.is_valid(): cd = form.cleaned_data if form.cleaned_data['agency']: queryset = queryset.filter(agency=form.cleaned_data['agency']) if form.cleaned_data[ 'status'] and form.cleaned_data['status'] != 'A': queryset = queryset.filter(status=form.cleaned_data['status']) if form.cleaned_data['added_before']: # Need to increment this to deal with time of day issues queryset = queryset.filter( date_added__lte=form.cleaned_data['added_before'] + timedelta(days=1)) if form.cleaned_data['added_after']: queryset = queryset.filter( date_added__gte=form.cleaned_data['added_after']) if form.cleaned_data['tags']: tags = form.cleaned_data['tags'] for tag in tags: queryset = queryset.filter(tags=tag) if form.cleaned_data['keywords']: queryset = queryset.filter( Q(text__search=form.cleaned_data['keywords']) | Q(title__icontains=form.cleaned_data['keywords']) | Q(free_edit_body__search=form.cleaned_data['keywords'])) if form.cleaned_data['keywords_attachment']: queryset = queryset.filter( Q(title__icontains=form.cleaned_data['keywords_attachment'] )) #qs = Model.objects.filter(name='test') # if form.cleaned_data['keywords_attachment']: # ids = form.cleaned_data['keywords_attachment'] # for id in ids: # queryset = queryset.filter(attachments__id=id) self.filterform = form if 'order_by' in queries: if queries['order_by'] == "due_date" or queries['order_by'] == "status" or queries['order_by'] == 'title'\ or queries['order_by'] == "-due_date" or queries['order_by'] == "-status" or queries['order_by'] == '-title': return queryset.order_by(queries['order_by']) return queryset
def filter_queryset(self, queryset): form = FilterForm(self.vl.owner.userprofile, self.request.GET) if form.is_valid(): cd = form.cleaned_data if form.cleaned_data['agency']: queryset = queryset.filter(agency=form.cleaned_data['agency']) if form.cleaned_data['added_before']: # Need to increment this to deal with time of day issues queryset = queryset.filter( date_added__lte=form.cleaned_data['added_before'] + timedelta(days=1)) if form.cleaned_data['added_after']: queryset = queryset.filter( date_added__gte=form.cleaned_data['added_after']) # Don't need to do tags here -- we already did that self.filterform = form return queryset
def filter_queryset(self, queryset): queries = self.request.GET.copy() if self.request.user.username == '': return queryset form = FilterForm(self.request.user.userprofile, self.request.GET) if form.is_valid(): cd = form.cleaned_data if form.cleaned_data['agency']: queryset = queryset.filter(agency=form.cleaned_data['agency']) if form.cleaned_data[ 'status'] and form.cleaned_data['status'] != 'A': queryset = queryset.filter(status=form.cleaned_data['status']) if form.cleaned_data['added_before']: # Need to increment this to deal with time of day issues queryset = queryset.filter( date_added__lte=form.cleaned_data['added_before'] + timedelta(days=1)) if form.cleaned_data['added_after']: queryset = queryset.filter( date_added__gte=form.cleaned_data['added_after']) if form.cleaned_data['tags']: tags = form.cleaned_data['tags'] for tag in tags: queryset = queryset.filter(tags=tag) self.filterform = form if 'order_by' in queries: if queries['order_by'] == "due_date" or queries['order_by'] == "status" or queries['order_by'] == 'title'\ or queries['order_by'] == "-due_date" or queries['order_by'] == "-status" or queries['order_by'] == '-title': return queryset.order_by(queries['order_by']) return queryset