summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chimere/forms.py4
-rw-r--r--chimere/static/chimere/css/styles.css3
-rw-r--r--chimere/templates/chimere/base.html1
-rw-r--r--chimere/templates/chimere/blocks/head_form.html1
-rw-r--r--chimere/templatetags/chimere_tags.py3
-rw-r--r--chimere/views.py3
-rw-r--r--chimere/widgets.py88
-rw-r--r--requirements.txt2
-rw-r--r--settings.py2
9 files changed, 28 insertions, 79 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index f70c11e..2b1c35f 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -305,7 +305,7 @@ class MarkerAdminFormBase(forms.ModelForm):
"""
is_admin = True
name = forms.CharField(label=_("Name"), required=True)
- description = forms.CharField(widget=FullTextareaWidget,
+ description = forms.CharField(widget=TextareaWidget,
required=False)
_PROPERTY_FILTERS = {}
@@ -460,7 +460,7 @@ class MarkerForm(MarkerBaseForm):
is_admin = False
ref_pk = forms.IntegerField(label=" ", widget=forms.HiddenInput(),
required=False)
- description = forms.CharField(widget=TextareaWidget, required=False)
+ description = forms.CharField(widget=FullTextareaWidget, required=False)
keywords = forms.CharField(widget=TextareaWidget, max_length=200,
required=False)
diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css
index 2852c80..8d8e352 100644
--- a/chimere/static/chimere/css/styles.css
+++ b/chimere/static/chimere/css/styles.css
@@ -4065,6 +4065,9 @@ li.main_category li.subcategory > span > label{
#topbar .navbar-nav {
margin: 7.5px 0;
}
+ #map_edit {
+ height: 200px;
+ }
#extra-pages{
background-color: #fff;
margin: 0;
diff --git a/chimere/templates/chimere/base.html b/chimere/templates/chimere/base.html
index 4ac8c97..4a8085f 100644
--- a/chimere/templates/chimere/base.html
+++ b/chimere/templates/chimere/base.html
@@ -23,6 +23,7 @@
<script src="{{ STATIC_URL }}saclay/js/mobile.chimere.js?ver={{VERSION}}" type="text/javascript"></script>{%endif%}
{% if css_area %}
<link rel="stylesheet" href="{{ css_area }}?ver={{VERSION}}" />{% endif %}
+{{extra_media}}
{% endblock %}
{% block header %}
<noscript>
diff --git a/chimere/templates/chimere/blocks/head_form.html b/chimere/templates/chimere/blocks/head_form.html
index f732219..e69de29 100644
--- a/chimere/templates/chimere/blocks/head_form.html
+++ b/chimere/templates/chimere/blocks/head_form.html
@@ -1 +0,0 @@
-{% if ENABLE_TINYMCE %}<script src="{{ STATIC_URL }}tinymce/tinymce.min.js?ver=4.4.3" type="text/javascript"></script>{% endif %}
diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py
index f850244..cabfd9f 100644
--- a/chimere/templatetags/chimere_tags.py
+++ b/chimere/templatetags/chimere_tags.py
@@ -187,8 +187,7 @@ def head_form():
"""
Manualy add forms header (necessary in case of ajax load)
"""
- context_data = {"ENABLE_TINYMCE": settings.ENABLE_TINYMCE,
- "STATIC_URL": settings.STATIC_URL,
+ context_data = {"STATIC_URL": settings.STATIC_URL,
"VERSION": get_version()}
return context_data
diff --git a/chimere/views.py b/chimere/views.py
index 65a1ebd..4521001 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -224,7 +224,8 @@ def index(request, area_name=None, default_area=None, simple=False,
else None,
'VERSION': get_version(),
'extra_css': widgets.MultiSelectWidget.Media.EXTRA_CSS,
- 'extra_js': widgets.MultiSelectWidget.Media.EXTRA_JS
+ 'extra_js': widgets.MultiSelectWidget.Media.EXTRA_JS,
+ 'extra_media': widgets.TextareaWidgetBase().media
})
if hasattr(settings, 'PROJECT_IMAGE') and settings.PROJECT_IMAGE:
response_dct['PROJECT_IMAGE'] = settings.PROJECT_IMAGE
diff --git a/chimere/widgets.py b/chimere/widgets.py
index bd25054..a12d364 100644
--- a/chimere/widgets.py
+++ b/chimere/widgets.py
@@ -36,6 +36,11 @@ from django.utils.translation import ugettext as _
from django.forms.utils import flatatt
from django.template.loader import render_to_string
+if "tinymce" in settings.INSTALLED_APPS:
+ from tinymce.widgets import TinyMCE as Textarea
+else:
+ Textarea = forms.Textarea
+
import re
@@ -211,92 +216,35 @@ class ImporterChoicesWidget(forms.Select):
class Media:
js = ["%schimere/js/importer_interface.js" % settings.STATIC_URL]
-TINYMCE_JS, FULL_TINY_JS, ADMIN_TINY_JS = [], [], []
-
-if settings.ENABLE_TINYMCE:
- TINYMCE_JS = ["{}tinymce/tinymce.min.js".format(settings.STATIC_URL)]
- FULL_TINY_JS = TINYMCE_JS[:] + \
- ["%schimere/js/textareas.js" % settings.STATIC_URL]
- ADMIN_TINY_JS = TINYMCE_JS[:] + \
- ["%schimere/js/textareas_admin.js" % settings.STATIC_URL]
-
-TINYMCE_LANGUAGES = ['fr_FR']
-
-class TextareaWidgetBase(forms.Textarea):
+class TextareaWidgetBase(Textarea):
"""
Manage the edition of a text using TinyMCE
"""
+
+ def __init__(self, *args, **kwargs):
+ if "tinymce" in settings.INSTALLED_APPS and 'mce_attrs' not in kwargs:
+ kwargs['mce_attrs'] = {'width': 400, 'height': 150}
+ super(TextareaWidgetBase, self).__init__(*args, **kwargs)
+
def render(self, *args, **kwargs):
- if not TINYMCE_JS:
- rendered = super(TextareaWidgetBase, self).render(*args, **kwargs)
- return mark_safe(rendered)
- 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(TextareaWidgetBase, self).render(*args, **kwargs)
- rendered += """
-<style>
-.mce-tinymce{
- position: initial;
-}
-.field-%s label{
- padding: 0.9em 1em;
-}
-</style>
-""" % args[0]
- current_language = ""
- if settings.LANGUAGE_CODE.replace('-', '_') in TINYMCE_LANGUAGES:
- current_language = settings.LANGUAGE_CODE.replace('-', '_')
- elif settings.LANGUAGE_CODE.split('-')[0] in TINYMCE_LANGUAGES:
- current_language = settings.LANGUAGE_CODE.split('-')[0]
- if current_language:
- rendered += """
- <script type='text/javascript'>
- window.tinymce_lang = "{}";
- </script>
- """.format(current_language)
return mark_safe(rendered)
class FullTextareaWidget(TextareaWidgetBase):
- """
- Manage the edition of a text using TinyMCE
- """
- class Media:
- js = TINYMCE_JS
-
- def render(self, *args, **kwargs):
- if not TINYMCE_JS:
- rendered = super(FullTextareaWidget, self).render(*args, **kwargs)
- return mark_safe(rendered)
-
- 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)
- return mark_safe(rendered)
+ def __init__(self, *args, **kwargs):
+ if "tinymce" in settings.INSTALLED_APPS and 'mce_attrs' not in kwargs:
+ kwargs['mce_attrs'] = {'height': 150}
+ super(TextareaWidgetBase, self).__init__(*args, **kwargs)
class TextareaWidget(TextareaWidgetBase):
- """
- Manage the edition of a text using TinyMCE
- """
- class Media:
- js = FULL_TINY_JS
+ pass
class TextareaAdminWidget(TextareaWidgetBase):
- class Media:
- js = ADMIN_TINY_JS
+ pass
class DatePickerWidget(forms.TextInput):
diff --git a/requirements.txt b/requirements.txt
index 520005f..fc2cc4c 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,7 +4,7 @@ psycopg2
Pillow==3.3
lxml==3.4
feedparser==5.2.1
-django-tinymce==1.5.3
+django-tinymce4-lite==1.7.1
icalendar==3.8
chardet==2.3
py3exiv2==0.2.1
diff --git a/settings.py b/settings.py
index fb24270..b674977 100644
--- a/settings.py
+++ b/settings.py
@@ -29,8 +29,6 @@ CONTACT_EMAIL = ''
STATIC_URL = '/static/'
STATIC_ROOT = ROOT_PATH + 'static/'
-ENABLE_TINYMCE = False
-
GPSBABEL = '/usr/bin/gpsbabel'
# simplify with an error of 5 meters
GPSBABEL_OPTIONS = 'simplify,crosstrack,error=0.005k'