• Stars
    star
    361
  • Rank 117,188 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 13 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A multi-user Django application for tracking people's time on projects.

django-timepiece

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.

More Repositories

1

django-project-template

Django project template for startproject (Requires 2.2+)
Python
212
star
2

django-treenav

Extensible, hierarchical, and pluggable navigation system for Django sites
Python
129
star
3

django-scribbler

django-scribbler is an application for managing snippets of text for a Django website.
Python
115
star
4

aws-web-stacks

Easily create AWS managed resources in an isolated VPC for hosting web applications.
Python
100
star
5

django-email-bandit

A Django email backend for hijacking email sending in a test environment.
Python
74
star
6

django-jsx

A simple tool for using Django and React/JSX together
Python
58
star
7

django-pagelets

Simple CMS for Django projects
JavaScript
58
star
8

fabulaws

A Python tool for creating and interacting with ephemeral AWS resources
Python
41
star
9

dockerfile_post

Code to accompany https://www.caktusgroup.com/blog/2017/03/14/production-ready-dockerfile-your-python-django-app/
Python
40
star
10

django-file-picker

django-file-picker
JavaScript
37
star
11

margarita

A collection of delicious Salt states for Django project deployments.
SaltStack
35
star
12

django-sticky-uploads

Enhanced file input widget for Django which uploads the file in the background and retains value on form errors.
Python
31
star
13

taytay

β™₯ Taylor Swift Lyric Generator β™₯
Python
29
star
14

django-comps

A utility that provides an entry point for integrating front end designers into a django project
Python
27
star
15

rapidsms-twilio

RapidSMS Twilio Backend
Python
22
star
16

django-filters-facet

A django-filter extension to refine search results using faceted navigation functionality.
Python
21
star
17

django-crumbs

django-crumbs is a pluggable Django app for adding breadcrumbs to your project.
Python
17
star
18

django_bread

Help create BREAD views in Django
Python
14
star
19

rapidsms-appointments

A reusable RapidSMS application for sending appointment reminders.
Python
12
star
20

django-styleguide

Styleguide helper for projects that work with design teams
CSS
12
star
21

tracerlib

Tracerlib provides a set of helpers to make tracing Python code easier.
Python
11
star
22

rapidsms-threadless-router

A RapidSMS router implementation that removes the threading functionality from the legacy Router class.
Python
10
star
23

rapidsms-tropo

Tropo backend for RapidSMS
Python
9
star
24

guidebook

9
star
25

rapidsms-healthcare

A Django/RapidSMS application for managing patient and healthcare provider records in a pluggable fashion.
Python
8
star
26

django-template-graph

Python
7
star
27

django-sanitizer

Python
7
star
28

django-dry-choices

Create choices for Django model and form choice fields in a concise, consistent and DRY manner.
Python
7
star
29

rapidsms-raspberrypi

JavaScript
7
star
30

redundant

A technical debt analysis tool
Python
7
star
31

smsdemo

Demo RapidSMS Application for PyCon 2105 Workshop https://us.pycon.org/2015/schedule/presentation/479/
Python
6
star
32

django-app-template

A template for creating a new reusable application for Django.
Python
6
star
33

drf-sample

Django REST Framework Sample
Python
5
star
34

tequila-django

Ansible role for setting up a Django project running under gunicorn and/or Celery on a server
Shell
5
star
35

rapidsms-clickatell

RapidSMS Clickatell Backend
Python
5
star
36

caktus-sphinx-theme

Custom Sphinx theme for project written and maintained by Caktus Consulting Group
Python
4
star
37

philly-hip

Code for hip.phila.gov
Python
4
star
38

ultimatetictactoe

JavaScript
4
star
39

rapidsms-natal-care

A RapidSMS application for pre-natal and post-natal appointment tracking.
Python
4
star
40

cordwainer

A better CSV library
Python
4
star
41

hyperfiction

Interactive Fiction engine and mark up language, written using Polymer Platform
4
star
42

pygsm-gateway

Simple HTTP gateway for using a GSM modem with PyGSM
Python
3
star
43

tequila-dokku

3
star
44

rapidsms-broadcast

Python
3
star
45

rapidsms-nutrition

RapidSMS app for monitoring growth and nutrition
Python
3
star
46

framework-playground

Erlang
3
star
47

ansible-role-django-k8s

Ansible role with sane defaults to deploy a Django app to Kubernetes.
Jinja
3
star
48

tequila

Straight-up project deployment roles, without the Salt.
3
star
49

rapidsms-salt

JavaScript
2
star
50

invoke-kubesae

Basic management tasks for working with a Kubernetes cluster
Python
2
star
51

tequila-nginx

Ansible role for setting up nginx on a server as a forwarding proxy for Django
2
star
52

rapidsms-deploy-dotcloud

Python
2
star
53

rapidsms-salt-multi-server

JavaScript
2
star
54

rapidsms-groups

Python
2
star
55

commcare-utilities

Python
2
star
56

ansible-role-k8s-web-cluster

An Ansible role to help configure Kubernetes clusters for web apps.
1
star
57

jade-truffle

The smallest Caktus
Python
1
star
58

ansible-role-podman-containers

1
star
59

hosted-rapidpro

Shell
1
star
60

rapidsms-reports

Python
1
star
61

ansible-role-aws-web-stacks

Ansible Role - aws-web-stacks
1
star
62

jazzhands

Python
1
star
63

tequila-solr

Ansible role for Solr for Django projects
1
star
64

slider

Ship It Day experiment using React to build a slider game/puzzle.
JavaScript
1
star
65

gulp-tasks

JavaScript
1
star
66

tequila-postgresql

Ansible role for creating a Postgres database for a Django project
1
star
67

ibid

Ibid IRC bot
Python
1
star
68

pycon-dashboard

HTML
1
star
69

beeware-sqlite3

Proof of concept BeeWare app using sqlite3
Python
1
star
70

reaktus

JavaScript
1
star
71

tequila-rabbitmq

Ansible role for creating a task queue for a Django project using RabbitMQ
1
star
72

tequila-cli

Python
1
star
73

caktus-docker-context

Ansible playbook to configure a remote host as a docker context
1
star
74

Traffic-Stops

NC CopWatch is a website to monitor and identify racial profiling practices by North Carolina law enforcement agencies
Jupyter Notebook
1
star
75

tequila-common

Ansible role for setting up users, keys, directories, and a firewall for a Django server
1
star
76

django-opendebates

Python
1
star
77

lightning-talk-lunches

Slides for the lightning talk lunches sponsored by Caktus Consulting Group
JavaScript
1
star
78

rapidsms-rerouter

Python
1
star
79

talks

HTML
1
star
80

offlinedatacollector

ShipIt Day Project: proof of concept for offline enabled data collection via a browser
JavaScript
1
star