# How to install Softwarefabrica Django Utils

About this document

This document describes how to install Softwarefabrica Django Utils and use it in your Django applications.

Contents

- Pre-requisites
- Installing an official release
  - Binary distribution
  - Source distribution
  - Windows installer
- Installing the development version
- Using the app in your projects

# Pre-requisites

This library depends on sflib from the same author. If you use EasyInstall, as outlined below, dependencies will be satisfied automatically (the `easy_install` command will take care of everything).

# Installing an official release

Official releases are made available from PyPI

http://pypi.python.org/pypi/softwarefabrica.django.utils

## Binary distribution

If you have EasyInstall available, you can download and install the most up-to-date version in one step. For example, on a unix-like system:

    $ su
    # easy_install softwarefabrica.django.utils

If you are using Ubuntu, to install system-wide:

    $ sudo easy_install softwarefabrica.django.utils

Otherwise, if EasyInstall is not available, you can just download (eg. from PyPI) the right distribution for your platform and Python version , extract it and run the usual `setup.py` commands:

    $ su
    # python setup.py install

These commands will install the software in your Python installation's `site-packages` directory.

## Source distribution

If you have EasyInstall available, you can download and extract the most up-to-date source distribution in one step. For example, on a unix-like system:

    easy_install --editable --build-directory ~/projects softwarefabrica.django.utils

Then from the `softwarefabrica.django.utils` directory you can run the `setup.py develop` command to install the library in your Python site-packages directory using a link, which allows to continue developing inside the working tree without the need to re-install after every change. See the setuptools development mode documention for more information:

    $ python setup.py build
    $ sudo
    # python setup.py develop

Otherwise, if EasyInstall is not available, you can just download the source distribution (eg. from PyPI), extract it and run the usual `setup.py` commands:

    $ su
    # python setup.py install

This command will install the software in your Python installation's `site-packages` directory.

## Windows installer

A Windows installer will be made available in a next release.

# Installing the development version

Alternatively, if you'd like to update the software occasionally to pick up the latest bug fixes and enhancements before they make it into an offical release, branch from the Bazaar repository hosted on LaunchPad instead. Just follow the procedure outlined below:

1. Make sure that you have Bazaar installed, and that you can run its commands from a shell. (Enter `bzr help` at a shell prompt to test this.)

2. Create a local branch and working tree from the official one:

       bzr branch lp:sf-django-utils sf-utils

3. Then from the `sf-utils` directory you can run the `setup.py develop` command to install the library in your Python site-packages directory using a link, which allows to continue developing inside the working tree without the need to re-install after every change. See the setuptools development mode documention for more information:

       $ sudo
       # python setup.py develop

4. You can verify that the application is available on your PYTHONPATH by opening a Python interpreter and entering the following commands:

       >>> from softwarefabrica.django.utils import version
       >>> version.VERSION
       (1, 0, 'dev')
       >>> version.get_version()
       u'1.0-dev-BZR-rXX-panta@elasticworld.org-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

When you want to update your copy of the library source code, run the command `bzr pull` from within the `sf-utils` directory:

    bzr pull
    sudo python setup.py develop

(you need to re-run the `setup.py develop` command after every working tree update, to update version numbers in script wrappers).

Caution!

The development version may contain bugs which are not present in the release version and introduce backwards-incompatible changes.

If you're tracking trunk, keep an eye on the changes before you update your copy of the source code.

# Using the app in your projects

Once you've installed the library and want to use it in your Django projects:

1. put `'softwarefabrica.django.utils'` in your `INSTALLED_APPS` setting:

       INSTALLED_APPS = (
           ...
           'softwarefabrica.django.utils',
       )

2. make sure that you have `'django.template.loaders.app_directories.load_template_source'` in your `TEMPLATE_LOADERS` setting.

3. add `'softwarefabrica.django.utils.viewshelpers.context_vars'` to your `TEMPLATE_CONTEXT_PROCESSORS` setting. Typically it should be:

       TEMPLATE_CONTEXT_PROCESSORS = (
           'django.core.context_processors.auth',
           'django.core.context_processors.debug',
           'django.core.context_processors.i18n',
           'django.core.context_processors.media',
           'django.core.context_processors.request',
           'softwarefabrica.django.utils.viewshelpers.context_vars',
       )

Since there are no associated models, a `manage.py syncdb` command is not necessary.

That's it!