def search(request, search=None, cats=None, scats=None): page_number = request.GET.get('page', 1) searcher = Searcher(search, cats, scats) snps = Post.objects.order_by('-posted') snps = searcher.filter_queryset(snps) searcher.unfilter_categories() selector = QuerySelector(snps, dict( download=DownloadNzbAction(), )) if request.method == 'POST': action_response = selector.apply_action(request) if isinstance(action_response, HttpResponse): return action_response paginator = Paginator( selector, settings.POST_PER_PAGE, allow_empty_first_page=True, orphans=0, ) if page_number == "last": page = paginator.page(paginator.num_pages) else: try: page = paginator.page(page_number) except InvalidPage, EmptyPage: raise Http404
def view_related_post_list(request, objects, page, title, extra_actions={}): actions = dict( download=DownloadRelatedNzbAction(), ) actions.update(extra_actions) selector = QuerySelector(objects, actions) if request.method == 'POST': action_response = selector.apply_action(request) if isinstance(action_response, HttpResponse): return action_response paginator = Paginator( selector, settings.POST_PER_PAGE, allow_empty_first_page=True, orphans=settings.POST_LIST_ORPHANS, ) try: page = paginator.page(page) except InvalidPage, EmptyPage: raise Http404