Accordion

Models

Represents a accordion component, functionally similar to a Slider, except that a accordion item cannot contain hyperlinks or their associated contents.

Accordion items are ordered from their order field value. Items with a zero value for their order will be ordered in an almost arbitrary order (mostly depending from item object id).

class cmsplugin_blocks.models.accordion.Accordion(*args, **kwargs)[source]

Accordion container for items.

title

A required title string.

template

Template choice from available plugin templates in setting BLOCKS_ACCORDION_TEMPLATES. Default to the first choice item.

keep_open

Checkbox to enable “keep items opened” behavior.

size_features

Optional related size features.

color_features

Optional related color features.

extra_features

Optional related extra features.

copy_relations(oldinstance)[source]

Copy FK relations when plugin object is copied as another object

See:

http://docs.django-cms.org/en/latest/how_to/custom_plugins.html#for-foreign-key-relations-from-other-objects

class cmsplugin_blocks.models.accordion.AccordionItem(*args, **kwargs)[source]

Accordion item to include in container.

title

Required title string.

image

Required image file.

image_alt

An optional text string for alternative image text.

content

Optional long text, it will be editable through CKeditor on plugin form.

order

Number for order position in item list.

opened

Checkbox to initially open item.

Factories

Forms

class cmsplugin_blocks.forms.accordion.AccordionForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
property media

Return all media required to render the widgets on this form.

class cmsplugin_blocks.forms.accordion.AccordionItemForm(data=None, files=None, auto_id='id_%s', prefix=None, initial=None, error_class=<class 'django.forms.utils.ErrorList'>, label_suffix=None, empty_permitted=False, instance=None, use_required_attribute=None, renderer=None)[source]
property media

Return all media required to render the widgets on this form.

Plugins

class cmsplugin_blocks.plugins.accordion.AccordionPlugin(model=None, admin_site=None)[source]

Accordion interface is able to add/edit/remove accordion items as inline forms.

module = 'Blocks'

Modules collect plugins of similar type

name = 'Accordion'

Name of the plugin needs to be set in child classes

model

alias of Accordion

form

alias of AccordionForm

render_template = 'cmsplugin_blocks/accordion/default.html'

The path to the template used to render the template. If render_plugin is True either this or get_render_template must be defined. See also: render_plugin , get_render_template().

cache = True

Is this plugin cacheable? If your plugin displays content based on the user or request or other dynamic properties set this to False.

If present and set to False, the plugin will prevent the caching of the resulting page.

Important

Setting this to False will effectively disable the CMS page cache and all upstream caches for pages where the plugin appears. This may be useful in certain cases but for general cache management, consider using the much more capable get_cache_expiration().

Warning

If you disable a plugin cache be sure to restart the server and clear the cache afterwards.

get_fieldsets(request, obj=None)[source]

Define plugin form fieldsets depending features are enabled or not (when there is no defined feature choices).

render(context, instance, placeholder)[source]

This method returns the context to be used to render the template specified in render_template.

Parameters:
  • context (dict) – The context with which the page is rendered.

  • instance (cms.models.pluginmodel.CMSPlugin instance) – The instance of your plugin that is rendered.

  • placeholder (str) – The name of the placeholder that is rendered.

Return type:

dict or django.template.Context

This method must return a dictionary or an instance of django.template.Context, which will be used as context to render the plugin template.

By default, this method will add instance and placeholder to the context, which means for simple plugins, there is no need to overwrite this method.

If you overwrite this method it’s recommended to always populate the context with default values by calling the render method of the super class:

def render(self, context, instance, placeholder):
    context = super().render(context, instance, placeholder)
    ...
    return context