django-fluent-contents 1.0b2

Introduction

The fluent_contents module offers a widget engine to display various content on a Django page.

This engine operates similarly like Django CMS, FeinCMS or django-portlets,
however, it can be used for any project, or CMS system.

Page contents can be constructed with multiple “content items”.
You can define your own content items, or use one the available content items out of the box.
Standard web sites could use the bundled default content items.
Other advanced designs (such as a web site with a magazine-like design, having many blocks at a page)
can be implemented quickly by defining content items for the various “style elements” at the page.

Web editors are able to place the “content items” at the page,
hence they can fill the content of advanced layouts easily and directly in the Django admin.
This also applies to pages which have a “free form” or “presentation slide” design,
this module allows the end-user to manage and configure the designed elements at the page.

The most advanced combination, is using the PlaceholderEditorAdmin or PlaceholderEditorAdminMixin classes.
These classes are designed for CMS-style applications which multiple placeholders on a page.
See the provided example application for details.

NOTE:

The django-fluent-pages application is built on top of this API, and provides a ready-to-use CMS that can be implemented with minimal configuration effort.
To build a custom CMS, the API documentation of the fluent_contents.admin module provides more details of the classes.

Details about the various settings are explained in the documentation.

Creating custom content items

To implement custom elements of a design - while making them editable for admins -
this module allows you to create custom content items.
Take a look in the existing types at fluent_contents.plugins to see how it’s being done.

Et, voila: web editors are now able to place an announcement items at the page
in a very structured manner! Other content items can be created in the same way,
either in the same Django application, or in a separate application.

Contributing

This module is designed to be generic. In case there is anything you didn’t like about it,
or think it’s not flexible enough, please let us know. We’d love to improve it!

If you have any other valuable contribution, suggestion or idea,
please let us know as well because we will look into it.
Pull requests are welcome too. :-)