Added a confirmation dialog to the document tag removal view

This commit is contained in:
Roberto Rosario
2011-07-01 23:33:52 -04:00
parent 10b7d276a3
commit a434e91c3a
2 changed files with 40 additions and 7 deletions

View File

@@ -47,7 +47,7 @@ register_links(Tag, [tag_tagged_item_list, tag_edit, tag_delete])
register_multi_item_links(['tag_list'], [tag_multiple_delete])
register_links(['tag_list', 'tag_remove', 'tag_delete', 'tag_edit', 'tag_tagged_item_list', 'tag_multiple_delete'], [tag_list], menu_name='secondary_menu')
register_links(['tag_list', 'tag_delete', 'tag_edit', 'tag_tagged_item_list', 'tag_multiple_delete'], [tag_list], menu_name='secondary_menu')
register_sidebar_template(['document_tags'], 'tags_sidebar_template.html')

View File

@@ -18,17 +18,50 @@ from tags import tag_document_remove as tag_document_remove_link
from tags import tag_tagged_item_list as tag_tagged_item_list_link
def tag_remove(request, tag_id, document_id):
def tag_remove(request, document_id, tag_id=None, tag_id_list=None):
check_permissions(request.user, [PERMISSION_TAG_REMOVE])
tag = get_object_or_404(Tag, pk=tag_id)
post_action_redirect = None
if tag_id:
tags = [get_object_or_404(Tag, pk=tag_id)]
elif tag_id_list:
tags = [get_object_or_404(Tag, pk=tag_id) for tag_id in tag_id_list.split(',')]
else:
messages.error(request, _(u'Must provide at least one tag.'))
return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
document = get_object_or_404(Document, pk=document_id)
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', None)))
document.tags.remove(tag)
messages.success(request, _(u'Tag "%s" removed successfully.') % tag)
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/')))
return HttpResponseRedirect(previous)
if request.method == 'POST':
for tag in tags:
try:
document.tags.remove(tag)
messages.success(request, _(u'Tag "%s" removed successfully.') % tag)
except Exception, e:
messages.error(request, _(u'Error deleting tag "%(tag)s": %(error)s') % {
'tag': tag, 'error': e
})
return HttpResponseRedirect(next)
context = {
'previous': previous,
'next': next,
'form_icon': u'tag_blue_delete.png',
'object': document,
}
if len(tags) == 1:
context['title'] = _(u'Are you sure you wish to remove the tag: %s?') % ', '.join([unicode(d) for d in tags])
elif len(tags) > 1:
context['title'] = _(u'Are you sure you wish to remove the tags: %s?') % ', '.join([unicode(d) for d in tags])
return render_to_response('generic_confirm.html', context,
context_instance=RequestContext(request))
def tag_add(request, document_id):