Split document view into document preview, document content and document properties views
This commit is contained in:
@@ -22,7 +22,8 @@ from documents import settings as document_settings
|
||||
from .events import (HISTORY_DOCUMENT_CREATED,
|
||||
HISTORY_DOCUMENT_DELETED, HISTORY_DOCUMENT_EDITED)
|
||||
from .links import (document_clear_image_cache,
|
||||
document_clear_transformations, document_delete,
|
||||
document_clear_transformations, document_content,
|
||||
document_delete,
|
||||
document_document_type_edit,
|
||||
document_multiple_document_type_edit, document_download,
|
||||
document_edit, document_history_view, document_list,
|
||||
@@ -40,15 +41,15 @@ from .links import (document_clear_image_cache,
|
||||
document_page_transformation_edit,
|
||||
document_page_transformation_delete, document_page_view,
|
||||
document_page_view_reset, document_page_zoom_in,
|
||||
document_page_zoom_out, document_print,
|
||||
document_type_create, document_type_delete,
|
||||
document_type_edit, document_type_filename_create,
|
||||
document_type_filename_delete,
|
||||
document_type_filename_edit, document_type_filename_list,
|
||||
document_type_list, document_type_setup,
|
||||
document_update_page_count, document_version_download,
|
||||
document_version_list, document_version_revert,
|
||||
document_view_advanced, document_view_simple)
|
||||
document_page_zoom_out, document_preview, document_print,
|
||||
document_properties, document_type_create,
|
||||
document_type_delete, document_type_edit,
|
||||
document_type_filename_create,
|
||||
document_type_filename_delete, document_type_filename_edit,
|
||||
document_type_filename_list, document_type_list,
|
||||
document_type_setup, document_update_page_count,
|
||||
document_version_download, document_version_list,
|
||||
document_version_revert)
|
||||
from .models import (Document, DocumentPage, DocumentPageTransformation,
|
||||
DocumentType, DocumentTypeFilename, DocumentVersion)
|
||||
from .permissions import (PERMISSION_DOCUMENT_DELETE,
|
||||
@@ -75,8 +76,13 @@ register_links(DocumentTypeFilename, [document_type_filename_edit, document_type
|
||||
register_links([DocumentTypeFilename, 'documents:document_type_filename_list', 'documents:document_type_filename_create'], [document_type_filename_create], menu_name='sidebar')
|
||||
|
||||
# Register document links
|
||||
register_links(Document, [document_view_simple, document_edit, document_document_type_edit, document_print, document_delete, document_download, document_clear_transformations, document_update_page_count])
|
||||
register_links(Document, [document_edit, document_document_type_edit, document_print, document_delete, document_download, document_clear_transformations, document_update_page_count])
|
||||
register_links([Document], [link_spacer, document_multiple_clear_transformations, document_multiple_delete, document_multiple_download, document_multiple_update_page_count, document_multiple_document_type_edit], menu_name='multi_item_links')
|
||||
register_links(Document, [document_preview], menu_name='form_header', position=0)
|
||||
register_links(Document, [document_content], menu_name='form_header', position=1)
|
||||
register_links(Document, [document_properties], menu_name='form_header', position=2)
|
||||
register_links(Document, [document_history_view], menu_name='form_header')
|
||||
register_links(Document, [document_version_list], menu_name='form_header')
|
||||
|
||||
# Document Version links
|
||||
register_links(DocumentVersion, [document_version_revert, document_version_download])
|
||||
@@ -120,11 +126,6 @@ register_top_menu(
|
||||
position=1
|
||||
)
|
||||
|
||||
register_links(Document, [document_view_simple], menu_name='form_header', position=0)
|
||||
register_links(Document, [document_view_advanced], menu_name='form_header', position=1)
|
||||
register_links(Document, [document_history_view], menu_name='form_header')
|
||||
register_links(Document, [document_version_list], menu_name='form_header')
|
||||
|
||||
if (not validate_path(document_settings.CACHE_PATH)) or (not document_settings.CACHE_PATH):
|
||||
setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp())
|
||||
|
||||
|
||||
@@ -38,8 +38,9 @@ def is_current_version(context):
|
||||
|
||||
document_list = {'text': _(u'All documents'), 'view': 'documents:document_list', 'famfam': 'page'}
|
||||
document_list_recent = {'text': _(u'Recent documents'), 'view': 'documents:document_list_recent', 'famfam': 'page'}
|
||||
document_view_simple = {'text': _(u'Details'), 'view': 'documents:document_view_simple', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_view_advanced = {'text': _(u'Properties'), 'view': 'documents:document_view_advanced', 'args': 'object.id', 'famfam': 'page_gear', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_preview = {'text': _(u'Preview'), 'view': 'documents:document_preview', 'args': 'object.id', 'famfam': 'page', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_content = {'text': _(u'Content'), 'view': 'documents:document_content', 'args': 'object.id', 'famfam': 'page_white_text', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_properties = {'text': _(u'Properties'), 'view': 'documents:document_properties', 'args': 'object.id', 'famfam': 'page_gear', 'permissions': [PERMISSION_DOCUMENT_VIEW]}
|
||||
document_delete = {'text': _(u'Delete'), 'view': 'documents:document_delete', 'args': 'object.id', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]}
|
||||
document_multiple_delete = {'text': _(u'Delete'), 'view': 'documents:document_multiple_delete', 'famfam': 'page_delete', 'permissions': [PERMISSION_DOCUMENT_DELETE]}
|
||||
document_edit = {'text': _(u'Edit properties'), 'view': 'documents:document_edit', 'args': 'object.id', 'famfam': 'page_edit', 'permissions': [PERMISSION_DOCUMENT_PROPERTIES_EDIT]}
|
||||
|
||||
@@ -108,7 +108,7 @@ class Document(models.Model):
|
||||
|
||||
@models.permalink
|
||||
def get_absolute_url(self):
|
||||
return ('documents:document_view_simple', [self.pk])
|
||||
return ('documents:document_preview', [self.pk])
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
user = kwargs.pop('user', None)
|
||||
|
||||
@@ -310,7 +310,7 @@ class DocumentsViewsFunctionalTestCase(TestCase):
|
||||
self.assertTrue('ocuments (1)' in response.content)
|
||||
|
||||
# test document simple view
|
||||
response = self.client.get(reverse('documents:document_view_simple', args=[self.document.pk]))
|
||||
response = self.client.get(reverse('documents:document_properties', args=[self.document.pk]))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTrue('Details for' in response.content)
|
||||
|
||||
|
||||
@@ -14,8 +14,9 @@ urlpatterns = patterns('documents.views',
|
||||
url(r'^list/$', DocumentListView.as_view(), name='document_list'),
|
||||
url(r'^list/recent/$', 'document_list_recent', (), 'document_list_recent'),
|
||||
|
||||
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'),
|
||||
url(r'^(?P<document_id>\d+)/preview/$', 'document_preview', (), 'document_preview'),
|
||||
url(r'^(?P<document_id>\d+)/content/$', 'document_content', (), 'document_content'),
|
||||
url(r'^(?P<document_id>\d+)/properties/$', 'document_properties', (), 'document_properties'),
|
||||
url(r'^(?P<document_id>\d+)/type/$', 'document_document_type_edit', name='document_document_type_edit'),
|
||||
url(r'^multiple/type/$', 'document_multiple_document_type_edit', name='document_multiple_document_type_edit'),
|
||||
url(r'^(?P<document_id>\d+)/delete/$', 'document_delete', (), 'document_delete'),
|
||||
|
||||
@@ -90,7 +90,7 @@ def document_list(request, object_list=None, title=None, extra_context=None):
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_view(request, document_id, advanced=False):
|
||||
def document_properties(request, document_id):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
|
||||
try:
|
||||
@@ -100,67 +100,70 @@ def document_view(request, document_id, advanced=False):
|
||||
|
||||
document.add_as_recent_document_for_user(request.user)
|
||||
|
||||
subtemplates_list = []
|
||||
|
||||
if advanced:
|
||||
document_fields = [
|
||||
{'label': _(u'Date added'), 'field': lambda x: x.date_added.date()},
|
||||
{'label': _(u'Time added'), 'field': lambda x: unicode(x.date_added.time()).split('.')[0]},
|
||||
{'label': _(u'UUID'), 'field': 'uuid'},
|
||||
]
|
||||
if document.latest_version:
|
||||
document_fields.extend([
|
||||
{'label': _(u'File mimetype'), 'field': lambda x: x.file_mimetype or _(u'None')},
|
||||
{'label': _(u'File encoding'), 'field': lambda x: x.file_mime_encoding or _(u'None')},
|
||||
{'label': _(u'File size'), 'field': lambda x: pretty_size(x.size) if x.size else '-'},
|
||||
{'label': _(u'Exists in storage'), 'field': 'exists'},
|
||||
{'label': _(u'File path in storage'), 'field': 'file'},
|
||||
{'label': _(u'Checksum'), 'field': 'checksum'},
|
||||
{'label': _(u'Pages'), 'field': 'page_count'},
|
||||
])
|
||||
document_fields = [
|
||||
{'label': _(u'Date added'), 'field': lambda x: x.date_added.date()},
|
||||
{'label': _(u'Time added'), 'field': lambda x: unicode(x.date_added.time()).split('.')[0]},
|
||||
{'label': _(u'UUID'), 'field': 'uuid'},
|
||||
]
|
||||
if document.latest_version:
|
||||
document_fields.extend([
|
||||
{'label': _(u'File mimetype'), 'field': lambda x: x.file_mimetype or _(u'None')},
|
||||
{'label': _(u'File encoding'), 'field': lambda x: x.file_mime_encoding or _(u'None')},
|
||||
{'label': _(u'File size'), 'field': lambda x: pretty_size(x.size) if x.size else '-'},
|
||||
{'label': _(u'Exists in storage'), 'field': 'exists'},
|
||||
{'label': _(u'File path in storage'), 'field': 'file'},
|
||||
{'label': _(u'Checksum'), 'field': 'checksum'},
|
||||
{'label': _(u'Pages'), 'field': 'page_count'},
|
||||
])
|
||||
|
||||
document_properties_form = DocumentPropertiesForm(instance=document, extra_fields=document_fields)
|
||||
|
||||
subtemplates_list.append(
|
||||
{
|
||||
'name': 'main/generic_form_subtemplate.html',
|
||||
'context': {
|
||||
'form': document_properties_form,
|
||||
'object': document,
|
||||
'title': _(u'Document properties for: %s') % document,
|
||||
}
|
||||
},
|
||||
)
|
||||
else:
|
||||
preview_form = DocumentPreviewForm(document=document)
|
||||
subtemplates_list.append(
|
||||
{
|
||||
'name': 'main/generic_form_subtemplate.html',
|
||||
'context': {
|
||||
'form': preview_form,
|
||||
'object': document,
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
content_form = DocumentContentForm(document=document)
|
||||
|
||||
subtemplates_list.append(
|
||||
{
|
||||
'name': 'main/generic_form_subtemplate.html',
|
||||
'context': {
|
||||
'title': _(u'Document data'),
|
||||
'form': content_form,
|
||||
'object': document,
|
||||
},
|
||||
}
|
||||
)
|
||||
document_properties_form = DocumentPropertiesForm(instance=document, extra_fields=document_fields)
|
||||
|
||||
return render_to_response('main/generic_detail.html', {
|
||||
'object': document,
|
||||
'form': document_properties_form,
|
||||
'document': document,
|
||||
'subtemplates_list': subtemplates_list,
|
||||
'disable_auto_focus': True,
|
||||
'object': document,
|
||||
'title': _(u'Document properties'),
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_preview(request, document_id):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
|
||||
try:
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW])
|
||||
except PermissionDenied:
|
||||
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document)
|
||||
|
||||
document.add_as_recent_document_for_user(request.user)
|
||||
|
||||
preview_form = DocumentPreviewForm(document=document)
|
||||
|
||||
return render_to_response('main/generic_detail.html', {
|
||||
'document': document,
|
||||
'form': preview_form,
|
||||
'object': document,
|
||||
'title': _(u'Document preview'),
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def document_content(request, document_id):
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
|
||||
try:
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW])
|
||||
except PermissionDenied:
|
||||
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, request.user, document)
|
||||
|
||||
document.add_as_recent_document_for_user(request.user)
|
||||
|
||||
content_form = DocumentContentForm(document=document)
|
||||
|
||||
return render_to_response('main/generic_detail.html', {
|
||||
'document': document,
|
||||
'form': content_form,
|
||||
'object': document,
|
||||
'title': _(u'Document content'),
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
@@ -447,7 +450,7 @@ def document_multiple_download(request):
|
||||
def document_update_page_count(request, document_id=None, document_id_list=None):
|
||||
if document_id:
|
||||
documents = [get_object_or_404(Document.objects, pk=document_id)]
|
||||
post_redirect = reverse('documents:document_view_simple', args=[documents[0].pk])
|
||||
post_redirect = documents[0].get_absolute_url()
|
||||
elif document_id_list:
|
||||
documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')]
|
||||
else:
|
||||
@@ -500,7 +503,7 @@ def document_multiple_update_page_count(request):
|
||||
def document_clear_transformations(request, document_id=None, document_id_list=None):
|
||||
if document_id:
|
||||
documents = [get_object_or_404(Document.objects, pk=document_id)]
|
||||
post_redirect = reverse('documents:document_view_simple', args=[documents[0].pk])
|
||||
post_redirect = document[0].get_absolute_url()
|
||||
elif document_id_list:
|
||||
documents = [get_object_or_404(Document, pk=document_id) for document_id in document_id_list.split(',')]
|
||||
post_redirect = None
|
||||
|
||||
@@ -77,7 +77,7 @@ def document_thumbnail(document, **kwargs):
|
||||
|
||||
|
||||
def document_link(document):
|
||||
return mark_safe(u'<a href="%s">%s</a>' % (reverse('documents:document_view_simple', args=[document.pk]), document))
|
||||
return mark_safe(u'<a href="%s">%s</a>' % (document.get_absolute_url(), document))
|
||||
|
||||
|
||||
def document_html_widget(document, click_view=None, page=DEFAULT_PAGE_NUMBER, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION, gallery_name=None, fancybox_class='fancybox', version=None, image_class='lazy-load', title=None, size=THUMBNAIL_SIZE, nolazyload=False):
|
||||
|
||||
@@ -53,7 +53,7 @@ def send_document_link(request, document_id=None, document_id_list=None, as_atta
|
||||
|
||||
for document in documents:
|
||||
context = Context({
|
||||
'link': 'http://%s%s' % (Site.objects.get_current().domain, reverse('documents:document_view_simple', args=[document.pk])),
|
||||
'link': 'http://%s%s' % (Site.objects.get_current().domain, document.get_absolute_url()),
|
||||
'document': document
|
||||
})
|
||||
body_template = Template(form.cleaned_data['body'])
|
||||
|
||||
Reference in New Issue
Block a user