summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/forms.py6
-rw-r--r--chimere/widgets.py33
2 files changed, 32 insertions, 7 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index b8bd7b1..a5ad894 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -36,7 +36,7 @@ from chimere.models import Marker, Route, PropertyModel, Property, Area,\
PictureFile, Importer, PropertyModelChoice, IFRAME_LINKS, \
MultimediaExtension, Page
from chimere.widgets import AreaField, PointField, TextareaWidget, \
- DatePickerWidget, ButtonSelectWidget, NominatimWidget
+ FullTextareaWidget, DatePickerWidget, ButtonSelectWidget, NominatimWidget
from datetime import timedelta, datetime, tzinfo
@@ -99,7 +99,7 @@ class PageAdminForm(forms.ModelForm):
"""
Main form for extra pages
"""
- content = forms.CharField(widget=TextareaWidget)
+ content = forms.CharField(widget=FullTextareaWidget)
class Meta:
model = Page
@@ -107,7 +107,7 @@ class NewsAdminForm(forms.ModelForm):
"""
Main form for news
"""
- content = forms.CharField(widget=TextareaWidget)
+ content = forms.CharField(widget=FullTextareaWidget)
class Meta:
model = News
diff --git a/chimere/widgets.py b/chimere/widgets.py
index a30b596..efc7aae 100644
--- a/chimere/widgets.py
+++ b/chimere/widgets.py
@@ -145,6 +145,7 @@ class TextareaWidget(forms.Textarea):
class Media:
js = ["%stiny_mce.js" % settings.TINYMCE_URL,
"%schimere/js/textareas.js" % settings.STATIC_URL,]
+
def render(self, *args, **kwargs):
if 'attrs' not in kwargs:
kwargs['attrs'] = {}
@@ -154,15 +155,12 @@ class TextareaWidget(forms.Textarea):
kwargs['attrs']['class'] += ' '
kwargs['attrs']['class'] += 'mceEditor'
rendered = super(TextareaWidget, self).render(*args, **kwargs)
- return mark_safe(rendered)
-
- def render(self, *args, **kwargs):
- rendered = super(TextareaWidget, self).render(*args, **kwargs)
rendered += u"""<script type='text/javascript'>
tinyMCE.init({
mode : "textareas",
theme : "advanced",
relative_urls : false,
+ editor_selector : "mceEditor",
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,hr,separator,link",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : ""
@@ -170,6 +168,33 @@ tinyMCE.init({
"""
return mark_safe(rendered)
+class FullTextareaWidget(forms.Textarea):
+ """
+ Manage the edition of a text using TinyMCE
+ """
+ class Media:
+ js = ["%stiny_mce.js" % settings.TINYMCE_URL,
+ "%schimere/js/textareas-full.js" % settings.STATIC_URL,]
+
+ def render(self, *args, **kwargs):
+ if 'attrs' not in kwargs:
+ kwargs['attrs'] = {}
+ if 'class' not in kwargs['attrs']:
+ kwargs['attrs']['class'] = ''
+ else:
+ kwargs['attrs']['class'] += ' '
+ kwargs['attrs']['class'] += 'mceEditor'
+ rendered = super(FullTextareaWidget, self).render(*args, **kwargs)
+ rendered += u"""<script type='text/javascript'>
+tinyMCE.init({
+ mode : "textareas",
+ theme : "advanced",
+ relative_urls : false,
+ editor_selector : "mceEditor"
+});</script>
+"""
+ return mark_safe(rendered)
+
class DatePickerWidget(forms.TextInput):
"""
Manage the edition of dates.