Quellcode durchsuchen

edit member fields

working on icon uploads
cube vor 5 Tagen
Ursprung
Commit
49e7685034

+ 3
- 1
README.md Datei anzeigen

@@ -15,9 +15,11 @@ flask app for plurals to publicly share member lists
15 15
 
16 16
 # config
17 17
 
18
-- create `config.py` in the instance folder and customise the following settings to your needs
18
+- create `config.py` in the instance folder and customise the following settings to your needs\
19 19
 ```
20 20
 REGISTRATION: False # only set to True if in a development situation, or to create your first user
21
+UPLOAD_FOLDER = '/uploads'
22
+ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
21 23
 ```
22 24
 
23 25
 # usage

+ 28
- 4
myriad/manage.py Datei anzeigen

@@ -1,6 +1,8 @@
1 1
 from flask import (
2 2
     Blueprint, flash, g, redirect, render_template, request, session, url_for
3 3
 )
4
+from werkzeug.utils import secure_filename
5
+import os
4 6
 
5 7
 from myriad.auth import login_required
6 8
 from myriad.db import get_db
@@ -28,9 +30,31 @@ def new():
28 30
 
29 31
             )
30 32
             db.commit()
33
+            return redirect(url_for('home.full_list'))
34
+        
35
+        return render_template('manage/new.html', error=error)
36
+    
37
+    return render_template('manage/new.html')
31 38
 
32
-        flash(error)
39
+@bp.route("/edit/<mid>", methods=('GET', 'POST'))
40
+@login_required
41
+def edit(mid):
42
+    db = get_db()
43
+    member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
44
+    icons = db.execute("SELECT * FROM icons WHERE member_id=(?)",(mid,)).fetchall()
45
+
46
+    if request.method == "POST":
47
+        if "name" in request.form:
48
+            name = request.form['name']
49
+            bio = request.form['bio']
50
+            subtitle = request.form['subtitle']
51
+            db.execute("UPDATE member SET member_name=(?), bio=(?), subtitle=(?) WHERE id=(?)",(name, bio, subtitle, mid))
52
+            db.commit()
53
+        elif "icon" in request.form:
54
+            file = request.form["icon"]
55
+            filename = secure_filename(file.filename)
56
+            file.save("/static/uploads/" + filename)
33 57
 
34
-        return redirect(url_for('home.full_list'))
35
-    
36
-    return render_template('manage/new.html')
58
+        return redirect(url_for("home.full_list"))
59
+
60
+    return render_template("manage/edit.html", member=member, icons=icons)

+ 1
- 1
myriad/schema.sql Datei anzeigen

@@ -17,7 +17,7 @@ CREATE TABLE member (
17 17
   user_id INTEGER NOT NULL,
18 18
   created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
19 19
   member_name TEXT NOT NULL,
20
-  subtitle TEXT,
20
+  subtitle TEXT DEFAULT "",
21 21
   bio TEXT,
22 22
   main_icon INTEGER,
23 23
   homepage BOOLEAN NOT NULL DEFAULT 0,

+ 4
- 4
myriad/templates/full.html Datei anzeigen

@@ -10,14 +10,14 @@
10 10
 
11 11
     <div class="profile">
12 12
         <div class="heading"><b>{{ member[3] }}</b> {{ member[4] }}</div>
13
-        <img src="{{ url_for('static', filename='/icons/any.jpg') }}" class="icon">
13
+        <img src="{{ url_for('static', filename='icons/any.jpg') }}" class="icon">
14 14
         <div class="bio">
15 15
             {{ member[5] }}
16 16
         </div>
17 17
         <br class="clear" />
18
-        <!--<div class="heading links"><a href="/geo">my page</a> &#9734 tumblr &#9734</div>
19
-        <img src="/geo/dsgame.webp" class="dsgame">
20
-        <br class="clear" /> -->
18
+        {% 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 %}
19
+        <!-- <img src="/geo/dsgame.webp" class="dsgame"> -->
20
+        <br class="clear" />
21 21
     </div>
22 22
 
23 23
     {% endfor %}

+ 35
- 0
myriad/templates/manage/edit.html Datei anzeigen

@@ -0,0 +1,35 @@
1
+{% extends 'base.html' %}
2
+
3
+{% block header %}
4
+  <div class="title">{% block title %}Edit {{ member[3] }}{% endblock %}</div>
5
+{% endblock %}
6
+
7
+{% block content %}
8
+
9
+  <div class="heading">Edit Details</div>
10
+
11
+  <form method="post">
12
+    <label for="name">Name</label>
13
+    <input name="name" id="name" value="{{ member[3] }}" required><br>
14
+    <label for="subtitle">Subtitle</label>
15
+    <input name="subtitle" id="subtitle" value="{{ member[4] }}"><br>
16
+    <label for="bio">Description</label>
17
+    <textarea name="bio" id="bio">{{ member[5] }}</textarea><br>
18
+    <input type="submit" value="Submit">
19
+  </form>
20
+
21
+  <div class="heading">Manage Icons</div>
22
+  <form method="post" enctype="multipart/form-data">
23
+      <input type="file" name="icon">
24
+      <input type="submit" value="Upload New Icon">
25
+  </form>
26
+
27
+  {% for icon in icons %}
28
+
29
+  <img class="icon" src="{{ icon[2] }}">
30
+
31
+  {% endfor %}
32
+
33
+  {{ error }}
34
+
35
+{% endblock %}

+ 5
- 0
myriad/templates/manage/new.html Datei anzeigen

@@ -8,8 +8,13 @@
8 8
   <form method="post">
9 9
     <label for="name">Name</label>
10 10
     <input name="name" id="name" required><br>
11
+    <label for="icon">Icon</label>
12
+    <input type="file" name="icon"><br>
11 13
     <label for="bio">Description</label>
12 14
     <textarea name="bio" id="bio"></textarea><br>
13 15
     <input type="submit" value="Submit">
14 16
   </form>
17
+
18
+  {{ error }}
19
+
15 20
 {% endblock %}