roundabout,
created on Monday, 9 September 2024, 15:20:24 (1725895224),
received on Tuesday, 10 September 2024, 13:58:09 (1725976689)
Author identity: vlad <vlad.muntoiu@gmail.com>
e750d0b32bff7ffd47d845deb8593d190d292a7a
app.py
@@ -898,6 +898,40 @@ def gallery_remove_picture(id):
return flask.redirect("/gallery/" + str(gallery.id)) @app.route("/gallery/<int:id>/add-pictures-from-query", methods=["POST"]) def gallery_add_from_query(id): gallery = db.session.get(Gallery, id) if gallery is None: flask.abort(404) if "username" not in flask.session: flask.abort(401) if flask.session["username"] != gallery.owner_name and not current_user.admin and not UserInGallery.query.filter_by(user=current_user, gallery=gallery).first(): flask.abort(403) query_yaml = flask.request.form.get("query", "") yaml_parser = yaml.YAML() query_data = yaml_parser.load(query_yaml) or {} query = get_picture_query(query_data) pictures = query.all() count = 0 for picture in pictures: if not PictureInGallery.query.filter_by(resource=picture, gallery=gallery).first(): db.session.add(PictureInGallery(picture, gallery)) count += 1 db.session.commit() flask.flash(f"Added {count} pictures to the gallery") return flask.redirect("/gallery/" + str(gallery.id)) @app.route("/gallery/<int:id>/users") def gallery_users(id): gallery = db.session.get(Gallery, id)
templates/gallery.html
@@ -14,6 +14,16 @@
<input name="picture_id" type="text" placeholder="Picture ID" required aria-label="Picture ID"> <button type="submit">Add picture</button> </form> <details> <summary>Add from query</summary> <form method="POST" action="/gallery/{{ gallery.id }}/add-pictures-from-query"> <label> <span class="required-asterisk">Query YAML</span> <textarea name="query" required rows="8"></textarea> </label> <button type="submit">Add pictures</button> </form> </details>{% endif %} <h2>Pictures</h2> <ul class="thumbnail-list">