from app import app from auth import auth from flask import g, request from flask_peewee.utils import get_object_or_404 from models import Group, Member from utils import templated def get_group_or_404(*query): group = get_object_or_404(Group.select().join(Member), Member.user == g.user, *query) return group @app.route('/', methods=['GET', 'POST']) @templated('index.html') @auth.login_required def index(): form = CreateGroup(request.form) if request.method == 'POST' and form.validate(): group = Group.create(name=form.name.data) Member.create(user=g.user, group=group, admin=True) form = CreateGroup() groups = [member.group for member in g.user.groups] return {'groups': groups, 'create_form': form} @app.route('//') @templated('group.html') @auth.login_required def group(group_name): group = get_group_or_404(Group.name == group_name) return {'group': group, 'members': group.members}