Add pager to property page

This commit is contained in:
Edward Betts 2019-12-18 18:49:15 +00:00
parent 19c6d3b81c
commit 8e606499c9
2 changed files with 19 additions and 4 deletions

15
app.py
View file

@ -187,10 +187,17 @@ def property_query_page(property_id):
.group_by(Triple.object_id) .group_by(Triple.object_id)
.order_by(desc('c'))) .order_by(desc('c')))
labels = get_labels_db({f'Q{object_id}' for object_id, c in q}) page = utils.get_int_arg('page') or 1
total = q.count()
page_size = 50
pager = Pagination(page, page_size, total)
page_hits = pager.slice(q)
labels = get_labels_db({f'Q{object_id}' for object_id, c in page_hits})
hits = [] hits = []
for object_id, count in q: for object_id, count in page_hits:
qid = f'Q{object_id}' qid = f'Q{object_id}'
hits.append({'qid': qid, hits.append({'qid': qid,
'label': labels.get(qid) or '[item missing]', 'label': labels.get(qid) or '[item missing]',
@ -200,6 +207,8 @@ def property_query_page(property_id):
label=g.title, label=g.title,
order=('name' if sort_by_name else 'count'), order=('name' if sort_by_name else 'count'),
pid=pid, pid=pid,
page=page,
pager=pager,
hits=hits) hits=hits)
@app.route('/') @app.route('/')
@ -833,7 +842,7 @@ def browse_page():
cache_refreshed = True cache_refreshed = True
item.image = detail[image_filename] item.image = detail[image_filename]
return render_template('new_find_more.html', return render_template('find_more.html',
page=page, page=page,
label=g.title, label=g.title,
pager=pager, pager=pager,

View file

@ -1,3 +1,4 @@
{% from "macro.html" import render_pagination %}
{% extends "base.html" %} {% extends "base.html" %}
{% block title %}{{ label }}{% endblock %} {% block title %}{{ label }}{% endblock %}
@ -16,7 +17,9 @@
{% endif %} {% endif %}
</p> </p>
<p>Total: {{ hits | length }}</p> <p>Total: {{ '{:,d}'.format(pager.total_count) }}</p>
{{ render_pagination(pager) }}
<ul> <ul>
{% for hit in hits %} {% for hit in hits %}
@ -31,6 +34,9 @@
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{{ render_pagination(pager) }}
</div> </div>
{% endblock %} {% endblock %}