roundabout,
created on Monday, 9 September 2024, 10:05:35 (1725876335),
received on Monday, 9 September 2024, 10:05:37 (1725876337)
Author identity: vlad <vlad.muntoiu@gmail.com>
94f1a1e313f7c0f2640f4fccd1bdcb2bdc93f66c
app.py
@@ -765,7 +765,47 @@ def get_picture_query(query_data):
return query @app.route("/query-pictures", methods=["POST"]) # sadly GET can't have a body@app.route("/query-pictures") def graphical_query_pictures(): return flask.render_template("graphical-query-pictures.html") @app.route("/query-pictures-results") def graphical_query_pictures_results(): query_yaml = flask.request.args.get("query", "") yaml_parser = yaml.YAML() query_data = yaml_parser.load(query_yaml) or {} query = get_picture_query(query_data) page = int(flask.request.args.get("page", 1)) per_page = int(flask.request.args.get("per_page", 16)) resources = query.paginate(page=page, per_page=per_page) return flask.render_template("graphical-query-pictures-results.html", resources=resources, query=query_yaml, page_number=page, page_length=per_page, num_pages=resources.pages, prev_page=resources.prev_num, next_page=resources.next_num) @app.route("/raw/picture/<int:id>") def raw_picture(id): resource = db.session.get(PictureResource, id) if resource is None: flask.abort(404) response = flask.send_from_directory(path.join(config.DATA_PATH, "pictures"), str(resource.id)) response.mimetype = resource.file_format return response @app.route("/api/object-types") def object_types(): objects = db.session.query(PictureObject).all() return flask.jsonify({object.id: object.description for object in objects}) @app.route("/api/query-pictures", methods=["POST"]) # sadly GET can't have a bodydef query_pictures(): offset = int(flask.request.args.get("offset", 0)) limit = int(flask.request.args.get("limit", 16))
@@ -834,42 +874,3 @@ def query_pictures():
response.headers["Content-Type"] = "application/json" return response @app.route("/graphical-query-pictures")def graphical_query_pictures():return flask.render_template("graphical-query-pictures.html")@app.route("/graphical-query-pictures-results")def graphical_query_pictures_results():query_yaml = flask.request.args.get("query", "")yaml_parser = yaml.YAML()query_data = yaml_parser.load(query_yaml) or {}query = get_picture_query(query_data)page = int(flask.request.args.get("page", 1))per_page = int(flask.request.args.get("per_page", 16))resources = query.paginate(page=page, per_page=per_page)return flask.render_template("graphical-query-pictures-results.html", resources=resources, query=query_yaml,page_number=page, page_length=per_page, num_pages=resources.pages,prev_page=resources.prev_num, next_page=resources.next_num)@app.route("/raw/picture/<int:id>")def raw_picture(id):resource = db.session.get(PictureResource, id)if resource is None:flask.abort(404)response = flask.send_from_directory(path.join(config.DATA_PATH, "pictures"), str(resource.id))response.mimetype = resource.file_formatreturn response@app.route("/api/object-types")def object_types():objects = db.session.query(PictureObject).all()return flask.jsonify({object.id: object.description for object in objects})
templates/graphical-query-pictures.html
@@ -5,7 +5,7 @@
{% block content %} <x-frame style="--width: 768px" class="vbox"> <h1>Query pictures</h1> <form method="GET" action="/graphical-query-pictures-results" class="vbox"><form method="GET" action="/query-pictures-results" class="vbox"><label> <span class="required-asterisk">Query YAML</span> <textarea name="query" required rows="16"></textarea>