summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2014-11-18 04:16:22 +0100
committerAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2014-11-19 02:27:49 +0100
commit5aa12acb4a15cd4199589ccb01905657557cb922 (patch)
tree0b51e98834c5d34c9fe7371e4000d7a364bc9d21
parentb9d30a8e400b05420e01c94efac42f7f0450bba1 (diff)
downloadpadlite-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.py1
-rw-r--r--templates/group.html25
-rw-r--r--views.py4
3 files changed, 27 insertions, 3 deletions
diff --git a/models.py b/models.py
index c0b39c4..d2f1ae4 100644
--- a/models.py
+++ b/models.py
@@ -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">
diff --git a/views.py b/views.py
index 3b3d2d0..2fdd0f6 100644
--- a/views.py
+++ b/views.py
@@ -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}