From 76b0964c940ceeb79e8f73fea0f2d03e97ef3735 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Wed, 11 Feb 2015 12:20:32 +0000 Subject: [PATCH] add DocumentChooserBlock --- wagtail/wagtaildocs/blocks.py | 23 +++++++++++++++++++++++ wagtail/wagtaildocs/widgets.py | 3 +-- 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 wagtail/wagtaildocs/blocks.py diff --git a/wagtail/wagtaildocs/blocks.py b/wagtail/wagtaildocs/blocks.py new file mode 100644 index 000000000..07e893d74 --- /dev/null +++ b/wagtail/wagtaildocs/blocks.py @@ -0,0 +1,23 @@ +from __future__ import unicode_literals + +from django.utils.functional import cached_property +from django.utils.html import format_html + +from wagtail.wagtailadmin.blocks import ChooserBlock + +class DocumentChooserBlock(ChooserBlock): + @cached_property + def target_model(self): + from wagtail.wagtaildocs.models import Document + return Document + + @cached_property + def widget(self): + from wagtail.wagtaildocs.widgets import AdminDocumentChooser + return AdminDocumentChooser + + def render_basic(self, value): + if value: + return format_html('{1}', value.url, value.title) + else: + return '' diff --git a/wagtail/wagtaildocs/widgets.py b/wagtail/wagtaildocs/widgets.py index 73267b539..75225ef0c 100644 --- a/wagtail/wagtaildocs/widgets.py +++ b/wagtail/wagtaildocs/widgets.py @@ -14,10 +14,9 @@ class AdminDocumentChooser(AdminChooser): choose_another_text = _('Choose another document') def render_html(self, name, value, attrs): + instance, value = self.get_instance_and_id(Document, value) original_field_html = super(AdminDocumentChooser, self).render_html(name, value, attrs) - instance = self.get_instance(Document, value) - return render_to_string("wagtaildocs/widgets/document_chooser.html", { 'widget': self, 'original_field_html': original_field_html,