diff options
Diffstat (limited to 'views.py')
-rw-r--r-- | views.py | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -157,6 +157,31 @@ def pad_change(group_name, pad_name): 'breadcrumbs': [{'href': url_for('group', group_name=group.name), 'text': group}, {'text': 'Edit pad: %s' % pad.name}]} +@app.route('/<group_name>/<pad_name>/_delete/', methods=['GET', 'POST']) +@templated('pad_delete.html') +@auth.login_required +def pad_delete(group_name, pad_name): + group = get_group_or_404(Group.name == group_name, Member.admin == True) + + try: + pad = Pad.get(Pad.name == pad_name, Pad.group == group) + except Pad.DoesNotExist: + if member.admin == True: + return redirect(url_for('group', group_name = group_name)) + abort(404) + + form = DeleteForm(request.form) + if form.validate_on_submit(): + if form.sure.data == 'yes': + pad.delete_instance(recursive=True) + return redirect(url_for('group', group_name=group.name)) + + return {'group': group, + 'pad': pad, + 'delete_form': form, + 'breadcrumbs': [{'href': url_for('group', group_name=group.name), 'text': group}, + {'text': 'Delete pad: %s' % pad.name}]} + @app.route('/<group_name>/<pad_name>/') @templated('pad.html') |