跳转到主要内容

基于终端的时间跟踪和报告工具;类似于'worklog'。

项目描述

用法

在终端中调用getangetan.py以启动一个空的任务列表,用于跟踪时间。

使用插入键添加新任务以跟踪。在getan中,任务被称为“项目”。您必须输入项目的“密钥”和“描述”。

现在使用键盘上的箭头键选择一个项目,然后按回车键开始计时。有关更多键盘命令,请参阅简介

时间日志条目将保存在sqlite数据库中,默认情况下,getan将在~/.getan/time.db中创建。scripts/将帮助从中生成报告。

树模式

Getan支持项目层次结构。顶级项目密钥只有一个字符,一旦您开始使用第二个字符作为项目密钥,它将在层次结构中降低一个级别。例如

a    Top level project
aa   1st second level project
ab   2nd second level project
aba  Third level Project

使用默认为f2的switch_project_order密钥来循环到层次视图。

自定义

使用~/.getan/getanrc或系统范围内的/etc/getanrc来自定义密钥和颜色。有关可识别选项,请参阅getan/config.py。示例

[keybindings]
# changes the insert function to be activated by the `)` key
insert: )

[theme]
header: light green, dark green
body: light green, black

安装

Getan需要版本>= 1.0的urwid。Urwid是用Python编写的控制台用户界面库。对于控制台输出(例如zeiterfassung.py),Getan还需要Jinja2 <http://jinja.pocoo.org>

安装urwid

在Debian GNU/Linux >= Wheezy上,只需以root用户运行:

$ apt-get install python3-urwid

在其他系统上,urwid可以通过pip安装或直接放入getan的源中。

使用pip

要使用pip安装urwid,请以root用户运行

$ pip install urwid

或者如果您更喜欢使用virtualenv

$ virtualenv getan-env
$ source getan-env/bin/activate
(getan-env)$ pip install -U pip  # to get the latest pip
(getan-env)$ pip install urwid

使用urwid源

当直接从源运行getan时,可以将Urwid作为源放入getan目录。Urwid源可以从pypi下载。

对于urwid 1.1.2,pypi上的直接下载链接是https://pypi.python.org/packages/source/u/urwid/urwid-1.1.2.tar.gz(sha256sum是f56568b4f8459b3265c65d9e275ef72df6cb16ad0c291f0feb027cc911ea0f26)。

$ cd getan-source
$ v=urwid-1.1.2
$ curl -O https://pypi.python.org/packages/source/u/urwid/$v.tar.gz
$ sha256sum $v.tar.gz
$ tar -xzvf $v.tar.gz
$ ln -s $v/urwid urwid

安装Jinja2

在Debian GNU/Linux上,只需以root用户运行:

$ apt-get install python3-jinja2

在其他系统上,jinja2可以通过pip安装或直接放入getan的源中。

使用pip

要使用pip安装jinja2,请以root用户运行

$ pip install jinja2

或者如果您更喜欢使用virtualenv

$ source getan-env/bin/activate
(getan-env)$ pip install jinja2

安装getan

安装getan不是必需的。它也可以直接从源运行。要系统范围内安装getan,必须以root用户运行以下命令

$ python3 setup.py install

您可能需要先安装setuptools,在Debian GNU/Linux上只需以root用户运行:

$ apt-get install python3-setuptools

启动getan

Getan可以直接从源运行或从全局安装后的bin目录(例如/usr/bin)运行。

从源运行

要从源运行getan,请运行

$ ./getan.py

或者

$ ./getan.py /path/to/mytime.db

要选择不同的sqlite3数据库而不是默认的time.db

从安装运行

安装getan后,可以使用以下命令运行

$ getan

或者

$ getan /path/to/mytime.db

编写模板

外部模板必须存储在~/.getan/templates/中才能调用它们。

Getan使用Jinja2模板语言。更多信息请访问Jinja2

如果指定了年份或星期,则仅加载此期间条目。

变量

current_week:当前星期。current_year:当前年份。

user:您通过-u指定的内容。week:您通过-w指定的内容。unix_week:您通过-w指定的内容,使用Unix表示法。year:您通过-y指定的内容。

get_total_duration():所有条目的总时长。

database:数据库路径。

entries:所有条目的列表。

get_comment():条目的描述。get_workpackage():条目的工作包。desc:条目的工作包和描述。

startisoday:ISO格式的年、月和日。start:作为datetime的起始时间。end:作为datetime的结束时间。get_duration():条目的时长。

projects:所有项目的列表。

get_total_duration():项目中所有条目的总时长。desc:项目的描述。key:项目的密钥。

entries:此项目中的所有条目(参见entries)。

如果指定了-w,则只从数据库中加载此星期条目。

year():此年所有条目。month():此月所有条目。week():此星期所有条目。day():此日所有条目。

示例

{{ user }}, (KW {{ week }}, {{ year }}) {% for i in user -%} = {%- endfor -%}

{% for proj in projects %} # {{ proj.desc }} {% for entry in proj.entries|sort(attribute=’start’) -%} {{ entry.get_comment() }} {% endfor -%} # 总时间: {{ proj.get_total_duration()|human_time }}h {% endfor %} # 总计: {{ total_time|human_time }}h

致谢

Getan 是自由软件,遵循 GNU GPL v>=3 许可协议。有关详细信息,请参阅随“getan”源代码提供的 LICENSE 文件。

主要开发人员

2018- Magnus Schieder <magnus.schieder@intevation.de>(当前维护者) 2014- Bernhard E. Reiter <bernhard@intevation.de> 2011-2014 Björn Ricks <bjoern.ricks@intevation.de> 2010 Ingo Weinzierl <ingo.weinzierl@intevation.de> 2009-2014 Thomas Arendsen Hein <thomas@intevation.de> 2008-2010 Sascha L. Teichmann <sascha.teichmann@intevation.de>

贡献者

Frank Koormann Stephan Holl Tom Gottfried

感谢

感谢所有提供反馈的用户,特别是在 Intevation。

项目详情


下载文件

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

源代码分发

getan-3.6.tar.gz (26.8 kB 查看哈希

上传时间 源代码

构建分发

getan-3.6-py3-none-any.whl (46.4 kB 查看哈希

上传时间 Python 3

支持者

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页面