Merge branch 'feature/non_clickable_mimetype_icons' into development

This commit is contained in:
Roberto Rosario
2011-11-07 02:20:17 -04:00
8 changed files with 77 additions and 21 deletions
+2
View File
@@ -67,6 +67,8 @@ def convert(input_filepath, output_filepath=None, cleanup_files=False, *args, **
rotation = kwargs.get('rotation', DEFAULT_ROTATION) rotation = kwargs.get('rotation', DEFAULT_ROTATION)
page = kwargs.get('page', DEFAULT_PAGE_NUMBER) page = kwargs.get('page', DEFAULT_PAGE_NUMBER)
transformations = kwargs.get('transformations', []) transformations = kwargs.get('transformations', [])
if transformations is None:
transformations = []
unoconv_output = None unoconv_output = None
+28 -11
View File
@@ -113,21 +113,38 @@ class DocumentPagesCarouselWidget(forms.widgets.Widget):
output.append(u'<div style="white-space:nowrap; overflow: auto;">') output.append(u'<div style="white-space:nowrap; overflow: auto;">')
for page in value.documentpage_set.all(): for page in value.documentpage_set.all():
output.append( try:
u'''<div style="display: inline-block; margin: 5px 10px 10px 10px;"> page.document.get_valid_image()
<div class="tc">%(page_string)s %(page)s</div> template = u'''<div style="display: inline-block; margin: 5px 10px 10px 10px;">
<div class="tc" style="border: 1px solid black; margin: 5px 0px 5px 0px;"> <div class="tc">%(page_string)s %(page)s</div>
<a rel="page_gallery" class="fancybox-noscaling" href="%(view_url)s?page=%(page)d"> <div class="tc" style="border: 1px solid black; margin: 5px 0px 5px 0px;">
<a rel="page_gallery" class="fancybox-noscaling" href="%(view_url)s?page=%(page)d">
<img class="lazy-load" data-href="%(img)s?page=%(page)d" src="%(static_url)s/images/ajax-loader.gif" alt="%(string)s" />
<noscript>
<img src="%(img)s?page=%(page)d" alt="%(string)s" />
</noscript>
</a>
</div>
<div class="tc">
<a class="fancybox-iframe" href="%(url)s"><span class="famfam active famfam-page_white_go"></span>%(details_string)s</a>
</div>
</div>'''
except:
template = u'''<div style="display: inline-block; margin: 5px 10px 10px 10px;">
<div class="tc">%(page_string)s %(page)s</div>
<div class="tc" style="border: 1px solid black; margin: 5px 0px 5px 0px;">
<img class="lazy-load" data-href="%(img)s?page=%(page)d" src="%(static_url)s/images/ajax-loader.gif" alt="%(string)s" /> <img class="lazy-load" data-href="%(img)s?page=%(page)d" src="%(static_url)s/images/ajax-loader.gif" alt="%(string)s" />
<noscript> <noscript>
<img src="%(img)s?page=%(page)d" alt="%(string)s" /> <img src="%(img)s?page=%(page)d" alt="%(string)s" />
</noscript> </noscript>
</a> </div>
</div> <div class="tc">
<div class="tc"> <a class="fancybox-iframe" href="%(url)s"><span class="famfam active famfam-page_white_go"></span>%(details_string)s</a>
<a class="fancybox-iframe" href="%(url)s"><span class="famfam active famfam-page_white_go"></span>%(details_string)s</a> </div>
</div> </div>'''
</div>''' % {
output.append(template % {
'url': reverse('document_page_view', args=[page.pk]), 'url': reverse('document_page_view', args=[page.pk]),
'img': reverse('document_preview_multipage', args=[value.pk]), 'img': reverse('document_preview_multipage', args=[value.pk]),
'page': page.page_number, 'page': page.page_number,
+5 -2
View File
@@ -248,10 +248,13 @@ class Document(models.Model):
document_file = document_save_to_temp_dir(self, self.checksum) document_file = document_save_to_temp_dir(self, self.checksum)
return convert(document_file, output_filepath=cache_file_path, page=page, transformations=transformations) return convert(document_file, output_filepath=cache_file_path, page=page, transformations=transformations)
def get_valid_image(self, size=DISPLAY_SIZE, page=DEFAULT_PAGE_NUMBER, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION):
image_cache_name = self.get_image_cache_name(page=page)
return convert(image_cache_name, cleanup_files=False, size=size, zoom=zoom, rotation=rotation)
def get_image(self, size=DISPLAY_SIZE, page=DEFAULT_PAGE_NUMBER, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION): def get_image(self, size=DISPLAY_SIZE, page=DEFAULT_PAGE_NUMBER, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION):
try: try:
image_cache_name = self.get_image_cache_name(page=page) return self.get_valid_image(size=size, page=page, zoom=zoom, rotation=rotation)
return convert(image_cache_name, cleanup_files=False, size=size, zoom=zoom, rotation=rotation)
except UnknownFileFormat: except UnknownFileFormat:
return get_icon_file_path(self.file_mimetype) return get_icon_file_path(self.file_mimetype)
except UnkownConvertError: except UnkownConvertError:
+7 -1
View File
@@ -6,7 +6,13 @@ from django.core.urlresolvers import reverse
def document_thumbnail(document): def document_thumbnail(document):
try: try:
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>' % { document.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>'
try:
return mark_safe(template % {
'url': reverse('document_preview', args=[document.pk]), 'url': reverse('document_preview', args=[document.pk]),
'thumbnail': reverse('document_thumbnail', args=[document.pk]), 'thumbnail': reverse('document_thumbnail', args=[document.pk]),
'static_url': settings.STATIC_URL, 'static_url': settings.STATIC_URL,
+21 -3
View File
@@ -30,8 +30,9 @@ class DocumentGroupImageWidget(forms.widgets.Widget):
for document in value['group_data']: for document in value['group_data']:
tags_template = get_tags_inline_widget(document) tags_template = get_tags_inline_widget(document)
output.append( try:
u'''<div style="display: inline-block; margin: 0px 10px 10px 10px; %(current)s"> document.get_valid_image()
template = u'''<div style="display: inline-block; margin: 0px 10px 10px 10px; %(current)s">
<div class="tc">%(document_name)s</div> <div class="tc">%(document_name)s</div>
<div class="tc">%(page_string)s: %(document_pages)d</div> <div class="tc">%(page_string)s: %(document_pages)d</div>
%(tags_template)s %(tags_template)s
@@ -46,7 +47,24 @@ class DocumentGroupImageWidget(forms.widgets.Widget):
<div class="tc"> <div class="tc">
<a href="%(url)s"><span class="famfam active famfam-page_go"></span>%(details_string)s</a> <a href="%(url)s"><span class="famfam active famfam-page_go"></span>%(details_string)s</a>
</div> </div>
</div>''' % { </div>'''
except:
template = u'''<div style="display: inline-block; margin: 0px 10px 10px 10px; %(current)s">
<div class="tc">%(document_name)s</div>
<div class="tc">%(page_string)s: %(document_pages)d</div>
%(tags_template)s
<div class="tc">
<img class="lazy-load" style="border: 1px solid black; margin: 10px;" src="%(static_url)s/images/ajax-loader.gif" data-href="%(img)s" alt="%(string)s" />
<noscript>
<img style="border: 1px solid black; margin: 10px;" src="%(img)s" alt="%(string)s" />
</noscript>
</div>
<div class="tc">
<a href="%(url)s"><span class="famfam active famfam-page_go"></span>%(details_string)s</a>
</div>
</div>'''
output.append(template % {
'url': reverse('document_view_simple', args=[document.pk]), 'url': reverse('document_view_simple', args=[document.pk]),
'img': reverse('document_preview_multipage', args=[document.pk]), 'img': reverse('document_preview_multipage', args=[document.pk]),
'current': u'border: 5px solid black; padding: 3px;' if value['current_document'] == document else u'', 'current': u'border: 5px solid black; padding: 3px;' if value['current_document'] == document else u'',
+7 -1
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)
+7 -1
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,
-2
View File
@@ -10,8 +10,6 @@ def get_tags_inline_widget(document):
tag_count = document.tags.count() tag_count = document.tags.count()
if tag_count: if tag_count:
tags_template.append(u'<div class="tc">') tags_template.append(u'<div class="tc">')
tags_template.append(u'<div>%(tag_string)s: %(tag_count)s</div>' % {
'tag_string': _(u'Tags'), 'tag_count': tag_count})
for tag in document.tags.all(): for tag in document.tags.all():
tags_template.append(u'<ul class="tags"><li style="background: %s;">%s</li></ul>' % (tag.tagproperties_set.get().get_color_code(), tag.name)) tags_template.append(u'<ul class="tags"><li style="background: %s;">%s</li></ul>' % (tag.tagproperties_set.get().get_color_code(), tag.name))