Only allow clickable thumbnails for staging files with a valid image

This commit is contained in:
Roberto Rosario
2011-11-07 02:08:28 -04:00
parent fd2a284505
commit 38a035685b
2 changed files with 14 additions and 2 deletions

View File

@@ -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)

View File

@@ -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,