跳转到主要内容

一个多用户应用程序,用于跟踪员工在项目上的时间。

项目描述

django-timepiece是一个多用户应用程序,用于跟踪人员在项目上的时间。文档可在Read The Docs上找到。

master:

Build Status

develop:

Build Status

功能

  • 一个简单的CRM,具有项目和业务

  • 基于项目合同的预算小时数用户仪表板

  • 带每日、每周和每月总结的时间表

  • 已验证、批准和开具发票的时间表工作流程

  • 带加班费、带薪休假和假期总结的月度工资报告

  • 带小时总结的项目发票

要求

django-timepiece 与 Django 1.8(在 Python 2.7 和 Python 3.5 上)以及 Django 1.9(在 Python 2.7 和 Python 3.5 上)兼容。PostgreSQL 是唯一官方支持的数据库后端。有关所需库的完整列表,请参阅项目源代码中的 requirements/base.txt,可在 GitHub 上找到。

我们积极支持桌面版本的 Chrome 和 Firefox,以及常见的移动平台。我们不支持大多数版本的 Internet Explorer。我们欢迎修复不支持浏览器中错误的 pull requests。

文档

文档托管在 Read The Docs 上。

在本地构建文档

  1. 下载 django-timepiece 源代码的副本,可以通过使用 git clone 或从 GitHub 下载 zipfile 来完成。

  2. 确保顶级目录位于您的 Python 路径上。如果您正在使用虚拟环境,可以通过以下方式实现:

    cd /path/to/django-timepiece/ && add2virtualenv .
  3. 从项目源代码在 GitHub 上安装 requirements/docs.txt 中的需求。

  4. docs/ 目录中运行 make html。HTML 文件将输出到 docs/_build/html/ 目录。

安装

  1. django-timepiece 可在 PyPI 上找到,因此安装它及其依赖项的最简单方法是使用 pip

    $ pip install django-timepiece
  2. 确保您的机器上已安装 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
  3. 如果您是从包含的示例项目开始的,请将位于 example_project/settings/local.py.example 的示例本地设置文件复制到 example_project/settings/local.py

    如果您正在使用现有项目,您需要对设置进行以下更改:

    • timepiece 及其依赖项添加到 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-timepiece 上下文处理器添加到 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-timepiece 目前不支持时区。

  4. 运行 syncdbmigrate

  5. 将 django-timepiece 和 selectable 的 URL 添加到 urls.py,例如:

    urlpatterns = [
        ...
        (r'^selectable/', include('selectable.urls')),
        (r'', include('timepiece.urls')),
        ...
    ]
  6. django.contrib.auth 的 URL 添加到 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'),
        ...
    ]
  7. 创建注册模板。例如,请参阅 example_project/templates/registration 中的注册模板。确保将您项目的模板目录添加到 TEMPLATE_DIRS

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

Caktus Group 赞助开发。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-timepiece-1.1.0.tar.gz (645.5 kB 查看哈希值)

上传时间

由以下支持