public
Description: A Django-based CMS with a focus on extensibility and concise code
Homepage: http://www.feinheit.ch/
Clone URL: git://github.com/matthiask/feincms.git
name age message
file .gitignore Fri Aug 21 04:11:43 -0700 2009 Include compiled locale files in the repository... [matthiask]
file .mailmap Thu Jul 16 03:41:12 -0700 2009 Update AUTHORS file, add .mailmap for git shortlog [matthiask]
file AUTHORS Mon Aug 10 02:45:15 -0700 2009 Update AUTHORS file [matthiask]
file LICENSE Mon Feb 16 11:21:34 -0800 2009 Copy Django's license [matthiask]
file MANIFEST.in Tue Sep 29 23:26:47 -0700 2009 Remove trailing slashes from directory names in... [matthiask]
file README Mon Aug 10 15:33:01 -0700 2009 More xref work, other documentation improvements [matthiask]
file TODO Mon Aug 10 02:47:26 -0700 2009 Remove infanta for the time being -- it is not ... [matthiask]
directory docs/ Tue Nov 17 07:32:44 -0800 2009 Add missing import in example. [mjl]
directory example/ Mon Nov 23 08:25:52 -0800 2009 Minor update: use Django 1.1 namespaced admin U... [acdha]
directory feincms/ Wed Nov 25 12:38:27 -0800 2009 More flexible admin UI This allows the use of ... [acdha]
file quickstart.sh Wed Jul 15 13:02:58 -0700 2009 Add quickstart shell script [matthiask]
file setup.py Thu Oct 08 15:12:27 -0700 2009 Added module.extensions to setup.py [acdha]
README
========================================
FeinCMS - An extensible Django-based CMS
========================================

When was the last time, that a pre-built software package you wanted to
use got many things right, but in the end, you still needed to modify
the core parts of the code just because it wasn't (easily) possible to
customize the way, a certain part of the system behaved?

Django came to rescue all of us, who were not happy with either doing
everything on our own or customizing another software package until it
was impossible to update.

The biggest strength of a framework-like design is, that it tries not
to have a too strong view of what the user should do. It should make some
things easy, but just GET OUT OF THE WAY most of the time.

Just after discovering the benefits of a framework-like approach to
software design, we fall back into the rewrite everything all the time
mindset and build a CMS which has very strong views how content should
be structured. One rich text area, a media library and some templates,
and we have a simple CMS which will be good enough for many pages. But
what if we want more? If we want to be able to add custom content? What
if the user can't be trusted to resize images before uploading them?
What if you'd like to add a gallery somewhere in between other content?
What if the user should be able to administer not only the main content,
but also a sidebar, the footer?

With FeinCMS, this does not sound too good to be true anymore. And it's
not even complicated.


FeinCMS is an extremely stupid content management system. It knows
nothing about content -- just enough to create an admin interface for
your own page content types. It lets you reorder page content blocks
using a drag-drop interface, and you can add as many content blocks
to a region (f.e. the sidebar, the main content region or something
else which I haven't thought of yet). It provides helper functions,
which provide ordered lists of page content blocks. That's all.


Adding your own content types is extremely easy. Do you like textile
that much, that you'd rather die than using a rich text editor?
Then add the following code to your project, and you can go on using the
CMS without being forced to use whatever the developers deemed best:

::

    from feincms.module.page.models import Page
    from django.contrib.markup.templatetags.markup import textile
    from django.db import models

    class TextilePageContent(models.Model):
        content = models.TextField()

        class Meta:
            abstract = True

        def render(self, **kwargs):
            return textile(self.content)

    Page.create_content_type(TextilePageContent)


That's it. Not even ten code lines for your own page content type.



Getting started
===============

Visit these sites
-----------------

* Look at screenshots of the administration interface: http://spinlock.ch/pub/feincms/
* Read the documentation: http://spinlock.ch/pub/feincms/html/
* See the google groups page at http://groups.google.com/group/django-feincms
* FeinCMS on github: http://github.com/matthiask/feincms/tree