diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2014-11-18 04:16:22 +0100 |
---|---|---|
committer | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2014-11-19 02:27:49 +0100 |
commit | 5aa12acb4a15cd4199589ccb01905657557cb922 (patch) | |
tree | 0b51e98834c5d34c9fe7371e4000d7a364bc9d21 | |
parent | b9d30a8e400b05420e01c94efac42f7f0450bba1 (diff) | |
download | padlite-teams-5aa12acb4a15cd4199589ccb01905657557cb922.tar.gz padlite-teams-5aa12acb4a15cd4199589ccb01905657557cb922.tar.bz2 padlite-teams-5aa12acb4a15cd4199589ccb01905657557cb922.zip |
models: add active flag for membership
Membership for a group should be requested and has to be approved by
an admin of the group.
-rw-r--r-- | models.py | 1 | ||||
-rw-r--r-- | templates/group.html | 25 | ||||
-rw-r--r-- | views.py | 4 |
3 files changed, 27 insertions, 3 deletions
@@ -49,6 +49,7 @@ class Member(db.Model): user = ForeignKeyField(User, related_name='groups') manager = BooleanField(default=False) admin = BooleanField(default=False) + active = BooleanField(default=False) def __str__(self): return "%s member of %s" % (self.user.username, self.group.name) diff --git a/templates/group.html b/templates/group.html index c6a83d1..16f62ed 100644 --- a/templates/group.html +++ b/templates/group.html @@ -24,13 +24,36 @@ </div> <ul class="list-group"> - {% for member in members %} + {% for member in members|selectattr("active") %} <li class="list-group-item">{{member.user}}{% if member.admin %} (is admin){% endif %}</li> {% endfor %} </ul> </div> {% if admin %} + {% for member in members|rejectattr("active") %} + {% if loop.first %} + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Pending members</h3> + </div> + + <table class="table table-hover"> + <tr> + <th class="col-sm-3">username</th> + <th class="col-sm-9 text-center">mail</th> + </tr> + {% endif %} + <tr> + <td>{{member.user.username}}</td> + <td class="text-center">{{member.user.email}}</td> + </tr> + {% if loop.last %} + </table> + </div> + {% endif %} + {% endfor %} + <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"> @@ -20,9 +20,9 @@ def index(): if form.validate_on_submit(): group = Group.create(name=form.name.data, public=form.public.data) - Member.create(user=g.user, group=group, admin=True) + Member.create(user=g.user, group=group, admin=True, active=True) form = CreateGroup() - groups = [member.group for member in g.user.groups] + groups = [member.group for member in g.user.groups if member.active] return {'groups': groups, 'create_form': form} |