From 3aaebe3b6d3ba18adc5756af78e7c37e6486d2b2 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Fri, 16 Jan 2015 21:35:06 +0000 Subject: [PATCH] give StreamValue a native HTML rendering --- wagtail/wagtailadmin/blocks.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailadmin/blocks.py b/wagtail/wagtailadmin/blocks.py index 20e13d242..9263376e4 100644 --- a/wagtail/wagtailadmin/blocks.py +++ b/wagtail/wagtailadmin/blocks.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + import re import collections @@ -5,7 +7,7 @@ from django.core.exceptions import ValidationError from django.utils.html import format_html, format_html_join from django.utils.safestring import mark_safe from django.utils.text import capfirst -from django.utils.encoding import python_2_unicode_compatible +from django.utils.encoding import force_text, python_2_unicode_compatible from django.utils.deconstruct import deconstructible from django.template.loader import render_to_string from django.forms import Media @@ -693,6 +695,7 @@ class StreamBlock(six.with_metaclass(DeclarativeSubBlocksMetaclass, BaseStreamBl pass +@python_2_unicode_compatible class StreamValue(collections.Sequence): """ Custom type used to represent the value of a StreamBlock; behaves as a sequence of block values @@ -710,3 +713,8 @@ class StreamValue(collections.Sequence): def __repr__(self): return repr(list(self)) + + def __str__(self): + return format_html_join('\n', '
{0}
', + [(force_text(value), block_type) for value, block_type in self.values_with_types] + )