Added result limiting, and result paging

This commit is contained in:
Mike Young
2019-11-29 17:26:18 -05:00
parent 2bf6500ee5
commit 85e6705af6
5 changed files with 20 additions and 44 deletions

View File

@@ -23,7 +23,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = "@(9b9jslgg41u1u=mr)-2*-n2x0vef0zsy39*z@sz18&tvow18" SECRET_KEY = "@(9b9jslgg41u1u=mr)-2*-n2x0vef0zsy39*z@sz18&tvow18"
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False DEBUG = True
ALLOWED_HOSTS = ["*"] ALLOWED_HOSTS = ["*"]

View File

@@ -22,8 +22,8 @@ urlpatterns = [
path("admin/", admin.site.urls), path("admin/", admin.site.urls),
path("", views.index, name="index"), path("", views.index, name="index"),
path("download/<pk>", views.download, name="download"), path("download/<pk>", views.download, name="download"),
path("prev_page", views.prev_page, name="prev_page"), path("prev_page/<bookset>", views.prev_page, name="prev_page"),
path("next_page", views.next_page, name="next_page"), path("next_page/<bookset>", views.next_page, name="next_page"),
] ]
if settings.DEBUG: if settings.DEBUG:
import debug_toolbar import debug_toolbar

View File

@@ -1,27 +0,0 @@
$(document).ready(function(){
//_set = $('input#_set').attr('value');
$('input.next_page').on('click', function(){next_page(1)});
$('input.prev_page').on('click', function(){prev_page(1)});
function next_page(set){
/*
var re = new RegExp(/^.*\//);
var _root = re.exec(window.location.href);
var _path = _root[0].substring(0, _root[0].length -1)
document.location.href = 'next_page?bookset='+set;
*/
console.log("next_page clicked");
var _r = $.get('next_page', 'bookset='+set);
console.log(_r);
}
function prev_page(set){
/*
var re = new RegExp(/^.*\//);
var _root = re.exec(window.location.href);
document.location.href = _root+'prev_page?bookset='+set;
*/
console.log("prev_page clicked");
$.get('prev_page', 'bookset='+set);
}
});

View File

@@ -31,14 +31,14 @@
<div class="navbar top"> <div class="navbar top">
<input type="hidden" id="_set" name="_set" value="{{ Set }}" /> <input type="hidden" id="_set" name="_set" value="{{ Set }}" />
<div style="grid-area:left"> <div style="grid-area:left">
<input class="nav_button prev_page" type="submit" value="<< Prev Page"> <input class="nav_button prev_page" type="button" value="<< Prev Page" onclick="window.location.href = '/prev_page/{{ Set }}'">
</div> </div>
<div style="grid-area:center"> <div style="grid-area:center">
<input class="nav_search" type="text" size="15"> <input class="nav_search" type="text" size="15">
<input class="nav_button" type="submit" value="Search"> <input class="nav_button" type="submit" value="Search">
</div> </div>
<div style="grid-area:right"> <div style="grid-area:right">
<input class="nav_button next_page" type="submit" value="Next Page >>"> <input class="nav_button next_page" type="button" value="Next Page >>" onclick="window.location.href = '/next_page/{{ Set }}'">
</div> </div>
</div> </div>
</div> </div>

View File

@@ -4,7 +4,7 @@ from base64 import b64decode, b64encode
from django.db import models from django.db import models
from django.http import JsonResponse from django.http import JsonResponse
from django.shortcuts import HttpResponse, render from django.shortcuts import HttpResponse, render, render_to_response
from django.utils.text import slugify from django.utils.text import slugify
from .models import Books from .models import Books
@@ -15,24 +15,27 @@ def index(request):
return render( return render(
request, "index.html", {"Books": book_set(20, _set), "Set": str(_set)} request, "index.html", {"Books": book_set(20, _set), "Set": str(_set)}
) )
# return render(request, "index.html", {"Books": Books.objects.all()})
def next_page(request): def next_page(request, bookset):
try: try:
_set = int(request.GET["bookset"]) + 1 _set = int(bookset) + 1
except Exception: except Exception:
_set = 1 _set = 1
return HttpResponse(book_set_as_dict(20, _set), mimetype="application/json") return render(
request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)}
)
def prev_page(request): def prev_page(request, bookset):
try: _set = int(bookset)
_set = request.GET["bookset"] - 1 if _set <= 1:
if _set < 0:
_set = 0
except Exception:
_set = 1 _set = 1
else:
try:
_set = int(bookset) - 1
except Exception:
_set = 1
return render( return render(
request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)} request, "index.html", {"Books": book_set(None, _set), "Set": str(_set)}
) )
@@ -59,7 +62,7 @@ def book_set_as_dict(_limit=None, _set=1):
"title": book.title, "title": book.title,
"author": book.author, "author": book.author,
"categories": book.categories, "categories": book.categories,
"cover": b64decode(book.cover), "cover": book.cover,
"pages": book.pages, "pages": book.pages,
"progress": book.progress, "progress": book.progress,
"file_name": book.file_name, "file_name": book.file_name,