from __future__ import absolute_import 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.literals import (DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION, DEFAULT_PAGE_NUMBER) from mimetype.api import get_error_icon_url def document_thumbnail(document, **kwargs): return document_html_widget(document, click_view='document_preview', **kwargs) def document_link(document): return mark_safe(u'%s' % (reverse('document_view_simple', args=[document.pk]), document)) def document_html_widget(document, view='document_thumbnail', click_view=None, page=DEFAULT_PAGE_NUMBER, zoom=DEFAULT_ZOOM_LEVEL, rotation=DEFAULT_ROTATION, gallery_name=None, fancybox_class='fancybox', version=None, title=None): result = [] alt_text = _(u'document page image') if not version: version = document.latest_version.pk query_dict = { 'page': page, 'zoom': zoom, 'rotation': rotation, 'version': version, } 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(view, args=[document.pk]), query_string) plain_template = [] plain_template.append(u'%s' % (preview_view, alt_text)) result.append(u'
' % (document.pk, page if page else 1)) if title: title_template = u'title="%s"' % title else: title_template = u'' if click_view: result.append(u'' % (gallery_template, fancybox_class, u'%s?%s' % (reverse(click_view, args=[document.pk]), query_string), title_template)) result.append(u'%s' % (preview_view, settings.STATIC_URL, alt_text)) result.append(u'' % (preview_view, alt_text)) if click_view: result.append(u'') result.append(u'
') result.append(u''' ''' % { 'url': reverse('documents-expensive-is_zoomable', args=[document.pk, version, page]), 'pk': document.pk, 'page': page if page else 1, 'plain_template': mark_safe(u''.join(plain_template)), 'error_image': u''.join([settings.STATIC_URL, get_error_icon_url()]), } ) return mark_safe(u''.join(result))