Index template node delete view updated to a CBV.

This commit is contained in:
Roberto Rosario
2015-08-24 17:50:35 -04:00
parent e79cd4a2e6
commit 4008715991
2 changed files with 20 additions and 47 deletions

View File

@@ -10,7 +10,8 @@ from .api_views import (
from .views import (
DocumentIndexNodeListView, IndexInstanceNodeView, IndexListView,
SetupIndexDocumentTypesView, SetupIndexCreateView, SetupIndexDeleteView,
SetupIndexEditView, SetupIndexListView, SetupIndexTreeTemplateListView
SetupIndexEditView, SetupIndexListView, SetupIndexTreeTemplateListView,
TemplateNodeDeleteView
)
urlpatterns = patterns(
@@ -49,8 +50,8 @@ urlpatterns = patterns(
name='template_node_edit'
),
url(
r'^setup/template/node/(?P<node_pk>\d+)/delete/$',
'template_node_delete', name='template_node_delete'
r'^setup/template/node/(?P<pk>\d+)/delete/$',
TemplateNodeDeleteView.as_view(), name='template_node_delete'
),
url(r'^index/list/$', IndexListView.as_view(), name='index_list'),

View File

@@ -202,52 +202,24 @@ def template_node_edit(request, node_pk):
}, context_instance=RequestContext(request))
def template_node_delete(request, node_pk):
node = get_object_or_404(IndexTemplateNode, pk=node_pk)
class TemplateNodeDeleteView(SingleObjectDeleteView):
model = IndexTemplateNode
view_permission = permission_document_indexing_edit
try:
Permission.check_permissions(
request.user, (permission_document_indexing_edit,)
def get_extra_context(self):
return {
'index': self.get_object().index,
'navigation_object_list': ('index', 'node'),
'node': self.get_object(),
'title': _(
'Delete the index template node: %s?'
) % self.get_object(),
}
def get_post_action_redirect(self):
return reverse(
'indexing:index_setup_view', args=(self.get_object().index.pk,)
)
except PermissionDenied:
AccessControlList.objects.check_access(
permission_document_indexing_edit, request.user, node.index
)
post_action_redirect = reverse(
'indexing:index_setup_view', args=(node.index.pk,)
)
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))))
next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))))
if request.method == 'POST':
try:
node.delete()
messages.success(request, _('Node: %s deleted successfully.') % node)
except Exception as exception:
messages.error(
request, _('Node: %(node)s delete error: %(error)s') % {
'node': node, 'error': exception
}
)
return HttpResponseRedirect(next)
context = {
'delete_view': True,
'index': node.index,
'navigation_object_list': ('index', 'node'),
'next': next,
'node': node,
'title': _('Delete the index template node: %s?') % node,
'previous': previous,
}
return render_to_response(
'appearance/generic_confirm.html', context,
context_instance=RequestContext(request)
)
class IndexListView(SingleObjectListView):