diff --git a/addons/djangocms-text-ckeditor/addon.json b/addons/djangocms-text-ckeditor/addon.json new file mode 100644 index 0000000..7678082 --- /dev/null +++ b/addons/djangocms-text-ckeditor/addon.json @@ -0,0 +1,6 @@ +{ + "installed-apps": [ + "djangocms_text_ckeditor" + ], + "package-name": "djangocms-text-ckeditor" +} \ No newline at end of file diff --git a/addons/djangocms-text-ckeditor/aldryn_config.py b/addons/djangocms-text-ckeditor/aldryn_config.py new file mode 100644 index 0000000..8ff9e40 --- /dev/null +++ b/addons/djangocms-text-ckeditor/aldryn_config.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from aldryn_client import forms + + +class Form(forms.BaseForm): + style_set = forms.CharField( + 'The "styles definition set" to use in the editor', + required=False, + ) + content_css = forms.CharField( + 'List of CSS files to be used to apply style to editor content', + required=False, + ) + + def clean(self): + data = super(Form, self).clean() + + if data.get('content_css'): + files = data['content_css'].split(',') + data['content_css'] = [item.strip() for item in files if item] + return data + + def to_settings(self, data, settings): + # boilerplate must provide /static/js/modules/ckeditor.wysiwyg.js and /static/css/base.css + CKEDITOR_SETTINGS = { + 'height': 300, + 'language': '{{ language }}', + 'toolbar': 'CMS', + 'skin': 'moono-lisa', + } + + # This could fail if aldryn-django-cms has not been configured yet. + boilerplate_name = settings['ALDRYN_BOILERPLATE_NAME'] + + if data.get('content_css'): + CKEDITOR_SETTINGS['contentsCss'] = data['content_css'] + else: + CKEDITOR_SETTINGS['contentsCss'] = ['/static/css/base.css'] + + if data.get('style_set'): + style_set = data['style_set'] + elif boilerplate_name == 'bootstrap3': + style_set = '/static/js/addons/ckeditor.wysiwyg.js' + else: + style_set = '' + + CKEDITOR_SETTINGS['stylesSet'] = 'default:{}'.format(style_set) + + settings['CKEDITOR_SETTINGS'] = CKEDITOR_SETTINGS + return settings diff --git a/addons/djangocms-text-ckeditor/settings.json b/addons/djangocms-text-ckeditor/settings.json new file mode 100644 index 0000000..4fa0b78 --- /dev/null +++ b/addons/djangocms-text-ckeditor/settings.json @@ -0,0 +1,4 @@ +{ + "content_css": "", + "style_set": "" +} \ No newline at end of file diff --git a/requirements.in b/requirements.in index ba26cb1..a004b26 100644 --- a/requirements.in +++ b/requirements.in @@ -8,6 +8,7 @@ https://control.divio.com/api/v1/apps/serve/aldryn-google-analytics/1.0.1/9fa370 https://control.divio.com/api/v1/apps/serve/djangocms-history/0.5.3/05803675-6e8d-4637-b14b-1bb8d18b24b3/djangocms-history-0.5.3.tar.gz#egg=djangocms-history==0.5.3 https://control.divio.com/api/v1/apps/serve/djangocms-link/2.1.2/35b986c1-fafb-46ee-b665-aa36603f233a/djangocms-link-2.1.2.tar.gz#egg=djangocms-link==2.1.2 https://control.divio.com/api/v1/apps/serve/djangocms-picture/2.0.6/005e8663-d1cc-4667-936c-30709edad076/djangocms-picture-2.0.6.tar.gz#egg=djangocms-picture==2.0.6 +https://control.divio.com/api/v1/apps/serve/djangocms-text-ckeditor/3.6.0.0/28f314b5-a857-4bd1-87ab-1255b8cf64ca/djangocms-text-ckeditor-3.6.0.0.tar.gz#egg=djangocms-text-ckeditor==3.6.0.0 https://control.divio.com/api/v1/apps/serve/django-filer/1.3.2/a68cceeb-0373-47af-9cf6-01dbc9bead40/django-filer-1.3.2.tar.gz#egg=django-filer==1.3.2 # Whoosh==2.7.4 diff --git a/settings.py b/settings.py index ddbe5d3..ed95e15 100644 --- a/settings.py +++ b/settings.py @@ -13,6 +13,7 @@ INSTALLED_ADDONS = [ 'djangocms-history', 'djangocms-link', 'djangocms-picture', + 'djangocms-text-ckeditor', 'django-filer', # ]