summaryrefslogtreecommitdiffstats
path: root/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'views.py')
-rw-r--r--views.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/views.py b/views.py
index 94a6048..9cb1bd7 100644
--- a/views.py
+++ b/views.py
@@ -1,8 +1,9 @@
from app import app
from auth import auth
-from flask import g, request
+from flask import g, request, redirect, render_template, url_for
from flask_peewee.utils import get_object_or_404
from models import Group, Member
+from forms import CreateGroup, DeleteGroup
from utils import templated
def get_group_or_404(*query):
@@ -22,9 +23,19 @@ def index():
groups = [member.group for member in g.user.groups]
return {'groups': groups, 'create_form': form}
-@app.route('/<group_name>/')
+@app.route('/<group_name>/', methods=['GET', 'POST'])
@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}
+ form = DeleteGroup(request.form)
+ if request.method == 'POST' and form.validate():
+ if form.sure.data == 'yes':
+ group.delete_instance(recursive=True)
+ return redirect(url_for('index'))
+ else:
+ form.sure.data = 'yes'
+ return render_template('group_delete.html', group=group, delete_form=form)
+ else:
+ form.id.data = group.id
+ return {'group': group, 'members': group.members, 'delete_form': form}