flask app for plurals to publicly share member lists

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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)