diff --git a/README.md b/README.md index 54f1761..ed56dea 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ class MyModel(models.Model): content2 = RichTextField(config='basic') ``` + If you want to support image uploads, your admin needs to extend from `quill.admin.QuillAdmin`: ```python @@ -49,6 +50,20 @@ class MyAdmin(QuillAdmin): pass ``` +If you don't want to touch your models and enable the editor for all text fields in the admin page, + you can do as well: + +```python +from quill.widgets import QuillEditorWidget +from quill.admin import QuillAdmin + + +class MyAdmin(admin.ModelAdmin): + formfield_overrides = { + models.TextField: {'widget': QuillEditorWidget}, + } +``` + ### Customizing To customize this app, extend ``apps.QuillConfig`` and modify whatever you need. For example, to add a new toolbar: diff --git a/quill/admin.py b/quill/admin.py index 45f0060..3fea5f7 100644 --- a/quill/admin.py +++ b/quill/admin.py @@ -1,6 +1,6 @@ import json -from django.conf.urls import patterns, url +from django.conf.urls import url from django.contrib import admin from django.core.files.storage import default_storage from django.http import Http404, HttpResponse, HttpResponseBadRequest @@ -14,10 +14,9 @@ class QuillAdmin(admin.ModelAdmin): def get_urls(self): """Add URLs needed to handle image uploads.""" - urls = patterns( - '', + urls = [ url(r'^upload/$', self.admin_site.admin_view(self.handle_upload), name='quill-file-upload'), - ) + ] return urls + super(QuillAdmin, self).get_urls() def handle_upload(self, request): diff --git a/quill/templatetags/quill_tags.py b/quill/templatetags/quill_tags.py index 7d56155..abb6594 100644 --- a/quill/templatetags/quill_tags.py +++ b/quill/templatetags/quill_tags.py @@ -27,7 +27,7 @@ def render_toolbar(context, config): """Render the toolbar for the given config.""" quill_config = getattr(quill_app, config) t = template.loader.get_template(quill_config['toolbar_template']) - return t.render(context) + return t.render(context.flatten()) @register.simple_tag(takes_context=True) @@ -35,4 +35,4 @@ def render_editor(context, config): """Render the editor for the given config.""" quill_config = getattr(quill_app, config) t = template.loader.get_template(quill_config['editor_template']) - return t.render(context) + return t.render(context.flatten()) diff --git a/quill/widgets.py b/quill/widgets.py index 6ee9742..8f7b40c 100644 --- a/quill/widgets.py +++ b/quill/widgets.py @@ -1,6 +1,6 @@ from django import forms from django.apps import apps -from django.forms.util import flatatt +from django.forms.utils import flatatt from django.template.loader import render_to_string from django.templatetags.static import static from django.utils.safestring import mark_safe @@ -32,11 +32,11 @@ def __init__(self, config='default', *args, **kwargs): self.config = config super(QuillEditorWidget, self).__init__(*args, **kwargs) - def render(self, name, value, attrs={}): + def render(self, name, value, attrs=None, renderer=None): """Render the Quill WYSIWYG.""" if value is None: value = '' - final_attrs = self.build_attrs(attrs, name=name) + final_attrs = self.build_attrs(attrs, {'name': name}) quill_app = apps.get_app_config('quill') quill_config = getattr(quill_app, self.config)