用于跟踪项目上员工时间的多用户应用程序。
django-timepiece的Python项目详细描述
django计时器是一个多用户应用程序,用于跟踪人们的时间 项目。文档可在Read The Docs上找到。
master: | |
---|---|
develop: |
功能
- 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
要求
Django计时器与Django 1.8(在Python2.7和Python3.5上)兼容,并且 Django 1.9(在Python2.7和Python3.5上)。PostgreSQL是唯一 官方支持的后端。有关所需库的完整列表,请参见 来自GitHub上项目源的requirements/base.txt。
我们积极支持Chrome和Firefox的桌面版本,以及 移动平台。我们不支持大多数版本的Internet Explorer。我们 欢迎请求修复不支持的浏览器上的错误。
安装
django计时器在PyPI上提供,因此最简单的方法是 安装它,它的依赖项是使用pip:
$ pip install django-timepiece
确保less已安装在您的计算机上,并且版本为<;=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
如果从包含的示例项目开始,请复制该示例 本地设置文件位于 示例\u project/settings/local.py。
如果您使用的是现有项目,您需要做以下操作 更改您的设置:
将计时器及其依赖项添加到INSTALLED_APPS:
INSTALLED_APPS = ( ... 'bootstrap_toolkit', 'compressor', 'selectable', # Must come last. 'timepiece', 'timepiece.contracts', 'timepiece.crm', 'timepiece.entries', 'timepiece.reports', )
配置中间件:
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', )
添加django.core.context_processors.request和django计时器上下文 处理器到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", # <---- )
配置压缩机设置:
COMPRESS_PRECOMPILERS = ( ('text/less', 'lessc {infile} {outfile}'), ) COMPRESS_ROOT = '%s/static/' % PROJECT_PATH INTERNAL_IPS = ('127.0.0.1',)
将USE_TZ设置为False。Django计时器当前不支持 时区。
运行syncdb和migrate。
为django计时器添加url,并可选择urls.py,例如:
urlpatterns = [ ... (r'^selectable/', include('selectable.urls')), (r'', include('timepiece.urls')), ... ]
将django.contrib.authurl添加到urls.py,例如:
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'), ... ]
创建注册模板。例如,请参见注册模板 在“项目/模板/注册”示例中。确保您的项目 模板目录被添加到TEMPLATE_DIRS:
TEMPLATE_DIRS = ( ... '%s/templates' % PROJECT_PATH, ... )
由Caktus Group赞助的开发。