diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py index db0c200332..ed61c3553e 100644 --- a/apps/documents/__init__.py +++ b/apps/documents/__init__.py @@ -47,6 +47,7 @@ document_preview = {'text':_('preview'), 'class':'fancybox', 'view':'document_pr document_download = {'text':_('download'), 'view':'document_download', 'args':'object.id', 'famfam':'page_save', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_DOWNLOAD]}} document_find_duplicates = {'text':_('find duplicates'), 'view':'document_find_duplicates', 'args':'object.id', 'famfam':'page_refresh', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_VIEW]}} document_find_all_duplicates = {'text':_('find all duplicates'), 'view':'document_find_all_duplicates', 'famfam':'page_refresh', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_VIEW]}} +document_clear_transformations = {'text':_('clear all transformations'), 'view':'document_clear_transformations', 'args':'object.id', 'famfam':'page_paintbrush', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_TRANSFORM]}} document_page_transformation_create = {'text':_('create new transformation'), 'view':'document_page_transformation_create', 'args':'object.id', 'famfam':'pencil_add', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_TRANSFORM]}} document_page_transformation_edit = {'text':_('edit'), 'view':'document_page_transformation_edit', 'args':'object.id', 'famfam':'pencil_go', 'permissions':{'namespace':'documents', 'permissions':[PERMISSION_DOCUMENT_TRANSFORM]}} @@ -58,7 +59,7 @@ document_page_go_back = {'text':_('return to document'), 'view':'document_view', staging_file_preview = {'text':_('preview'), 'class':'fancybox-noscaling', 'view':'staging_file_preview', 'args':'object.id', 'famfam':'drive_magnify'} staging_file_delete = {'text':_('delete'), 'view':'staging_file_delete', 'args':'object.id', 'famfam':'drive_delete'} -register_links(Document, [document_view, document_edit, document_edit_metadata, document_delete, document_download, document_find_duplicates], menu_name='sidebar') +register_links(Document, [document_view, document_edit, document_edit_metadata, document_delete, document_download, document_find_duplicates, document_clear_transformations], menu_name='sidebar') register_links(Document, [document_list, document_create, document_create_multiple, document_create_sibling], menu_name='sidebar') if ENABLE_SINGLE_DOCUMENT_UPLOAD: diff --git a/apps/documents/urls.py b/apps/documents/urls.py index 12596ef3bd..a9e6be1a7d 100644 --- a/apps/documents/urls.py +++ b/apps/documents/urls.py @@ -28,6 +28,7 @@ urlpatterns = patterns('documents.views', url(r'^document/(?P\d+)/download/$', 'document_download', (), 'document_download'), url(r'^document/(?P\d+)/create/siblings/$', 'document_create_sibling', {'multiple':True if ENABLE_SINGLE_DOCUMENT_UPLOAD == False else False}, 'document_create_sibling'), url(r'^document/(?P\d+)/find_duplicates/$', 'document_find_duplicates', (), 'document_find_duplicates'), + url(r'^document/(?P\d+)/clear_transformations/$', 'document_clear_transformations', (), 'document_clear_transformations'), url(r'^duplicates/$', 'document_find_all_duplicates', (), 'document_find_all_duplicates'), url(r'^staging_file/(?P\w+)/preview/$', 'staging_file_preview', (), 'staging_file_preview'), diff --git a/apps/documents/views.py b/apps/documents/views.py index 5890c8c64a..ed5c9fa98b 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -764,3 +764,32 @@ def document_find_all_duplicates(request): raise Http404(e) return _find_duplicate_list(request, include_source=True) + + +def document_clear_transformations(request, document_id): + permissions = [PERMISSION_DOCUMENT_TRANSFORM] + try: + check_permissions(request.user, 'documents', permissions) + except Unauthorized, e: + raise Http404(e) + + previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', None))) + + document = get_object_or_404(Document, pk=document_id) + + if request.method == 'POST': + for document_page in document.documentpage_set.all(): + for transformation in document_page.documentpagetransformation_set.all(): + transformation.delete() + + messages.success(request, _(u'All the page transformations for document: %s, have been deleted successfully.') % document) + return HttpResponseRedirect(reverse('document_view', args=[document.pk])) + + + return render_to_response('generic_confirm.html', { + 'object_name':_(u'document transformation'), + 'delete_view':True, + 'object':document, + 'title':_(u'Are you sure you with to clear all the page transformations for document: %s?') % document, + 'previous':previous, + }, context_instance=RequestContext(request))