Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

added more sphinx refs, fixed a couple of typos, enabled intersphinx …

…(yay!)
  • Loading branch information...
commit 6768cead084dcde04d0a1dbc0bf990f6b2d67ea2 1 parent e1c6ef3
@piquadrat piquadrat authored
View
7 docs/_ext/djangocms.py
@@ -3,4 +3,9 @@ def setup(app):
directivename = "setting",
rolename = "setting",
indextemplate = "pair: %s; setting",
- )
+ )
+ app.add_crossref_type(
+ directivename = "templatetag",
+ rolename = "ttag",
+ indextemplate = "pair: %s; template tag"
+ )
View
27 docs/advanced/i18n.rst
@@ -17,13 +17,13 @@ Example::
It also adds this prefix automatically to every ``href`` and ``form`` tag.
To install it, include
``'cms.middleware.multilingual.MultilingualURLMiddleware'`` in your project's
-``MIDDLEWARE_CLASSES`` setting.
+:setting:`MIDDLEWARE_CLASSES` setting.
****************
Language Chooser
****************
-The ``language_chooser`` template tag will display a language chooser for the
+The :ttag:`language_chooser` template tag will display a language chooser for the
current page. You can modify the template in ``menu/language_chooser.html`` or
provide your own template if necessary.
@@ -39,7 +39,7 @@ URL you may use the ``set_language_changer`` function in the view that handles
the current URL.
In the models of the current object add an optional language parameter to the
-``get_absolute_url`` function::
+:meth:`~django.db.models.Model.get_absolute_url` method::
from django.utils.translation import get_language
@@ -49,7 +49,7 @@ In the models of the current object add an optional language parameter to the
return reverse("product_view", args=[self.get_slug(language=language)])
-In the view pass the ``get_absolute_url`` function to the
+In the view pass the :meth:`get_absolute_url` method to the
``set_language_chooser`` function::
from menus.utils import set_language_changer
@@ -64,17 +64,19 @@ If the current URL is not handled by the CMS and no ``set_language_changer``
function is provided it will take the exact same URL as the current one and
will only change the language prefix.
-For the language chooser to work the Multilingual URL Middleware
-must be enabled.
+For the language chooser to work the
+:class:`cms.middleware.multilingual.MultilingualURLMiddleware` must be enabled.
*****************
page_language_url
*****************
-This template_tag returns the URL of the current page in another language.
+This template tag returns the URL of the current page in another language.
-Example::
+Example:
+
+.. code-block:: html+django
{% page_language_url "de" %}
@@ -83,10 +85,11 @@ Example::
CMS_HIDE_UNTRANSLATED
*********************
-If you put ``CMS_HIDE_UNTRANSLATED = False`` in your ``settings.py`` all pages
-will be displayed in all languages even if they are not translated yet.
+If you put :setting:`CMS_HIDE_UNTRANSLATED` to ``False`` in your
+``settings.py`` all pages will be displayed in all languages even if they are
+not translated yet.
-If ``CMS_HIDE_UNTRANSLATED = True`` is in your ``settings.py``.
-And you are on a page that hasn't got a english translation yet and you view the
+If :setting:`CMS_HIDE_UNTRANSLATED` is ``True`` is in your ``settings.py``
+and you are on a page that hasn't got a english translation yet and you view the
german version then the language chooser will redirect to ``/``. The same goes
for urls that are not handled by the cms and display a language chooser.
View
16 docs/advanced/sitemap.rst
@@ -10,24 +10,26 @@ Sitemap
Sitemaps are XML files used by Google to index your website by using their
**Webmaster Tools** and telling them the location of your sitemap.
-The CMSSitemap will create a sitemap with all the published pages of your cms
+The :class:`CMSSitemap` will create a sitemap with all the published pages of
+your CMS
*************
Configuration
*************
-Add ``django.contrib.sitemaps`` to your project's ``INSTALLED_APPS`` setting.
-Add ``from cms.sitemaps import CMSSitemap`` to the top of your main `urls.py`.
-Add ``url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': {'cmspages': CMSSitemap}})``
-to your urlpatterns.
+ * Add :mod:`django.contrib.sitemaps` to your project's :setting:`INSTALLED_APPS`
+ setting.
+ * Add ``from cms.sitemaps import CMSSitemap`` to the top of your main ``urls.py``.
+ * Add ``url(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': {'cmspages': CMSSitemap}})``
+ to your urlpatterns.
***********************
-Django.contrib.sitemaps
+django.contrib.sitemaps
***********************
-More information about ``django.contrib.sitemaps`` can be found in the official
+More information about :mod:`django.contrib.sitemaps` can be found in the official
`Django documentation <http://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/>`_.
View
35 docs/advanced/templatetags.rst
@@ -1,6 +1,6 @@
-############
-Templatetags
-############
+#############
+Template Tags
+#############
.. highlightlang:: html+django
@@ -9,6 +9,8 @@ top of your template::
{% load cms_tags menu_tags %}
+.. templatetag:: placeholder
+
***********
placeholder
***********
@@ -33,7 +35,7 @@ Example::
{% placeholder "content" or %}There is no content.{% endplaceholder %}
If you want to add extra variables to the context of the placeholder, you
-should use Django's ``with`` tag. For instance, if you want to resize images
+should use Django's :ttag:`with` tag. For instance, if you want to resize images
from your templates according to a context variable called ``width``, you can
pass it as follows::
@@ -53,9 +55,11 @@ pages have plugins that generate content::
{% placeholder "content" inherit or %}There is no spoon.{% endplaceholder %}
-See also the ``PLACEHOLDER_CONF`` setting where you can also add extra context
-variables and change some other placeholder behavior.
+See also the :setting:`CMS_PLACEHOLDER_CONF` setting where you can also add extra
+context variables and change some other placeholder behavior.
+
+.. templatetag:: show_placeholder
****************
show_placeholder
@@ -118,11 +122,13 @@ inherit the content of its root-level ancestor::
{% endplaceholder %}
+.. templatetag:: show_uncached_placeholder
+
*************************
show_uncached_placeholder
*************************
-The same as ``show_placeholder``, but the placeholder contents will not be
+The same as :ttag:`show_placeholder`, but the placeholder contents will not be
cached.
Arguments:
@@ -137,6 +143,8 @@ Example::
{% show_uncached_placeholder "footer" "footer_container_page" %}
+.. templatetag:: plugins_media
+
*************
plugins_media
*************
@@ -156,7 +164,7 @@ Arguments:
information)
If you need to include the media from another page, for instance if you are
-using a placeholder from another page using the `show_placeholder`_ tag, you
+using a placeholder from another page using the :ttag:`show_placeholder` tag, you
can supply the ``page_lookup`` attribute to indicate the page in question::
{% plugins_media "teaser" %}
@@ -165,6 +173,8 @@ For a reference on what plugin media is required by a specific plugin, look at
that plugin's reference.
+.. templatetag:: page_url
+
********
page_url
********
@@ -180,6 +190,7 @@ Example::
<a href="{% page_url "help" %}">Help page</a>
<a href="{% page_url request.current_page.parent %}">Parent page</a>
+.. templatetag:: page_attribute
**************
page_attribute
@@ -213,6 +224,8 @@ Example::
{% page_attribute "slug" request.current_page.get_root %}
+.. templatetag:: show_menu
+
*********
show_menu
*********
@@ -267,6 +280,8 @@ Navigation with a custom template::
{% show_menu 0 100 100 100 "myapp/menu.html" %}
+.. templatetag:: show_menu_below_id
+
******************
show_menu_below_id
******************
@@ -285,6 +300,7 @@ You can give it the same optional parameters as ``show_menu``::
{% show_menu_below_id "meta" 0 100 100 100 "myapp/menu.html" %}
</ul>
+.. templatetag:: show_sub_menu
*************
show_sub_menu
@@ -304,6 +320,7 @@ Or with a custom template::
{% show_sub_menu 1 "myapp/submenu.html" %}
</ul>
+.. templatetag:: show_breadcrumb
***************
show_breadcrumb
@@ -344,6 +361,7 @@ And then in your app template::
<li>My current page</li>
{% endblock %}
+.. templatetag:: page_language_url
*****************
page_language_url
@@ -361,6 +379,7 @@ function with the set_language_changer function in cms.utils.
For more information, see :doc:`i18n`.
+.. templatetag:: language_chooser
****************
language_chooser
View
6 docs/conf.py
@@ -29,7 +29,11 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
#extensions = ['sphinx.ext.autodoc']
-extensions = ["djangocms"]
+extensions = ['djangocms', 'sphinx.ext.intersphinx']
+intersphinx_mapping = {
+ 'python': ('http://docs.python.org/2.6', None),
+ 'django': ('http://docs.djangoproject.com/en/1.3/', 'http://docs.djangoproject.com/en/1.3/_objects/'),
+}
# Add any paths that contain templates here, relative to this directory.
templates_path = ['templates']
View
12 docs/extending_cms/api_references.rst
@@ -48,7 +48,7 @@ Functions and constants
:param string title: Title of the page
:param string template: Template to use for this page. Must be in :setting:`CMS_TEMPLATES`
- :param string language: Language code for this page. Must be in ``LANGUAGES``
+ :param string language: Language code for this page. Must be in :setting:`LANGUAGES`
:param string menu_title: Menu title for this page
:param string slug: Slug for the page, by default uses a slugified version of *title*
:param apphook: Application to hook on this page, must be a valid apphook
@@ -80,7 +80,7 @@ Functions and constants
Creates a :class:`cms.models.titlemodel.Title` instance and returns it.
- :param string language: Language code for this page. Must be in ``LANGUAGES``
+ :param string language: Language code for this page. Must be in :setting:`LANGUAGES`
:param string title: Title of the page
:param page: The page for which to create this title
:type page: :class:`cms.models.pagemodel.Page` instance
@@ -104,7 +104,7 @@ Functions and constants
:type placeholder: :class:`cms.models.placeholdermodel.Placeholder` instance
:param plugin_type: What type of plugin to add
:type plugin_type: string or :class:`cms.plugin_base.CMSPluginBase` subclass, must be a valid plugin
- :param string language: Language code for this plugin, must be in ``LANGUAGES``
+ :param string language: Language code for this plugin, must be in :setting:`LANGUAGES`
:param string position: Position to add this plugin to the placeholder, must be a valid django-mptt position
:param kwargs data: Data for the plugin type instance
@@ -196,12 +196,12 @@ cms.plugin_base
.. attribute:: model
Is the CMSPlugin model we created earlier. If you don't need a model
- because you just want to display some template logic, use CMSPlugin from
- ``cms.models`` as the model instead.
+ because you just want to display some template logic, use ``CMSPlugin``
+ from ``cms.models`` as the model instead.
.. attribute:: module
- Will be group the plugin in the plugin editor. If module is None,
+ Will be group the plugin in the plugin editor. If module is ``None``,
plugin is grouped "Generic" group.
.. attribute:: name
View
66 docs/extending_cms/app_integration.rst
@@ -2,7 +2,7 @@
App Integration
###############
-It is pretty easy to integrate your own Django applications with django-cms.
+It is pretty easy to integrate your own Django applications with django CMS.
You have 5 ways of integrating your app:
1. Menus
@@ -87,11 +87,12 @@ A NavigationNode takes the following arguments:
Attach Menus
************
-Classes that extend from `Menu` always get attached to the root. But if you
-want the menu be attached to a CMS-page you can do that as well.
+Classes that extend from :class:`Menu` always get attached to the root. But if
+you want the menu be attached to a CMS-page you can do that as well.
-Instead of extending from `Menu` you need to extend from `CMSAttachMenu` and
-you need to define a name. We will do that with the example from above::
+Instead of extending from :class:`Menu` you need to extend from
+:class:`CMSAttachMenu` and you need to define a name. We will do that with the
+example from above::
from menus.base import NavigationNode
@@ -148,7 +149,7 @@ App-Hooks
With App-Hooks you can attach whole Django applications to pages. For example
you have a news app and you want it attached to your news page.
-To create an apphook create a cms_app.py in your application. And in there
+To create an apphook create a ``cms_app.py`` in your application. And in there
write the following::
from cms.app_base import CMSApp
@@ -161,17 +162,19 @@ write the following::
apphook_pool.register(MyApphook)
-Replace "myapp.urls" with the path to your applications urls.py.
+Replace ``myapp.urls`` with the path to your applications ``urls.py``.
Now edit a page and open the advanced settings tab. Select your new apphook
under "Application". Save the page.
-** ATTENTION ** If you are on a multi-threaded server (mostly all webservers,
-except the dev-server): Restart the server because the URLs are cached by
-Django and in a multi-threaded environment we don't know which caches are
-cleared yet.
+.. warning::
-If you attached the app to a page with the url `/hello/world/` and the app has
+ If you are on a multi-threaded server (mostly all webservers,
+ except the dev-server): Restart the server because the URLs are cached by
+ Django and in a multi-threaded environment we don't know which caches are
+ cleared yet.
+
+If you attached the app to a page with the url ``/hello/world/`` and the app has
a urls.py that looks like this:
::
@@ -182,27 +185,32 @@ a urls.py that looks like this:
url(r'^sublevel/$', 'sample_view', name='app_sublevel'),
)
-The 'main_view' should now be available at `/hello/world/` and the
-'sample_view' has the url '/hello/world/sublevel/'.
+The ``main_view`` should now be available at ``/hello/world/`` and the
+``sample_view`` has the url ``/hello/world/sublevel/``.
-.. note:: All views that are attached like this must return a RequestContext
- instance instead of the default Context instance.
+.. note:: All views that are attached like this must return a
+ :class:`RequestContext` instance instead of the default
+ :class:`Context` instance.
**Language Namespaces**
An additional feature of apphooks is that if you use the
-MultilingualURLMiddleware all apphook urls are language namespaced.
+:class:`MultilingualURLMiddleware` all apphook urls are language namespaced.
What this means:
To reverse the first url from above you would use something like this in your
-template::
+template:
+
+.. code-block:: html+django
{% url app_main %}
If you want to access the same url but in a different language use a langauge
-namespace::
+namespace:
+
+.. code-block:: html+django
{% url de:app_main %}
{% url en:app_main %}
@@ -221,9 +229,9 @@ in your app add it to your apphook like this::
apphook_pool.register(MyApphook)
-For an example if your app has a Category model and you want this category
-model to be displayed in the menu when you attach the app to a page. We assume
-the following model::
+For an example if your app has a :class:`Category` model and you want this
+category model to be displayed in the menu when you attach the app to a page.
+We assume the following model::
from django.db import models
from django.core.urlresolvers import reverse
@@ -273,16 +281,16 @@ If you add this menu now to your app-hook::
urls = ["myapp.urls"]
menus = [MyAppMenu, CategoryMenu]
-You get the static entries of MyAppMenu and the dynamic entries of
-CategoryMenu both attached to the same page.
+You get the static entries of :class:`MyAppMenu` and the dynamic entries of
+:class:`CategoryMenu` both attached to the same page.
********************
Navigation Modifiers
********************
-Navigation Modifiers can add or change properties of NavigationNodes, they
-even can rearrange whole menus. You normally want to create them in your apps
-menu.py.
+Navigation Modifiers can add or change properties of navigation nodes,
+they even can rearrange whole menus. You normally want to create them in your
+apps ``menu.py``.
A simple modifier looks something like this::
@@ -304,8 +312,8 @@ A simple modifier looks something like this::
menu_pool.register_modifier(MyMode)
-It has a function modify that should return a list of NavigationNodes. Modify
-should take the following arguments:
+It has a function modify that should return a list of :class:`NavigationNode`
+instances. Modify should take the following arguments:
- request
View
40 docs/extending_cms/custom_plugins.rst
@@ -27,12 +27,13 @@ Suppose you have the following gallery model::
And that you want to display this gallery between two text blocks.
You can do this with a CMS plugin. To create a CMS plugin you need two
-components: a ``CMSPlugin`` subclass model and a ``cms_plugins.py`` file.
+components: a :class:`CMSPlugin` subclass model and a ``cms_plugins.py`` file.
Plugin Model
============
-First create a model that links to the gallery via a ForeignKey field::
+First create a model that links to the gallery via a
+:class:`~django.db.models.ForeignKey` field::
from cms.models import CMSPlugin
@@ -45,10 +46,10 @@ fields that get displayed if you edit the plugin.
.. warning::
- ``CMSPlugin`` subclasses cannot be further subclassed, if you want to make
+ :class:`CMSPlugin` subclasses cannot be further subclassed, if you want to make
a reusable plugin model, make an abstract base model which does not extend
- ``CMSPlugin`` and subclass this abstract model as well as ``CMSPlugin`` in
- your real plugin model.
+ :class:`CMSPlugin` and subclass this abstract model as well as
+ :class:`CMSPlugin` in your real plugin model.
Further note that you cannot name your model fields the same as any plugin's
lowercased model name you use is called, due to the implicit one to one
relation Django uses for subclassed models. This includes but is not limited
@@ -92,7 +93,7 @@ responsible for copying those if necessary whenever the CMS copies the plugin.
To do this you can implement a method called
:meth:`cms.models.pluginmodel.CMSPlugin.copy_relations` on your plugin
-model which get's the **old** instance of the plugin as argument.
+model which gets the **old** instance of the plugin as argument.
Lets assume this is your plugin::
@@ -151,19 +152,19 @@ In there write the following::
:class:`cms.plugin_base.CMSPluginBase` itself inherits from
-:class:`django.contrib.admin.options.ModelAdmin` so you can use all the things
+:class:`django.contrib.admin.ModelAdmin` so you can use all the things
(inlines for example) you would use in a regular admin class. For more
information see the `Django admin documentation`_.
-For a list of all the options you have on CMSPluginBase have a look at the
-plugin reference
+For a list of all the options you have on :class:`CMSPluginBase` have a look at
+the plugin reference
Template
========
-Now create a gallery.html template in ``templates/gallery/`` and write the
+Now create a ``gallery.html`` template in ``templates/gallery/`` and write the
following in there:
.. code-block:: html+django
@@ -230,15 +231,18 @@ by type) for each placeholder with the **limits** parameter (see
Advanced
========
-CMSGalleryPlugin can be even further customized:
+:class:`CMSGalleryPlugin` can be even further customized:
-Because CMSPluginBase extends ModelAdmin from django.contrib.admin you can use
+Because :class:`CMSPluginBase <cms.plugin_base.CMSPluginBase>` extends
+:class:`ModelAdmin <django.contrib.admin.ModelAdmin>` you can use
all the things you are used to with normal admin classes. You can define
inlines, the form, the form template etc.
-Note: If you want to overwrite the form be sure to extend from
-``admin/cms/page/plugin_change_form.html`` to have an unified look across the
-plugins and to have the preview functionality automatically installed.
+.. note::
+
+ If you want to overwrite the form be sure to extend from
+ ``admin/cms/page/plugin_change_form.html`` to have an unified look across the
+ plugins and to have the preview functionality automatically installed.
.. _custom-plugins-handling-media:
@@ -306,7 +310,8 @@ Plugin Context Processors
*************************
Plugin context processors are callables that modify all plugin's context before
-rendering. They are enabled using the :setting:`CMS_PLUGIN_CONTEXT_PROCESSORS` setting.
+rendering. They are enabled using the :setting:`CMS_PLUGIN_CONTEXT_PROCESSORS`
+setting.
A plugin context processor takes 2 arguments:
@@ -341,8 +346,7 @@ Plugin Processors
*****************
Plugin processors are callables that modify all plugin's output after rendering.
-They are enabled using
-the :setting:`CMS_PLUGIN_PROCESSORS` setting.
+They are enabled using the :setting:`CMS_PLUGIN_PROCESSORS` setting.
A plugin processor takes 4 arguments:
View
2  docs/extending_cms/extending_examples.rst
@@ -6,7 +6,7 @@ From this part onwards, this tutorial assumes you have done the
`Django Tutorial`_ and we will show you how to integrate that poll app into the
django CMS. If a poll app is mentioned here, we mean the one you get when
finishing the `Django Tutorial`_.
-Also, make sure the poll app is in your INSTALLED_APPS.
+Also, make sure the poll app is in your :setting:`INSTALLED_APPS`.
We assume your main ``urls.py`` looks somewhat like this::
View
44 docs/extending_cms/placeholders.rst
@@ -7,18 +7,20 @@ user-editable content (plugins) in templates. That is, it's the place where a
user can add text, video or any other plugin to a webpage, using either the
normal Django admin interface or the so called `frontend editing`.
-Placeholders can be viewed as containers of ``CMSPlugins``, and can be used
-outside the CMS in custom applications using the ``PlaceholderField``.
+Placeholders can be viewed as containers for :class:`CMSPlugin` instances, and
+can be used outside the CMS in custom applications using the
+:class:`PlaceholderField`.
-By defining one (or serveral) ``PlaceholderField`` on a custom model you can take
-advantage of the full power of ``CMSPlugins``, including frontend editing.
+By defining one (or several) :class:`PlaceholderField` on a custom model you can take
+advantage of the full power of :class:`CMSPlugin`, including frontend editing.
**********
Quickstart
**********
-You need to define a ``PlaceholderField`` on the model you would like to use::
+You need to define a :class:`PlaceholderField` on the model you would like to
+use::
from django.db import models
from cms.models.fields import PlaceholderField
@@ -28,12 +30,13 @@ You need to define a ``PlaceholderField`` on the model you would like to use::
my_placeholder = PlaceholderField('placeholder_name')
# your methods
-The ``PlaceholderField`` takes a string as first argument which will be used to
-configure which plugins can be used in this placeholder. The configuration is
-the same as for placeholders in the CMS.
+The :class:`PlaceholderField` takes a string as first argument which will be
+used to configure which plugins can be used in this placeholder. The
+configuration is the same as for placeholders in the CMS.
If you install this model in the admin application, you have to use
-``PlaceholderAdmin`` instead of ``ModelAdmin`` so the interface renders
+:class:`PlaceholderAdmin` instead of
+:class:`ModelAdmin <django.contrib.admin.ModelAdmin>` so the interface renders
correctly::
from django.contrib import admin
@@ -42,16 +45,19 @@ correctly::
admin.site.register(MyModel, PlaceholderAdmin)
-Now to render the placeholder in a template you use the ``render_placeholder``
-tag from the ``placeholder_tags`` template tag library::
+Now to render the placeholder in a template you use the
+:ttag:`render_placeholder` tag from the ``placeholder_tags`` template tag
+library:
+
+.. code-block:: html+django
{% load placeholder_tags %}
{% render_placeholder mymodel_instance.my_placeholder "640" %}
-The ``render_placeholder`` tag takes a ``PlaceholderField`` instance as first
-argument and optionally accepts a width parameter as second argument for context
-sensitive plugins.
+The :ttag:`render_placeholder` tag takes a :class:`PlaceholderField` instance as
+first argument and optionally accepts a width parameter as second argument for
+context sensitive plugins.
*******************************
@@ -65,7 +71,7 @@ Using the front-end editor
==========================
Probably the most simple way to add content to a placeholder, simply visit the
-page displaying your model (where you put the ``render_placeholder`` tag), then
+page displaying your model (where you put the :ttag:`render_placeholder` tag), then
append "?edit" to the page's URL. This will make a top banner appear, and after
switching the "Edit mode" button to "on", the banner will prompt you for your
username/password (the user should be allowed to edit the page, obviously)
@@ -77,7 +83,7 @@ You are now using the so-called *front-end edit mode*:
.. |edit-banner| image:: ../images/edit-banner.png
Once in Front-end editing mode, your placeholders should display a menu,
-allowing you to add ``plugins`` to them: the following screenshot shows a
+allowing you to add plugins to them: the following screen shot shows a
default selection of plugins in an empty placeholder.
|frontend-placeholder-add-plugin|
@@ -94,9 +100,9 @@ Fieldsets
*********
There are some hard restrictions if you want to add custom fieldsets to an admin
-page with at least one ``PlaceholderField``:
+page with at least one :class:`PlaceholderField`:
-1. Every ``PlacehoderField`` **must** be in it's own fieldsets, one
- ``PlaceholderField`` per fieldset.
+1. Every :class:`PlacehoderField` **must** be in it's own fieldsets, one
+ :class:`PlaceholderField` per fieldset.
2. You **must** include the following two classes: ``'plugin-holder'`` and
``'plugin-holder-nopage'``
View
37 docs/getting_started/configuration.rst
@@ -146,10 +146,10 @@ CMS_APPHOOKS
Default: ``()``
-A list of import paths for ``cms.app_base.CMSApp`` subclasses.
+A list of import paths for :class:`cms.app_base.CMSApp` subclasses.
Defaults to an empty list which means CMS applications are auto-discovered in
-all ``INSTALLED_APPS`` by trying to import their ``cms_app`` module.
+all :setting:`INSTALLED_APPS` by trying to import their ``cms_app`` module.
If this setting is set, the auto-discovery is disabled.
@@ -169,7 +169,7 @@ PLACEHOLDER_FRONTEND_EDITING
Default: ``True``
If set to ``False``, frontend editing is not available for models using
-``cms.models.fields.PlaceholderField``.
+:class:`cms.models.fields.PlaceholderField`.
********************
Editor configuration
@@ -294,7 +294,7 @@ Example::
CMS_DBGETTEXT
=============
-Default: ``False`` (unless ``dbgettext`` is in ``settings.INSTALLED_APPS``)
+Default: ``False`` (unless ``dbgettext`` is in :setting:`INSTALLED_APPS`)
Enable gettext-based translation of CMS content rather than use the standard
administration interface. Requires `django-dbgettext
@@ -329,14 +329,14 @@ CMS_MEDIA_PATH
default: ``cms/``
-The path from MEDIA_ROOT to the media files located in ``cms/media/``
+The path from :setting:`MEDIA_ROOT` to the media files located in ``cms/media/``
.. setting:: CMS_MEDIA_ROOT
CMS_MEDIA_ROOT
==============
-Default: ``settings.MEDIA_ROOT + CMS_MEDIA_PATH``
+Default: :setting:`MEDIA_ROOT` + :setting:`CMS_MEDIA_PATH`
The path to the media root of the cms media files.
@@ -345,9 +345,9 @@ The path to the media root of the cms media files.
CMS_MEDIA_URL
=============
-default: ``MEDIA_URL + CMS_MEDIA_PATH``
+default: :setting:`MEDIA_URL` + :setting:`CMS_MEDIA_PATH`
-The location of the media files that are located in cms/media/cms/
+The location of the media files that are located in ``cms/media/cms/``
.. setting:: CMS_PAGE_MEDIA_PATH
@@ -389,7 +389,9 @@ This adds a new "menu title" field beside the title field.
With this field you can overwrite the title that is displayed in the menu.
-To access the menu title in the template, use::
+To access the menu title in the template, use:
+
+.. code-block:: html+django
{{ page.get_menu_title }}
@@ -405,8 +407,8 @@ This adds a new "redirect" field to the "advanced settings" tab of the page
You can set a url here, which a visitor will be redirected to when the page is
accessed.
-Note: Don't use this too much. django.contrib.redirect is much more flexible,
-handy, and is designed exactly for this purpose.
+Note: Don't use this too much. :mod:`django.contrib.redirects` is much more
+flexible, handy, and is designed exactly for this purpose.
.. setting:: CMS_FLAT_URLS
@@ -500,7 +502,9 @@ Default: ``False``
This adds a new "SEO Fields" fieldset to the page admin. You can set the
Page Title, Meta Keywords and Meta Description in there.
-To access these fields in the template use::
+To access these fields in the template use:
+
+.. code-block:: html+django
{% load cms_tags %}
<head>
@@ -523,9 +527,10 @@ This dictionary carries the varios cache duration settings.
Default: ``60``
-Cache expiration (in seconds) for ``show_placeholder`` and ``page_url`` template tags.
+Cache expiration (in seconds) for :ttag:`show_placeholder` and :ttag:`page_url`
+template tags.
-.. note:: This settings was previously called ``CMS_CONTENT_CACHE_DURATION``
+.. note:: This settings was previously called :setting:`CMS_CONTENT_CACHE_DURATION`
``'menus'``
-----------
@@ -534,7 +539,7 @@ Default: ``3600``
Cache expiration (in seconds) for the menu tree.
-.. note:: This settings was previously called ``MENU_CACHE_DURATION``
+.. note:: This settings was previously called :setting:`MENU_CACHE_DURATION`
``'permissions'``
-----------------
@@ -552,7 +557,7 @@ Default: ``None``
The CMS will prepend the value associated with this key to every cache access (set and get).
-This is useful when you have several Django-CMS installations, and you don't want them
+This is useful when you have several django CMS installations, and you don't want them
to share cache objects.
Example::
View
20 docs/getting_started/installation.rst
@@ -48,17 +48,23 @@ On Ubuntu
If you're using Ubuntu (tested with 10.10), the following should get you
started:
-``sudo aptitude install python2.6 python-setuptools python-imaging``
+.. code-block:: bash
-``sudo easy_install pip``
-
-``sudo pip install django-cms south django-appmedia``
+ sudo aptitude install python2.6 python-setuptools python-imaging
+ sudo easy_install pip
+ sudo pip install django-cms south django-appmedia
Additionally, you need the python driver for your selected database:
-``sudo aptitude python-psycopg2``
+.. code-block:: bash
+
+ sudo aptitude python-psycopg2
+
or
-``sudo aptitude install python-mysql``
+
+.. code-block:: bash
+
+ sudo aptitude install python-mysql
This will install PIL and your database's driver globally.
@@ -83,7 +89,7 @@ We recommend using `PostgreSQL`_ or `MySQL`_ with Django CMS. Installing and
maintaining database systems is outside the scope of this documentation, but is
very well documented on the system's respective websites.
-To use Django CMS efficiently, we recommend:
+To use django CMS efficiently, we recommend:
* Create a separate set of credentials for django CMS.
* Create a separate database for django CMS to use.
View
8 docs/getting_started/navigation.rst
@@ -7,10 +7,10 @@ Navigation
There are four template tags for use in the templates that are connected to the
menu:
-* ``show_menu``
-* ``show_menu_below_id``
-* ``show_sub_menu``
-* ``show_breadcrumb``
+* :ttag:`show_menu`
+* :ttag`show_menu_below_id`
+* :ttag:`show_sub_menu`
+* :ttag:`show_breadcrumb`
.. note::
View
104 docs/getting_started/plugin_reference.rst
@@ -2,6 +2,10 @@
Plugins reference
#################
+.. :module:: cms.plugins.file
+
+.. :class:: cms.plugins.file.models.FilePlugin
+
****
File
****
@@ -9,8 +13,8 @@ File
Allows you to upload a file. A filetype icon will be assigned based on the file
extension.
-For installation be sure you have the following in the ``INSTALLED_APPS`` setting
-in your project's ``settings.py`` file::
+For installation be sure you have the following in the :setting:`INSTALLED_APPS`
+setting in your project's ``settings.py`` file::
INSTALLED_APPS = (
# ...
@@ -18,9 +22,10 @@ in your project's ``settings.py`` file::
# ...
)
-You should take care that directory to which :setting:`CMS_PAGE_MEDIA_PATH`:
-setting points (by default ``cms_page_media/`` relative to ``MEDIA_ROOT``) is
-writable by the user under which django will be running.
+You should take care that directory to which :setting:`CMS_PAGE_MEDIA_PATH`
+setting points (by default ``cms_page_media/`` relative to
+:setting:`MEDIA_ROOT`) is writable by the user under which django will be
+running.
You might consider using `django-filer`_ with `django CMS plugin`_ and its
``cmsplugin_filer_file`` component instead.
@@ -28,6 +33,9 @@ You might consider using `django-filer`_ with `django CMS plugin`_ and its
.. _django-filer: https://github.com/stefanfoulis/django-filer
.. _django CMS plugin: https://github.com/stefanfoulis/cmsplugin-filer
+.. :module:: cms.plugins.flash
+
+.. :class:: cms.plugins.flash.cms_plugins.FlashPlugin
*****
Flash
@@ -35,8 +43,8 @@ Flash
Allows you to upload and display a Flash SWF file on your page.
-For installation be sure you have the following in the ``INSTALLED_APPS``
-setting in your project's ``settings.py`` file::
+For installation be sure you have the following in the
+:setting:`INSTALLED_APPS` setting in your project's ``settings.py`` file::
INSTALLED_APPS = (
# ...
@@ -44,6 +52,9 @@ setting in your project's ``settings.py`` file::
# ...
)
+.. :module:: cms.plugins.googlemap
+
+.. :class:: cms.plugins.googlemap.cms_plugins.GoogleMapPlugin
*********
GoogleMap
@@ -51,7 +62,7 @@ GoogleMap
Displays a map of an address on your page.
-For installation be sure you have the following in the ``INSTALLED_APPS``
+For installation be sure you have the following in the :setting:`INSTALLED_APPS`
setting in your project's ``settings.py`` file::
INSTALLED_APPS = (
@@ -60,6 +71,9 @@ setting in your project's ``settings.py`` file::
# ...
)
+.. :module:: cms.plugins.link
+
+.. :class:: cms.plugins.link.cms_plugins.LinkPlugin
****
Link
@@ -68,7 +82,7 @@ Link
Displays a link to an arbitrary URL or to a page. If a page is moved the URL
will still be correct.
-For installation be sure to have the following in the ``INSTALLED_APPS``
+For installation be sure to have the following in the :setting:`INSTALLED_APPS`
setting in your project's ``settings.py`` file::
INSTALLED_APPS = (
@@ -81,13 +95,18 @@ setting in your project's ``settings.py`` file::
link targets.
+.. :module:: cms.plugins.picture
+
+.. :class:: cms.plugins.picture.cms_plugins.PicturePlugin
+
+
*******
Picture
*******
Displays a picture in a page.
-For installation be sure you have the following in the ``INSTALLED_APPS``
+For installation be sure you have the following in the :setting:`INSTALLED_APPS`
setting in your project's ``settings.py`` file::
INSTALLED_APPS = (
@@ -101,7 +120,9 @@ recommend `sorl.thumbnail <http://code.google.com/p/sorl-thumbnail/>`_.
In your project template directory create a folder called ``cms/plugins`` and
create a file called ``picture.html`` in there. Here is an example
-``picture.html`` template::
+``picture.html`` template:
+
+.. code-block:: html+django
{% load i18n thumbnail %}
{% spaceless %}
@@ -121,8 +142,9 @@ In this template the picture is scaled differently based on which placeholder
it was placed in.
You should take care that directory to which :setting:`CMS_PAGE_MEDIA_PATH`
-setting points (by default ``cms_page_media/`` relative to ``MEDIA_ROOT``) is
-writable by the user under which django will be running.
+setting points (by default ``cms_page_media/`` relative to
+:setting:`MEDIA_ROOT`) is writable by the user under which django will be
+running.
@@ -134,6 +156,9 @@ writable by the user under which django will be running.
.. _django-filer: https://github.com/stefanfoulis/django-filer
.. _django CMS plugin: https://github.com/stefanfoulis/cmsplugin-filer
+.. :module:: cms.plugins.snippet
+
+.. :class:: cms.plugins.snippet.cms_plugins.SnippetPlugin
*******
Snippet
@@ -142,7 +167,7 @@ Snippet
Renders a HTML snippet from a HTML file in your templates directories or a
snippet given via direct input.
-For installation be sure you have the following in the ``INSTALLED_APPS``
+For installation be sure you have the following in the :setting:`INSTALLED_APPS`
setting in your project's ``settings.py`` file::
INSTALLED_APPS = (
@@ -155,6 +180,10 @@ setting in your project's ``settings.py`` file::
HTML snippets.
+.. :module:: cms.plugins.teaser
+
+.. :class:: cms.plugins.teaser.cms_plugins.TeaserPlugin
+
******
Teaser
******
@@ -162,7 +191,7 @@ Teaser
Displays a teaser box for another page or a URL. A picture and a description
can be added.
-For installation be sure you have the following in the ``INSTALLED_APPS``
+For installation be sure you have the following in the :setting:`INSTALLED_APPS`
settings in your project's ``settings.py`` file::
INSTALLED_APPS = (
@@ -172,10 +201,9 @@ settings in your project's ``settings.py`` file::
)
You should take care that directory to which :setting:`CMS_PAGE_MEDIA_PATH`
-setting points (by default ``cms_page_media/`` relative to ``MEDIA_ROOT``) is
-writable by the user under which django will be running.
-
-
+setting points (by default ``cms_page_media/`` relative to
+:setting:`MEDIA_ROOT``) is writable by the user under which django will be
+running.
.. note:: For more advanced use cases where you would like to upload your media
to a central location, consider using `django-filer`_ with
@@ -185,6 +213,9 @@ writable by the user under which django will be running.
.. _django-filer: https://github.com/stefanfoulis/django-filer
.. _django CMS plugin: https://github.com/stefanfoulis/cmsplugin-filer
+.. :module:: cms.plugins.text
+
+.. :class:: cms.plugins.text.cms_plugins.TextPlugin
****
Text
@@ -193,14 +224,14 @@ Text
Displays text. If plugins are text-enabled they can be placed inside the
text-flow. At this moment the following core plugins are text-enabled:
-- ``cms.plugins.link``
-- ``cms.plugins.picture``
-- ``cms.plugins.file``
-- ``cms.plugins.snippet``
+- :mod:`cms.plugins.link`
+- :mod:`cms.plugins.picture`
+- :mod:`cms.plugins.file`
+- :mod:`cms.plugins.snippet`
The current editor is `Wymeditor <http://www.wymeditor.org/>`_. If you want to
use TinyMce you need to install `django-tinymce`_. If ``tinymce`` is in your
-``INSTALLED_APPS`` it will be automatically enabled. If you have tinymce
+:setting:`INSTALLED_APPS` it will be automatically enabled. If you have tinymce
installed but don't want to use it in the cms put the following in your
``settings.py``::
@@ -210,7 +241,7 @@ installed but don't want to use it in the cms put the following in your
`django-tinymce docs`_ for more information.
For installation be sure you have the following in your project's
-``INSTALLED_APPS`` setting::
+:setting:`INSTALLED_APPS` setting::
INSTALLED_APPS = (
# ...
@@ -221,6 +252,10 @@ For installation be sure you have the following in your project's
.. _django-tinymce: http://code.google.com/p/django-tinymce/
.. _django-tinymce docs: http://django-tinymce.googlecode.com/svn/tags/release-1.5/docs/.build/html/installation.html#id2
+.. :module:: cms.plugins.video
+
+.. :class:: cms.plugins.video.cms_plugins.VideoPlugin
+
*****
Video
*****
@@ -230,7 +265,7 @@ Plays Video Files or Youtube / Vimeo Videos. Uses the `OSFlashVideoPlayer
.flv files or h264 encoded video files.
For installation be sure you have the following in your project's
-``INSTALLED_APPS`` setting::
+:setting:`INSTALLED_APPS` setting::
INSTALLED_APPS = (
# ...
@@ -256,8 +291,9 @@ default behavior:
* ``VIDEO_BUTTON_HIGHLIGHT_COLOR`` (default: ``"FFFFFF"``)
You should take care that directory to which :setting:`CMS_PAGE_MEDIA_PATH`
-setting points (by default ``cms_page_media/`` relative to ``MEDIA_ROOT``) is
-writable by the user under which django will be running.
+setting points (by default ``cms_page_media/`` relative to
+:setting:`MEDIA_ROOT`) is writable by the user under which django will be
+running.
.. note:: For more advanced use cases where you would like to upload your media
to a central location, consider using `django-filer`_ with
@@ -267,6 +303,11 @@ writable by the user under which django will be running.
.. _django-filer: https://github.com/stefanfoulis/django-filer
.. _django CMS plugin: https://github.com/stefanfoulis/cmsplugin-filer
+.. :module:: cms.plugins.twitter
+
+.. :class:: cms.plugins.twitter.cms_plugins.TwitterRecentEntriesPlugin
+
+.. :class:: cms.plugins.twitter.cms_plugins.TwitterSearchPlugin
*******
Twitter
@@ -275,7 +316,7 @@ Twitter
Displays the last number of post of a twitter user.
For installation be sure you have the following in your project's
-``INSTALLED_APPS`` setting::
+:setting:`INSTALLED_APPS` setting::
INSTALLED_APPS = (
# ...
@@ -286,6 +327,9 @@ For installation be sure you have the following in your project's
.. note:: Since avatars are not guaranteed to be available over SSL (HTTPS), by
default the Twitter plugin does not use avatars on secure sites.
+.. :module:: cms.plugins.inherit
+
+.. :class:: cms.plugins.twitter.cms_plugins.InheritPagePlaceholderPlugin
*******
Inherit
@@ -295,7 +339,7 @@ Displays all plugins of an other page or an other language. Great if you need
always the same plugins on a lot of pages.
For installation be sure you have the following in your project's
-``INSTALLED_APPS`` setting::
+:setting:`INSTALLED_APPS` setting::
INSTALLED_APPS = (
# ...
View
60 docs/getting_started/tutorial.rst
@@ -49,7 +49,8 @@ To make your life easier, add the following at the top of the file::
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
-Add the following apps to your ``INSTALLED_APPS`` which enable django-cms and required or highly recommended applications/libraries):
+Add the following apps to your :setting:`INSTALLED_APPS` which enable django CMS
+and required or highly recommended applications/libraries):
* ``'cms'``, django CMS itself
* ``'mptt'``, utilities for implementing a modified pre-order traversal tree
@@ -84,9 +85,10 @@ If you wish to use the moderation workflow, also add:
Further, make sure you uncomment (enable) ``'django.contrib.admin'``
You might consider using `django-filer`_ with `django CMS plugin`_ and its
-components instead of ``cms.plugins.file``, ``cms.plugins.picture``, ``cms.plugins.teaser``
-and ``cms.plugins.video`` core plugins. In this case you should not add them to
-``INSTALLED_APPS`` but add those instead:
+components instead of :mod:`cms.plugins.file`, :mod:`cms.plugins.picture`,
+:mod:`cms.plugins.teaser` and :mod:`cms.plugins.video` core plugins. In this
+case you should not add them to :setting:`INSTALLED_APPS` but add those
+instead:
* ``'filer'``
* ``'cmsplugin_filer_file'``
@@ -100,9 +102,9 @@ and ``cms.plugins.video`` core plugins. In this case you should not add them to
If you opt for core plugins you should take care that directory to which
:setting:`CMS_PAGE_MEDIA_PATH` setting points (by default ``cms_page_media/``
-relative to ``MEDIA_ROOT``) is writable by the user under which django will be
-running. If you have opted for django-filer then similar requirement exists
-based on its configuration.
+relative to :setting:`MEDIA_ROOT`) is writable by the user under which django
+will be running. If you have opted for django-filer then similar requirement
+exists based on its configuration.
If you want versioning of your content you should also enable `django-reversion`_
by adding:
@@ -111,9 +113,8 @@ by adding:
.. _django-reversion: https://github.com/etianen/django-reversion
-You need to add the django CMS middlewares to your ``MIDDLEWARE_CLASSES`` at the
-right position::
-
+You need to add the django CMS middlewares to your :setting:`MIDDLEWARE_CLASSES`
+at the right position::
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
@@ -126,8 +127,8 @@ right position::
'cms.middleware.toolbar.ToolbarMiddleware',
)
-You need at least the following ``TEMPLATE_CONTEXT_PROCESSORS`` (a default Django
-settings file will not have any)::
+You need at least the following :setting:`TEMPLATE_CONTEXT_PROCESSORS` (a
+default Django settings file will not have any)::
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
@@ -139,14 +140,14 @@ settings file will not have any)::
)
Almost there!
-Point your ``MEDIA_ROOT`` to where the static media should live (that is, your images,
+Point your :setting:`MEDIA_ROOT` to where the static media should live (that is, your images,
CSS files, Javascript files...)::
MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"
ADMIN_MEDIA_PREFIX="/media/admin/"
-Now add a little magic to the ``TEMPLATE_DIRS`` section of the file::
+Now add a little magic to the :setting:`TEMPLATE_DIRS` section of the file::
TEMPLATE_DIRS = (
# The docs say it should be absolute path: PROJECT_PATH is precisely one.
@@ -177,11 +178,11 @@ translations for, this is way too many so we'll limit it to English for now::
('en', 'English'),
]
-Finally, setup the ``DATABASES`` part of the file to reflect your database
-deployment. If you just want to try out things locally, sqlite3 is the easiest
-database to set up, however it should not be used in production. If you still
-wish to use it for now, this is what your ``DATABASES`` setting should look
-like::
+Finally, setup the :setting:`DATABASES` part of the file to reflect your
+databasedeployment. If you just want to try out things locally, sqlite3 is the
+easiest database to set up, however it should not be used in production. If you
+stillwish to use it for now, this is what your :setting:`DATABASES` setting
+should look like::
DATABASES = {
'default': {
@@ -249,7 +250,7 @@ Up and running!
That should be it. Restart your development server using ``python manage.py runserver``
and point a web browser to `127.0.0.1:8000 <http://127.0.0.1:8000>`_ :you should get
-the Django CMS "It Worked" screen.
+the django CMS "It Worked" screen.
|it-works-cms|
@@ -385,7 +386,8 @@ The list of pages available is a handy way to change a few parameters about your
Visibility
----------
-By default, pages are "invisible". To let people access them you should mark them as "published".
+By default, pages are "invisible". To let people access them you should mark
+them as "published".
Menus
-----
@@ -396,12 +398,12 @@ or not)
Adding content to a page
========================
-So far, our page doesn't do much. Make sure it's marked as "published", then click on the page's
-"edit" button.
+So far, our page doesn't do much. Make sure it's marked as "published", then
+click on the page's "edit" button.
Ignore most of the interface for now, and click the "view on site" button on the
-top right-hand corner of the screen. As expected, your page is blank for the time being,
-since our template is really a minimal one.
+top right-hand corner of the screen. As expected, your page is blank for the
+time being, since our template is really a minimal one.
Let's get to it now then!
@@ -414,7 +416,7 @@ The admin interfaces shows you theses placeholders as sub menus:
.. |first-placeholders| image:: ../images/first-placeholders.png
Scroll down the "Available plugins" drop-down list. This displays the plugins you
-added to your INSTALLED_APPS settings. Choose the "text" plugin in the drop-down,
+added to your :setting:`INSTALLED_APPS` settings. Choose the "text" plugin in the drop-down,
then press the "Add" button.
The right part of the plugin area displays a rich text editor (`TinyMCE`_).
@@ -447,7 +449,7 @@ If you're editing a Page in the Django admin, but don't see an "Add Plugin"
button with a dropdown-list of plugins:
- Be sure your :setting:`CMS_TEMPLATES` setting is correct, the templates specified
- exist, and they contain at least one ``{% placeholder %}`` templatetag.
+ exist, and they contain at least one :ttag:`{% placeholder %} <placeholder>` template tag.
Template errors
@@ -469,7 +471,7 @@ Safari or Chrome). The Javascript inspector may report the following errors:
- **TypeError: Result of expression 'jQuery' [undefined] is not a function.**
-If you see this, check the ``MEDIA_URL`` variable in your settings.py file. Your
+If you see this, check the :setting:`MEDIA_URL` variable in your settings.py file. Your
webserver (e.g.: Apache) should be configured to serve static media files from
this URL.
@@ -481,7 +483,7 @@ this URL.
This error is due to the Django test server running on a different port and URL
than the main webserver. In your test environment, you can overcome this issue
by adding a :setting:`CMS_MEDIA_URL` variable to your ``settings.py`` file, and
-adding a url rule in urls.py to make the Django development serve the Django
+adding a url rule in ``urls.py`` to make the Django development serve the django
CMS files from this location.
.. _South: http://south.aeracode.org/
View
10 docs/getting_started/using_south.rst
@@ -17,7 +17,7 @@ as easy as typing::
pip install South
-Then, simply add "South" to the list of ``INSTALLED_APPS`` in your
+Then, simply add ``south`` to the list of :setting:`INSTALLED_APPS` in your
``settings.py`` file.
@@ -27,15 +27,15 @@ Basic usage
For a very short crash course:
-#. Instead of the initial manage.py syncdb command, simply run
+#. Instead of the initial ``manage.py syncdb`` command, simply run
``manage.py schemamigration --initial <app name>``. This will create a new
migrations package, along with a new migration file (in the form of a python
script).
-#. Run the migration using manage.py migrate. Your tables have now been created
- in the database, Django will work as usual
+#. Run the migration using ``manage.py migrate``. Your tables have now been created
+ in the database, Django will work as usual.
#. Whenever you make changes to your models.py file, run
``manage.py schemamigration --auto <app name>`` to create a new migration
- file, then ``manage.py migrate`` to apply the newly created migration!
+ file, then ``manage.py migrate`` to apply the newly created migration.
****************************
View
4 docs/upgrade/2.2.rst
@@ -42,9 +42,9 @@ Accessing :attr:`cms.plugins_base.CMSPluginBase.pluginmedia` or
The :class:`cms.middleware.media.PlaceholderMediaMiddleware` middleware was also
removed in this process and is therefore no longer required, however you now
require to have the ``'sekizai.context_processors.sekizai'`` context processor
-in your ``TEMPLATE_CONTEXT_PROCESSORS`` setting.
+in your :setting:`TEMPLATE_CONTEXT_PROCESSORS` setting.
-All templates in ``CMS_TEMPLATES`` must contain at least the ``js`` and ``css``
+All templates in :setting:`CMS_TEMPLATES` must contain at least the ``js`` and ``css``
sekizai namespaces.
Please refer to the documentation on :ref:`custom-plugins-handling-media` in
Please sign in to comment.
Something went wrong with that request. Please try again.