flask app for plurals to publicly share member lists

home.py 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from flask import (
  2. Blueprint, flash, g, redirect, render_template, request, url_for, current_app
  3. )
  4. from werkzeug.exceptions import abort
  5. from myriad.auth import login_required
  6. from myriad.db import get_db
  7. bp = Blueprint('home', __name__)
  8. @bp.route('/')
  9. def index():
  10. db = get_db()
  11. fronters = db.execute("SELECT * FROM member WHERE front=(?) ORDER BY member_name",(1,)).fetchall()
  12. homepage = db.execute("SELECT * FROM member WHERE homepage=(?) ORDER BY member_name",(1,)).fetchall()
  13. icons={}
  14. for member in homepage:
  15. icon_id = member[6]
  16. if icon_id:
  17. icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(icon_id,)).fetchone()
  18. if icon:
  19. icons[member[0]] = icon[0]
  20. else:
  21. icons[member[0]] = None
  22. return render_template('index.html', front_list=fronters, home_pins=homepage, icons=icons)
  23. @bp.route('/full')
  24. def full_list():
  25. db = get_db()
  26. members = db.execute('SELECT * FROM member ORDER BY member_name').fetchall()
  27. icons={}
  28. for member in members:
  29. icon_id = member[6]
  30. if icon_id:
  31. icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(icon_id,)).fetchone()
  32. if icon:
  33. icons[member[0]] = icon[0]
  34. else:
  35. icons[member[0]] = None
  36. return render_template('full.html', memberlist=members, icons=icons)
  37. @bp.route('/member/<mid>')
  38. def page(mid):
  39. db = get_db()
  40. member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
  41. blog = db.execute("SELECT * FROM blog WHERE member_id=(?) ORDER BY created DESC",(mid,)).fetchall()
  42. icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(member[6],)).fetchone()
  43. all_icons = db.execute("SELECT icon_location FROM icons WHERE member_id=(?)",(mid,)).fetchall()
  44. return render_template('page.html', member=member, blog=blog, icon=icon, all_icons=all_icons)
  45. @bp.route("/groups")
  46. def groups():
  47. db = get_db()
  48. groups = db.execute("SELECT * FROM groups").fetchall()
  49. group_members_db = db.execute("SELECT * FROM group_members").fetchall()
  50. group_members = {}
  51. for entry in group_members_db:
  52. gid = entry[1]
  53. mid = entry[2]
  54. member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
  55. if gid in group_members:
  56. group_members[gid].append(member)
  57. else:
  58. group_members[gid]=[member]
  59. return render_template("groups.html", groups=groups, group_members=group_members)