Revert "confirm before project deletion"
This reverts commit 790ddd158b
.
Conflicts:
issue/decorators.py
This commit is contained in:
parent
adcf849d40
commit
9382d12524
5 changed files with 2 additions and 72 deletions
|
@ -2,8 +2,6 @@ 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
|
||||
|
||||
|
@ -26,31 +24,3 @@ def project_perm_required(perm):
|
|||
return wrapper
|
||||
|
||||
return decorator
|
||||
|
||||
def confirmation_required(message, prev=None):
|
||||
|
||||
def decorator(view):
|
||||
@wraps(view)
|
||||
def wrapper(request, *args, **kwargs):
|
||||
if request.GET.get('force'):
|
||||
return view(request, *args, **kwargs)
|
||||
previous = request.GET.get('prev')
|
||||
if not previous:
|
||||
if prev:
|
||||
previous = reverse(prev)
|
||||
else:
|
||||
# improvising
|
||||
if hasattr(request, 'project'):
|
||||
previous = reverse('list-issue',
|
||||
args=[request.project.name])
|
||||
else:
|
||||
previous = reverse('list-project')
|
||||
c = {
|
||||
'message': message,
|
||||
'prev': previous,
|
||||
'next': request.path + '?force=1',
|
||||
}
|
||||
return render(request, 'confirm.html', c)
|
||||
return wrapper
|
||||
|
||||
return decorator
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
{% extends 'base.html' %}
|
||||
|
||||
{% load bootstrap_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="panel panel-default">
|
||||
|
||||
<div class="panel-heading">
|
||||
<h1>
|
||||
Confirmation required
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="col-md-offset-3 col-md-6">
|
||||
<div class="alert alert-danger">
|
||||
{{ message }}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<a href="{{ next }}" class="btn btn-primary btn-block">Confirm</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a href="{{ prev }}" class="btn btn-default btn-block">Cancel</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
|
@ -13,7 +13,7 @@
|
|||
<li role="presentation"><a role="menuitem" tabindex="-1" href="{% url 'edit-project' project.name %}">Modify this project</a></li>
|
||||
{% endif %}
|
||||
{% if perm.delete_project %}
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="{% url 'delete-project' project.name %}?prev={{ request.get_full_path }}">Delete this project</a></li>
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="{% url 'delete-project' project.name %}">Delete this project</a></li>
|
||||
{% endif %}
|
||||
{% if perm.create_project %}
|
||||
<li role="presentation"><a role="menuitem" tabindex="-1" href="{% url 'add-project' %}">New project…</a></li>
|
||||
|
|
|
@ -266,12 +266,6 @@ class TestProjectsViews(TestCase):
|
|||
expected_url = reverse('list-project')
|
||||
url = reverse('delete-project', args=['project-1'])
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, 'Are you sure')
|
||||
self.assertQuerysetEqual(Project.objects.all(),
|
||||
['project-1', 'project-2'], lambda x: x.name, ordered=False)
|
||||
url = reverse('delete-project', args=['project-1']) + '?force=1'
|
||||
response = self.client.get(url)
|
||||
self.assertRedirects(response, expected_url)
|
||||
self.assertQuerysetEqual(Project.objects.all(),
|
||||
['project-2'], lambda x: x.name, ordered=False)
|
||||
|
|
|
@ -6,7 +6,7 @@ from django.http import Http404, HttpResponseForbidden
|
|||
|
||||
from issue.models import *
|
||||
from issue.forms import *
|
||||
from issue.decorators import *
|
||||
from issue.decorators import project_perm_required
|
||||
|
||||
import shlex
|
||||
|
||||
|
@ -233,7 +233,6 @@ def project_edit(request, project):
|
|||
|
||||
|
||||
@project_perm_required('delete_project')
|
||||
@confirmation_required('Are you sure to delete this project?')
|
||||
def project_delete(request, project):
|
||||
|
||||
project.delete()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue