summaryrefslogtreecommitdiffstats
path: root/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'views.py')
-rw-r--r--views.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/views.py b/views.py
index 7edb0f2..d881d21 100644
--- a/views.py
+++ b/views.py
@@ -3,7 +3,7 @@ from auth import auth
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 forms import CreateGroup, DeleteGroup, ChangeGroup
from utils import templated
from filters import *
@@ -41,3 +41,20 @@ def group(group_name):
else:
form.id.data = group.id
return {'group': group, 'members': group.members, 'delete_form': form}
+
+
+@app.route('/<group_name>/_change/', methods=['GET', 'POST'])
+@templated('group_change.html')
+@auth.login_required
+def group_change(group_name):
+ group = get_group_or_404(Group.name == group_name, Member.admin == True)
+ form = ChangeGroup(request.form, obj=group)
+ if form.validate_on_submit():
+ del form.name
+ form.populate_obj(group)
+ group.save()
+ return redirect(url_for('group', group_name=group.name))
+ return {'group': group,
+ 'change_form': form,
+ 'breadcrumbs': [{'href': url_for('group', group_name=group.name), 'text': group},
+ {'text': 'Edit group'}]}