Add CodeTextAreaFieldRenderer, refactor label profile form to use it

This commit is contained in:
Lance Edgar 2016-07-13 11:04:23 -05:00
parent a093b84c98
commit fdf1419ea2
3 changed files with 16 additions and 17 deletions

View file

@ -28,7 +28,7 @@ from __future__ import unicode_literals, absolute_import
from .core import CustomFieldRenderer, DateFieldRenderer
from .common import (StrippedTextFieldRenderer, AutocompleteFieldRenderer,
from .common import (StrippedTextFieldRenderer, CodeTextAreaFieldRenderer, AutocompleteFieldRenderer,
DecimalFieldRenderer, CurrencyFieldRenderer,
DateTimeFieldRenderer, DateTimePrettyFieldRenderer, TimeFieldRenderer,
EnumFieldRenderer, YesNoFieldRenderer)

View file

@ -36,6 +36,7 @@ import formalchemy
from formalchemy import helpers
from formalchemy.fields import FieldRenderer, SelectFieldRenderer, CheckBoxFieldRenderer
from pyramid.renderers import render
from webhelpers.html import HTML
from tailbone.util import pretty_datetime, raw_datetime
@ -52,6 +53,19 @@ class StrippedTextFieldRenderer(formalchemy.TextFieldRenderer):
return value.strip()
class CodeTextAreaFieldRenderer(formalchemy.TextAreaFieldRenderer):
def render_readonly(self, **kwargs):
value = self.raw_value
if not value:
return ''
return HTML.tag('pre', c=value)
def render(self, **kwargs):
kwargs.setdefault('size', (80, 8))
return super(CodeTextAreaFieldRenderer, self).render(**kwargs)
class AutocompleteFieldRenderer(FieldRenderer):
"""
Custom renderer for an autocomplete field.