roundabout,
created on Tuesday, 11 June 2024, 18:38:11 (1718131091),
received on Wednesday, 31 July 2024, 06:54:49 (1722408889)
Author identity: vlad <vlad.muntoiu@gmail.com>
44b51e77cc10ae47c58b5dac4849a35df62bf2b5
app.py
@@ -123,6 +123,7 @@ def default():
"Markup": Markup, "locale_names": locale_names, "set": set, # since using {} is impossible in Jinja "request": flask.request,}
@@ -154,12 +155,34 @@ def about():
@app.route("/search") def search(): query = flask.request.args.get("q") page_number = flask.request.args.get("page", 1, type=int) if flask.session.get("username"): default_page_length = db.session.get(User, flask.session.get("username")).default_page_length else: default_page_length = 16 page_length = flask.request.args.get("per_page", default_page_length, type=int)if not query: flask.abort(400) results = Repo.query.filter(Repo.name.ilike(f"%{query}%")).filter_by(visibility=2).all()results = Repo.query.filter(Repo.name.ilike(f"%{query}%")).filter_by(visibility=2).paginate( page=page_number, per_page=page_length) if results.has_next: next_page = results.next_num else: next_page = None if results.has_prev: prev_page = results.prev_num else: prev_page = Nonereturn flask.render_template("search.html", results=results, query=query)return flask.render_template("search.html", results=results, query=query, page_number=page_number, page_length=page_length, next_page=next_page, prev_page=prev_page, num_pages=results.pages)@app.route("/language", methods=["POST"])
templates/pagination.html
@@ -1,24 +1,29 @@
<x-hbox id="pagination-options"> <x-hbox id="pagination"> {% if prev_page %} <a href="?per_page={{ page_length }}&page=1"><a href="{{ modify_query(per_page=page_length, page=1) }}">« </a> <a href="?per_page={{ page_length }}&page={{ prev_page }}"><a href="{{ modify_query(per_page=page_length, page=prev_page) }}">‹ </a> {% endif %} <span>{{ page_number }}/{{ num_pages }}</span> {% if next_page %} <a href="?per_page={{ page_length }}&page={{ next_page }}"><a href="{{ modify_query(per_page=page_length, page=next_page) }}">› </a> <a href="?per_page={{ page_length }}&page={{ num_pages }}"><a href="{{ modify_query(per_page=page_length, page=num_pages) }}">» </a> {% endif %} </x-hbox> <form> {% for key, value in request.args.items() %} {% if key not in ["page", "per_page"] %} <input type="hidden" name="{{ key }}" value="{{ value }}"> {% endif %} {% endfor %}<x-hbox> <label> Items per page:
templates/search.html
@@ -25,6 +25,7 @@
</li> {% endfor %} </ul> {% include "pagination.html" %}</x-frame> </x-vbox> {% endblock %}