Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
PyLucid is a Open Source web content management system written in Python using the Django Framework.

README.creole

about PyLucid

PyLucid is an Open Source web content management system written in Python.

This django-cms branch is a completely rewrite.

The current state of the Django-CMS branch is not useable :(

Fork and contribute! ;)

Coverage Status on coveralls.io coveralls.io/r/jedie/PyLucid
Build Status on travis-ci.org travis-ci.org/jedie/PyLucid

install

prepare

The Pillow (PIL fork) doesn't provide binaries for Linux. Make sure you have Python’s development libraries installed. e.g.:

$ sudo apt-get install python3-dev libjpeg-dev libfreetype6-dev

more info here: https://pillow.readthedocs.org/en/latest/installation.html

bootstrap PyLucid

# download bootstrap file:
/home/FooBar$ wget https://github.com/jedie/PyLucid/raw/django-cms/pylucid-boot.py

# Create virtualenv with all needed packages:
/home/FooBar$ python3 pylucid-boot.py ~/PyLucid_env

Now you have a virtual environment with all existing packages.

create page instance

You can create a new page instance with the pylucid_installer cli programm:

# Go into created virtualenv:
/home/FooBar$ cd ~/PyLucid_env

# activate the env:
~/PyLucid_env $ source bin/activate

# Create a page instance:
(PyLucid_env) ~/PyLucid_env $ pylucid_installer --dest=~/page_instance --name=MyCoolSite

# Go into created page instance
(PyLucid_env) ~/PyLucid_env $ cd ~/page_instance/

# init django
(PyLucid_env) ~/page_instance $ ./manage.py syncdb

# run dev. server:
(PyLucid_env) ~/page_instance $ ./manage.py runserver

Info: You can also create more than one page instance! All page instance will use the same environment.

optional packages

Before any pip install, go to your virtual env and activate it! e.g.:

/home/FooBar$ cd ~/PyLucid_env
~/PyLucid_env $ source bin/activate

MySQL DB API Driver:

(PyLucid_env) ~/PyLucid_env $ pip install mysqlclient

see also: Django database docs.

FastCGI wrapper for WSGI applications:

(PyLucid_env) ~/PyLucid_env $ pip install flipflop

see also: https://pypi.python.org/pypi/flipflop

unittests

# go to your virtual env and activate it:
/home/FooBar$ cd ~/PyLucid_env
~/PyLucid_env $ source bin/activate
(PyLucid_env) ~/PyLucid_env $ cd src/pylucid/

# run the tests:
(PyLucid_env) ~/PyLucid_env/src/pylucid $ ./setup.py test

PyLucid v1 migration

Use use the Multiple databases feature to migrate a old v1 installation: e.g.:

DATABASES = {
    'default': { # New, empty database for PyLucid v2 data
        ...
    },
    'legacy': { # Your old database with existing PyLucid v1 data
        ...
    }
}

You must activate some settings:

  • pylucid_migration, pylucid_todo in INSTALLED_APPS
  • Activate a 'legacy' named second database with the old PyLucid v1 data
  • Activate DATABASE_ROUTERS

(All parts exists in the example project settings ;) )

commands for migration, e.g.:

# migrate old pages to django-cms:
(PyLucid_env) ~/page_instance $ ./manage.py migrate_pylucid --inline_script

# migrate old blog entries to djangocms-blog:
(PyLucid_env) ~/page_instance $ ./manage.py migrate_blog --inline_script

# export existing designs into filesystem
(PyLucid_env) ~/page_instance $ ./manage.py export_designs

NOTE: With the argument --inline_script all <script> areas would be migrate to a html-markup entry. So all <script> areas are active after migration. Without --inline_script all <script> areas will be result in escaped text.

All unsupported lucidTag entries will be migrate to the "ToDoPlugin". SO the origin code is not away, but will be not visible for anonymous users.

dev info

Currently the base files are a mix of:

donation

links

Homepage http://www.pylucid.org
Development history visible / backward-incompatible changes
Forum http://forum.pylucid.org/
IRC #pylucid on freenode.net
Github http://github.com/jedie/PyLucid
Sourceforge http://sourceforge.net/projects/pylucid/
Google code http://code.google.com/p/pylucid/
Something went wrong with that request. Please try again.