Commit 62ececa8 by cahrens
parent 88a63108
......@@ -8,7 +8,6 @@ admin.autodiscover()
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^notify/', include('django_notify.urls', namespace='notify')),
]
if settings.DEBUG:
......
# Django 1.11 Widget.build_attrs has a different signature, designed for the new
# template based rendering. The previous version was more useful for our needs,
# so we restore that version.
# When support for Django < 1.11 is dropped, we should look at using the
# new template based rendering, at which point this probably won't be needed at all.
class BuildAttrsCompat(object):
def build_attrs_compat(self, extra_attrs=None, **kwargs):
"Helper function for building an attribute dictionary."
attrs = self.attrs.copy()
if extra_attrs is not None:
attrs.update(extra_attrs)
if kwargs is not None:
attrs.update(kwargs)
return attrs
......@@ -4,9 +4,11 @@ from django.utils.encoding import force_unicode
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe
from wiki.core.compat import BuildAttrsCompat
from wiki.editors.base import BaseEditor
class MarkItUpAdminWidget(forms.Widget):
class MarkItUpAdminWidget(BuildAttrsCompat, forms.Widget):
"""A simplified more fail-safe widget for the backend"""
def __init__(self, attrs=None):
# The 'rows' and 'cols' attributes are required for HTML correctness.
......@@ -18,11 +20,12 @@ class MarkItUpAdminWidget(forms.Widget):
def render(self, name, value, attrs=None):
if value is None: value = ''
final_attrs = self.build_attrs(attrs, name=name)
final_attrs = self.build_attrs_compat(attrs, name=name)
return mark_safe(u'<textarea%s>%s</textarea>' % (flatatt(final_attrs),
conditional_escape(force_unicode(value))))
class MarkItUpWidget(forms.Widget):
class MarkItUpWidget(BuildAttrsCompat, forms.Widget):
def __init__(self, attrs=None):
# The 'rows' and 'cols' attributes are required for HTML correctness.
default_attrs = {'class': 'markItUp',
......@@ -33,7 +36,7 @@ class MarkItUpWidget(forms.Widget):
def render(self, name, value, attrs=None):
if value is None: value = ''
final_attrs = self.build_attrs(attrs, name=name)
final_attrs = self.build_attrs_compat(attrs, name=name)
return mark_safe(u'<div><textarea%s>%s</textarea></div>' % (flatatt(final_attrs),
conditional_escape(force_unicode(value))))
......
......@@ -16,6 +16,7 @@ from django.forms.widgets import HiddenInput
from wiki.core.plugins.base import PluginSettingsFormMixin
from django.contrib.auth.models import User
from wiki.core import permissions
from wiki.core.compat import BuildAttrsCompat
class SpamProtectionMixin():
......@@ -100,7 +101,7 @@ class EditForm(forms.Form):
return cd
class SelectWidgetBootstrap(forms.Select):
class SelectWidgetBootstrap(BuildAttrsCompat, forms.Select):
"""
http://twitter.github.com/bootstrap/components.html#buttonDropdowns
Needs bootstrap and jquery
......@@ -143,7 +144,7 @@ class SelectWidgetBootstrap(forms.Select):
def render(self, name, value, attrs=None, choices=()):
if value is None: value = ''
final_attrs = self.build_attrs(attrs, name=name)
final_attrs = self.build_attrs_compat(attrs, name=name)
output = ["""<div%(attrs)s>"""
""" <button class="btn btn-group-label" type="button">%(label)s</button>"""
""" <button class="btn dropdown-toggle" type="button" data-toggle="dropdown">"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment