From 24311111bb163bf6e8cc223a8933fd54b1a5e617 Mon Sep 17 00:00:00 2001 From: Andrzej Jankowski Date: Tue, 3 Feb 2015 07:51:50 +0100 Subject: [PATCH] Fixed ReadOnlyWidget and ReadOnlySelectWidget. Widgets shouldn't paste "None" string as a value when value is None - empty string is much better. Previous behavior produce many validation errors. E.g. IntegerField validation said that it's not a number - that's right because "None" it is not a number :) --- src/ralph/ui/widgets.py | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/ralph/ui/widgets.py b/src/ralph/ui/widgets.py index de095940a9..20ba5715da 100644 --- a/src/ralph/ui/widgets.py +++ b/src/ralph/ui/widgets.py @@ -25,15 +25,17 @@ def render(self, name, value, attrs=None, choices=()): display = unicode(labels.get(value, '')) attr_class = self.attrs.get('class', '') return mark_safe( - '
' - '' - '%s' - '
' % ( - escape(attr_class), - escape(name), - escape(value), - escape(display), - ), + """ +
+ + {display} +
+ """.format( + classes=escape(attr_class), + name=escape(name), + value=escape(value) if value is not None else '', + display=escape(display), + ) ) @@ -78,10 +80,19 @@ class ReadOnlyWidget(forms.Widget): def render(self, name, value, attrs=None, choices=()): attr_class = escape(self.attrs.get('class', '')) - return mark_safe(''' - -
%s
''' % ( - escape(name), escape(value), attr_class, escape(value))) + return mark_safe( + """ + +
+ {value} +
+ + """.format( + name=escape(name), + value=escape(value) if value is not None else "", + attributes=attr_class, + ) + ) class ReadOnlyPreWidget(forms.Widget):