Bladeren bron

edit member fields

working on icon uploads
cube 5 dagen geleden
bovenliggende
commit
49e7685034
6 gewijzigde bestanden met toevoegingen van 76 en 10 verwijderingen
  1. 3
    1
      README.md
  2. 28
    4
      myriad/manage.py
  3. 1
    1
      myriad/schema.sql
  4. 4
    4
      myriad/templates/full.html
  5. 35
    0
      myriad/templates/manage/edit.html
  6. 5
    0
      myriad/templates/manage/new.html

+ 3
- 1
README.md Bestand weergeven

15
 
15
 
16
 # config
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
 REGISTRATION: False # only set to True if in a development situation, or to create your first user
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
 # usage
25
 # usage

+ 28
- 4
myriad/manage.py Bestand weergeven

1
 from flask import (
1
 from flask import (
2
     Blueprint, flash, g, redirect, render_template, request, session, url_for
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
 from myriad.auth import login_required
7
 from myriad.auth import login_required
6
 from myriad.db import get_db
8
 from myriad.db import get_db
28
 
30
 
29
             )
31
             )
30
             db.commit()
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 Bestand weergeven

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

+ 4
- 4
myriad/templates/full.html Bestand weergeven

10
 
10
 
11
     <div class="profile">
11
     <div class="profile">
12
         <div class="heading"><b>{{ member[3] }}</b> {{ member[4] }}</div>
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
         <div class="bio">
14
         <div class="bio">
15
             {{ member[5] }}
15
             {{ member[5] }}
16
         </div>
16
         </div>
17
         <br class="clear" />
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
     </div>
21
     </div>
22
 
22
 
23
     {% endfor %}
23
     {% endfor %}

+ 35
- 0
myriad/templates/manage/edit.html Bestand weergeven

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 Bestand weergeven

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