Files
mayan-edms/mayan/apps/documents/widgets.py
Roberto Rosario 213f3c1fb4 Cleanup SourceColumn invocations
Update the code of some SourceColumn invocations to be model methods
instead of lambda wapped functions.

Move the translated labels to the models too.

Signed-off-by: Roberto Rosario <Roberto.Rosario@mayan-edms.com>
2018-12-21 23:47:14 -04:00

86 lines
2.6 KiB
Python

from __future__ import unicode_literals
from django import forms
from django.template.loader import render_to_string
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from .settings import (
setting_display_height, setting_display_width, setting_preview_height,
setting_preview_width, setting_thumbnail_height, setting_thumbnail_width
)
class DocumentPageImageWidget(forms.widgets.Widget):
template_name = 'documents/forms/widgets/document_page_image_interactive.html'
def __init__(self, attrs=None):
default_attrs = {
'rotation': 0,
'zoom': 100,
'width': setting_display_width.value,
'height': setting_display_height.value,
}
if attrs:
default_attrs.update(attrs)
super(DocumentPageImageWidget, self).__init__(default_attrs)
def format_value(self, value):
if value == '' or value is None:
return None
return value
class DocumentPagesCarouselWidget(forms.widgets.Widget):
"""
Display many small representations of a document's pages
"""
template_name = 'documents/forms/widgets/document_page_carousel.html'
def __init__(self, attrs=None):
default_attrs = {
'height': setting_preview_height.value,
'width': setting_preview_width.value,
}
if attrs:
default_attrs.update(attrs)
super(DocumentPagesCarouselWidget, self).__init__(default_attrs)
def format_value(self, value):
if value == '' or value is None:
return None
return value
class DocumentPageThumbnailWidget(object):
def render(self, instance):
return render_to_string(
template_name='documents/widgets/document_thumbnail.html',
context={
# Disable the clickable link if the document is in the trash
'disable_title_link': instance.is_in_trash,
'gallery_name': 'document_list',
'instance': instance,
'size_preview_width': setting_preview_width.value,
'size_preview_height': setting_preview_height.value,
'size_thumbnail_width': setting_thumbnail_width.value,
'size_thumbnail_height': setting_thumbnail_height.value,
}
)
def document_link(document):
return mark_safe('<a href="%s">%s</a>' % (
document.get_absolute_url(), document)
)
def widget_document_page_number(context):
return context['object'].pages.count()
def widget_document_version_page_number(context):
return context['object'].pages.count()