from __future__ import unicode_literals from django import forms from django.utils.encoding import force_text from django.utils.html import conditional_escape from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _, ugettext from mayan.apps.common.widgets import TextAreaDiv from .models import DocumentVersionPageContent class DocumentContentForm(forms.Form): """ Form that concatenates all of a document pages' text content into a single textarea widget """ def __init__(self, *args, **kwargs): self.document = kwargs.pop('instance', None) super(DocumentContentForm, self).__init__(*args, **kwargs) content = [] self.fields['contents'].initial = '' try: document_pages = self.document.pages.all() except AttributeError: document_pages = [] for document_page in document_pages: try: page_content = document_page.content_object.content.content except DocumentVersionPageContent.DoesNotExist: pass else: content.append(conditional_escape(force_text(page_content))) content.append( '\n\n\n