upload icons

also pick an icon to be main icon from edit page
This commit is contained in:
cube
2026-03-17 03:23:14 +00:00
parent d196089d0e
commit f7cba449ef
6 changed files with 48 additions and 16 deletions

View File

@@ -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)
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)

View File

@@ -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()
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/<mid>/<icon_id>")
@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))

View File

@@ -99,7 +99,8 @@ form textarea{
display:inline;
float:left;
width:120px;
height:auto;
height:120px;
object-fit: cover;
border-radius:10px;
margin:12px;
border-style:solid;

View File

@@ -10,7 +10,11 @@
<div class="profile">
<div class="heading"><b>{{ member[3] }}</b> {{ member[4] }}</div>
{% if member[6] != None %}
<img src="{{ url_for('static', filename='icons/'+icons[member[0]]) }}" class="icon">
{% else %}
<img src="{{ url_for('static', filename='icons/any.jpg') }}" class="icon">
{% endif %}
<div class="bio">
{{ member[5] }}
</div>

View File

@@ -20,13 +20,17 @@
<div class="heading">Manage Icons</div>
<form method="post" enctype="multipart/form-data">
<input type="file" name="icon">
<input type="file" name="file">
<input type="submit" value="Upload New Icon">
</form>
{% for icon in icons %}
<img class="icon" src="{{ icon[2] }}">
<img class="icon" src="{{ url_for('static', filename='icons/'+icon[2]) }}">
<br class="clear" />
<a href="{{ url_for('manage.set_main_icon', mid=member[0], icon_id=icon[0]) }}">Set Main Icon</a> &#9734 <a href="">Delete Icon</a>
<br class="clear" />
<hr>
{% endfor %}