From 59bf2b2ba5491878a9d6a8ee1a3e9c776f41e03e Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Wed, 7 Jan 2015 16:54:04 +0000 Subject: [PATCH] specify a custom widget for StreamFieldPanel (that currently doesn't do very much) --- wagtail/wagtailadmin/edit_handlers.py | 4 +++- wagtail/wagtailadmin/views/pages.py | 1 + wagtail/wagtailadmin/widgets.py | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/wagtail/wagtailadmin/edit_handlers.py b/wagtail/wagtailadmin/edit_handlers.py index 54174d57d..04ffd0ede 100644 --- a/wagtail/wagtailadmin/edit_handlers.py +++ b/wagtail/wagtailadmin/edit_handlers.py @@ -619,7 +619,9 @@ Page.settings_panels = [ class BaseStreamFieldPanel(BaseFieldPanel): - pass + @classmethod + def widget_overrides(cls): + return {cls.field_name: widgets.StreamWidget()} def StreamFieldPanel(field_name): return type(str('_StreamFieldPanel'), (BaseStreamFieldPanel,), { diff --git a/wagtail/wagtailadmin/views/pages.py b/wagtail/wagtailadmin/views/pages.py index 873780cdf..a379e3f3b 100644 --- a/wagtail/wagtailadmin/views/pages.py +++ b/wagtail/wagtailadmin/views/pages.py @@ -302,6 +302,7 @@ def edit(request, page_id): form.clean = clean if form.is_valid() and not page.locked: + raise Exception(repr(form.cleaned_data)) page = form.save(commit=False) is_publishing = bool(request.POST.get('action-publish')) and page_perms.can_publish() diff --git a/wagtail/wagtailadmin/widgets.py b/wagtail/wagtailadmin/widgets.py index f8282082c..f682cf210 100644 --- a/wagtail/wagtailadmin/widgets.py +++ b/wagtail/wagtailadmin/widgets.py @@ -5,6 +5,7 @@ import json from django.core.urlresolvers import reverse from django.forms import widgets from django.contrib.contenttypes.models import ContentType +from django.utils.safestring import mark_safe from wagtail.utils.widgets import WidgetWithScript from wagtail.wagtailcore.models import Page @@ -53,3 +54,11 @@ class AdminPageChooser(WidgetWithScript, widgets.Input): app=content_type.app_label, model=content_type.model)), parent=json.dumps(parent.id if parent else None)) + + +class StreamWidget(widgets.Widget): + def render(self, name, value, attrs=None): + return mark_safe("hello from StreamWidget") + + def value_from_datadict(self, data, files, name): + return 'lol idk'