diff options
-rw-r--r-- | chimere/forms.py | 11 | ||||
-rw-r--r-- | chimere/static/chimere/js/textareas.js | 2 | ||||
-rw-r--r-- | chimere/static/chimere/js/textareas_admin.js | 28 | ||||
-rw-r--r-- | chimere/widgets.py | 20 |
4 files changed, 50 insertions, 11 deletions
diff --git a/chimere/forms.py b/chimere/forms.py index aedca9b..ea08474 100644 --- a/chimere/forms.py +++ b/chimere/forms.py @@ -35,7 +35,7 @@ from chimere.models import Marker, Route, PropertyModel, Property, Area,\ News, Category, SubCategory, RouteFile, MultimediaFile, MultimediaType, \ PictureFile, Importer from chimere.widgets import AreaField, PointField, TextareaWidget, \ - DatePickerWidget + TextareaAdminWidget, DatePickerWidget from datetime import timedelta, datetime, tzinfo @@ -93,7 +93,7 @@ class NewsAdminForm(forms.ModelForm): """ Main form for news """ - content = forms.CharField(widget=TextareaWidget) + content = forms.CharField(widget=TextareaAdminWidget) class Meta: model = News @@ -129,7 +129,7 @@ class CategoryAdminForm(forms.ModelForm): """ Main form for categories """ - description = forms.CharField(widget=TextareaWidget, required=False) + description = forms.CharField(widget=TextareaAdminWidget, required=False) class Media: js = list(settings.JQUERY_JS_URLS) + [ '%schimere/js/menu-sort.js' % settings.STATIC_URL, @@ -141,7 +141,7 @@ class MarkerAdminFormBase(forms.ModelForm): """ Main form for marker """ - description = forms.CharField(widget=TextareaWidget, required=False) + description = forms.CharField(widget=TextareaAdminWidget, required=False) class Meta: model = Marker @@ -230,6 +230,7 @@ class MarkerForm(MarkerAdminForm): """ ref_pk = forms.IntegerField(label=u" ", widget=forms.HiddenInput(), required=False) + description = forms.CharField(widget=TextareaWidget, required=False) class Meta: model = Marker exclude = ('status',) @@ -432,7 +433,7 @@ class AreaAdminForm(forms.ModelForm): Admin page to create an area """ area = AreaField(label=_("Area"), fields=(PointField(), PointField())) - welcome_message = forms.CharField(widget=TextareaWidget) + welcome_message = forms.CharField(widget=TextareaAdminWidget) class Meta: model = Area diff --git a/chimere/static/chimere/js/textareas.js b/chimere/static/chimere/js/textareas.js index e15e7f2..048718d 100644 --- a/chimere/static/chimere/js/textareas.js +++ b/chimere/static/chimere/js/textareas.js @@ -22,7 +22,7 @@ tinyMCE.init({ theme : "advanced", editor_selector : "mceEditor", relative_urls : false, - theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,hr,separator,link,image", + theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,hr,separator,link", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "" }); diff --git a/chimere/static/chimere/js/textareas_admin.js b/chimere/static/chimere/js/textareas_admin.js new file mode 100644 index 0000000..e15e7f2 --- /dev/null +++ b/chimere/static/chimere/js/textareas_admin.js @@ -0,0 +1,28 @@ +/* base function shared by some pages */ +/* Copyright (C) 2009 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. + +See the file COPYING for details. +*/ + +tinyMCE.init({ + mode : "textareas", + theme : "advanced", + editor_selector : "mceEditor", + relative_urls : false, + theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,hr,separator,link,image", + theme_advanced_buttons2 : "", + theme_advanced_buttons3 : "" +}); diff --git a/chimere/widgets.py b/chimere/widgets.py index f336ee1..826283d 100644 --- a/chimere/widgets.py +++ b/chimere/widgets.py @@ -100,13 +100,10 @@ class ChosenSelectWidget(forms.Select): u"</script>\n" % kwargs['attrs']['id'] return mark_safe(rendered) -class TextareaWidget(forms.Textarea): +class TextareaWidgetBase(forms.Textarea): """ Manage the edition of a text using TinyMCE """ - 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'] = {} @@ -115,9 +112,22 @@ class TextareaWidget(forms.Textarea): else: kwargs['attrs']['class'] += ' ' kwargs['attrs']['class'] += 'mceEditor' - rendered = super(TextareaWidget, self).render(*args, **kwargs) + rendered = super(TextareaWidgetBase, self).render(*args, **kwargs) return mark_safe(rendered) +class TextareaWidget(TextareaWidgetBase): + """ + Manage the edition of a text using TinyMCE + """ + class Media: + js = ["%stiny_mce.js" % settings.TINYMCE_URL, + "%schimere/js/textareas.js" % settings.STATIC_URL,] + +class TextareaAdminWidget(TextareaWidgetBase): + class Media: + js = ["%stiny_mce.js" % settings.TINYMCE_URL, + "%schimere/js/textareas_admin.js" % settings.STATIC_URL,] + class DatePickerWidget(forms.TextInput): """ Manage the edition of dates. |