Django admin CKEditor integration.
Project description
Django CKEditor
===============
* riklaunim / django-ckeditor is on PyPi as https://pypi.python.org/pypi/django-ckeditor-updated - latest code, works with latest Django
* shaunsephton / django-ckeditor is on PyPi as https://pypi.python.org/pypi/django-ckeditor - still old release not compatible with newer Django versions
**This fork, django-ckeditor-updated, has different configuration than the old django ckeditor. All of my changes were recently merged to shaunsephton repository
but they havent been released yet as a package. Until django-ckeditor won't get new and constant releases I'be maintaining this fork.***
**Django admin CKEditor integration.**
Provides a ``RichTextField`` and ``CKEditorWidget`` utilizing CKEditor with image upload and browsing support included.
* This version also includes:
#. support to django-storages (works with S3)
#. updated ckeditor to version 4.4
#. included all ckeditor language files to made everyone happy!
.. contents:: Contents
:depth: 5
Installation
------------
Required
~~~~~~~~
#. Install or add django-ckeditor-updated to your python path. Note: You may not have the original django-ckeditor and django-ckeditor-updated installed at the same time.
#. Add ``ckeditor`` to your ``INSTALLED_APPS`` setting.
#. Add a CKEDITOR_UPLOAD_PATH setting to the project's ``settings.py`` file. This setting specifies an relative path to your CKEditor media upload directory. CKEditor uses Django storage API. By default Django uses file system storage backend (it will use your MEDIA_ROOT and MEDIA_URL) and if you don't use different backend you have to have write permissions for the CKEDITOR_UPLOAD_PATH path within MEDIA_ROOT, i.e.::
CKEDITOR_UPLOAD_PATH = "uploads/"
For the default file system storage images will be uploaded to "uploads" folder in your MEDIA_ROOT and urls will be created against MEDIA_URL (/media/uploads/image.jpg).
CKEditor has been tested with django FileSystemStorage and S3BotoStorage.
There are issues using S3Storage from django-storages.
#. Run the ``collectstatic`` management command: `` ./manage.py generateckeditorthumbnails
**NOTE**: If you're using custom views remember to include ckeditor.js in your form's media either through ``{{ form.media }}`` or through a ``<script>`` tag. Admin will do this for you automatically. See `Django's Form Media docs <http://docs.djangoproject.com/en/dev/topics/forms/media/>`_ for more info.
Using S3
~~~~~~~~
See http://django-storages.readthedocs.org/en/latest/
If you want to use allowedContent
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To allowedContent works, disable **stylesheetparser** plugin.
So included this on your settings.py.
CKEDITOR_CONFIGS = {
"default": {
"removePlugins": "stylesheetparser",
}
}
Demo / Test application
~~~~~~~~~~~~~~~~~~~~~~~
If you clone the repository you will be able to run the ``ckeditor_demo`` application.
#. ``pip install -r ckeditor_demo_requirements.txt``
#. Run ``python.manage.py syncdb``
#. Create a superuser if you want to test the widget in the admin panel
#. Start the development server.
There is a forms.Form on main page (/) and a model in admin that uses the widget for a model field.
Database is set to sqlite3 and STATIC/MEDIA_ROOT to folders in temporary directory.
Running selenium test
~~~~~~~~~~~~~~~~~~~~~
You can run the test with ``python manage.py test ckeditor_demo`` (for repo checkout only) or with ``tox`` which is configured to run with Python 2.7 and 3.3.
(You may have to fix some imports in selenium webdriver for Python 3.3).
AUTHORS
=======
This fork
----------
#. `riklaunim <https://github.com/riklaunim>`_
Created By
----------
#. `shaunsephton <http://github.com/shaunsephton>`_
Contributors
------------
#. `3point2 <https://github.com/3point2>`_
#. `buchuki <http://github.com/buchuki>`_
#. `chr15m <http://github.com/chr15m>`_
#. `hedleyroos <https://github.com/hedleyroos>`_
#. `jeffh <https://github.com/jeffh>`_
#. `lihan <https://github.com/lihan>`_
#. `loop0 <http://github.com/loop0>`_
#. `mwcz <https://github.com/mwcz>`_
#. `tomwys <https://github.com/tomwys>`_
#. `snbuback <https://github.com/snbuback>`_
#. And others `<https://github.com/**/django-ckeditor/graphs/contributors>`_
Changelog
=========
4.4.4
-----
#. Update CKEditor to 4.4.4 full package - for all plugins and static files you may need
#. Fixes for inline editor
#. Editor initialisation uses jQuery. You need to specify CKEDITOR_JQUERY_URL for it to work. You can use::
CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
4.4.0
-----
#. Update CKEditor to 4.4.1
#. Django 1.7 compatibility fix
4.2.8
-----
#. Update CKEditor to 4.3.3
4.2.7
-----
#. Fix slugifying to empty filename if only bad characters given in filename. Use random string as fallback.
#. Don't use IMG tags for non image files in ckeditor file browser.
#. Remove non-existing image reference from CSS files that broke collectstatic.
#. Misc fixes
4.2.5 / 4.2.6
-------------
#. Fix static files installation - switch from distutils to setuptools
4.2.4
-----
#. Added new demo application with selenium integration test
#. tox setup for Python 3.3 and 2.7 testing
#. Extracted image processing to backends. PIL/Pillow is optional now. Other backends can be added.
#. Fixed a bug with thumbnail generation
4.2.3
-----
#. Python 3.3 compatibility
#. All uploaded files are slugified by default (New settings CKEDITOR_SLUGIFY_FILENAME)
#. Upload file when editing a link (<a href>) now works properly
4.2.2
-----
#. Python 3.3 compatibility in widgets.py
4.2.1
-----
#. Include CKEditor version 4.2.1.
#. Support Django 1.6
4.0.2
-----
#. Include CKEditor version 4.0.2.
3.6.2.1
-------
#. Remove unwanted static files from distribution.
#. Use Pillow instead of PIL since it builds on all systems.
3.6.2
-----
#. Include CKEditor version 3.6.2.
#. Initial work on Django aligned theme.
#. Fix schema slash removal issue on media url generation. Thanks `mwcz <https://github.com/mwcz>`_
#. Added compatibility for South. Thanks `3point2 <https://github.com/3point2>`_
#. Prevented settings from leaking between widget instances. Thanks `3point2 <https://github.com/3point2>`_
#. Fixed config_name conflict when verbose_name is used as first positional argument for a field. Thanks `3point2 <https://github.com/3point2>`_
#. Refactored views to allow use of file walking with local paths. Thanks `3point2 <https://github.com/3point2>`_
#. Added command to generate thumbnails. Thanks `3point2 <https://github.com/3point2>`_
#. Migrated from using media to static file management.
0.0.9
-----
#. Added ability to configure CKeditor through a CKEDITOR_CONFIGS settings. Thanks `jeffh <https://github.com/jeffh>`_ for the input.
0.0.8
-----
#. Removed buggy url include check.
0.0.7
-----
#. Egg package corrected to exclude testing admin.py and models.py.
0.0.6
-----
#. Enforce correct configuration.
#. Changed upload behavior to separate files into directories by upload date. Thanks `loop0 <http://github.com/loop0>`_ .
#. Added ability to limit user access to uploaded content (see the CKEDITOR_RESTRICT_BY_USER setting). Thanks `chr15m <http://github.com/chr15m>`_ for the input.
#. Added initial set of much needed tests.
#. General cleanup, light refactor.
0.0.5
-----
#. csrf_exempt backwards compatability. Thanks `chr15m <http://github.com/chr15m>`_ .
0.0.4
-----
#. Include resources, sorry about that.
0.0.3
-----
#. More robust PIL import. Thanks `buchuki <http://github.com/buchuki>`_ .
#. Better CKEDITOR_MEDIA_PREFIX setting error.
0.0.2
-----
#. Included README.rst in manifest.
0.0.1
-----
#. Added CKEDITOR_UPLOAD_PREFIX setting. Thanks `chr15m <http://github.com/chr15m>`_ for the input.
===============
* riklaunim / django-ckeditor is on PyPi as https://pypi.python.org/pypi/django-ckeditor-updated - latest code, works with latest Django
* shaunsephton / django-ckeditor is on PyPi as https://pypi.python.org/pypi/django-ckeditor - still old release not compatible with newer Django versions
**This fork, django-ckeditor-updated, has different configuration than the old django ckeditor. All of my changes were recently merged to shaunsephton repository
but they havent been released yet as a package. Until django-ckeditor won't get new and constant releases I'be maintaining this fork.***
**Django admin CKEditor integration.**
Provides a ``RichTextField`` and ``CKEditorWidget`` utilizing CKEditor with image upload and browsing support included.
* This version also includes:
#. support to django-storages (works with S3)
#. updated ckeditor to version 4.4
#. included all ckeditor language files to made everyone happy!
.. contents:: Contents
:depth: 5
Installation
------------
Required
~~~~~~~~
#. Install or add django-ckeditor-updated to your python path. Note: You may not have the original django-ckeditor and django-ckeditor-updated installed at the same time.
#. Add ``ckeditor`` to your ``INSTALLED_APPS`` setting.
#. Add a CKEDITOR_UPLOAD_PATH setting to the project's ``settings.py`` file. This setting specifies an relative path to your CKEditor media upload directory. CKEditor uses Django storage API. By default Django uses file system storage backend (it will use your MEDIA_ROOT and MEDIA_URL) and if you don't use different backend you have to have write permissions for the CKEDITOR_UPLOAD_PATH path within MEDIA_ROOT, i.e.::
CKEDITOR_UPLOAD_PATH = "uploads/"
For the default file system storage images will be uploaded to "uploads" folder in your MEDIA_ROOT and urls will be created against MEDIA_URL (/media/uploads/image.jpg).
CKEditor has been tested with django FileSystemStorage and S3BotoStorage.
There are issues using S3Storage from django-storages.
#. Run the ``collectstatic`` management command: ``
**NOTE**: If you're using custom views remember to include ckeditor.js in your form's media either through ``{{ form.media }}`` or through a ``<script>`` tag. Admin will do this for you automatically. See `Django's Form Media docs <http://docs.djangoproject.com/en/dev/topics/forms/media/>`_ for more info.
Using S3
~~~~~~~~
See http://django-storages.readthedocs.org/en/latest/
If you want to use allowedContent
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To allowedContent works, disable **stylesheetparser** plugin.
So included this on your settings.py.
CKEDITOR_CONFIGS = {
"default": {
"removePlugins": "stylesheetparser",
}
}
Demo / Test application
~~~~~~~~~~~~~~~~~~~~~~~
If you clone the repository you will be able to run the ``ckeditor_demo`` application.
#. ``pip install -r ckeditor_demo_requirements.txt``
#. Run ``python.manage.py syncdb``
#. Create a superuser if you want to test the widget in the admin panel
#. Start the development server.
There is a forms.Form on main page (/) and a model in admin that uses the widget for a model field.
Database is set to sqlite3 and STATIC/MEDIA_ROOT to folders in temporary directory.
Running selenium test
~~~~~~~~~~~~~~~~~~~~~
You can run the test with ``python manage.py test ckeditor_demo`` (for repo checkout only) or with ``tox`` which is configured to run with Python 2.7 and 3.3.
(You may have to fix some imports in selenium webdriver for Python 3.3).
AUTHORS
=======
This fork
----------
#. `riklaunim <https://github.com/riklaunim>`_
Created By
----------
#. `shaunsephton <http://github.com/shaunsephton>`_
Contributors
------------
#. `3point2 <https://github.com/3point2>`_
#. `buchuki <http://github.com/buchuki>`_
#. `chr15m <http://github.com/chr15m>`_
#. `hedleyroos <https://github.com/hedleyroos>`_
#. `jeffh <https://github.com/jeffh>`_
#. `lihan <https://github.com/lihan>`_
#. `loop0 <http://github.com/loop0>`_
#. `mwcz <https://github.com/mwcz>`_
#. `tomwys <https://github.com/tomwys>`_
#. `snbuback <https://github.com/snbuback>`_
#. And others `<https://github.com/**/django-ckeditor/graphs/contributors>`_
Changelog
=========
4.4.4
-----
#. Update CKEditor to 4.4.4 full package - for all plugins and static files you may need
#. Fixes for inline editor
#. Editor initialisation uses jQuery. You need to specify CKEDITOR_JQUERY_URL for it to work. You can use::
CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
4.4.0
-----
#. Update CKEditor to 4.4.1
#. Django 1.7 compatibility fix
4.2.8
-----
#. Update CKEditor to 4.3.3
4.2.7
-----
#. Fix slugifying to empty filename if only bad characters given in filename. Use random string as fallback.
#. Don't use IMG tags for non image files in ckeditor file browser.
#. Remove non-existing image reference from CSS files that broke collectstatic.
#. Misc fixes
4.2.5 / 4.2.6
-------------
#. Fix static files installation - switch from distutils to setuptools
4.2.4
-----
#. Added new demo application with selenium integration test
#. tox setup for Python 3.3 and 2.7 testing
#. Extracted image processing to backends. PIL/Pillow is optional now. Other backends can be added.
#. Fixed a bug with thumbnail generation
4.2.3
-----
#. Python 3.3 compatibility
#. All uploaded files are slugified by default (New settings CKEDITOR_SLUGIFY_FILENAME)
#. Upload file when editing a link (<a href>) now works properly
4.2.2
-----
#. Python 3.3 compatibility in widgets.py
4.2.1
-----
#. Include CKEditor version 4.2.1.
#. Support Django 1.6
4.0.2
-----
#. Include CKEditor version 4.0.2.
3.6.2.1
-------
#. Remove unwanted static files from distribution.
#. Use Pillow instead of PIL since it builds on all systems.
3.6.2
-----
#. Include CKEditor version 3.6.2.
#. Initial work on Django aligned theme.
#. Fix schema slash removal issue on media url generation. Thanks `mwcz <https://github.com/mwcz>`_
#. Added compatibility for South. Thanks `3point2 <https://github.com/3point2>`_
#. Prevented settings from leaking between widget instances. Thanks `3point2 <https://github.com/3point2>`_
#. Fixed config_name conflict when verbose_name is used as first positional argument for a field. Thanks `3point2 <https://github.com/3point2>`_
#. Refactored views to allow use of file walking with local paths. Thanks `3point2 <https://github.com/3point2>`_
#. Added command to generate thumbnails. Thanks `3point2 <https://github.com/3point2>`_
#. Migrated from using media to static file management.
0.0.9
-----
#. Added ability to configure CKeditor through a CKEDITOR_CONFIGS settings. Thanks `jeffh <https://github.com/jeffh>`_ for the input.
0.0.8
-----
#. Removed buggy url include check.
0.0.7
-----
#. Egg package corrected to exclude testing admin.py and models.py.
0.0.6
-----
#. Enforce correct configuration.
#. Changed upload behavior to separate files into directories by upload date. Thanks `loop0 <http://github.com/loop0>`_ .
#. Added ability to limit user access to uploaded content (see the CKEDITOR_RESTRICT_BY_USER setting). Thanks `chr15m <http://github.com/chr15m>`_ for the input.
#. Added initial set of much needed tests.
#. General cleanup, light refactor.
0.0.5
-----
#. csrf_exempt backwards compatability. Thanks `chr15m <http://github.com/chr15m>`_ .
0.0.4
-----
#. Include resources, sorry about that.
0.0.3
-----
#. More robust PIL import. Thanks `buchuki <http://github.com/buchuki>`_ .
#. Better CKEDITOR_MEDIA_PREFIX setting error.
0.0.2
-----
#. Included README.rst in manifest.
0.0.1
-----
#. Added CKEDITOR_UPLOAD_PREFIX setting. Thanks `chr15m <http://github.com/chr15m>`_ for the input.