confirm before project deletion

This commit is contained in:
Élie Bouttier 2014-08-14 19:54:54 -07:00
parent 8a0d8a6514
commit 790ddd158b
5 changed files with 71 additions and 2 deletions

View file

@ -2,6 +2,8 @@ from functools import wraps
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseForbidden
from django.shortcuts import render
from django.core.urlresolvers import reverse
from issue.models import Project
@ -24,3 +26,30 @@ def project_perm_required(perm):
return wrapper
return decorator
def confirmation_required(message, previous=None):
def decorator(view):
@wraps(view)
def wrapper(request, *args, **kwargs):
if request.GET.get('force'):
return view(request, *args, **kwargs)
prev = previous
if not prev:
prev = request.GET.get('prev')
if not prev:
# improvising
if hasattr(request, 'project'):
prev = reverse('list-issue',
args=[request.project.name])
else:
prev = reverse('list-project')
c = {
'message': message,
'prev': prev,
'next': request.path + '?force=1',
}
return render(request, 'confirm.html', c)
return wrapper
return decorator