Package: tocka-djangocms-cascade
DjangoCMS-Cascadeis the Swiss army knife for working with Django
CMS plugins.Dis iz a FORK!fix for django-reversion (already merged)minor reordering of fields in Column Pluginhopefully will be merged in the main repo, so this package is
temporaryinstall withpip installtocka-djangocms-cascadeOriginal readme below…Add DOM elements to a Django-CMS placeholderDjangoCMS-Cascadeis a collection of plugins for DjangoCMS >= 3.0.8
to add various HTML elements to any CMSplaceholderin a hierarchical tree.It allows web editors to layout their pages, without having to edit
Django templates. In most cases, one template with one single
placeholder is enough. The editor then can subdivide that placeholder
into rows and columns, and add additional elements such as buttons,
rulers, and much more.Currently about a dozen compontents fromBootstrap-3.xare avialble,
butCascademakes it very easy to add additional compontents, often
with less than 20 lines of Python code and without any database
migrations.Since all plugins share the same database table, it is very easy to
build inheritance trees. For instance, Cascade’s ownLinkPlugininherits from aLinkPluginBase, which also is the parent of theImagePluginand theButtonPlugin. This helps to share the common
functionality required for linking.Its pluggableDjangoCMS-Cascadeis very modular, keeping its CMS modules in
functional groups. These groups have to be activated independently in
yoursettings.py. It also is possible to activate only certain
Plugins out of a group. One such group iscmsplugin_cascade.bootstrap3, but it could be replaced by a futureBootstrap-4, theFoundation,YUIor whatever other CSS
framework you prefer.Configurable individuallyEach Cascade Plugin can be styled individually. The site-administrator
can specify which CSS styles and CSS classes can be added to each
plugin. Then the page-editor can pick one of the allowed styles to adopt
his elements accordingly.Reuse your dataEach Cascade Plugin can be configured by the site-administrator to share
some or all of its data fields. This for instance is handy, to keep
references onto external URLs in a central place. Or is can be used to
resize all images sharing a cetrain property in one go.Segment the DOMIt is even possible to group plugins into seperate evaluation contexts.
This for instance is used to render different Plugins, depending on
whether a user is authenticated or anonymous.Responsive ImagesIn modern web development, images must adopt to the column width in
which they are rendered. Therefore the<img...>tag, in addition to
the well knownsrcattribute, also accepts additionalsrcset’s,
one for each media query.DjangoCMS-Cascadecalculates the required
widths for each image, depending on the current column layout
considering all media breakpoints.News for next major release 0.5.0Tested withdjango-cms 3.0.13and Django-1.6.Added SegmentationPlugin. This allows to conditionally render parts
of the DOM, depending on the status of variousrequestobject
members, such asuser.SettingCASCADE_LEAF_PLUGINShas been replaced byCMSPLUGIN_CASCADE_ALIEN_PLUGINS. This simplifies the programming
of third party plugins, since the author of a plugin now only must
set the memberalien_child_classes = True.Help neededIf you like this project, please invest some time and test it with
Django-1.7/1.8, django-cms-3.1 and if possible Python-3.4.With migrations added to Django-1.7, testing and developing plugins for
django-cms get really messy. I currently have no resources to do all
this cross-development.Travis-CI worked for djangocms-cascade, Django-1.7 and
django-cms-3.0.12, but since the last upgrade this is not the case
anymore. If someone can find out why, it would be really great.FeaturesUse the scaffolding technique from the preferred CSS framework to
subdivide a placeholder into agrid
system.Make full usage of responsive techniques, by allowingstacked to
horizontalclasses per element.Use styledbuttonsto add
links.Wrap special content into aJumbotronor aCarouselAdd<img>and<picture>elements in a responsive way, so that
more than one image URL point onto the resized sources, one for each
viewport using thesrcsettags or the<source>elements.Use segmentation the render parts of the DOM conditionally.It is very easy to integrate additional elements from the preferred
CSS framework. For instance, implementing the Bootstrap Carousel,
required 50 lines of Python code and two simple Django templates.Since all the data is stored in JSON, no database migration is
required if a field is added, modified or removed from the plugin.CurrentlyBootstrap-3.xis supported, but other CSS frameworks
can be easily added in a pluggable manner.In addition to easily implement any kind of plugin,DjangoCMS-Cascademakes it possible to add reusable helpers. Such a
helper enriches a plugin with an additional, configurable functionality:By making some of the plugin fields sharable, one can reuse these
values for other plugins of the same kind. This for instance is handy
for the image and picture plugin, so that images always are resized
to predefined values.By allowing extra fields, one can add an optionalidtag, CSS
classes and inline styles. This is configurable on a plugin and site
base.Detailed documentationFind detailed documentation onReadTheDocs.Build statusHistoryThis project started as a simplewrapperfor the
DjangoCMS TextPlugin, so that text elements could be shifted
horizontally using the Grid System 960. Later on, support for 960.gs was
dropped in favor of Twitter Bootstrap. Now the aim of the project is to
fully support all Bootstrap components and more, so that djangoCMS can
be used to build a website with as many widgets as possible, without
having to edit templates.DjangoCMS starting with version 3.0, allows to nest plugins inside other
plugins. This feature made it possible to implement this kind of plugin.LicenseReleased under the terms of MIT License.Copyright © 2015, Jacob Riefjacob.rief@gmail.com