Parcourir la source

can add and remove individual members to and from groups

cube il y a 3 jours
Parent
révision
40432d23b8
2 fichiers modifiés avec 51 ajouts et 7 suppressions
  1. 30
    7
      myriad/manage.py
  2. 21
    0
      myriad/templates/manage/edit.html

+ 30
- 7
myriad/manage.py Voir le fichier

@@ -39,8 +39,6 @@ def new():
39 39
 @login_required
40 40
 def edit(mid):
41 41
     db = get_db()
42
-    member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
43
-    icons = db.execute("SELECT * FROM icons WHERE member_id=(?)",(mid,)).fetchall()
44 42
 
45 43
     if request.method == "POST":
46 44
         if "name" in request.form:
@@ -88,12 +86,37 @@ def edit(mid):
88 86
             db.execute("UPDATE member SET card_border=(?), card_bg=(?), heading_bg=(?), heading_border=(?), heading_name=(?), heading_subtitle=(?), card_text=(?), icon_border=(?), a1=(?), a2=(?) WHERE id=(?)",(c9, c10, c11, c12, c13, c14, c15, c16, c21, c22, mid))
89 87
             db.commit()
90 88
 
89
+        if "gid_add" in request.form:
90
+            gid = request.form["gid_add"]
91
+            db.execute("INSERT INTO group_members (group_id,member_id) VALUES (?,?)",(gid,mid))
92
+            db.commit()
93
+
94
+        elif "gid_remove" in request.form:
95
+            gid = request.form["gid_remove"]
96
+            db.execute("DELETE FROM group_members WHERE group_id=(?) AND member_id=(?)",(gid,mid))
97
+            db.commit()
91 98
 
92
-        member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
93
-        icons = db.execute("SELECT * FROM icons WHERE member_id=(?)",(mid,)).fetchall()
94
-        return render_template("manage/edit.html", member=member, icons=icons)
95 99
 
96
-    return render_template("manage/edit.html", member=member, icons=icons)
100
+    member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
101
+    icons = db.execute("SELECT * FROM icons WHERE member_id=(?)",(mid,)).fetchall()
102
+
103
+    groups = db.execute("SELECT * FROM groups").fetchall()
104
+    member_groups = db.execute("SELECT * FROM group_members WHERE member_id=(?)",(mid,)).fetchall()
105
+    
106
+    unjoined_groups = []
107
+    joined_groups = []
108
+
109
+    joined_ids = []
110
+    for group in member_groups:
111
+        joined_ids.append(group[1])
112
+
113
+    for group in groups:
114
+        if group[0] in joined_ids:
115
+            joined_groups.append(group)
116
+        else:
117
+            unjoined_groups.append(group)
118
+
119
+    return render_template("manage/edit.html", member=member, icons=icons, unjoined_groups=unjoined_groups, joined_groups=joined_groups)
97 120
 
98 121
 @bp.route("/set_main_icon/<mid>/<icon_id>")
99 122
 @login_required
@@ -244,7 +267,7 @@ def groups():
244 267
         desc = request.form['desc']
245 268
         db.execute("INSERT INTO groups (group_name, group_description) VALUES (?, ?)",(name, desc))
246 269
         db.commit()
247
-        
270
+
248 271
 
249 272
     groups = db.execute("SELECT * FROM groups").fetchall()
250 273
     return render_template("manage/groups.html", groups=groups)

+ 21
- 0
myriad/templates/manage/edit.html Voir le fichier

@@ -18,6 +18,27 @@
18 18
     <input type="submit" value="Submit">
19 19
   </form>
20 20
 
21
+  <div class="heading">Manage groups</div>
22
+
23
+  <form method="post">
24
+    <select name="gid_add" id="gid_add">
25
+      {% for group in unjoined_groups %}
26
+      <option value="{{group[0]}}">{{group[1]}}</option>
27
+      {% endfor %}
28
+    </select>
29
+    <input type="submit" value="Add to group">
30
+  </form>
31
+
32
+  <form method="post">
33
+    <select name="gid_remove" id="gid_remove">
34
+      {% for group in joined_groups %}
35
+      <option value="{{group[0]}}">{{group[1]}}</option>
36
+      {% endfor %}
37
+    </select>
38
+    <input type="submit" value="Remove from group">
39
+  </form>
40
+
41
+
21 42
   <div class="heading">Manage Icons</div>
22 43
   <form method="post" enctype="multipart/form-data">
23 44
       <input type="file" name="file">