Skip to main content

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

master:

Build Status

develop:

Build Status

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 Django 1.8 (on Python 2.7 and Python 3.5) and Django 1.9 (on Python 2.7 and Python 3.5). PostgreSQL is the only officially supported backend. For a full list of required libraries, see the requirements/base.txt from the project source on GitHub.

We actively support desktop versions of Chrome and Firefox, as well as common mobile platforms. We do not support most versions of Internet Explorer. We welcome pull requests to fix bugs on unsupported browsers.

Documentation

Documentation is hosted on Read The Docs.

To build the documentation locally:

  1. Download a copy of the django-timepiece source, either through use of git clone or by downloading a zipfile from GitHub.

  2. Make sure that the top-level directory is on your Python path. If you’re using a virtual environment, this can be accomplished via:

    cd /path/to/django-timepiece/ && add2virtualenv .
  3. Install the requirements in requirements/docs.txt from the project source on GitHub.

  4. Run make html from within the docs/ directory. HTML files will be output in the docs/_build/html/ directory.

Installation

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

    $ pip install django-timepiece
  2. Ensure that less is installed on your machine and the version is <=1.4.0:

    # 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 from package.json:
    $ npm install
  3. If you are starting from the included example project, copy the example local settings file at example_project/settings/local.py.example to example_project/settings/local.py.

    If you are using an existing project, you will need to make the following changes to your settings:

    • Add timepiece and its dependencies to INSTALLED_APPS:

      INSTALLED_APPS = (
          ...
          'bootstrap_toolkit',
          'compressor',
          'selectable',
      
          # Must come last.
          'timepiece',
          'timepiece.contracts',
          'timepiece.crm',
          'timepiece.entries',
          'timepiece.reports',
      )
    • Configure your middleware:

      MIDDLEWARE_CLASSES = (
          'django.middleware.common.CommonMiddleware',
          'django.contrib.sessions.middleware.SessionMiddleware',
          'django.middleware.csrf.CsrfViewMiddleware',
          'django.contrib.auth.middleware.AuthenticationMiddleware',
          'django.contrib.messages.middleware.MessageMiddleware',
      )
    • 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.quick_clock_in",      # <----
          "timepiece.context_processors.quick_search",        # <----
          "timepiece.context_processors.extra_settings",      # <----
      )
    • Configure compressor settings:

      COMPRESS_PRECOMPILERS = (
          ('text/less', 'lessc {infile} {outfile}'),
      )
      COMPRESS_ROOT = '%s/static/' % PROJECT_PATH
      INTERNAL_IPS = ('127.0.0.1',)
    • Set USE_TZ to False. django-timepiece does not currently support timezones.

  4. Run syncdb and migrate.

  5. Add URLs for django-timepiece and selectable to urls.py, e.g.:

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

    urlpatterns = [
        ...
        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'),
        ...
    ]
  7. 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 Group.

Release files for django-timepiece 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-timepiece 1.1.0
File Size Uploaded
django-timepiece-1.1.0.tar.gz 645.5 kB Details

Release files / django-timepiece-1.1.0.tar.gz

Download URL django-timepiece-1.1.0.tar.gz
Size 645.5 kB
Tags Source
SHA-256 checksum
How to use checksums
a0b8d0bbcecffc681af508bb6255484ea3b9217db1ea0426cd7cba401f9230d5
BLAKE2b-256 checksum
How to use checksums
edcbe501955f4520f2c8fe1b111412b015b116d55007b30d38fe3a7f5a69204a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.0

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.9.1

1 release file

0.9

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.1

1 release file

0.8

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7

1 release file

0.6

1 release file

0.5.4

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.5

1 release file

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page