PEP8, pylint cleanups and removal of relative imports
This commit is contained in:
@@ -10,9 +10,9 @@ from common.conf import settings as common_settings
|
||||
from main.api import register_diagnostic
|
||||
from permissions.api import register_permissions
|
||||
|
||||
from models import Document, DocumentPage, DocumentPageTransformation
|
||||
from staging import StagingFile
|
||||
from conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
|
||||
from documents.models import Document, DocumentPage, DocumentPageTransformation
|
||||
from documents.staging import StagingFile
|
||||
from documents.conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
|
||||
|
||||
PERMISSION_DOCUMENT_CREATE = 'document_create'
|
||||
PERMISSION_DOCUMENT_PROPERTIES_EDIT = 'document_properties_edit'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from models import MetadataType, DocumentType, Document, \
|
||||
from documents.models import MetadataType, DocumentType, Document, \
|
||||
DocumentTypeMetadataType, DocumentMetadata, DocumentTypeFilename, \
|
||||
MetadataIndex, DocumentPage, MetadataGroup, \
|
||||
MetadataGroupItem, DocumentPageTransformation, RecentDocument
|
||||
@@ -34,7 +34,10 @@ class DocumentTypeFilenameInline(admin.StackedInline):
|
||||
|
||||
|
||||
class DocumentTypeAdmin(admin.ModelAdmin):
|
||||
inlines = [DocumentTypeFilenameInline, DocumentTypeMetadataTypeInline, MetadataIndexInline]
|
||||
inlines = [
|
||||
DocumentTypeFilenameInline, DocumentTypeMetadataTypeInline,
|
||||
MetadataIndexInline
|
||||
]
|
||||
|
||||
|
||||
class DocumentMetadataInline(admin.StackedInline):
|
||||
@@ -56,8 +59,10 @@ class DocumentPageInline(admin.StackedInline):
|
||||
|
||||
|
||||
class DocumentAdmin(admin.ModelAdmin):
|
||||
inlines = [DocumentMetadataInline, DocumentMetadataIndexInline,
|
||||
DocumentPageInline]
|
||||
inlines = [
|
||||
DocumentMetadataInline, DocumentMetadataIndexInline,
|
||||
DocumentPageInline
|
||||
]
|
||||
list_display = ('uuid', 'file_filename', 'file_extension')
|
||||
|
||||
|
||||
@@ -85,5 +90,6 @@ admin.site.register(MetadataType, MetadataTypeAdmin)
|
||||
admin.site.register(DocumentType, DocumentTypeAdmin)
|
||||
admin.site.register(Document, DocumentAdmin)
|
||||
admin.site.register(MetadataGroup, MetadataGroupAdmin)
|
||||
admin.site.register(DocumentPageTransformation, DocumentPageTransformationAdmin)
|
||||
admin.site.register(DocumentPageTransformation,
|
||||
DocumentPageTransformationAdmin)
|
||||
admin.site.register(RecentDocument, RecentDocumentAdmin)
|
||||
|
||||
@@ -19,17 +19,17 @@ def default_checksum(x):
|
||||
def default_uuid():
|
||||
"""unicode(uuid.uuid4())"""
|
||||
return unicode(uuid.uuid4())
|
||||
|
||||
|
||||
default_available_functions = {
|
||||
'current_date':datetime.datetime.now().date,
|
||||
'current_date': datetime.datetime.now().date,
|
||||
}
|
||||
|
||||
default_available_models = {
|
||||
'User':User
|
||||
'User': User
|
||||
}
|
||||
|
||||
available_transformations = {
|
||||
'rotate': {'label':_(u'Rotate [degrees]'), 'arguments':[{'name':'degrees'}]}
|
||||
'rotate': {'label': _(u'Rotate [degrees]'), 'arguments': [{'name': 'degrees'}]}
|
||||
}
|
||||
|
||||
available_indexing_functions = {
|
||||
|
||||
@@ -8,12 +8,12 @@ from django.utils.safestring import mark_safe
|
||||
from django.forms.formsets import formset_factory
|
||||
from django.template.defaultfilters import capfirst
|
||||
|
||||
from staging import StagingFile
|
||||
from documents.staging import StagingFile
|
||||
|
||||
from common.wizard import BoundFormWizard
|
||||
from common.forms import DetailForm
|
||||
|
||||
from models import Document, DocumentType, DocumentTypeMetadataType, \
|
||||
from documents.models import Document, DocumentType, DocumentTypeMetadataType, \
|
||||
DocumentPage, DocumentPageTransformation
|
||||
|
||||
from documents.conf.settings import AVAILABLE_FUNCTIONS
|
||||
@@ -62,7 +62,9 @@ class DocumentPageForm(DetailForm):
|
||||
'rotation': rotation
|
||||
})
|
||||
|
||||
page_image = forms.CharField(label=_(u'Page image'), widget=DocumentPageImageWidget())
|
||||
page_image = forms.CharField(
|
||||
label=_(u'Page image'), widget=DocumentPageImageWidget()
|
||||
)
|
||||
|
||||
|
||||
class DocumentPageForm_text(DetailForm):
|
||||
@@ -72,9 +74,11 @@ class DocumentPageForm_text(DetailForm):
|
||||
|
||||
content = forms.CharField(
|
||||
label=_(u'Contents'),
|
||||
widget=forms.widgets.Textarea(attrs={'rows': 18, 'cols': 80, 'readonly': 'readonly'}))
|
||||
|
||||
|
||||
widget=forms.widgets.Textarea(attrs={
|
||||
'rows': 18, 'cols': 80, 'readonly': 'readonly'
|
||||
}))
|
||||
|
||||
|
||||
class DocumentPageForm_edit(forms.ModelForm):
|
||||
class Meta:
|
||||
model = DocumentPage
|
||||
@@ -88,7 +92,9 @@ class DocumentPageForm_edit(forms.ModelForm):
|
||||
'page_label',
|
||||
'content',
|
||||
]
|
||||
page_image = forms.CharField(required=False, widget=DocumentPageImageWidget())
|
||||
page_image = forms.CharField(
|
||||
required=False, widget=DocumentPageImageWidget()
|
||||
)
|
||||
|
||||
|
||||
class ImageWidget(forms.widgets.Widget):
|
||||
@@ -145,7 +151,9 @@ class DocumentForm(forms.ModelForm):
|
||||
model = Document
|
||||
exclude = ('description',)
|
||||
|
||||
new_filename = forms.CharField(label=_('New document filename'), required=False)
|
||||
new_filename = forms.CharField(
|
||||
label=_('New document filename'), required=False
|
||||
)
|
||||
|
||||
|
||||
class DocumentPreviewForm(forms.Form):
|
||||
@@ -173,7 +181,9 @@ class DocumentContentForm(forms.Form):
|
||||
|
||||
contents = forms.CharField(
|
||||
label=_(u'Contents'),
|
||||
widget=forms.widgets.Textarea(attrs={'rows': 14, 'cols': 80, 'readonly': 'readonly'})
|
||||
widget=forms.widgets.Textarea(attrs={
|
||||
'rows': 14, 'cols': 80, 'readonly': 'readonly'
|
||||
})
|
||||
)
|
||||
|
||||
|
||||
@@ -193,7 +203,9 @@ class StagingDocumentForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(StagingDocumentForm, self).__init__(*args, **kwargs)
|
||||
try:
|
||||
self.fields['staging_file_id'].choices = [(staging_file.id, staging_file) for staging_file in StagingFile.get_all()]
|
||||
self.fields['staging_file_id'].choices = [
|
||||
(staging_file.id, staging_file) for staging_file in StagingFile.get_all()
|
||||
]
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -207,7 +219,9 @@ class StagingDocumentForm(forms.Form):
|
||||
label=_(u'Quick document rename'))
|
||||
|
||||
staging_file_id = forms.ChoiceField(label=_(u'Staging file'))
|
||||
new_filename = forms.CharField(label=_('New document filename'), required=False)
|
||||
new_filename = forms.CharField(
|
||||
label=_('New document filename'), required=False
|
||||
)
|
||||
|
||||
|
||||
class DocumentTypeSelectForm(forms.Form):
|
||||
@@ -286,7 +300,9 @@ class DocumentCreateWizard(BoundFormWizard):
|
||||
|
||||
def render_template(self, request, form, previous_fields, step, context=None):
|
||||
context = {'step_title': self.extra_context['step_titles'][step]}
|
||||
return super(DocumentCreateWizard, self).render_template(request, form, previous_fields, step, context)
|
||||
return super(DocumentCreateWizard, self).render_template(
|
||||
request, form, previous_fields, step, context
|
||||
)
|
||||
|
||||
def parse_params(self, request, *args, **kwargs):
|
||||
self.extra_context = {'step_titles': self.step_titles}
|
||||
@@ -331,7 +347,7 @@ class MetaDataImageWidget(forms.widgets.Widget):
|
||||
'action': reverse('metadatagroup_view', args=[value['current_document'].pk, value['group'].pk])
|
||||
})
|
||||
output.append(u'</div>')
|
||||
|
||||
|
||||
output.append(u'<div style="white-space:nowrap; overflow: auto;">')
|
||||
for document in value['group_data']:
|
||||
output.append(
|
||||
@@ -363,7 +379,7 @@ class MetaDataImageWidget(forms.widgets.Widget):
|
||||
ugettext(u'Click on the image for full size view of the first page.'))
|
||||
|
||||
return mark_safe(u''.join(output))
|
||||
|
||||
|
||||
|
||||
class MetaDataGroupForm(forms.Form):
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@@ -6,8 +6,7 @@ from urllib import unquote_plus
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
|
||||
|
||||
from models import DocumentMetadata, MetadataType
|
||||
from documents.models import DocumentMetadata, MetadataType
|
||||
|
||||
|
||||
def decode_metadata_from_url(url_dict):
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
import os
|
||||
from datetime import datetime
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.db.models import Q
|
||||
@@ -81,7 +79,7 @@ class Document(models.Model):
|
||||
|
||||
@models.permalink
|
||||
def get_absolute_url(self):
|
||||
return ('document_view_simple', [self.id])
|
||||
return ('document_view_simple', [self.pk])
|
||||
|
||||
def get_fullname(self):
|
||||
return os.extsep.join([self.file_filename, self.file_extension])
|
||||
@@ -276,7 +274,7 @@ class DocumentPage(models.Model):
|
||||
|
||||
@models.permalink
|
||||
def get_absolute_url(self):
|
||||
return ('document_page_view', [self.id])
|
||||
return ('document_page_view', [self.pk])
|
||||
|
||||
|
||||
class MetadataGroupManager(models.Manager):
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from common.utils import pretty_size, pretty_size_10
|
||||
from permissions.api import check_permissions
|
||||
|
||||
from documents.conf.settings import STORAGE_BACKEND
|
||||
from models import Document, DocumentType, DocumentPage
|
||||
from documents.models import Document, DocumentType, DocumentPage
|
||||
|
||||
|
||||
def get_used_size(path, file_list):
|
||||
total_size = 0
|
||||
for filename in file_list:
|
||||
try:
|
||||
total_size += STORAGE_BACKEND().size(STORAGE_BACKEND.separator.join([path, filename]))
|
||||
total_size += STORAGE_BACKEND().size(STORAGE_BACKEND.separator.join([path, filename]))
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
||||
return total_size
|
||||
|
||||
|
||||
def storage_count(path=u'.'):
|
||||
directories, files = STORAGE_BACKEND().listdir(path)
|
||||
total_count = len(files)
|
||||
total_size = get_used_size(path, files)
|
||||
|
||||
|
||||
for directory in directories:
|
||||
file_count, files_size = storage_count(directory)
|
||||
total_count += file_count
|
||||
@@ -31,31 +31,30 @@ def storage_count(path=u'.'):
|
||||
|
||||
|
||||
def get_statistics():
|
||||
total_db_documents = Document.objects.only('id',).count()
|
||||
total_db_documents = Document.objects.only('pk',).count()
|
||||
|
||||
paragraphs = [
|
||||
_(u'Document types: %d') % DocumentType.objects.count(),
|
||||
_(u'Documents in database: %d') % total_db_documents,
|
||||
]
|
||||
|
||||
|
||||
|
||||
try:
|
||||
total_storage_documents, storage_used_space = storage_count()
|
||||
paragraphs.append(_(u'Documents in storage: %d') %
|
||||
total_storage_documents)
|
||||
paragraphs.append(_(u'Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d bytes') % {
|
||||
'base_2':pretty_size(storage_used_space),
|
||||
'base_10':pretty_size_10(storage_used_space),
|
||||
'bytes':storage_used_space
|
||||
'base_2': pretty_size(storage_used_space),
|
||||
'base_10': pretty_size_10(storage_used_space),
|
||||
'bytes': storage_used_space
|
||||
})
|
||||
except NotImplementedError:
|
||||
pass
|
||||
|
||||
paragraphs.append(
|
||||
_(u'Document pages in database: %d') % DocumentPage.objects.only('id',).count(),
|
||||
_(u'Document pages in database: %d') % DocumentPage.objects.only('pk',).count(),
|
||||
)
|
||||
|
||||
|
||||
return {
|
||||
'title':_(u'Document statistics'),
|
||||
'title': _(u'Document statistics'),
|
||||
'paragraphs': paragraphs
|
||||
}
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
from django.conf.urls.defaults import patterns, url
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.views.generic.create_update import create_object, update_object
|
||||
|
||||
from documents.conf.settings import PREVIEW_SIZE
|
||||
from documents.conf.settings import THUMBNAIL_SIZE
|
||||
@@ -10,7 +8,6 @@ from documents.conf.settings import ENABLE_SINGLE_DOCUMENT_UPLOAD
|
||||
|
||||
from converter.api import QUALITY_HIGH
|
||||
|
||||
|
||||
urlpatterns = patterns('documents.views',
|
||||
url(r'^document/list/$', 'document_list', (), 'document_list'),
|
||||
url(r'^document/list/recent/$', 'document_list_recent', (), 'document_list_recent'),
|
||||
@@ -57,7 +54,7 @@ urlpatterns = patterns('documents.views',
|
||||
|
||||
url(r'^document/page/(?P<document_page_id>\d+)/transformation/list/$', 'document_page_transformation_list', (), 'document_page_transformation_list'),
|
||||
url(r'^document/page/(?P<document_page_id>\d+)/transformation/create/$', 'document_page_transformation_create', (), 'document_page_transformation_create'),
|
||||
|
||||
|
||||
url(r'^document/page/transformation/(?P<document_page_transformation_id>\d+)/edit/$', 'document_page_transformation_edit', (), 'document_page_transformation_edit'),
|
||||
url(r'^document/page/transformation/(?P<document_page_transformation_id>\d+)/delete/$', 'document_page_transformation_delete', (), 'document_page_transformation_delete'),
|
||||
|
||||
|
||||
@@ -3,14 +3,13 @@ import urlparse
|
||||
import urllib
|
||||
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
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.views.generic.list_detail import object_detail, object_list
|
||||
from django.views.generic.list_detail import object_list
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.views.generic.create_update import create_object, delete_object, update_object
|
||||
from django.core.files.base import File
|
||||
from django.views.generic.create_update import delete_object, update_object
|
||||
from django.conf import settings
|
||||
from django.utils.http import urlencode
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
@@ -31,9 +30,7 @@ from documents.conf.settings import DELETE_STAGING_FILE_AFTER_UPLOAD
|
||||
from documents.conf.settings import USE_STAGING_DIRECTORY
|
||||
from documents.conf.settings import PREVIEW_SIZE
|
||||
from documents.conf.settings import THUMBNAIL_SIZE
|
||||
from documents.conf.settings import GROUP_MAX_RESULTS
|
||||
from documents.conf.settings import GROUP_SHOW_EMPTY
|
||||
from documents.conf.settings import DEFAULT_TRANSFORMATIONS
|
||||
from documents.conf.settings import UNCOMPRESS_COMPRESSED_LOCAL_FILES
|
||||
from documents.conf.settings import UNCOMPRESS_COMPRESSED_STAGING_FILES
|
||||
from documents.conf.settings import STORAGE_BACKEND
|
||||
@@ -46,23 +43,22 @@ from documents import PERMISSION_DOCUMENT_CREATE, \
|
||||
PERMISSION_DOCUMENT_CREATE, PERMISSION_DOCUMENT_PROPERTIES_EDIT, \
|
||||
PERMISSION_DOCUMENT_METADATA_EDIT, PERMISSION_DOCUMENT_VIEW, \
|
||||
PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, \
|
||||
PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_TOOLS, \
|
||||
PERMISSION_DOCUMENT_TRANSFORM, \
|
||||
PERMISSION_DOCUMENT_EDIT
|
||||
|
||||
from forms import DocumentTypeSelectForm, DocumentCreateWizard, \
|
||||
MetadataForm, DocumentForm, DocumentForm_edit, DocumentForm_view, \
|
||||
from documents.forms import DocumentTypeSelectForm, DocumentCreateWizard, \
|
||||
DocumentForm, DocumentForm_edit, DocumentForm_view, \
|
||||
StagingDocumentForm, DocumentTypeMetadataType, DocumentPreviewForm, \
|
||||
MetadataFormSet, DocumentPageForm, DocumentPageTransformationForm, \
|
||||
DocumentContentForm, DocumentPageForm_edit, MetaDataGroupForm, \
|
||||
DocumentPageForm_text
|
||||
|
||||
from metadata import save_metadata_list, \
|
||||
from documents.metadata import save_metadata_list, \
|
||||
decode_metadata_from_url, metadata_repr_as_list
|
||||
from models import Document, DocumentMetadata, DocumentType, MetadataType, \
|
||||
DocumentPage, DocumentPageTransformation, RecentDocument, \
|
||||
MetadataGroup
|
||||
from staging import StagingFile
|
||||
from utils import document_save_to_temp_dir
|
||||
from documents.models import Document, DocumentType, DocumentPage, \
|
||||
DocumentPageTransformation, RecentDocument, MetadataGroup
|
||||
from documents.staging import StagingFile
|
||||
from documents.utils import document_save_to_temp_dir
|
||||
from documents import metadata_group_link
|
||||
|
||||
PICTURE_ERROR_SMALL = u'picture_error.png'
|
||||
@@ -107,10 +103,10 @@ def document_create_sibling(request, document_id, multiple=True):
|
||||
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
urldata = []
|
||||
for id, metadata in enumerate(document.documentmetadata_set.all()):
|
||||
for pk, metadata in enumerate(document.documentmetadata_set.all()):
|
||||
if hasattr(metadata, 'value'):
|
||||
urldata.append(('metadata%s_id' % id, metadata.metadata_type_id))
|
||||
urldata.append(('metadata%s_value' % id, metadata.value))
|
||||
urldata.append(('metadata%s_id' % pk, metadata.metadata_type_id))
|
||||
urldata.append(('metadata%s_value' % pk, metadata.value))
|
||||
|
||||
if multiple:
|
||||
view = 'upload_multiple_documents_with_type'
|
||||
@@ -314,13 +310,14 @@ def document_view(request, document_id):
|
||||
#If GROUP_SHOW_EMPTY is False, remove empty groups from
|
||||
#dictionary
|
||||
metadata_groups = dict([(group, data) for group, data in metadata_groups.items() if data])
|
||||
|
||||
|
||||
if metadata_groups:
|
||||
subtemplates_dict.append(
|
||||
{
|
||||
'title':_(u'metadata groups (%s)') % len(metadata_groups.keys()),
|
||||
'title': _(u'metadata groups (%s)') % len(metadata_groups.keys()),
|
||||
'form': MetaDataGroupForm(groups=metadata_groups, current_document=document, links=[
|
||||
metadata_group_link]),
|
||||
metadata_group_link
|
||||
]),
|
||||
'name': 'generic_form_subtemplate.html',
|
||||
'form_action': reverse('metadatagroup_action'),
|
||||
'submit_method': 'GET',
|
||||
@@ -332,8 +329,9 @@ def document_view(request, document_id):
|
||||
'name': 'generic_list_subtemplate.html',
|
||||
'title': _(u'index links'),
|
||||
'object_list': document.documentmetadataindex_set.all(),
|
||||
'hide_link': True})
|
||||
|
||||
'hide_link': True
|
||||
})
|
||||
|
||||
return render_to_response('generic_detail.html', {
|
||||
'form_list': form_list,
|
||||
'object': document,
|
||||
@@ -365,7 +363,8 @@ def document_delete(request, document_id=None, document_id_list=None):
|
||||
messages.success(request, _(u'Document: %s deleted successfully.') % document)
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Document: %(document)s delete error: %(error)s') % {
|
||||
'document': document, 'error': e})
|
||||
'document': document, 'error': e
|
||||
})
|
||||
|
||||
return HttpResponseRedirect(next)
|
||||
|
||||
@@ -386,11 +385,15 @@ def document_delete(request, document_id=None, document_id_list=None):
|
||||
|
||||
|
||||
def document_multiple_delete(request):
|
||||
return document_delete(request, document_id_list=request.GET.get('id_list', []))
|
||||
return document_delete(
|
||||
request, document_id_list=request.GET.get('id_list', [])
|
||||
)
|
||||
|
||||
|
||||
def document_edit(request, document_id):
|
||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_PROPERTIES_EDIT])
|
||||
check_permissions(
|
||||
request.user, 'documents', [PERMISSION_DOCUMENT_PROPERTIES_EDIT]
|
||||
)
|
||||
|
||||
document = get_object_or_404(Document, pk=document_id)
|
||||
|
||||
@@ -456,7 +459,7 @@ def document_edit_metadata(request, document_id=None, document_id_list=None):
|
||||
metadata = {}
|
||||
for document in documents:
|
||||
RecentDocument.objects.add_document_for_user(request.user, document)
|
||||
|
||||
|
||||
for item in DocumentTypeMetadataType.objects.filter(document_type=document.document_type):
|
||||
value = document.documentmetadata_set.get(metadata_type=item.metadata_type).value if document.documentmetadata_set.filter(metadata_type=item.metadata_type) else u''
|
||||
if item.metadata_type in metadata:
|
||||
@@ -548,24 +551,24 @@ def get_document_image(request, document_id, size=PREVIEW_SIZE, quality=QUALITY_
|
||||
pass
|
||||
|
||||
tranformation_string = ' '.join(transformation_list)
|
||||
|
||||
|
||||
zoom = int(request.GET.get('zoom', 100))
|
||||
|
||||
if zoom < ZOOM_MIN_LEVEL:
|
||||
zoom = ZOOM_MIN_LEVEL
|
||||
zoom = ZOOM_MIN_LEVEL
|
||||
|
||||
if zoom > ZOOM_MAX_LEVEL:
|
||||
zoom = ZOOM_MAX_LEVEL
|
||||
zoom = ZOOM_MAX_LEVEL
|
||||
|
||||
rotation = int(request.GET.get('rotation', 0)) % 360
|
||||
|
||||
try:
|
||||
filepath = in_image_cache(document.checksum, size=size, format=u'jpg', quality=quality, extra_options=tranformation_string, page=page - 1, zoom=zoom, rotation=rotation)
|
||||
filepath = in_image_cache(document.checksum, size=size, file_format=u'jpg', quality=quality, extra_options=tranformation_string, page=page - 1, zoom=zoom, rotation=rotation)
|
||||
if filepath:
|
||||
return sendfile.sendfile(request, filename=filepath)
|
||||
#Save to a temporary location
|
||||
filepath = document_save_to_temp_dir(document, filename=document.checksum)
|
||||
output_file = convert(filepath, size=size, format=u'jpg', quality=quality, extra_options=tranformation_string, page=page - 1, zoom=zoom, rotation=rotation)
|
||||
output_file = convert(filepath, size=size, file_format=u'jpg', quality=quality, extra_options=tranformation_string, page=page - 1, zoom=zoom, rotation=rotation)
|
||||
return sendfile.sendfile(request, filename=output_file)
|
||||
except UnkownConvertError, e:
|
||||
if request.user.is_staff or request.user.is_superuser:
|
||||
@@ -611,9 +614,10 @@ def staging_file_preview(request, staging_file_id):
|
||||
try:
|
||||
output_file, errors = StagingFile.get(staging_file_id).preview()
|
||||
if errors and (request.user.is_staff or request.user.is_superuser):
|
||||
messages.warning(request, _(u'Error for transformation %(transformation)s:, %(error)s') %
|
||||
{'transformation': page_transformation.get_transformation_display(),
|
||||
'error': e})
|
||||
for error in errors:
|
||||
messages.warning(request, _(u'Staging file transformation error:, %(error)s') % {
|
||||
'error': error
|
||||
})
|
||||
|
||||
return sendfile.sendfile(request, filename=output_file)
|
||||
except UnkownConvertError, e:
|
||||
@@ -827,9 +831,9 @@ def document_view_simple(request, document_id):
|
||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW])
|
||||
|
||||
document = get_object_or_404(Document.objects.select_related(), pk=document_id)
|
||||
|
||||
|
||||
RecentDocument.objects.add_document_for_user(request.user, document)
|
||||
|
||||
|
||||
content_form = DocumentContentForm(document=document)
|
||||
|
||||
preview_form = DocumentPreviewForm(document=document)
|
||||
@@ -864,19 +868,23 @@ def document_view_simple(request, document_id):
|
||||
#If GROUP_SHOW_EMPTY is False, remove empty groups from
|
||||
#dictionary
|
||||
metadata_groups = dict([(group, data) for group, data in metadata_groups.items() if data])
|
||||
|
||||
|
||||
if metadata_groups:
|
||||
subtemplates_dict.append(
|
||||
{
|
||||
'title':_(u'metadata groups (%s)') % len(metadata_groups.keys()),
|
||||
'form': MetaDataGroupForm(groups=metadata_groups, current_document=document, links=[
|
||||
metadata_group_link]),
|
||||
'title': _(u'metadata groups (%s)') % len(metadata_groups.keys()),
|
||||
'form': MetaDataGroupForm(
|
||||
groups=metadata_groups, current_document=document,
|
||||
links=[
|
||||
metadata_group_link
|
||||
]
|
||||
),
|
||||
'name': 'generic_form_subtemplate.html',
|
||||
'form_action': reverse('metadatagroup_action'),
|
||||
'submit_method': 'GET',
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
return render_to_response('generic_detail.html', {
|
||||
'form_list': form_list,
|
||||
'object': document,
|
||||
@@ -914,7 +922,7 @@ def document_page_view(request, document_page_id):
|
||||
zoom = int(request.GET.get('zoom', 100))
|
||||
rotation = int(request.GET.get('rotation', 0))
|
||||
document_page_form = DocumentPageForm(instance=document_page, zoom=zoom, rotation=rotation)
|
||||
|
||||
|
||||
form_list = [
|
||||
{
|
||||
'form': document_page_form,
|
||||
@@ -926,7 +934,7 @@ def document_page_view(request, document_page_id):
|
||||
'object': document_page,
|
||||
'web_theme_hide_menus': True,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
|
||||
def document_page_text(request, document_page_id):
|
||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW])
|
||||
@@ -945,8 +953,8 @@ def document_page_text(request, document_page_id):
|
||||
'object': document_page,
|
||||
'web_theme_hide_menus': True,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
|
||||
|
||||
def document_page_edit(request, document_page_id):
|
||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_EDIT])
|
||||
|
||||
@@ -983,7 +991,7 @@ def document_page_navigation_next(request, document_page_id):
|
||||
document_page = get_object_or_404(DocumentPage, document=document_page.document, page_number=document_page.page_number + 1)
|
||||
return HttpResponseRedirect(reverse(view, args=[document_page.pk]))
|
||||
|
||||
|
||||
|
||||
def document_page_navigation_previous(request, document_page_id):
|
||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW])
|
||||
view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', '/')).path)
|
||||
@@ -996,7 +1004,7 @@ def document_page_navigation_previous(request, document_page_id):
|
||||
document_page = get_object_or_404(DocumentPage, document=document_page.document, page_number=document_page.page_number - 1)
|
||||
return HttpResponseRedirect(reverse(view, args=[document_page.pk]))
|
||||
|
||||
|
||||
|
||||
def document_page_navigation_first(request, document_page_id):
|
||||
check_permissions(request.user, 'documents', [PERMISSION_DOCUMENT_VIEW])
|
||||
view = resolve_to_name(urlparse.urlparse(request.META.get('HTTP_REFERER', '/')).path)
|
||||
@@ -1037,7 +1045,7 @@ def transform_page(request, document_page_id, zoom_function=None, rotation_funct
|
||||
# parse_qs return a dictionary whose values are lists
|
||||
zoom = int(urlparse.parse_qs(query).get('zoom', ['100'])[0])
|
||||
rotation = int(urlparse.parse_qs(query).get('rotation', ['0'])[0])
|
||||
|
||||
|
||||
if zoom_function:
|
||||
zoom = zoom_function(zoom)
|
||||
|
||||
@@ -1056,23 +1064,23 @@ def document_page_zoom_in(request, document_page_id):
|
||||
return transform_page(
|
||||
request,
|
||||
document_page_id,
|
||||
zoom_function = lambda x: ZOOM_MAX_LEVEL if x + ZOOM_PERCENT_STEP > ZOOM_MAX_LEVEL else x + ZOOM_PERCENT_STEP
|
||||
zoom_function=lambda x: ZOOM_MAX_LEVEL if x + ZOOM_PERCENT_STEP > ZOOM_MAX_LEVEL else x + ZOOM_PERCENT_STEP
|
||||
)
|
||||
|
||||
|
||||
|
||||
def document_page_zoom_out(request, document_page_id):
|
||||
return transform_page(
|
||||
request,
|
||||
document_page_id,
|
||||
zoom_function = lambda x: ZOOM_MIN_LEVEL if x - ZOOM_PERCENT_STEP < ZOOM_MIN_LEVEL else x - ZOOM_PERCENT_STEP
|
||||
zoom_function=lambda x: ZOOM_MIN_LEVEL if x - ZOOM_PERCENT_STEP < ZOOM_MIN_LEVEL else x - ZOOM_PERCENT_STEP
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
def document_page_rotate_right(request, document_page_id):
|
||||
return transform_page(
|
||||
request,
|
||||
document_page_id,
|
||||
rotation_function = lambda x: (x + ROTATION_STEP) % 360
|
||||
rotation_function=lambda x: (x + ROTATION_STEP) % 360
|
||||
)
|
||||
|
||||
|
||||
@@ -1080,7 +1088,7 @@ def document_page_rotate_left(request, document_page_id):
|
||||
return transform_page(
|
||||
request,
|
||||
document_page_id,
|
||||
rotation_function = lambda x: (x - ROTATION_STEP) % 360
|
||||
rotation_function=lambda x: (x - ROTATION_STEP) % 360
|
||||
)
|
||||
|
||||
|
||||
@@ -1101,7 +1109,7 @@ def metadatagroup_view(request, document_id, metadata_group_id):
|
||||
metadata_group = get_object_or_404(MetadataGroup, pk=metadata_group_id)
|
||||
|
||||
object_list, errors = document.get_metadata_groups(metadata_group)
|
||||
|
||||
|
||||
return render_to_response('generic_list.html', {
|
||||
'object_list': object_list,
|
||||
'title': _(u'documents in group: %s, for document: %s') % (metadata_group, document),
|
||||
|
||||
Reference in New Issue
Block a user