Move the document create and document sibling create ("clone metadata") views to the source app
This commit is contained in:
@@ -20,8 +20,8 @@ from .conf.settings import ZOOM_MIN_LEVEL
|
||||
from .conf import settings as document_settings
|
||||
from .events import (HISTORY_DOCUMENT_CREATED,
|
||||
HISTORY_DOCUMENT_EDITED, HISTORY_DOCUMENT_DELETED)
|
||||
from .links import (document_list, document_list_recent, document_create_multiple,
|
||||
document_create_siblings, document_view_simple, document_view_advanced,
|
||||
from .links import (document_list, document_list_recent,
|
||||
document_view_simple, document_view_advanced,
|
||||
document_delete, document_multiple_delete, document_edit, document_preview,
|
||||
document_download, document_multiple_download, document_version_download,
|
||||
document_find_duplicates, document_find_all_duplicates, document_update_page_count,
|
||||
@@ -62,13 +62,13 @@ register_links(['setup_document_type_metadata', 'document_type_filename_delete',
|
||||
register_links([DocumentTypeFilename, 'document_type_filename_list', 'document_type_filename_create'], [document_type_filename_create], menu_name='sidebar')
|
||||
|
||||
# Register document links
|
||||
register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations, document_create_siblings])
|
||||
register_links(Document, [document_view_simple, document_edit, document_print, document_delete, document_download, document_find_duplicates, document_clear_transformations])
|
||||
register_multi_item_links(['document_find_duplicates', 'folder_view', 'index_instance_node_view', 'document_type_document_list', 'search', 'results', 'document_group_view', 'document_list', 'document_list_recent', 'tag_tagged_item_list'], [document_multiple_clear_transformations, document_multiple_delete, document_multiple_download])
|
||||
|
||||
# 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, secondary_menu_links, menu_name='secondary_menu')
|
||||
|
||||
@@ -38,8 +38,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]}
|
||||
document_delete = {'text': _(u'delete'), 'view': 'document_delete', 'args': 'object.id', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]}
|
||||
|
||||
@@ -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<document_id>\d+)/view/$', 'document_view', (), 'document_view_simple'),
|
||||
url(r'^(?P<document_id>\d+)/view/advanced/$', 'document_view', {'advanced': True}, 'document_view_advanced'),
|
||||
@@ -30,7 +29,6 @@ urlpatterns = patterns('documents.views',
|
||||
|
||||
url(r'^(?P<document_id>\d+)/download/$', 'document_download', (), 'document_download'),
|
||||
url(r'^multiple/download/$', 'document_multiple_download', (), 'document_multiple_download'),
|
||||
url(r'^(?P<document_id>\d+)/create/siblings/$', 'document_create_siblings', (), 'document_create_siblings'),
|
||||
url(r'^(?P<document_id>\d+)/find_duplicates/$', 'document_find_duplicates', (), 'document_find_duplicates'),
|
||||
url(r'^(?P<document_id>\d+)/clear_transformations/$', 'document_clear_transformations', (), 'document_clear_transformations'),
|
||||
|
||||
|
||||
@@ -1,37 +1,38 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import urlparse
|
||||
import copy
|
||||
import logging
|
||||
import urlparse
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect, HttpResponse
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.template import RequestContext
|
||||
from django.contrib import messages
|
||||
from django.views.generic.list_detail import object_list
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.http import urlencode
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic.list_detail import object_list
|
||||
|
||||
import sendfile
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from common.compressed_files import CompressedFile
|
||||
from common.utils import (pretty_size, parse_range, urlquote,
|
||||
return_diff, encapsulate)
|
||||
from common.literals import (PAGE_SIZE_DIMENSIONS,
|
||||
PAGE_ORIENTATION_PORTRAIT, PAGE_ORIENTATION_LANDSCAPE)
|
||||
from common.utils import (pretty_size, parse_range, urlquote,
|
||||
return_diff, encapsulate)
|
||||
from common.widgets import two_state_template
|
||||
from common.conf.settings import DEFAULT_PAPER_SIZE
|
||||
from converter.literals import (DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION,
|
||||
DEFAULT_PAGE_NUMBER, DEFAULT_FILE_FORMAT_MIMETYPE)
|
||||
from converter.office_converter import OfficeConverter
|
||||
# TODO: do not import from document_indexing, update document_indexing to
|
||||
# catch Document model after save and after delete signals
|
||||
from document_indexing.api import update_indexes, delete_indexes
|
||||
from filetransfers.api import serve_file
|
||||
from history.api import create_history
|
||||
from metadata.forms import MetadataFormSet, MetadataSelectionForm
|
||||
from navigation.utils import resolve_to_name
|
||||
from permissions.models import Permission
|
||||
|
||||
@@ -57,7 +58,6 @@ from .permissions import (PERMISSION_DOCUMENT_CREATE,
|
||||
PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_VERSION_REVERT,
|
||||
PERMISSION_DOCUMENT_TYPE_EDIT, PERMISSION_DOCUMENT_TYPE_DELETE,
|
||||
PERMISSION_DOCUMENT_TYPE_CREATE, PERMISSION_DOCUMENT_TYPE_VIEW)
|
||||
from .wizards import DocumentCreateWizard
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -88,30 +88,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])
|
||||
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
query_dict = {}
|
||||
for pk, metadata in enumerate(document.documentmetadata_set.all()):
|
||||
query_dict['metadata%s_id' % pk] = metadata.metadata_type_id
|
||||
query_dict['metadata%s_value' % pk] = metadata.value
|
||||
|
||||
if document.document_type_id:
|
||||
query_dict['document_type_id'] = document.document_type_id
|
||||
|
||||
url = reverse('upload_interactive')
|
||||
return HttpResponseRedirect('%s?%s' % (url, urlencode(query_dict)))
|
||||
|
||||
|
||||
def document_view(request, document_id, advanced=False):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
|
||||
|
||||
@@ -2,12 +2,12 @@ from __future__ import absolute_import
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from navigation.api import (register_links,
|
||||
register_model_list_columns)
|
||||
from common.utils import encapsulate
|
||||
from project_setup.api import register_setup
|
||||
from documents.permissions import (PERMISSION_DOCUMENT_NEW_VERSION,
|
||||
from documents.models import Document
|
||||
from documents.permissions import (PERMISSION_DOCUMENT_NEW_VERSION,
|
||||
PERMISSION_DOCUMENT_CREATE)
|
||||
from navigation.api import register_links, register_model_list_columns
|
||||
from project_setup.api import register_setup
|
||||
|
||||
from .staging import StagingFile
|
||||
from .models import (WebForm, StagingFolder, SourceTransformation,
|
||||
@@ -17,6 +17,9 @@ 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']}
|
||||
document_create_siblings = {'text': _(u'clone metadata'), 'view': 'document_create_siblings', 'args': 'object.id', 'famfam': 'page_copy', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
|
||||
|
||||
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,6 @@ 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_siblings])
|
||||
|
||||
@@ -16,7 +16,7 @@ urlpatterns = patterns('sources.views',
|
||||
url(r'^upload/document/(?P<document_pk>\d+)/version/interactive/(?P<source_type>\w+)/(?P<source_id>\d+)/$', 'upload_interactive', (), 'upload_version'),
|
||||
url(r'^upload/document/(?P<document_pk>\d+)/version/interactive/$', 'upload_interactive', (), 'upload_version'),
|
||||
|
||||
#Setup views
|
||||
# Setup views
|
||||
|
||||
url(r'^setup/interactive/%s/list/$' % SOURCE_CHOICE_WEB_FORM, 'setup_source_list', {'source_type': SOURCE_CHOICE_WEB_FORM}, 'setup_web_form_list'),
|
||||
url(r'^setup/interactive/%s/list/$' % SOURCE_CHOICE_STAGING, 'setup_source_list', {'source_type': SOURCE_CHOICE_STAGING}, 'setup_staging_folder_list'),
|
||||
@@ -31,4 +31,9 @@ urlpatterns = patterns('sources.views',
|
||||
url(r'^setup/interactive/(?P<source_type>\w+)/(?P<source_id>\d+)/transformation/create/$', 'setup_source_transformation_create', (), 'setup_source_transformation_create'),
|
||||
url(r'^setup/interactive/source/transformation/(?P<transformation_id>\d+)/edit/$', 'setup_source_transformation_edit', (), 'setup_source_transformation_edit'),
|
||||
url(r'^setup/interactive/source/transformation/(?P<transformation_id>\d+)/delete/$', 'setup_source_transformation_delete', (), 'setup_source_transformation_delete'),
|
||||
|
||||
# Document create views
|
||||
|
||||
url(r'^create/from/local/multiple/$', 'document_create', (), 'document_create_multiple'),
|
||||
url(r'^(?P<document_id>\d+)/create/siblings/$', 'document_create_siblings', (), 'document_create_siblings'),
|
||||
)
|
||||
|
||||
@@ -1,41 +1,67 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.template import RequestContext
|
||||
from django.contrib import messages
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ugettext
|
||||
from django.utils.http import urlencode
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.conf import settings
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.utils.translation import ugettext
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from documents.permissions import (PERMISSION_DOCUMENT_CREATE,
|
||||
PERMISSION_DOCUMENT_NEW_VERSION)
|
||||
from documents.models import DocumentType, Document
|
||||
import sendfile
|
||||
|
||||
from acls.models import AccessEntry
|
||||
from common.utils import encapsulate
|
||||
from documents.conf.settings import THUMBNAIL_SIZE
|
||||
from documents.exceptions import NewDocumentVersionNotAllowed
|
||||
from documents.forms import DocumentTypeSelectForm
|
||||
from documents.models import DocumentType, Document
|
||||
from documents.permissions import (PERMISSION_DOCUMENT_CREATE,
|
||||
PERMISSION_DOCUMENT_NEW_VERSION)
|
||||
from metadata.api import decode_metadata_from_url, metadata_repr_as_list
|
||||
from metadata.forms import MetadataSelectionForm, MetadataFormSet
|
||||
from permissions.models import Permission
|
||||
from common.utils import encapsulate
|
||||
import sendfile
|
||||
from acls.models import AccessEntry
|
||||
|
||||
from sources.models import (WebForm, StagingFolder, SourceTransformation,
|
||||
WatchFolder)
|
||||
from sources.literals import (SOURCE_CHOICE_WEB_FORM, SOURCE_CHOICE_STAGING,
|
||||
SOURCE_CHOICE_WATCH)
|
||||
from sources.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 (SourceTransformationForm, SourceTransformationForm_create,
|
||||
WebFormSetupForm, StagingFolderSetupForm, StagingDocumentForm, WebFormForm,
|
||||
WatchFolderSetupForm)
|
||||
from sources.forms import WebFormSetupForm, StagingFolderSetupForm
|
||||
from sources.forms import SourceTransformationForm, SourceTransformationForm_create
|
||||
from .literals import (SOURCE_CHOICE_WEB_FORM, SOURCE_CHOICE_STAGING,
|
||||
SOURCE_CHOICE_WATCH, SOURCE_UNCOMPRESS_CHOICE_Y, SOURCE_UNCOMPRESS_CHOICE_ASK)
|
||||
from .models import (WebForm, StagingFolder, SourceTransformation,
|
||||
WatchFolder)
|
||||
from .permissions import (PERMISSION_SOURCES_SETUP_VIEW,
|
||||
PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE,
|
||||
PERMISSION_SOURCES_SETUP_CREATE)
|
||||
from .staging import create_staging_file_class
|
||||
from .wizards import DocumentCreateWizard
|
||||
|
||||
|
||||
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])
|
||||
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
query_dict = {}
|
||||
for pk, metadata in enumerate(document.documentmetadata_set.all()):
|
||||
query_dict['metadata%s_id' % pk] = metadata.metadata_type_id
|
||||
query_dict['metadata%s_value' % pk] = metadata.value
|
||||
|
||||
if document.document_type_id:
|
||||
query_dict['document_type_id'] = document.document_type_id
|
||||
|
||||
url = reverse('upload_interactive')
|
||||
return HttpResponseRedirect('%s?%s' % (url, urlencode(query_dict)))
|
||||
|
||||
|
||||
def return_function(obj):
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
# DEPRECATION: This module is scheduled to be delete once the update to Django 1.6.X is complete
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.utils.http import urlencode
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from common.wizard import BoundFormWizard
|
||||
|
||||
from documents.forms import DocumentTypeSelectForm
|
||||
from metadata.forms import MetadataSelectionForm, MetadataFormSet
|
||||
|
||||
from .forms import DocumentTypeSelectForm
|
||||
|
||||
|
||||
class DocumentCreateWizard(BoundFormWizard):
|
||||
def generate_metadata_initial_values(self):
|
||||
Reference in New Issue
Block a user