summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2013-09-04 16:02:55 +0000
committerpad <pad@vm-pad-b.spline.inf.fu-berlin.de>2013-09-04 16:02:55 +0000
commita6624cda1ad4d31d98a18a258ed65899119aff56 (patch)
treef4d9fe5b63c8df431d1544968dfd0b2fd89cc534
parentd29ad289dc6b4873c1ab06841509aeb21fa28958 (diff)
downloadpadlite-teams-a6624cda1ad4d31d98a18a258ed65899119aff56.tar.gz
padlite-teams-a6624cda1ad4d31d98a18a258ed65899119aff56.tar.bz2
padlite-teams-a6624cda1ad4d31d98a18a258ed65899119aff56.zip
views: add group detail page
-rw-r--r--templates/group.html17
-rw-r--r--templates/index.html2
-rw-r--r--views.py14
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>
diff --git a/views.py b/views.py
index c6f4a8a..94a6048 100644
--- a/views.py
+++ b/views.py
@@ -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}