Skip to content

omab/django-tcms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Django tCMS

Django tCMS an easy to setup CMS that integrates easily with django-admin.

This project was brought to life by Matías Aguirre while hacking a CMS framework for Mydeco while working on Insophia.

Description

Sites with custom CMS systems usually relies on deployment to bring new pages layouts, and these new pages are created by us, developers. tCMS brings a new mechanism where new pages definitions can be defined using our favorite tool, python. With a set of building blocks pages are created easily once it's structure is well defined.

Features

  • Use python to define your pages.
  • Django-admin integration.
  • Rich editing using CKEditor (users need to install CKEditor and define setting for tCMS app).
  • Pages i18n, check Localization section for more details.
  • Easy template integration, an easy {{ cms.block_name }} includes named block.

Dependencies

This application only depends on django-admin.

Installation

From pypi:

$ pip install django-tcms

or:

$ easy_install django-tcms

or clone from github:

$ git clone git://github.com/omab/django-tcms.git

and add tCMS to PYTHONPATH:

$ export PYTHONPATH=$PYTHONPATH:$(pwd)/tcms/

or:

$ cd tcms
$ sudo python setup.py install

Configuration

  • Add tCMS to installed applications:

    INSTALLED_APPS = (
        ...
        'tcms',
    )
    
  • Define where your pages are defined:

    TCMS_PAGES = 'tcms_pages'
    

    The application will import the modules inside and inspect anything that has a PAGE variable defined.

  • Define where images should be uploaded:

    TCMS_IMAGES_UPLOAD_TO = 'cms/image/%Y/%m/%d'
    

    This setting is used to populate a upload_to Django field parameter, so you can use any supported formats.

  • Define this setting if you have CKEditor installed and want it to be used while editing content:

    TCMS_CKEDITOR_BASE_URL = '/media/js/ckeditor'
    
  • The application uses Django cache to store content to speed up loading the content when serving the content to users, by default the cache name is tcms, but you can override it by defining:

    TCMS_CACHE_NAME = '...'
    
  • To enable page localizations, set this setting to True:

    TCMS_LOCALIZED = True
    

    Localization is disabled by default.

  • Define your settings with the extra name/values needed by your templates:

    RENDER_EXTRA_CONTEXT = {...}
    

Localization

If your site support multiple languages, you will want to create pages on every language.

tCMS uses Django LANGUAGES when searching for supported languages, but allows you to create global language pages, for example if you support en-gb and en-us locales, it's possible to define a page with locale en and it will be used to server the same content for users requesting for one or other locale.

Example proyect

Check the example to see how it works.