From f7cba449efd17a6f61fd6648bd08df356ddb0611 Mon Sep 17 00:00:00 2001 From: cube Date: Tue, 17 Mar 2026 03:23:14 +0000 Subject: [PATCH] upload icons also pick an icon to be main icon from edit page --- myriad/__init__.py | 2 +- myriad/home.py | 13 +++++++++++-- myriad/manage.py | 30 ++++++++++++++++++++++-------- myriad/static/style.css | 5 +++-- myriad/templates/full.html | 6 +++++- myriad/templates/manage/edit.html | 8 ++++++-- 6 files changed, 48 insertions(+), 16 deletions(-) diff --git a/myriad/__init__.py b/myriad/__init__.py index a9124d7..b0a954c 100644 --- a/myriad/__init__.py +++ b/myriad/__init__.py @@ -30,4 +30,4 @@ def create_app(test_config=None): from . import manage app.register_blueprint(manage.bp) - return app \ No newline at end of file + return app diff --git a/myriad/home.py b/myriad/home.py index d7fc3ce..7cc4382 100644 --- a/myriad/home.py +++ b/myriad/home.py @@ -1,5 +1,5 @@ from flask import ( - Blueprint, flash, g, redirect, render_template, request, url_for + Blueprint, flash, g, redirect, render_template, request, url_for, current_app ) from werkzeug.exceptions import abort @@ -22,4 +22,13 @@ def index(): def full_list(): db = get_db() members = db.execute('SELECT * FROM member ORDER BY member_name').fetchall() - return render_template('full.html', memberlist=members) \ No newline at end of file + + icons={} + for member in members: + icon_id = member[6] + if icon_id: + icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(icon_id,)).fetchone() + icons[member[0]] = icon[0] + print(icons) + + return render_template('full.html', memberlist=members, icons=icons) \ No newline at end of file diff --git a/myriad/manage.py b/myriad/manage.py index 51cdad1..d4d79d6 100644 --- a/myriad/manage.py +++ b/myriad/manage.py @@ -1,8 +1,8 @@ from flask import ( - Blueprint, flash, g, redirect, render_template, request, session, url_for + Blueprint, flash, g, redirect, render_template, request, session, url_for, current_app ) from werkzeug.utils import secure_filename -import os +import os, uuid from myriad.auth import login_required from myriad.db import get_db @@ -50,11 +50,25 @@ def edit(mid): subtitle = request.form['subtitle'] db.execute("UPDATE member SET member_name=(?), bio=(?), subtitle=(?) WHERE id=(?)",(name, bio, subtitle, mid)) db.commit() - elif "icon" in request.form: - file = request.form["icon"] - filename = secure_filename(file.filename) - file.save("/static/uploads/" + filename) - return redirect(url_for("home.full_list")) + if "file" in request.files: + file = request.files["file"] + filename = str(uuid.uuid4()) + "." + file.filename.split(".")[1] + file.save(os.path.join(current_app.config["UPLOAD_FOLDER"], filename)) + db.execute("INSERT INTO icons (member_id, icon_location) VALUES (?, ?)", (mid, filename),) + db.commit() - return render_template("manage/edit.html", member=member, icons=icons) \ No newline at end of file + member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone() + icons = db.execute("SELECT * FROM icons WHERE member_id=(?)",(mid,)).fetchall() + return render_template("manage/edit.html", member=member, icons=icons) + + return render_template("manage/edit.html", member=member, icons=icons) + +@bp.route("/set_main_icon//") +@login_required +def set_main_icon(mid, icon_id): + db = get_db() + db.execute("UPDATE member SET main_icon=(?) WHERE id=(?)",(icon_id, mid)) + db.commit() + + return redirect(url_for("manage.edit", mid=mid)) \ No newline at end of file diff --git a/myriad/static/style.css b/myriad/static/style.css index a47cddf..a96b469 100644 --- a/myriad/static/style.css +++ b/myriad/static/style.css @@ -99,13 +99,14 @@ form textarea{ display:inline; float:left; width:120px; - height:auto; + height:120px; + object-fit: cover; border-radius:10px; margin:12px; border-style:solid; border-width:2px; border-color:#008bcc; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2); } .bio{ diff --git a/myriad/templates/full.html b/myriad/templates/full.html index 3d7d2db..e6182cf 100644 --- a/myriad/templates/full.html +++ b/myriad/templates/full.html @@ -10,9 +10,13 @@
{{ member[3] }} {{ member[4] }}
+ {% if member[6] != None %} + + {% else %} + {% endif %}
- {{ member[5] }} + {{ member[5] }}

{% if g.user %}{% endif %} diff --git a/myriad/templates/manage/edit.html b/myriad/templates/manage/edit.html index cd6a598..75e06fc 100644 --- a/myriad/templates/manage/edit.html +++ b/myriad/templates/manage/edit.html @@ -20,13 +20,17 @@
Manage Icons
- +
{% for icon in icons %} - + +
+ Set Main IconDelete Icon +
+
{% endfor %}