90 lines
3.3 KiB
Python
90 lines
3.3 KiB
Python
from flask import (
|
|
Blueprint, flash, g, redirect, render_template, request, url_for, current_app
|
|
)
|
|
from werkzeug.exceptions import abort
|
|
|
|
from myriad.auth import login_required
|
|
from myriad.db import get_db
|
|
|
|
bp = Blueprint('home', __name__)
|
|
|
|
@bp.route('/')
|
|
def index():
|
|
db = get_db()
|
|
fronters = db.execute("SELECT * FROM member WHERE front=(?) ORDER BY member_name",(1,)).fetchall()
|
|
homepage = db.execute("SELECT * FROM member WHERE homepage=(?) ORDER BY member_name",(1,)).fetchall()
|
|
|
|
latest_start = db.execute("SELECT start_time FROM front_log ORDER BY start_time DESC").fetchone()
|
|
latest_end = db.execute("SELECT end_time FROM front_log ORDER BY end_time DESC").fetchone()
|
|
|
|
latest = None
|
|
if latest_start and latest_end:
|
|
start = latest_start[0]
|
|
end = latest_end[0]
|
|
if end:
|
|
if start > end:
|
|
latest = start
|
|
else:
|
|
latest = end
|
|
else:
|
|
latest = start
|
|
elif latest_start and not latest_end:
|
|
latest = latest_start[0]
|
|
|
|
icons={}
|
|
for member in homepage:
|
|
icon_id = member[6]
|
|
if icon_id:
|
|
icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(icon_id,)).fetchone()
|
|
if icon:
|
|
icons[member[0]] = icon[0]
|
|
else:
|
|
icons[member[0]] = None
|
|
|
|
return render_template('index.html', front_list=fronters, home_pins=homepage, icons=icons, last_updated=latest)
|
|
|
|
@bp.route('/full')
|
|
def full_list():
|
|
db = get_db()
|
|
members = db.execute('SELECT * FROM member ORDER BY member_name COLLATE NOCASE').fetchall()
|
|
|
|
icons={}
|
|
for member in members:
|
|
icon_id = member[6]
|
|
if icon_id:
|
|
icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(icon_id,)).fetchone()
|
|
if icon:
|
|
icons[member[0]] = icon[0]
|
|
else:
|
|
icons[member[0]] = None
|
|
|
|
return render_template('full.html', memberlist=members, icons=icons)
|
|
|
|
@bp.route('/member/<mid>')
|
|
def page(mid):
|
|
db = get_db()
|
|
member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
|
|
blog = db.execute("SELECT * FROM blog WHERE member_id=(?) ORDER BY created DESC",(mid,)).fetchall()
|
|
icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(member[6],)).fetchone()
|
|
all_icons = db.execute("SELECT icon_location FROM icons WHERE member_id=(?)",(mid,)).fetchall()
|
|
blinkies = db.execute("SELECT blinkie_location FROM blinkies WHERE member_id=(?)",(mid,)).fetchall()
|
|
stamps = db.execute("SELECT stamp_location FROM stamps WHERE member_id=(?)",(mid,)).fetchall()
|
|
|
|
return render_template('page.html', member=member, blog=blog, icon=icon, all_icons=all_icons, blinkies=blinkies, stamps=stamps)
|
|
|
|
@bp.route("/groups")
|
|
def groups():
|
|
db = get_db()
|
|
groups = db.execute("SELECT * FROM groups").fetchall()
|
|
group_members_db = db.execute("SELECT * FROM group_members").fetchall()
|
|
group_members = {}
|
|
for entry in group_members_db:
|
|
gid = entry[1]
|
|
mid = entry[2]
|
|
member = db.execute("SELECT * FROM member WHERE id=(?)",(mid,)).fetchone()
|
|
if gid in group_members:
|
|
group_members[gid].append(member)
|
|
else:
|
|
group_members[gid]=[member]
|
|
|
|
return render_template("groups.html", groups=groups, group_members=group_members) |