Only allow clickable thumbnails for staging files with a valid image
This commit is contained in:
@@ -6,6 +6,8 @@ from django.core.files.base import File
|
|||||||
from django.core.exceptions import ObjectDoesNotExist
|
from django.core.exceptions import ObjectDoesNotExist
|
||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
|
|
||||||
|
from documents.conf.settings import THUMBNAIL_SIZE
|
||||||
|
|
||||||
from mimetype.api import get_icon_file_path, get_error_icon_file_path, \
|
from mimetype.api import get_icon_file_path, get_error_icon_file_path, \
|
||||||
get_mimetype
|
get_mimetype
|
||||||
from converter.api import convert, cache_cleanup
|
from converter.api import convert, cache_cleanup
|
||||||
@@ -134,9 +136,13 @@ class StagingFile(object):
|
|||||||
else:
|
else:
|
||||||
raise OSError(ugettext(u'Unable to delete staging file: %s') % exc)
|
raise OSError(ugettext(u'Unable to delete staging file: %s') % exc)
|
||||||
|
|
||||||
|
def get_valid_image(self, size=THUMBNAIL_SIZE, transformations=None):
|
||||||
|
return convert(self.filepath, size=size, cleanup_files=False, transformations=transformations)
|
||||||
|
|
||||||
def get_image(self, size, transformations):
|
def get_image(self, size, transformations):
|
||||||
try:
|
try:
|
||||||
return convert(self.filepath, size=size, cleanup_files=False, transformations=transformations)
|
return self.get_valid_image(size=size, transformations=transformations)
|
||||||
|
#return convert(self.filepath, size=size, cleanup_files=False, transformations=transformations)
|
||||||
except UnknownFileFormat:
|
except UnknownFileFormat:
|
||||||
mimetype, encoding = get_mimetype(open(self.filepath, 'rb'), self.filepath)
|
mimetype, encoding = get_mimetype(open(self.filepath, 'rb'), self.filepath)
|
||||||
return get_icon_file_path(mimetype)
|
return get_icon_file_path(mimetype)
|
||||||
|
|||||||
@@ -26,7 +26,13 @@ class FamFamRadioSelect(forms.widgets.RadioSelect):
|
|||||||
|
|
||||||
|
|
||||||
def staging_file_thumbnail(staging_file):
|
def staging_file_thumbnail(staging_file):
|
||||||
return mark_safe(u'<a class="fancybox" href="%(url)s"><img class="lazy-load" data-href="%(thumbnail)s" src="%(static_url)s/images/ajax-loader.gif" alt="%(string)s" /><noscript><img src="%(thumbnail)s" alt="%(string)s" /></noscript></a>' % {
|
try:
|
||||||
|
staging_file.get_valid_image()
|
||||||
|
template = u'<a class="fancybox" href="%(url)s"><img class="lazy-load" data-href="%(thumbnail)s" src="%(static_url)s/images/ajax-loader.gif" alt="%(string)s" /><noscript><img src="%(thumbnail)s" alt="%(string)s" /></noscript></a>'
|
||||||
|
except:
|
||||||
|
template = u'<img class="lazy-load" data-href="%(thumbnail)s" src="%(static_url)s/images/ajax-loader.gif" alt="%(string)s" /><noscript><img src="%(thumbnail)s" alt="%(string)s" /></noscript>'
|
||||||
|
|
||||||
|
return mark_safe(template % {
|
||||||
'url': reverse('staging_file_preview', args=[staging_file.source.source_type, staging_file.source.pk, staging_file.id]),
|
'url': reverse('staging_file_preview', args=[staging_file.source.source_type, staging_file.source.pk, staging_file.id]),
|
||||||
'thumbnail': reverse('staging_file_thumbnail', args=[staging_file.source.pk, staging_file.id]),
|
'thumbnail': reverse('staging_file_thumbnail', args=[staging_file.source.pk, staging_file.id]),
|
||||||
'static_url': settings.STATIC_URL,
|
'static_url': settings.STATIC_URL,
|
||||||
|
|||||||
Reference in New Issue
Block a user