Added blank entry to sort list, and reworked window.location.href

This commit is contained in:
Raelon Masters
2020-07-02 16:44:57 -04:00
parent 4610d9658a
commit 42cb3c7076
3 changed files with 31 additions and 99 deletions

View File

@@ -78,6 +78,6 @@ $(document).ready(function(){
var optionSelected = $(this).find("option:selected"); var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val(); var valueSelected = optionSelected.val();
var textSelected = optionSelected.text(); var textSelected = optionSelected.text();
window.location.href=valueSelected window.location.href="/"+valueSelected
}); });
}); });

View File

@@ -49,12 +49,13 @@
<div id="horiz_nav_main"> <div id="horiz_nav_main">
<div id="horiz_nav_left"> <div id="horiz_nav_left">
<i class="fas fa-arrow-circle-left nav_icon prev_page" onclick="window.location.href = '/prev_page/{{ Set }}'"></i> <i class="fas fa-arrow-circle-left nav_icon prev_page" onclick="window.location.href = '/prev_page/{{ Set }}'"></i>
<i class="fas fa-sort nav_icon"></i> &nbsp;sort <i class="fas fa-sort nav_icon"></i>
<select id = "sortlist"> <select id = "sortlist">
<option valie = "" id="empty-sort"></option>
<option value = "sort/title" id="title-sort">Title</option> <option value = "sort/title" id="title-sort">Title</option>
<option value = "sort/author" id="author-sort">Author</option> <option value = "sort/author" id="author-sort">Author</option>
<option value = "sort/collections" id="collection-sort">Collection</option> <option value = "sort/collections" id="collection-sort">Collection</option>
<option value = "sort/tag" id="tag-sort">Tags</option> <option value = "sort/tags" id="tags-sort">Tags</option>
</select> </select>
</div> </div>
<div id="horiz_nav_center"> <div id="horiz_nav_center">
@@ -64,7 +65,7 @@
<i class="fas fa-search search_submit search_button" onclick="window.location.href = '/prev_page/{{ Set }}'">search</i> <i class="fas fa-search search_submit search_button" onclick="window.location.href = '/prev_page/{{ Set }}'">search</i>
</div> </div>
<div class="horiz_nav_stats"> <div class="horiz_nav_stats">
<i class="fas fa-book nav_icon"></i>&nbsp;1-20 of {{ BookStats }}&nbsp; <i class="fas fa-book nav_icon"></i>&nbsp;{{ NowShowing }} of {{ BookStats }}&nbsp;
<i class="fas fa-arrow-circle-right nav_icon next_page" onclick="window.location.href = '/next_page/{{ Set }}'"></i> <i class="fas fa-arrow-circle-right nav_icon next_page" onclick="window.location.href = '/next_page/{{ Set }}'"></i>
</div> </div>
</div> </div>

View File

