From e2e7e4bb4978d27202d1c6d7a08d22a8b38febb0 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 26 Jul 2012 05:30:39 -0400 Subject: [PATCH] Move the document upload wizard to the sources app --- apps/documents/__init__.py | 5 ++--- apps/documents/urls.py | 1 - apps/documents/views.py | 13 +------------ apps/sources/__init__.py | 5 +++++ apps/sources/urls.py | 2 ++ apps/sources/views.py | 23 +++++++++++++++++------ apps/{documents => sources}/wizards.py | 4 +--- 7 files changed, 28 insertions(+), 25 deletions(-) rename apps/{documents => sources}/wizards.py (98%) diff --git a/apps/documents/__init__.py b/apps/documents/__init__.py index 4a48cfedb4..f6c0c80945 100644 --- a/apps/documents/__init__.py +++ b/apps/documents/__init__.py @@ -53,7 +53,6 @@ def is_current_version(context): document_list = {'text': _(u'all documents'), 'view': 'document_list', 'famfam': 'page'} document_list_recent = {'text': _(u'recent documents'), 'view': 'document_list_recent', 'famfam': 'page'} -document_create_multiple = {'text': _(u'upload new documents'), 'view': 'document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE], 'children_view_regex': [r'upload_interactive']} document_create_siblings = {'text': _(u'clone metadata'), 'view': 'document_create_siblings', 'args': 'object.id', 'famfam': 'page_copy', 'permissions': [PERMISSION_DOCUMENT_CREATE]} document_view_simple = {'text': _(u'details'), 'view': 'document_view_simple', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]} document_view_advanced = {'text': _(u'properties'), 'view': 'document_view_advanced', 'args': 'object.id', 'famfam': 'page_gear', 'permissions': [PERMISSION_DOCUMENT_VIEW]} @@ -128,9 +127,9 @@ register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_ins # Document Version links 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] -register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], secondary_menu_links, menu_name='secondary_menu') +register_links(['document_list_recent', 'document_list', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], secondary_menu_links, menu_name='secondary_menu') register_links(Document, secondary_menu_links, menu_name='secondary_menu') # Document page links diff --git a/apps/documents/urls.py b/apps/documents/urls.py index 0303438fdd..2a2cfcb7db 100644 --- a/apps/documents/urls.py +++ b/apps/documents/urls.py @@ -8,7 +8,6 @@ from .conf.settings import (PREVIEW_SIZE, PRINT_SIZE, THUMBNAIL_SIZE, urlpatterns = patterns('documents.views', url(r'^list/$', 'document_list', (), 'document_list'), url(r'^list/recent/$', 'document_list_recent', (), 'document_list_recent'), - url(r'^create/from/local/multiple/$', 'document_create', (), 'document_create_multiple'), url(r'^(?P\d+)/view/$', 'document_view', (), 'document_view_simple'), url(r'^(?P\d+)/view/advanced/$', 'document_view', {'advanced': True}, 'document_view_advanced'), diff --git a/apps/documents/views.py b/apps/documents/views.py index 1d67683251..3b584e076b 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -26,7 +26,6 @@ from converter.literals import DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION, \ DEFAULT_PAGE_NUMBER, DEFAULT_FILE_FORMAT_MIMETYPE from converter.office_converter import OfficeConverter from filetransfers.api import serve_file -from metadata.forms import MetadataFormSet, MetadataSelectionForm from navigation.utils import resolve_to_name from permissions.models import Permission from document_indexing.api import update_indexes, delete_indexes @@ -44,14 +43,12 @@ from .permissions import (PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_DELETE, PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW) from .events import history_document_edited -from .forms import (DocumentTypeSelectForm, - DocumentForm_edit, DocumentPropertiesForm, +from .forms import (DocumentForm_edit, DocumentPropertiesForm, DocumentPreviewForm, DocumentPageForm, DocumentPageTransformationForm, DocumentContentForm, DocumentPageForm_edit, DocumentPageForm_text, PrintForm, DocumentTypeForm, DocumentTypeFilenameForm, DocumentTypeFilenameForm_create, DocumentDownloadForm) -from .wizards import DocumentCreateWizard from .models import (Document, DocumentType, DocumentPage, DocumentPageTransformation, RecentDocument, DocumentTypeFilename, DocumentVersion) @@ -85,14 +82,6 @@ def document_list(request, object_list=None, title=None, extra_context=None): context_instance=RequestContext(request)) -def document_create(request): - Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CREATE]) - - wizard = DocumentCreateWizard(form_list=[DocumentTypeSelectForm, MetadataSelectionForm, MetadataFormSet]) - - return wizard(request) - - def document_create_siblings(request, document_id): Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CREATE]) diff --git a/apps/sources/__init__.py b/apps/sources/__init__.py index 4596235c3a..58c879c040 100644 --- a/apps/sources/__init__.py +++ b/apps/sources/__init__.py @@ -8,6 +8,7 @@ from common.utils import encapsulate from project_setup.api import register_setup from documents.permissions import (PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE) +from documents.models import Document from .staging import StagingFile from .models import (WebForm, StagingFolder, SourceTransformation, @@ -17,6 +18,8 @@ from .permissions import (PERMISSION_SOURCES_SETUP_VIEW, PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE, PERMISSION_SOURCES_SETUP_CREATE) +document_create_multiple = {'text': _(u'upload new documents'), 'view': 'document_create_multiple', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE], 'children_view_regex': [r'upload_interactive']} + staging_file_preview = {'text': _(u'preview'), 'class': 'fancybox-noscaling', 'view': 'staging_file_preview', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'zoom', 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]} staging_file_delete = {'text': _(u'delete'), 'view': 'staging_file_delete', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'delete', 'keep_query': True, 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION, PERMISSION_DOCUMENT_CREATE]} @@ -72,3 +75,5 @@ register_model_list_columns(StagingFile, [ ]) register_setup(setup_sources) +register_links(['document_list_recent', 'document_list', 'document_create', 'document_create_multiple', 'upload_interactive', 'staging_file_delete'], [document_create_multiple], menu_name='secondary_menu') +register_links(Document, [document_create_multiple], menu_name='secondary_menu') diff --git a/apps/sources/urls.py b/apps/sources/urls.py index 9b8f6ad59f..c6b0a84ea6 100644 --- a/apps/sources/urls.py +++ b/apps/sources/urls.py @@ -6,6 +6,8 @@ from .literals import (SOURCE_CHOICE_WEB_FORM, SOURCE_CHOICE_STAGING, SOURCE_CHOICE_WATCH) urlpatterns = patterns('sources.views', + url(r'^create/from/local/multiple/$', 'document_create', (), 'document_create_multiple'), + url(r'^staging_file/type/(?P\w+)/(?P\d+)/(?P\w+)/preview/$', 'staging_file_preview', (), 'staging_file_preview'), url(r'^staging_file/type/(?P\w+)/(?P\d+)/(?P\w+)/delete/$', 'staging_file_delete', (), 'staging_file_delete'), url(r'^staging_file/type/staging_folder/(?P\d+)/(?P\w+)/thumbnail/$', 'staging_file_thumbnail', (), 'staging_file_thumbnail'), diff --git a/apps/sources/views.py b/apps/sources/views.py index 0014d9b4cf..2d09561c7f 100644 --- a/apps/sources/views.py +++ b/apps/sources/views.py @@ -16,26 +16,29 @@ from documents.permissions import (PERMISSION_DOCUMENT_CREATE, from documents.models import DocumentType, Document from documents.conf.settings import THUMBNAIL_SIZE from documents.exceptions import NewDocumentVersionNotAllowed +from documents.forms import DocumentTypeSelectForm +from metadata.forms import MetadataFormSet, MetadataSelectionForm from metadata.api import decode_metadata_from_url, metadata_repr_as_list from permissions.models import Permission from common.utils import encapsulate import sendfile from acls.models import AccessEntry -from sources.models import (WebForm, StagingFolder, SourceTransformation, +from .models import (WebForm, StagingFolder, SourceTransformation, WatchFolder) -from sources.literals import (SOURCE_CHOICE_WEB_FORM, SOURCE_CHOICE_STAGING, +from .literals import (SOURCE_CHOICE_WEB_FORM, SOURCE_CHOICE_STAGING, SOURCE_CHOICE_WATCH) -from sources.literals import (SOURCE_UNCOMPRESS_CHOICE_Y, +from .literals import (SOURCE_UNCOMPRESS_CHOICE_Y, SOURCE_UNCOMPRESS_CHOICE_ASK) from sources.staging import create_staging_file_class -from sources.forms import (StagingDocumentForm, WebFormForm, +from .forms import (StagingDocumentForm, WebFormForm, WatchFolderSetupForm) -from sources.forms import WebFormSetupForm, StagingFolderSetupForm -from sources.forms import SourceTransformationForm, SourceTransformationForm_create +from .forms import WebFormSetupForm, StagingFolderSetupForm +from .forms import SourceTransformationForm, SourceTransformationForm_create from .permissions import (PERMISSION_SOURCES_SETUP_VIEW, PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE, PERMISSION_SOURCES_SETUP_CREATE) +from .wizards import DocumentCreateWizard def return_function(obj): @@ -706,3 +709,11 @@ def setup_source_transformation_create(request, source_type, source_id): 'navigation_object_name': 'source', 'title': _(u'Create new transformation for source: %s') % source, }, context_instance=RequestContext(request)) + + +def document_create(request): + Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CREATE]) + + wizard = DocumentCreateWizard(form_list=[DocumentTypeSelectForm, MetadataSelectionForm, MetadataFormSet]) + + return wizard(request) diff --git a/apps/documents/wizards.py b/apps/sources/wizards.py similarity index 98% rename from apps/documents/wizards.py rename to apps/sources/wizards.py index 816a77b608..12cbc107f0 100644 --- a/apps/documents/wizards.py +++ b/apps/sources/wizards.py @@ -6,10 +6,8 @@ from django.http import HttpResponseRedirect from django.utils.http import urlencode from common.wizard import BoundFormWizard - from metadata.forms import MetadataSelectionForm, MetadataFormSet - -from .forms import DocumentTypeSelectForm +from documents.forms import DocumentTypeSelectForm class DocumentCreateWizard(BoundFormWizard):