confirm before project deletion
This commit is contained in:
parent
8a0d8a6514
commit
790ddd158b
5 changed files with 71 additions and 2 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue