diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2013-09-04 16:02:55 +0000 |
---|---|---|
committer | pad <pad@vm-pad-b.spline.inf.fu-berlin.de> | 2013-09-04 16:02:55 +0000 |
commit | a6624cda1ad4d31d98a18a258ed65899119aff56 (patch) | |
tree | f4d9fe5b63c8df431d1544968dfd0b2fd89cc534 | |
parent | d29ad289dc6b4873c1ab06841509aeb21fa28958 (diff) | |
download | padlite-teams-a6624cda1ad4d31d98a18a258ed65899119aff56.tar.gz padlite-teams-a6624cda1ad4d31d98a18a258ed65899119aff56.tar.bz2 padlite-teams-a6624cda1ad4d31d98a18a258ed65899119aff56.zip |
views: add group detail page
-rw-r--r-- | templates/group.html | 17 | ||||
-rw-r--r-- | templates/index.html | 2 | ||||
-rw-r--r-- | views.py | 14 |
3 files changed, 31 insertions, 2 deletions
diff --git a/templates/group.html b/templates/group.html new file mode 100644 index 0000000..b1697e8 --- /dev/null +++ b/templates/group.html @@ -0,0 +1,17 @@ +{% extends "layout.html" %} + +{% block head %}Group: {{group}}{% endblock %} + +{% block content %} +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Members</h3> + </div> + + <ul class="list-group"> + {% for member in members %} + <li class="list-group-item">{{member.user}}{% if member.admin %} (is admin){% endif %}</li> + {% endfor %} + </ul> +</div> +{% endblock %} diff --git a/templates/index.html b/templates/index.html index 6898a42..c92a3a9 100644 --- a/templates/index.html +++ b/templates/index.html @@ -11,7 +11,7 @@ <div class="list-group"> {% for group in groups %} - <li class="list-group-item">{{group}}</li> + <a class="list-group-item" href="{{ url_for('group', group_name=group.name) }}">{{group}}</a> {% endfor %} </div> </div> @@ -1,10 +1,15 @@ 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 forms import CreateGroup 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 @@ -16,3 +21,10 @@ def index(): form = CreateGroup() groups = [member.group for member in g.user.groups] return {'groups': groups, 'create_form': form} + +@app.route('/<group_name>/') +@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} |