django-timepiece 0.9.4

django-timepiece is a multi-user application for tracking people's time on projects.

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

master:
develop:

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.{4,5}, and PostgreSQL. PostgreSQL is the only offically supported database backend and, therefore, requires psycopg2. django-timepiece also depends on the following Django apps:

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.

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. 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',
          'pagination',
          'selectable',
      
          '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',
          'pagination.middleware.PaginationMiddleware',
      )
      
    • 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.

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

    urlpatterns = patterns('',
        ...
        (r'^selectable/', include('selectable.urls')),
        (r'', include('timepiece.urls')),
        ...
    )
    
  6. 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'),
        ...
    )
    
  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 Consulting Group, LLC.

BSD

Author

Caktus Consulting Group

Pip

django-timepiece==0.9.4

Classifiers

  • Intended Audience :: Developers
  • Operating System :: OS Independent
  • Programming Language :: Python
  • Programming Language :: Python :: 2.6
  • Programming Language :: Python :: 2.7
  • Development Status :: 4 - Beta
  • License :: OSI Approved :: BSD License
  • Topic :: Software Development :: Libraries :: Python Modules
  • Topic :: Internet :: WWW/HTTP :: Dynamic Content
File Type Python Version Uploaded On Downloads
django-timepiece-0.9.4.tar.gz Source April 1, 2014 2,161
Version Release Date
0.9.4 April 1, 2014
0.9.3 Nov. 6, 2013
0.9.2 May 31, 2013
0.9.1 May 14, 2013
0.9 May 10, 2013
0.8.3 March 27, 2013
0.8.2 Jan. 25, 2013
0.8.1 Jan. 22, 2013
0.8 Jan. 21, 2013
0.7.3 Jan. 7, 2013
0.7.2 Nov. 28, 2012
0.7.1 Nov. 28, 2012
0.7 Nov. 16, 2012
0.6 Oct. 4, 2012
0.5.4 Sept. 14, 2012
0.5.2 Aug. 1, 2012
0.5.1 July 20, 2012
0.5 July 12, 2012
0.4.2 June 15, 2012
0.4.1 June 4, 2012
0.4.0 April 27, 2012
0.3.8 Feb. 16, 2012
0.3.7 Feb. 1, 2012
0.3.6 Feb. 1, 2012
0.3.5 Dec. 9, 2011
0.3.4 Nov. 14, 2011
0.3.3 Oct. 31, 2011
0.3.2 Oct. 28, 2011
0.3.1 Oct. 20, 2011
Date Package Version Action
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.5.4 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.8.2 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.8.3 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.8.1 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.9.4 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.9.3 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.9.2 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.9.1 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.5.2 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.5.1 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.4.2 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.4.0 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.4.1 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.7.1 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.4 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.7.3 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.7.2 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.1 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.3 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.2 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.8 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.7 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.5 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.6 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.7 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.5 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.3.6 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.8 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece 0.9 Release Created
Aug. 26, 2015, 12:29 a.m. django-timepiece Package Created