django-timepiece

django-timepiece is a multi-user application for tracking people’s time on projects. Complete documentation is available on Read The Docs.

Features

  • A simple CRM with projects and businesses
  • User dashboards with budgeted hours based on project contracts
  • Time sheets with daily, weekly, and monthly summaries
  • Verified, approved, and invoiced time sheet workflows
  • Monthly payroll reporting with overtime, paid leave, and vacation summaries
  • Project invoicing with hourly summaries

Requirements

django-timepiece is compatible with Python 2.{6,7}, Django 1.{3,4}, and PostgreSQL. PostgreSQL is the only offically supported database backend and, therefore, requires psycopg2. django-timepiece also depends on the following Django apps:

django-timepiece uses Sphinx and RST for documentation. You can use Sphinx to build the documentation:

A makefile is included with the documentation so you can run make html in the doc/ directory to build the documentation.

Installation

  1. django-timepiece is available on PyPI, so the easiest way to install it is to use pip:

    $ pip install django-timepiece
  2. Ensure that less is installed on your machine:

    # Install node.js and npm:
    $ sudo apt-get install python-software-properties
    $ sudo add-apt-repository ppa:chris-lea/node.js
    $ sudo apt-get update
    $ sudo apt-get install nodejs npm
    
    # Use npm to install less:
    $ npm install less -g
  3. Add timepiece and its dependencies to INSTALLED_APPS in settings.py and run syncdb:

    INSTALLED_APPS = (
        ...
        'bootstrap_toolkit',
        'compressor',
        'pagination',
        'selectable',
        'timepiece',
        ...
    )
  4. Add django.core.context_processors.request and django-timepiece context processors to TEMPLATE_CONTEXT_PROCESSORS:

    TEMPLATE_CONTEXT_PROCESSORS = (
        "django.contrib.auth.context_processors.auth",
        "django.core.context_processors.debug",
        "django.core.context_processors.i18n",
        "django.core.context_processors.media",
        "django.contrib.messages.context_processors.messages",
        "django.core.context_processors.request",       # <----
        "timepiece.context_processors.extra_nav",       # <----
        "timepiece.context_processors.active_entries",  # <----
    )
    
  5. Configure compressor:

    COMPRESS_PRECOMPILERS = (
        ('text/less', 'lessc {infile} {outfile}'),
    )
    COMPRESS_ROOT = '%s/static/' % PROJECT_PATH
    
  6. Add URLs for django-timepiece and selectable to urls.py, e.g.:

    urlpatterns = patterns('',
        ...
        (r'^selectable/', include('selectable.urls')),
        (r'', include('timepiece.urls')),
        ...
    )
    
  7. Add the django.contrib.auth URLs to urls.py, e.g.:

    urlpatterns = patterns('',
        ...
        url(r'^accounts/login/$', 'django.contrib.auth.views.login',
            name='auth_login'),
        url(r'^accounts/logout/$', 'django.contrib.auth.views.logout_then_login',
            name='auth_logout'),
        url(r'^accounts/password-change/$',
            'django.contrib.auth.views.password_change',
            name='change_password'),
        url(r'^accounts/password-change/done/$',
            'django.contrib.auth.views.password_change_done'),
        url(r'^accounts/password-reset/$',
            'django.contrib.auth.views.password_reset',
            name='reset_password'),
        url(r'^accounts/password-reset/done/$',
            'django.contrib.auth.views.password_reset_done'),
        url(r'^accounts/reset/(?P<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$',
            'django.contrib.auth.views.password_reset_confirm'),
        url(r'^accounts/reset/done/$',
            'django.contrib.auth.views.password_reset_complete'),
        ...
    )
  8. Create registration templates. For examples, see the registration templates in example_project/templates/registration. Ensure that your project’s template directory is added to TEMPLATE_DIRS:

    TEMPLATE_DIRS = (
        ...
        '%s/templates' % PROJECT_PATH,
        ...
    )

Development sponsored by Caktus Consulting Group, LLC.

Contents:

Indices and tables

Project Versions

Table Of Contents

Next topic

Settings

This Page