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

@@ -30,4 +30,4 @@ def create_app(test_config=None):
from . import manage from . import manage
app.register_blueprint(manage.bp) app.register_blueprint(manage.bp)
return app return app

View File

@@ -1,5 +1,5 @@
from flask import ( 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 from werkzeug.exceptions import abort
@@ -22,4 +22,13 @@ def index():
def full_list(): def full_list():
db = get_db() db = get_db()
members = db.execute('SELECT * FROM member ORDER BY member_name').fetchall() 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 ( 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 from werkzeug.utils import secure_filename
import os import os, uuid
from myriad.auth import login_required from myriad.auth import login_required
from myriad.db import get_db from myriad.db import get_db
@@ -50,11 +50,25 @@ def edit(mid):
subtitle = request.form['subtitle'] subtitle = request.form['subtitle']
db.execute("UPDATE member SET member_name=(?), bio=(?), subtitle=(?) WHERE id=(?)",(name, bio, subtitle, mid)) db.execute("UPDATE member SET member_name=(?), bio=(?), subtitle=(?) WHERE id=(?)",(name, bio, subtitle, mid))
db.commit() 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) 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,13 +99,14 @@ form textarea{
display:inline; display:inline;
float:left; float:left;
width:120px; width:120px;
height:auto; height:120px;
object-fit: cover;
border-radius:10px; border-radius:10px;
margin:12px; margin:12px;
border-style:solid; border-style:solid;
border-width:2px; border-width:2px;
border-color:#008bcc; 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{ .bio{

View File

@@ -10,9 +10,13 @@
<div class="profile"> <div class="profile">
<div class="heading"><b>{{ member[3] }}</b> {{ member[4] }}</div> <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"> <img src="{{ url_for('static', filename='icons/any.jpg') }}" class="icon">
{% endif %}
<div class="bio"> <div class="bio">
{{ member[5] }} {{ member[5] }}
</div> </div>
<br class="clear" /> <br class="clear" />
{% if g.user %}<div class="heading links"><a href="">Add to Front</a> &#9734 <a href="{{ url_for('manage.edit', mid=member[0]) }}">Edit</a></div>{% endif %} {% if g.user %}<div class="heading links"><a href="">Add to Front</a> &#9734 <a href="{{ url_for('manage.edit', mid=member[0]) }}">Edit</a></div>{% endif %}

View File

@@ -20,13 +20,17 @@
<div class="heading">Manage Icons</div> <div class="heading">Manage Icons</div>
<form method="post" enctype="multipart/form-data"> <form method="post" enctype="multipart/form-data">
<input type="file" name="icon"> <input type="file" name="file">
<input type="submit" value="Upload New Icon"> <input type="submit" value="Upload New Icon">
</form> </form>
{% for icon in icons %} {% 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 %} {% endfor %}