from django.utils.safestring import mark_safe from django.conf import settings from django.utils.translation import ugettext_lazy as _ from django.core.urlresolvers import reverse from django.utils.http import urlencode from converter.exceptions import UnknownFileFormat, UnkownConvertError def document_thumbnail(document): return document_html_widget(document, click_view='document_preview') def document_link(document): return mark_safe(u'%s' % (reverse('document_view_simple', args=[document.pk]), document)) def document_html_widget(document, size='document_thumbnail', click_view=None, page=None, zoom=None, rotation=None, gallery_name=None, fancybox_class='fancybox'): result = [] alt_text = _(u'document page image') query_dict = {} if page: query_dict['page'] = page if zoom: query_dict['zoom'] = zoom if rotation: query_dict['rotation'] = rotation if gallery_name: gallery_template = u'rel="%s"' % gallery_name else: gallery_template = u'' query_string = urlencode(query_dict) preview_view = u'%s?%s' % (reverse(size, args=[document.pk]), query_string) try: document.get_valid_image() result.append('
') if click_view: result.append('' % (gallery_template, fancybox_class, u'%s?%s' % (reverse(click_view, args=[document.pk]), query_string))) result.append('%s' % (preview_view, settings.STATIC_URL, alt_text)) result.append('' % (preview_view, alt_text)) if click_view: result.append('') result.append('
') except (UnknownFileFormat, UnkownConvertError): result.append('
') result.append('%s' % (preview_view, settings.STATIC_URL, alt_text)) result.append('' % (preview_view, alt_text)) result.append('
') return mark_safe(u''.join(result))