Always strip whitespace from label profile 'spec' field input

Otherwise we can't properly load (import) the spec object...
This commit is contained in:
Lance Edgar 2016-06-29 18:59:56 -05:00
parent 35d4d35fd6
commit e0bd20ee23
3 changed files with 16 additions and 1 deletions

View file

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

View file

@ -40,6 +40,18 @@ from pyramid.renderers import render
from tailbone.util import pretty_datetime, raw_datetime
class StrippedTextFieldRenderer(formalchemy.TextFieldRenderer):
"""
Standard text field renderer, which strips whitespace from either end of
the input value on deserialization.
"""
def deserialize(self):
value = super(StrippedTextFieldRenderer, self).deserialize()
if value is not None:
return value.strip()
class AutocompleteFieldRenderer(FieldRenderer):
"""
Custom renderer for an autocomplete field.

View file

@ -32,6 +32,7 @@ import formalchemy
from webhelpers.html import HTML
from pyramid.httpexceptions import HTTPFound
from tailbone import forms
from tailbone.db import Session
from tailbone.views import MasterView
from tailbone.views.continuum import VersionView, version_defaults
@ -70,6 +71,8 @@ class ProfilesView(MasterView):
readonly=True)
def configure_fieldset(self, fs):
fs.printer_spec.set(renderer=forms.renderers.StrippedTextFieldRenderer)
fs.formatter_spec.set(renderer=forms.renderers.StrippedTextFieldRenderer)
fs.format.set(renderer=FormatFieldRenderer)
fs.configure(
include=[