diff options
| -rw-r--r-- | chimere/forms.py | 6 | ||||
| -rw-r--r-- | chimere/widgets.py | 33 |
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. |
