Add document version revert support
This commit is contained in:
@@ -16,15 +16,15 @@ from project_setup.api import register_setup
|
|||||||
from documents.models import (Document, DocumentPage,
|
from documents.models import (Document, DocumentPage,
|
||||||
DocumentPageTransformation, DocumentType, DocumentTypeFilename,
|
DocumentPageTransformation, DocumentType, DocumentTypeFilename,
|
||||||
DocumentVersion)
|
DocumentVersion)
|
||||||
from documents.literals import PERMISSION_DOCUMENT_CREATE, \
|
from documents.literals import (PERMISSION_DOCUMENT_CREATE,
|
||||||
PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_VIEW, \
|
PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_VIEW,
|
||||||
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, \
|
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD,
|
||||||
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS, \
|
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS,
|
||||||
PERMISSION_DOCUMENT_EDIT
|
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT)
|
||||||
from documents.literals import PERMISSION_DOCUMENT_TYPE_EDIT, \
|
from documents.literals import (PERMISSION_DOCUMENT_TYPE_EDIT,
|
||||||
PERMISSION_DOCUMENT_TYPE_DELETE, PERMISSION_DOCUMENT_TYPE_CREATE
|
PERMISSION_DOCUMENT_TYPE_DELETE, PERMISSION_DOCUMENT_TYPE_CREATE)
|
||||||
from documents.literals import HISTORY_DOCUMENT_CREATED, \
|
from documents.literals import (HISTORY_DOCUMENT_CREATED,
|
||||||
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED
|
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED)
|
||||||
from documents.conf.settings import ZOOM_MAX_LEVEL
|
from documents.conf.settings import ZOOM_MAX_LEVEL
|
||||||
from documents.conf.settings import ZOOM_MIN_LEVEL
|
from documents.conf.settings import ZOOM_MIN_LEVEL
|
||||||
from documents.conf import settings as document_settings
|
from documents.conf import settings as document_settings
|
||||||
@@ -56,6 +56,7 @@ register_permission(PERMISSION_DOCUMENT_DELETE)
|
|||||||
register_permission(PERMISSION_DOCUMENT_DOWNLOAD)
|
register_permission(PERMISSION_DOCUMENT_DOWNLOAD)
|
||||||
register_permission(PERMISSION_DOCUMENT_TRANSFORM)
|
register_permission(PERMISSION_DOCUMENT_TRANSFORM)
|
||||||
register_permission(PERMISSION_DOCUMENT_TOOLS)
|
register_permission(PERMISSION_DOCUMENT_TOOLS)
|
||||||
|
register_permission(PERMISSION_DOCUMENT_VERSION_REVERT)
|
||||||
|
|
||||||
# Document type permissions
|
# Document type permissions
|
||||||
set_namespace_title('documents_setup', _(u'Documents setup'))
|
set_namespace_title('documents_setup', _(u'Documents setup'))
|
||||||
@@ -80,8 +81,8 @@ document_edit = {'text': _(u'edit'), 'view': 'document_edit', 'args': 'object.id
|
|||||||
document_preview = {'text': _(u'preview'), 'class': 'fancybox', 'view': 'document_preview', 'args': 'object.id', 'famfam': 'magnifier', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
document_preview = {'text': _(u'preview'), 'class': 'fancybox', 'view': 'document_preview', 'args': 'object.id', 'famfam': 'magnifier', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||||
document_download = {'text': _(u'download'), 'view': 'document_download', 'args': 'object.id', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]}
|
document_download = {'text': _(u'download'), 'view': 'document_download', 'args': 'object.id', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]}
|
||||||
document_version_download = {'text': _(u'download'), 'view': 'document_version_download', 'args': 'object.pk', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]}
|
document_version_download = {'text': _(u'download'), 'view': 'document_version_download', 'args': 'object.pk', 'famfam': 'page_save', 'permissions': [PERMISSION_DOCUMENT_DOWNLOAD]}
|
||||||
document_find_duplicates = {'text': _(u'find duplicates'), 'view': 'document_find_duplicates', 'args': 'object.id', 'famfam': 'page_refresh', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
document_find_duplicates = {'text': _(u'find duplicates'), 'view': 'document_find_duplicates', 'args': 'object.id', 'famfam': 'page_white_copy', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||||
document_find_all_duplicates = {'text': _(u'find all duplicates'), 'view': 'document_find_all_duplicates', 'famfam': 'page_refresh', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'description': _(u'Search all the documents\' checksums and return a list of the exact matches.')}
|
document_find_all_duplicates = {'text': _(u'find all duplicates'), 'view': 'document_find_all_duplicates', 'famfam': 'page_white_copy', 'permissions': [PERMISSION_DOCUMENT_VIEW], 'description': _(u'Search all the documents\' checksums and return a list of the exact matches.')}
|
||||||
document_update_page_count = {'text': _(u'update office documents\' page count'), 'view': 'document_update_page_count', 'famfam': 'page_white_csharp', 'permissions': [PERMISSION_DOCUMENT_TOOLS], 'description': _(u'Update the page count of the office type documents. This is useful when enabling office document support after there were already office type documents in the database.')}
|
document_update_page_count = {'text': _(u'update office documents\' page count'), 'view': 'document_update_page_count', 'famfam': 'page_white_csharp', 'permissions': [PERMISSION_DOCUMENT_TOOLS], 'description': _(u'Update the page count of the office type documents. This is useful when enabling office document support after there were already office type documents in the database.')}
|
||||||
document_clear_transformations = {'text': _(u'clear transformations'), 'view': 'document_clear_transformations', 'args': 'object.id', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]}
|
document_clear_transformations = {'text': _(u'clear transformations'), 'view': 'document_clear_transformations', 'args': 'object.id', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]}
|
||||||
document_multiple_clear_transformations = {'text': _(u'clear transformations'), 'view': 'document_multiple_clear_transformations', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]}
|
document_multiple_clear_transformations = {'text': _(u'clear transformations'), 'view': 'document_multiple_clear_transformations', 'famfam': 'page_paintbrush', 'permissions': [PERMISSION_DOCUMENT_TRANSFORM]}
|
||||||
@@ -113,6 +114,7 @@ document_page_view_reset = {'text': _(u'reset view'), 'class': 'no-parent-histor
|
|||||||
|
|
||||||
# Document versions
|
# Document versions
|
||||||
document_version_list = {'text': _(u'versions'), 'view': 'document_version_list', 'args': 'object.pk', 'famfam': 'page_world', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
document_version_list = {'text': _(u'versions'), 'view': 'document_version_list', 'args': 'object.pk', 'famfam': 'page_world', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||||
|
document_version_revert = {'text': _(u'revert'), 'view': 'document_version_revert', 'args': 'object.pk', 'famfam': 'page_refresh', 'permissions': [PERMISSION_DOCUMENT_VERSION_REVERT]}
|
||||||
|
|
||||||
# Document type related links
|
# Document type related links
|
||||||
document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
document_type_list = {'text': _(u'document type list'), 'view': 'document_type_list', 'famfam': 'layout', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||||
@@ -141,7 +143,7 @@ register_links(Document, [document_edit, document_print, document_delete, docume
|
|||||||
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [document_multiple_clear_transformations, document_multiple_delete])
|
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_list', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent'], [document_multiple_clear_transformations, document_multiple_delete])
|
||||||
|
|
||||||
# Document Version links
|
# Document Version links
|
||||||
register_links(DocumentVersion, [document_version_download])
|
register_links(DocumentVersion, [document_version_revert, document_version_download])
|
||||||
|
|
||||||
secondary_menu_links = [document_list_recent, document_list, document_create_multiple]
|
secondary_menu_links = [document_list_recent, document_list, document_create_multiple]
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ PERMISSION_DOCUMENT_DELETE = {'namespace': 'documents', 'name': 'document_delete
|
|||||||
PERMISSION_DOCUMENT_DOWNLOAD = {'namespace': 'documents', 'name': 'document_download', 'label': _(u'Download documents')}
|
PERMISSION_DOCUMENT_DOWNLOAD = {'namespace': 'documents', 'name': 'document_download', 'label': _(u'Download documents')}
|
||||||
PERMISSION_DOCUMENT_TRANSFORM = {'namespace': 'documents', 'name': 'document_transform', 'label': _(u'Transform documents')}
|
PERMISSION_DOCUMENT_TRANSFORM = {'namespace': 'documents', 'name': 'document_transform', 'label': _(u'Transform documents')}
|
||||||
PERMISSION_DOCUMENT_TOOLS = {'namespace': 'documents', 'name': 'document_tools', 'label': _(u'Execute document modifying tools')}
|
PERMISSION_DOCUMENT_TOOLS = {'namespace': 'documents', 'name': 'document_tools', 'label': _(u'Execute document modifying tools')}
|
||||||
|
PERMISSION_DOCUMENT_VERSION_REVERT = {'namespace': 'documents', 'name': 'document_version_revert', 'label': _(u'Revert documents to a previous version')}
|
||||||
|
|
||||||
PERMISSION_DOCUMENT_TYPE_EDIT = {'namespace': 'documents_setup', 'name': 'document_type_edit', 'label': _(u'Edit document types')}
|
PERMISSION_DOCUMENT_TYPE_EDIT = {'namespace': 'documents_setup', 'name': 'document_type_edit', 'label': _(u'Edit document types')}
|
||||||
PERMISSION_DOCUMENT_TYPE_DELETE = {'namespace': 'documents_setup', 'name': 'document_type_delete', 'label': _(u'Delete document types')}
|
PERMISSION_DOCUMENT_TYPE_DELETE = {'namespace': 'documents_setup', 'name': 'document_type_delete', 'label': _(u'Delete document types')}
|
||||||
|
|||||||
BIN
apps/documents/static/images/icons/page_white_copy.png
Normal file
BIN
apps/documents/static/images/icons/page_white_copy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 862 B |
@@ -36,6 +36,7 @@ urlpatterns = patterns('documents.views',
|
|||||||
|
|
||||||
url(r'^(?P<document_pk>\d+)/version/all/$', 'document_version_list', (), 'document_version_list'),
|
url(r'^(?P<document_pk>\d+)/version/all/$', 'document_version_list', (), 'document_version_list'),
|
||||||
url(r'^document/version/(?P<document_version_pk>\d+)/download/$', 'document_download', (), 'document_version_download'),
|
url(r'^document/version/(?P<document_version_pk>\d+)/download/$', 'document_download', (), 'document_version_download'),
|
||||||
|
url(r'^document/version/(?P<document_version_pk>\d+)/revert/$', 'document_version_revert', (), 'document_version_revert'),
|
||||||
|
|
||||||
url(r'^multiple/clear_transformations/$', 'document_multiple_clear_transformations', (), 'document_multiple_clear_transformations'),
|
url(r'^multiple/clear_transformations/$', 'document_multiple_clear_transformations', (), 'document_multiple_clear_transformations'),
|
||||||
url(r'^duplicates/list/$', 'document_find_all_duplicates', (), 'document_find_all_duplicates'),
|
url(r'^duplicates/list/$', 'document_find_all_duplicates', (), 'document_find_all_duplicates'),
|
||||||
|
|||||||
@@ -36,14 +36,15 @@ from documents.conf.settings import ROTATION_STEP
|
|||||||
from documents.conf.settings import PRINT_SIZE
|
from documents.conf.settings import PRINT_SIZE
|
||||||
from documents.conf.settings import RECENT_COUNT
|
from documents.conf.settings import RECENT_COUNT
|
||||||
|
|
||||||
from documents.literals import PERMISSION_DOCUMENT_CREATE, \
|
from documents.literals import (PERMISSION_DOCUMENT_CREATE,
|
||||||
PERMISSION_DOCUMENT_PROPERTIES_EDIT, \
|
PERMISSION_DOCUMENT_PROPERTIES_EDIT,
|
||||||
PERMISSION_DOCUMENT_VIEW, \
|
PERMISSION_DOCUMENT_VIEW,
|
||||||
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, \
|
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD,
|
||||||
PERMISSION_DOCUMENT_TRANSFORM, \
|
PERMISSION_DOCUMENT_TRANSFORM,
|
||||||
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_TOOLS
|
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_TOOLS,
|
||||||
from documents.literals import HISTORY_DOCUMENT_CREATED, \
|
PERMISSION_DOCUMENT_VERSION_REVERT)
|
||||||
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED
|
from documents.literals import (HISTORY_DOCUMENT_CREATED,
|
||||||
|
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED)
|
||||||
|
|
||||||
from documents.forms import (DocumentTypeSelectForm,
|
from documents.forms import (DocumentTypeSelectForm,
|
||||||
DocumentForm_edit, DocumentPropertiesForm,
|
DocumentForm_edit, DocumentPropertiesForm,
|
||||||
@@ -1188,3 +1189,26 @@ def document_version_list(request, document_pk):
|
|||||||
|
|
||||||
return render_to_response('generic_list.html', context,
|
return render_to_response('generic_list.html', context,
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
def document_version_revert(request, document_version_pk):
|
||||||
|
check_permissions(request.user, [PERMISSION_DOCUMENT_VERSION_REVERT])
|
||||||
|
|
||||||
|
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
#try:
|
||||||
|
document_version = get_object_or_404(DocumentVersion, pk=document_version_pk)
|
||||||
|
document_version.revert()
|
||||||
|
messages.success(request, _(u'Document version reverted successfully'))
|
||||||
|
#except Exception, msg:
|
||||||
|
# messages.error(request, _(u'Error reverting document version; %s') % msg)
|
||||||
|
|
||||||
|
return HttpResponseRedirect(previous)
|
||||||
|
|
||||||
|
return render_to_response('generic_confirm.html', {
|
||||||
|
'previous': previous,
|
||||||
|
'title': _(u'Are you sure you wish to revert to this version?'),
|
||||||
|
'message': _(u'All later version after this one will be deleted too.'),
|
||||||
|
'form_icon': u'page_refresh.png',
|
||||||
|
}, context_instance=RequestContext(request))
|
||||||
|
|||||||
Reference in New Issue
Block a user