diff --git a/opentech/apply/funds/blocks.py b/opentech/apply/funds/blocks.py index d89b2c3187ca1632b87e37737bb70ddda45be479..0cbf96ae8a819c842fae22fc4a749b1a7e57c292 100644 --- a/opentech/apply/funds/blocks.py +++ b/opentech/apply/funds/blocks.py @@ -7,8 +7,10 @@ from django.utils.translation import ugettext_lazy as _ from django.utils.text import mark_safe from wagtail.wagtailcore.blocks import StaticBlock -from opentech.apply.stream_forms.blocks import FormFieldsBlock, FormFieldBlock +from tinymce.widgets import TinyMCE + +from opentech.apply.stream_forms.blocks import FormFieldsBlock, FormFieldBlock, TextFieldBlock from opentech.apply.categories.blocks import CategoryQuestionBlock @@ -20,7 +22,19 @@ def find_duplicates(items): return duplicates +class RichTextFieldBlock(TextFieldBlock): + widget = TinyMCE(mce_attrs={ + 'elementpath': False, + 'branding': False, + }) + + class Meta: + label = _('Rich text field') + icon = 'form' + + class CustomFormFieldsBlock(FormFieldsBlock): + rich_text = RichTextFieldBlock(group=_('Fields')) category = CategoryQuestionBlock(group=_('Custom')) def __init__(self, *args, **kwargs): diff --git a/opentech/apply/funds/templates/funds/fund_type.html b/opentech/apply/funds/templates/funds/fund_type.html index 4d3a7bbf85264de9a0cfb14f79cfa5970c8071e1..76ac0ea2b0fcc515d6b24fa6aa7b7a2da055fe87 100644 --- a/opentech/apply/funds/templates/funds/fund_type.html +++ b/opentech/apply/funds/templates/funds/fund_type.html @@ -1,10 +1,11 @@ {% extends "base.html" %} -{% load wagtailcore_tags %} +{% load wagtailcore_tags static %} {% block content %} <h1>{% block title %}{{ page.title }}{% endblock %}</h1> <form action="" method="POST"> + {{ form.media }} {% csrf_token %} {% if form.errors or form.non_field_errors %} diff --git a/opentech/apply/stream_forms/blocks.py b/opentech/apply/stream_forms/blocks.py index f3b0906e6770e5246c6487cdcb9ac760c6ae7e43..00ac5026f87581a245ec0fba0982fcd3ed656d24 100644 --- a/opentech/apply/stream_forms/blocks.py +++ b/opentech/apply/stream_forms/blocks.py @@ -230,6 +230,7 @@ class FileFieldBlock(OptionalFormFieldBlock): class FormFieldsBlock(StreamBlock): + text_markup = RichTextBlock(group=_('Other'), label=_('Paragraph')) char = CharFieldBlock(group=_('Fields')) text = TextFieldBlock(group=_('Fields')) number = NumberFieldBlock(group=_('Fields')) @@ -242,7 +243,6 @@ class FormFieldsBlock(StreamBlock): datetime = DateTimeFieldBlock(group=_('Fields')) image = ImageFieldBlock(group=_('Fields')) file = FileFieldBlock(group=_('Fields')) - text_markup = RichTextBlock(group=_('Other'), label=_('Paragraph')) class Meta: label = _('Form fields') diff --git a/opentech/settings/base.py b/opentech/settings/base.py index 7405abda9515029499f8bded1239684cda298dbe..928d6dd05ef1158a90226ab773580689a1ca11de 100644 --- a/opentech/settings/base.py +++ b/opentech/settings/base.py @@ -55,6 +55,7 @@ INSTALLED_APPS = [ 'taggit', 'django_extensions', 'captcha', + 'tinymce', 'wagtailcaptcha', 'django_tables2', diff --git a/opentech/urls.py b/opentech/urls.py index 9048a2eedac7677a8273b30a5ec743eb795a84b8..77fbcf1c9c77288cb42263b35e7a100a76c694b7 100644 --- a/opentech/urls.py +++ b/opentech/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ url('^', include(public_urls)), url('^', include(apply_urls)), url('^', include('social_django.urls', namespace='social')), + url(r'^tinymce/', include('tinymce.urls')), ] diff --git a/requirements.txt b/requirements.txt index 5399a07ac8b3ca01941552afeb116640eba3cff2..1921779a9b06174f743dc5f66270d8a6abec7506 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,11 +5,14 @@ Pillow==4.3.0 django-extensions==1.7.4 Werkzeug==0.11.11 stellar==0.4.3 +django-tinymce4-lite==1.7.0 wagtail-django-recaptcha==0.1 uwsgidecorators==1.1.0 + mypy==0.550 factory_boy==2.9.2 wagtail_factories==0.3.0 + flake8 social_auth_app_django==2.1.0