You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
from flask import (Blueprint, flash, g, redirect,
|
|
|
|
request, session, url_for)
|
|
|
|
from flask_mako import render_template
|
|
|
|
|
|
|
|
from exquisite_branch.db import get_db
|
|
|
|
|
|
|
|
|
|
|
|
bp = Blueprint('display', __name__, url_prefix='/display')
|
|
|
|
|
|
|
|
|
|
|
|
@bp.route('/')
|
|
|
|
def display():
|
|
|
|
db = get_db()
|
|
|
|
|
|
|
|
branches = db.execute(
|
|
|
|
"SELECT content, branch, parent, username FROM branches"
|
|
|
|
).fetchall()
|
|
|
|
|
|
|
|
streams = []
|
|
|
|
for branch in branches[::-1]:
|
|
|
|
if branch not in flatten(streams):
|
|
|
|
stream = [branch]
|
|
|
|
parent = branch['parent']
|
|
|
|
while parent != 'NEW':
|
|
|
|
current = next(
|
|
|
|
(x for x in branches if x['branch'] == parent), None)
|
|
|
|
parent = current['parent']
|
|
|
|
stream.append(current)
|
|
|
|
|
|
|
|
streams.append(stream[::-1])
|
|
|
|
|
|
|
|
return render_template('display_mako.html', branches=branches, streams=streams)
|
|
|
|
|
|
|
|
|
|
|
|
def flatten(t):
|
|
|
|
return [item for sublist in t for item in sublist]
|