def create_group(request, pk): activate_a = models.CreateActivate.objects.filter(id=pk) user_a = models.User.objects.all() paginator = Paginator(user_a, 60) paginate_by = 60 page = request.GET.get('page') try: users = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) if request.method == 'POST': group = form.CreateGroup(request.POST) tests = request.POST.getlist('check_box_list') # activate_id = request.POST.get('activate_id') if group.is_valid(): obj: Group() obj = group.save() for t in tests: obj.group_user.add(t) obj.save() return redirect('index') else: group = form.CreateGroup() context = {'user_a': user_a, 'activate_a': activate_a, 'group': group} return render(request, 'create_group.html', context)
def post_list(request, tag_slug=None): object_list = Post.published.all() tag = None paginator = Paginator(object_list, 4) # 3 posts in each page page = request.GET.get('page') if tag_slug: tag = get_object_or_404(Tag, slug=tag_slug) object_list = object_list.filter(tags_in=[tag]) paginator = Paginator(object_list, 3) # try: posts = paginator.page(page) except PageNotAnInteger: # If page is not an integer dieliver the first page posts = paginator.page(1) except EmptyPage: # IF page is out of range deliver last page results post = paginator.page(paginator.num_pages) return render(request, 'blog/post/list.html', {'posts':posts, 'page':page, 'tag':tag, })
def post_list(request, tag_slug=None): object_list = Post.published.all() # taggin tag = None if tag_slug: tag = get_object_or_404(Tag, slug=tag_slug) object_list = object_list.filter(tags__in=[tag]) # paginator paginator = Paginator(object_list, 2) # 2 posts on each page page = request.GET.get("page") try: posts = paginator.page(page) except PageNotAnInteger: # if page is not an integer deliver the first page posts = paginator.page(1) except EmptyPage: # if page is out of range then deliver the first page posts = paginator.page(paginator.num_pages) context = { "post_list": posts, "page": page, "tag": tag, } return render(request, "blog/post/list.html", context)
def image_list(request: HttpRequest): images = Image.objects.all() paginator = Paginator(images, 8) page = request.GET.get('page') try: images = paginator.page(page) except PageNotAnInteger: # If page is not an integer deliver the first page images = paginator.page(1) except EmptyPage: if request.is_ajax(): # If the request is AJAX and the page is out of range # return an empty page return HttpResponse('') else: # If page is out of range deliver last page of results images = paginator.page(paginator.num_pages) if request.is_ajax(): return render(request, 'images/image/list_ajax.html', { 'section': 'images', 'images': images }) else: return render(request, 'images/image/list.html', { 'section': 'images', 'images': images })
def getProducts(request): query = request.query_params.get('s') print('query:', query) if query == None: query = '' products = Product.objects.filter(name__icontains=query) page = request.query_params.get('page') paginator = Paginator(products, 3) try: products = paginator.page(page) except PageNotAnInteger: products = paginator.page(1) except EmptyPage: products = paginator.page(paginator.num_pages) if page == None: page = 1 page = int(page) serializer = ProductSerializer(products, many=True) return Response({'products': serializer.data, 'page': page, 'pages': paginator.num_pages})
def posts_homepage(request, tag_slug=None): object_list = Post.published.all() # print(object_list) paginator = Paginator(object_list, 6) page = request.GET.get("page") try: posts = paginator.page(page) except PageNotAnInteger: posts = paginator.page(1) except EmptyPage: posts = paginator.page(paginator.num_pages) # tagging tag = None if tag_slug: tag = get_object_or_404(Tag, slug=tag_slug) posts = object_list.filter(tags__in=[tag]) context = { "page": page, "posts": posts, "tag": tag, } return render(request, "blog/post/post_list.html", context)
def get_context_data(self, *, object_list=None, **kwargs): context = super(CustomListView, self).get_context_data(object_list=object_list) objects = self.queryset q = self.request.GET.get('q') if q: if self.request.LANGUAGE_CODE == 'en': objects = self.model.objects.filter(title_en__icontains=q) if self.request.LANGUAGE_CODE == 'ru': objects = self.model.objects.filter(title_ru__icontains=q) if self.request.LANGUAGE_CODE == 'uz': objects = self.model.objects.filter(title_uz__icontains=q) page = self.request.GET.get('page', 1) paginator = Paginator(objects, 12) try: objects = paginator.page(page) except PageNotAnInteger: objects = paginator.page(1) except EmptyPage: objects = paginator.page(paginator.num_pages) context['objects'] = objects return context
def split_page(object_list, request, per_page=20): paginator = Paginator(object_list, per_page) # 取出当前需要展示的页码, 默认为1 page_num = request.GET.get('page', default='1') # 根据页码从分页器中取出对应页的数据 try: page = paginator.page(page_num) except PageNotAnInteger as e: # 不是整数返回第一页数据 page = paginator.page('1') page_num = 1 except EmptyPage as e: # 当参数页码大于或小于页码范围时,会触发该异常 print('EmptyPage:{}'.format(e)) if int(page_num) > paginator.num_pages: # 大于 获取最后一页数据返回 page = paginator.page(paginator.num_pages) else: # 小于 获取第一页 page = paginator.page(1) # 这部分是为了再有大量数据时,仍然保证所显示的页码数量不超过10, page_num = int(page_num) if page_num < 6: if paginator.num_pages <= 10: dis_range = range(1, paginator.num_pages + 1) else: dis_range = range(1, 11) elif (page_num >= 6) and (page_num <= paginator.num_pages - 5): dis_range = range(page_num - 5, page_num + 5) else: dis_range = range(paginator.num_pages - 9, paginator.num_pages + 1) data = {'page': page, 'paginator': paginator, 'dis_range': dis_range} return data
def show_products(request, category_name): if request.user.is_authenticated: customer = request.user.customer order, created = Order.objects.get_or_create(customer=customer, complete=False) items = order.orderitem_set.all() cartItems = order.get_cart_items else: items = [] order = {'get_total_cart': 0, 'get_cart_items': 0, 'shipping': False} cartItems = order['get_cart_items'] category = Category.objects.get(name=category_name) products = category.product_set.all() product_list = products paginator = Paginator(product_list, 6) page = request.GET.get('page') try: products = paginator.page(page) except PageNotAnInteger: products = paginator.page(1) except EmptyPage: products = paginator.page(paginator.num_pages) context = { 'category': category, 'products': products, 'page_obj': products, 'cartItems': cartItems, 'page': page, } return render(request, 'store/show_products.html', context)
def image_list(request): images = Image.objects.all() paginator = Paginator(images, 8) page = request.GET.get('page') print(page) try: images = paginator.page(page) except PageNotAnInteger: images = paginator.page(1) except EmptyPage: if request.is_ajax(): return HttpResponse('') images = paginator.page(paginator.num_pages) if request.is_ajax(): return render(request, 'images/image/list_ajax.html', { 'section':'images', 'images' : images }) return render(request, 'images/image/list.html', { 'section':'images', 'images':images })
def comment_view(request, id): if request.method == "POST": text = request.POST.get("content", "") if request.user.username: user = request.user.username else: user = "******" if text: comment = Comment() comment.user = user comment.text = text comment.date = time.strftime("%Y-%m-%d", time.localtime(time.time())) comment.song_id = id comment.save() return redirect(reverse("comment:comment", kwargs={"id": id})) else: song = Song.objects.get(id=id) if not song: raise Http404 c = Comment.objects.filter(song_id=id).order_by("date") paginator = Paginator(c, 10) page_id = request.GET.get("page", 1) try: page = paginator.page(page_id) except PageNotAnInteger: page = paginator.page(1) except EmptyPage: page = paginator.page(paginator.num_pages) return render(request, "comment.html", locals())
def viewresults(request, jobID): job = Submission.objects.get(id=jobID) try: paginator = Paginator(job.graphs().items(), 18) # show 21 graphs per page # enable the paginator page = request.GET.get('page') try: jobgraphs_page = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. jobgraphs_page = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. jobgraphs_page = paginator.page(paginator.num_pages) except AttributeError: # we don't have any items, i guess; just return an empty set for now jobgraphs_page = [] context = { 'job': job, 'jobgraph_items': jobgraphs_page } return render_to_response("results.html", context, context_instance=RequestContext(request))
def adduser(request): username = None page_range=None request.session.set_expiry(0) # print("session:" % dir(request.session)) print("session:%s" % request.session.keys()) if request.method == 'POST': form = UserSearch(request.POST) if form.is_valid(): username = form.cleaned_data['username'] request.session['search']=username else: form = UserSearch() if username is not None: userlist = User.objects.filter(~Q(username='******'), username__contains=username) elif 'search_username' in request.GET: search_username=request.GET.get('search_username') userlist=User.objects.filter(~Q(username='******'), username__contains=search_username).order_by(id) else: userlist = User.objects.exclude(username='******') print("userlist:%s" % userlist) paginator = Paginator(userlist, 3) if 'page' in request.GET: page = int(request.GET.get('page')) display = 'block' else: page = 1 display = 'block' if 'search_username' in request.GET: search_username=request.GET.get('search_username') print("display:%s page:%s" % (display, page)) try: users = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) #对于超过10页的按顺序依次显示 if paginator.num_pages > 10: if page > 6: page_range=range(page-5,page+5) else: page_range=range(1,11) else: page_range=range(1,paginator.num_pages) return render(request, 'dist/users.html', dict(username=request.session['username'].title(), userlist=users, userform=form, displayAdduser=display, page_user=page,mainmenu=u'用户管理',submenu=u'添加用户',search_username=request.session.get('search'),menulist=menulist,submenulist=submenulist,page_range=page_range))
def paginacion(request, listado): page = request.GET.get('page', 1) paginator = Paginator(listado, 90) try: listado = paginator.page(page) except PageNotAnInteger: listado = paginator.page(1) except EmptyPage: listado = paginator.page(paginator.num_pages) print(listado) return listado
def report_builder(request): incidents = Incident.objects.all() barangay = Barangay.objects.all() monthlyf = monthlyForm() yearf = yearForm() customF = customRangeForm() if request.GET.get('order'): ord = request.GET.get('order') if (ord == "date-asc"): incidents = incidents.order_by('DateAlarmReceived') elif (ord == "date-desc"): incidents = incidents.order_by('-DateAlarmReceived') elif (ord == "barangay-asc"): incidents = incidents.order_by('Barangay') elif (ord == "barangay-desc"): incidents = incidents.order_by('-Barangay') elif (ord == 'owner-asc'): incidents = incidents.order_by('OwnerName') elif (ord == 'owner-desc'): incidents = incidents.order_by('-OwnerName') if (request.GET.get('barangay') and request.GET.get('dateFrom') and request.GET.get('dateTo')): q_brgy = request.GET.get('barangay') incidents = incidents.filter(Barangay=q_brgy) dateFrom = request.GET.get('dateFrom') dateTo = request.GET.get('dateTo') incidents = incidents.filter( DateAlarmReceived__range=[dateFrom, dateTo]) if request.GET.get('barangay'): q_brgy = request.GET.get('barangay') incidents = incidents.filter(Barangay=q_brgy) if (request.GET.get('dateFrom') and request.GET.get('dateTo')): dateFrom = request.GET.get('dateFrom') dateTo = request.GET.get('dateTo') incidents = incidents.filter( DateAlarmReceived__range=[dateFrom, dateTo]) paginator = Paginator(incidents, 20) page = request.GET.get('page') try: incidents = paginator.page(page) except PageNotAnInteger: incidents = paginator.page(1) return render( request, 'report_builder.html', { "incidents": incidents, 'page': page, "barangay": barangay, "monthlyf": monthlyf, "yearf": yearf, "customF": customF, })
def institutions_render_view(request): institution_query = '' if request.method == "POST": form_search_institution = forms.FormSearchProject(request.POST) if form_search_institution.is_valid(): institution_query = form_search_institution.cleaned_data['name'] template_variables = {} if institution_query: institutions = models.Institution.objects\ .filter(name__icontains=institution_query, is_active=True)\ .order_by('-name') template_variables['institutions'] = institutions template_variables['pagination'] = False else: institutions = models.Institution.objects\ .filter(is_active=True)\ .order_by('-name') paginator = django.core.paginator.Paginator(institutions, 15) page = request.GET.get('page') try: requests_page = paginator.page(page) except django.core.paginator.PageNotAnInteger: requests_page = paginator.page(1) except django.core.paginator.EmptyPage: requests_page = paginator.page(paginator.num_pages) template_variables['institutions'] = requests_page template_variables['pagination'] = True template_variables['form_search_institution'] = forms.FormSearchProject() template_context =\ django.template.context.RequestContext(request, template_variables) return django.shortcuts.render_to_response( globals.TEMPLATE__INSTITUTIONS, template_context )
def post_list(request): object_list = Post.published.all() paginator = Paginator(object_list, 3) page = request.GET.get('page') try: posts = paginator.page(page) except PageNotAnInteger: # If page is not an integer deliver the first page posts = paginator.page(1) except EmptyPage: #If page is out of range deliver last page of results posts = paginator.page(paginator.num_pages) return render(request, 'blog/post/list.html', {'page': page, 'posts': posts})
def PotentialDonorList(request): if request.user.is_authenticated: loggedin_user = request.user.username don = Donor.objects.exclude(hospital_email=loggedin_user) hos = Hospital.objects.exclude(hospital_email=loggedin_user) today_datetime = datetime.datetime.now() today_date = today_datetime.strftime("%d") today_month = today_datetime.month today_year = today_datetime.year today_hour = today_datetime.hour temp1 = [] for item in don: if item.donor_added_time.strftime( "%d" ) == today_date and item.donor_added_time.month == today_month and item.donor_added_time.year == today_year: temp1.append(item) elif int(item.donor_added_time.strftime("%d")) + 1 == int( today_date): print(item.donor_added_time.hour - today_hour) if item.donor_added_time.hour - today_hour < 24 and item.donor_added_time.hour - today_hour >= 0: temp1.append(item) don = temp1 allreadyaccepted = OrganRequest.objects.filter(accepted=True) if allreadyaccepted.exists(): temp = [] for i in allreadyaccepted: for j in don: if i.donor.donor_id != j.donor_id: obj = Donor.objects.get(donor_id=j.donor_id) temp.append(obj) paginator = Paginator(temp, 4) page = request.GET.get('page', 1) try: tempp = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) return render(request, 'potentialDonor.html', { 'other_donors': tempp, 'hos': hos }) return render(request, 'potentialDonor.html', { 'other_donors': don, 'hos': hos })
def categoryproduct(request, cid): products_list = Product.objects.filter(avail="Available", category_id=cid) page = request.GET.get('page', 1) paginator = Paginator(products_list, 2) try: products = paginator.page(page) except PageNotAnInteger: products = paginator.page(1) except EmptyPage: products = paginator.page(paginator.num_pages) return render(request, "listing.html", { "products": products, 'total': products_list.count() })
def comics_home(request): page = request.GET.get('page', 1) all_comics = ComicSeries.objects.all().order_by('-last_update') paginator = Paginator(all_comics, 20) try: all_comics = paginator.page(page) except EmptyPage: all_comics = paginator.page(paginator.num_pages) context = {'all_comics': all_comics} return render(request, template_name='comics/comics_home.html', context=context)
def get_page_part(results, page=1, length=15): # Show 15 contacts per page paginator = JuncheePaginator(results, length) try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) return contacts
def ViewDonationList(request): loggedin_user = request.user.username hos = Hospital.objects.get(hospital_email=loggedin_user) don = Donation.objects.filter( hospital=hos).order_by('details_added_time').reverse() if don.exists(): paginator = Paginator(don, 10) page = request.GET.get('page', 1) try: donn = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) return render(request, 'viewdonationlist.html', {'don': donn}) return render(request, 'viewdonationlist.html')
def PledgedDonorsList(request): if request.user.is_authenticated: loggedin_user = request.user.username current_hospital = Hospital.objects.get(hospital_email=loggedin_user) donor = Pledge.objects.filter(pledge_hospital=current_hospital) if donor.exists(): paginator = Paginator(donor, 5) page = request.GET.get('page', 1) try: donn = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) return render(request, 'pledgeddonordetails.html', {'donor': donn}) return render(request, 'pledgeddonordetails.html', {'donor': donor})
def category_products(request, pk): sort_by = request.GET.get('sort', None) sorting_list = ['price', '-price', 'name', '-name'] if sort_by and sort_by in sorting_list: products = Product.objects.filter(category__id=pk).order_by(sort_by) else: products = Product.objects.filter(category__id=pk) data = cartData(request) cartItems = data['cartItems'] paginator = Paginator(products, 6) page_number = request.GET.get('page', 1) try: page = paginator.page(page_number) except EmptyPage: page = page_number.page(1) context = { 'cartItems': cartItems, 'page': page, 'categoryid': pk, 'products': products } return render(request, 'products/category_products.html', context)
def listar_veiculo(request, categoria, template_name="veiculo_list.html"): query = request.GET.get("busca", '') ordenar = request.GET.get("ordenar", '') page = request.GET.get("page", '') if query: if categoria != "todos": veiculo = Veiculo.objects.filter(modelo__icontains=query, tipo=categoria) else: veiculo = Veiculo.objects.filter(modelo__icontains=query) else: try: if categoria != "todos": if ordenar: veiculo = Veiculo.objects.filter( tipo=categoria).order_by(ordenar) else: veiculo = Veiculo.objects.filter(tipo=categoria) else: if ordenar: veiculo = Veiculo.objects.all().order_by(ordenar) else: veiculo = Veiculo.objects.all() veiculo = Paginator(veiculo, 2) veiculo = veiculo.page(page) except PageNotAnInteger: veiculo = veiculo.page(1) except EmptyPage: veiculo = paginator.page(paginator.num_pages) veiculos = {'lista': veiculo} return render(request, template_name, veiculos)
def viewallads(request): template = "listing.html" page = request.GET.get('page', 1) allads_list = Product.objects.filter(avail="Available") paginator = Paginator(allads_list, 2) try: allads = paginator.page(page) except PageNotAnInteger: allads = paginator.page(1) except EmptyPage: allads = paginator.page(paginator.num_pages) return render(request, template, { "ads": allads, 'total': allads_list.count() })
def veiculo_list(request, categoria, template_name='veiculo_list.html'): query = request.GET.get('busca', '') ordenar = request.GET.get('ordenar', '') page = request.GET.get('page', '') if query: if categoria != 'todos': veiculo = Veiculo.objects.filter(modelo__icontains=query, tipo=categoria) else: veiculo = Veiculo.objects.filter(modelo__icontains=query) else: try: if categoria != 'todos': if ordenar: veiculo = Veiculo.objects.filter( tipo=categoria).order_by(ordenar) else: veiculo = Veiculo.objects.filter(tipo=categoria) else: if ordenar: veiculo = Veiculo.objects.all().order_by(ordenar) else: veiculo = Veiculo.objects.all() veiculo = Paginator(veiculo, 1) veiculo = veiculo.page(page) except PageNotAnInteger: veiculo = veiculo.page(1) except EmptyPage: veiculo = paginator.page(paginator.num_pages) veiculos = {'lista': veiculo} return render(request, template_name, veiculos)
def opportunity_list(request): """Página de vagas""" op_list = Opportunity.objects.filter().order_by('created_date') page = request.GET.get('page', 1) paginator = Paginator(op_list, 9) try: opportunities = paginator.page(page) except PageNotAnInteger: opportunities = paginator.page(1) except EmptyPage: opportunities = paginator.page(paginator.num_pages) return render(request, 'opportunity/op_list.html', {'opportunities' : opportunities})
def dropuser(request): username = None if request.method == 'POST': form = UserSearch(request.POST) if form.is_valid(): username = form.cleaned_data['username'] else: form = UserSearch() if username is not None: userlist = User.objects.filter(~Q(username='******'), username__contains=username).order_by(id) else: userlist = User.objects.exclude(username='******') pagintor = Paginator(userlist, 3) if 'page' in request.GET: page = request.GET.get('page') display = 'block' else: page = 1 display = 'block' print("display:%s page:%s" % (display, page)) try: users = pagintor.page(page) except PageNotAnInteger: users = pagintor.page(1) except EmptyPage: users = paginator.page(pagintor.num_pages) return render(request, 'dist/users.html', {'username': request.session['username'].title(), 'userlist': users, 'displayDeluser': display, 'mainmenu': u'用户管理', 'submenu':u'删除用户', 'page_user': page, 'form': form,'menulist':menulist,'submenulist':submenulist})
def listaServos(request): serial = False filter_equipe = request.GET.get("filtra_Equipe", '') query = request.GET.get("busca", '') sort = request.GET.get("ordenar", '') page = request.GET.get("page", '') params = [serial, query, sort, filter_equipe] try: servos = consultaBanco(params) servos = Paginator(servos, 20) #definindo a paginação servos = servos.page(page) except PageNotAnInteger: servos = servos.page(1) except EmptyPage: servos = paginator.page(paginator.num_page) if request.method == 'GET': return render(request, 'lista_servos.html', { 'servos': servos, 'quant': len(servos) }) elif request.method == 'POST': return HttpResponse("Logo faz algo")
def order_list(request): order_list = Order.objects.all() page = request.GET.get('page', 1) paginator = Paginator(order_list, 3) try: users = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) ticket = request.POST.get('ticket') ticket_search = Order.objects.filter(ticket__name=ticket).all() return render(request, 'ecommerce/tickets.html', { 'users': users, 'ticket': ticket_search })
def listaParoquias(request): serial = False query = request.GET.get("busca", '') sort = request.GET.get("ordenar", '') page = request.GET.get("page", '') params = [serial, query, sort] #passando para o metode busca todos os params necessarios try: paroquias = consultaBanco1(params) paroquias = Paginator(paroquias, 25) #definindo a paginação paroquias = paroquias.page( page ) #passando apenas os itens que queo na pagina para o paroquias except PageNotAnInteger: paroquias = paroquias.page(1) except EmptyPage: paroquias = paginator.page(paginator.num_page) form = newParoquiaForm(request.POST or None) if form.is_valid(): form.save() return render(request, 'paroquia.html', { 'paroquias': paroquias, 'form': form })
def ViewTrends(request): if request.method == 'GET': getemail = request.GET.get('email', '') elif request.method == 'POST': getemail = request.POST.get('email', '') print(getemail) hos = Hospital.objects.get(hospital_email=getemail) don = Pledge.objects.filter(pledge_hospital=hos) if don.exists(): paginator = Paginator(don, 5) page = request.GET.get('page', 1) try: don = paginator.page(page) except PageNotAnInteger: users = paginator.page(1) except EmptyPage: users = paginator.page(paginator.num_pages) trend = Transplant.objects.filter(hospital=hos) if trend.exists(): left = [1, 2, 3, 4, 5, 6, 7, 8] for i in trend: height = [ i.kidney, i.liver, i.lung, i.heart, i.pancreas, i.skin, i.eye, i.intestine ] tick_label = [ 'kidney', 'liver', 'lung', 'heart', 'pancreas', 'skin', 'eye', 'intestine' ] plt.bar(left, height, tick_label=tick_label, width=0.5, color="aqua") plt.ylim([0, 20]) plt.xlabel('Organ') plt.ylabel('No. of transplants') plt.title('Records') fig = plt.gcf() buf = io.BytesIO() fig.savefig(buf, format='png') buf.seek(0) string = base64.b64encode(buf.read()) uri = urllib.parse.quote(string) return render(request, 'viewtrends.html', { 'trend': trend, 'hos': hos, 'data': uri, 'don': don }) return render(request, 'viewtrends.html', {'hos': hos, 'don': don})
def transactions(request, detailed, page): a = request.user.account transactions = Transaction.objects.filter(account=a).order_by('-timestamp') if page is None: page = 1 pagi = paginator.Paginator(transactions, 10) try: transaction_list = pagi.page(page) except paginator.EmptyPage: transaction_list = paginator.page(paginator.num_pages) context = RequestContext(request, { 'transaction_list': transaction_list, 'detailed': detailed }) return render_to_response('cashonly/transaction_list.html', context_instance=context)
def paginatex(request, object_list, page_size): extra_pages=5 try: size=int(request.GET.get('size', request.COOKIES.get('page_size', '20'))) except ValueError: size=20 if size==0: size=99999 paginator=Paginator(object_list, size) query=QueryDict("", True) query.update(request.GET) if 'page' in query: del query['page'] if 'size' in query: del query['size'] for i in query: query[i] = urllib.quote(query[i].encode('utf-8')) qs=urllib.urlencode(query) qs="?%s&" % urllib.unquote(qs) if qs else "?" # Make sure page request is an int. If not, deliver first page. try: page_num=int(request.GET.get('page', '1')) except ValueError: page_num=1 # If page request (9999) is out of range, deliver last page of results. try: page=paginator.page(page_num) except (EmptyPage, InvalidPage): page=paginator.page(paginator.num_pages) page.num_pages=paginator.num_pages page_index=page_num-1 last_page_index=paginator.num_pages-1 page.prev_pages=[] page.next_pages=[] page.has_more_prev_pages=False page.has_more_next_pages=False if page_index==0: page.next_pages=paginator.page_range[1:extra_pages+1] if page_index>0: page.next_pages=paginator.page_range[page_index+1:page_index+extra_pages+1] page.has_more_next_pages=page_index+extra_pages<page.num_pages-2 if page_index==last_page_index: start=page_index-extra_pages if start<0: start=0 page.prev_pages=paginator.page_range[start:page_index] if page_index<last_page_index: start=page_index-extra_pages if start<0: start=0 page.prev_pages=paginator.page_range[start:page_index] page.has_more_prev_pages=page_index-extra_pages>1 page.qs=qs # if page_index and page_index < extra_pages: # setattr( page, 'prev_pages', paginator.page_range[0:page_index] ) # setattr( page, 'next_pages', paginator.page_range[page_num:page_num + extra_pages] ) # # if page_index >= extra_pages and page_index <= page_num - extra_pages - 1: # ha valahol kozepen van # setattr( page, 'prev_pages', paginator.page_range[page_num - extra_pages:page_num - 1] ) # setattr( page, 'next_pages', paginator.page_range[page_num:page_num + extra_pages - 1] ) #setattr( page, 'next_pages', paginator.page_range[page_num:page_num + extra_pages] ) results=ResultList(page.object_list) results.paginator_page=page return results