@@ -50,7 +50,7 @@ def show_collection(request, _collection, _colset):
}, },
) )
def next_page(request, bookset): def next_page(request, bookset, query=None, _limit=None, _order='title'):
""" """
Goto next page in bookset Goto next page in bookset
""" """
@@ -58,28 +58,14 @@ def next_page(request, bookset):
_set = int(bookset) + 1 _set = int(bookset) + 1
except Exception: except Exception:
_set = 1 _set = 1
_payload = payload(request, query, _set, _limit, _order)
return render( return render(
request, request,
""" "index.html",
index.html", _payload,
{
"Books": book_set(None, _set),
"Set": str(_set),
"Version": config.VERSION,
"LeftNavCollections": menu("collections"),
"LeftNav": menu("collections"),
"Collections": collections_list(),
"LeftNavMenu0": menu("nav_l_0"),
"BookStats": Books.objects.all().count,
"CollectionStats": Collections.objects.all().count,
"CollectionObject": collections_list(),
"LeftNavCollections": menu("collections"),
"LeftNav": menu("collections"),
},
"""
) )
def prev_page(request, bookset): def prev_page(request, bookset, query=None, _limit=None, _order='title'):
""" """
Goto previous page in bookset Goto previous page in bookset
""" """
@@ -91,66 +77,11 @@ def prev_page(request, bookset):
_set = int(bookset) - 1 _set = int(bookset) - 1
except Exception: except Exception:
_set = 1 _set = 1
_payload = payload(request, query, _set, _limit, _order)
return render( return render(
request, request,
"index.html", "index.html",
{ _payload,
"Books": book_set(None, _set),
"Set": str(_set),
"Version": config.VERSION,
"LeftNavCollections": menu("collections"),
"LeftNav": menu("collections"),
"Collections": collections_list(),
"LeftNavMenu0": menu("nav_l_0"),
"BookStats": Books.objects.all().count,
"CollectionStats": Collections.objects.all().count,
"CollectionObject": collections_list(),
"LeftNavCollections": menu("collections"),
"LeftNav": menu("collections"),
},
)
def search(request, query=None, _set=1, _limit=None):
"""
Call generic search and return rendered results
"""
_set = int(_set)
if query is None:
return render(
request,
"index.html",
{
"Books": book_set(20, _set),
"Set": str(_set),
"Version": config.VERSION,
"LeftNavCollections": menu("collections"),
"LeftNavMenu0": menu("nav_l_0"),
"BookStats": Books.objects.all().count,
"CollectionStats": Collections.objects.all().count,
"CollectionObject": collections_list()
}
)
if _limit is None:
_limit = 20 ## TODO set to user defaults
if _set < 1:
_set = 1
_set_max = int(_set) * _limit
_set_min = _set_max - _limit
search = Books().generic_search(query)
search_len = search.count()
_r = search[_set_min:_set_max]
return render(
request,
"search.html",
{
"Books": _r,
"Query": query,
"Set": _set,
"len_results": search_len,
"Version": config.VERSION,
"LeftNavCollections": menu("collections"),
"LeftNav": menu("collections"),
},
) )
def book_set(_order, _limit=None, _set=1): def book_set(_order, _limit=None, _set=1):
@@ -313,30 +244,30 @@ def payload(request, query, _set, _limit, _order):
if _limit is None: _limit = 20 if _limit is None: _limit = 20
_set_max = int(_set) * _limit _set_max = int(_set) * _limit
_set_min = _set_max - _limit _set_min = _set_max - _limit
_now_showing = "%s of %s"%(_set_min, _set_max) _now_showing = "%s-%s"%(_set_min, _set_max)
if query: if query:
if query != request.session.get('cached_query'): if query != request.session.get('cached_query'):
breakpoint()
request.session['cached_query'] = query request.session['cached_query'] = query
request.session['cached_results'] = Books().generic_search(query) _results = Books().generic_search(query)
_r, _r_len, _search = \ _r, _r_len = \
request.session.get('cached_results')[_set_min:_set_max],\ _results[_set_min:_set_max],\
request.session.get('cached_results').count(),\ _results.count()
request.session.get('cached_query')
elif query == request.session.get('cached_query'): elif query == request.session.get('cached_query'):
_r, _r_len, _search = \ _results = Books().generic_search(query)
request.session.get('cached_results').order_by(_order)[_set_min:_set_max],\ _r, _r_len = \
request.session.get('cached_results').count(),\ _results.order_by(_order)[_set_min:_set_max],\
request.session.get('cached_query') _results.count()
elif request.session['cached_query']: else:
_r, _r_len, _search = \ try:
request.session.get('cached_results').order_by(_order)[_set_min:_set_max],\ query = request.session['cached_query']
request.session.get('cached_results').count(),\ _results = Books().generic_search(query)
request.session.get('cached_query') _r, _r_len = \
_results.order_by(_order)[_set_min:_set_max],\
else: _r, _r_len, _search = book_set(_order, _limit, _set), None, None _results.count()
except KeyError:
_r, _r_len, _search = book_set(_order, _limit, _set), None, None
_bookstats, _collectionstats, _collectionobject = \ _bookstats, _collectionstats, _collectionobject = \
Books.objects.all().count, Collections.objects.all().count, \ Books.objects.all().count, Collections.objects.all().count, \
@@ -355,7 +286,7 @@ def payload(request, query, _set, _limit, _order):
"CollectionStats": _collectionstats, "CollectionStats": _collectionstats,
"CollectionObject": _collectionobject, "CollectionObject": _collectionobject,
"NowShowing": _now_showing, "NowShowing": _now_showing,
"PostedSearch": _search, "PostedSearch": query,
"SearchLen": _r_len, "SearchLen": _r_len,
"Order": _order "Order": _order
} }