时间跟踪和报告器
项目描述
时间跟踪器。
基本思路是将所有情况变化存储为事件流,并从这些事件中创建报告。
用法
Usage: z [OPTIONS] [GROUP] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
add Apply tags and notes.
break Change to or start the `break` situation.
remove Remove tags and flush notes.
report Create a report of your events.
work Change to or start the `work` situation.
示例会话
您可以在示例中添加时间戳,这将被解析为您的时区。您可以缩写命令,所以跟踪正在运行的项目的时间最短方式就是 z w 和 z b。
> export ZEITIG_STORE=/tmp/zeitig; mkdir $ZEITIG_STORE
> z foobar work -t foo "2018-04-01 08:00:00"
> z break "2018-04-01 12:00:00"
> z w "2018-04-01 13:00:00"
> z b "2018-04-01 17:30:00"
> z
Actual time: 2018-05-04 23:09:01
Actual group: foobar of foobar
Last situation in foobar: Break started at 2018-04-01 17:30:00 since 797.65 hours
Store used: /tmp/zeitig/olli
Last event: groups/foobar/source/2018-04-01T15:30:00+00:00
> z report
Working times for foobar until Friday 04 May 2018
Week: 13
2018-04-01 08:00:00 - 12:00:00 - 4.00 - foo
2018-04-01 13:00:00 - 17:30:00 - 4.50
Total hours: 8.50
内部
您可以在当前工作目录路径的某个位置创建一个 .zeitig 目录来使用它作为存储。其他默认值为 ~/.config/zeitig 和 ~/.local/share/zeitig。
为每个用户创建一个单独的目录,其中包含组和事件源
.zeitig/
|
+- <user>
|
+- last ---+
| |
+- groups |
| | v
| +- <group>
| |
| +- source
| | |
| | +- <event UTC timestamp>
| |
| +- templates
| | |
| | +- <jinja template>
| |
| +- template_defaults.toml
| |
| +- template_syntax.toml
|
+- templates
| |
| +- <jinja template>
|
+- template_defaults.toml
|
+- template_syntax.toml
事件以简单的 toml 文件存储。
报告
事件完全暴露给报告模板。您可以将某些过滤器聚合器管道化以修改事件流。
模板由 jinja2 渲染。您可以通过特殊的 template_syntax.toml 文件修改起始和结束标记。
一个示例latex模板可能看起来像这样
\documentclass{article}
\usepackage[a4paper, total={6in, 8in}]{geometry}
\usepackage{longtable,array,titling,booktabs}
\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}
\title{\vspace{-13em}Timesheet\vspace{0em}}
\author{\vspace{-10em}}
\date{\vspace{-5em}}
% sans serif font
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\maketitle
\thispagestyle{empty} % no page footer
\vspace{-5em}
\begin{longtable}{
>{\raggedleft\arraybackslash}r
>{\raggedright\arraybackslash}l}
\textbf{Client}: & We do something special\\
\textbf{Contractor}: & Oliver Berger\\
\textbf{Project number}: & 12-345-6789-0\\
\end{longtable}
\begin{longtable}{
>{\raggedright\arraybackslash}l
>{\raggedright\arraybackslash}l
>{\raggedleft\arraybackslash}r
>{\raggedright\arraybackslash}l}
Start & End & Hours & Description\\
\BLOCK{for event in events.pipeline(
report.source,
events.filter_no_breaks,
events.Summary.aggregate,
events.DatetimeChange.aggregate
)-}
\BLOCK{if py.isinstance(event, events.DatetimeChange) and event.is_new_week}
\midrule
\BLOCK{endif-}
\BLOCK{if py.isinstance(event, events.Work)}
\VAR{event.local_start.to_datetime_string()} & \VAR{event.local_end.to_time_string()} & \VAR{'{0:.2f}'.format(event.period.total_hours())} & \BLOCK{if event.tags}\VAR{', '.join(event.tags)}\BLOCK{endif-}\\
\BLOCK{endif-}
\BLOCK{if py.isinstance(event, events.Summary)}
\midrule
\multicolumn{2}{l}{\textbf{Total hours}} & \textbf{\VAR{'{0:.2f}'.format(event.works.total_hours())}} & \\
\BLOCK{endif-}
\BLOCK{-endfor-}
\end{longtable}
\vspace{5em}
\begin{longtable}{
>{\centering\arraybackslash}p{3.5cm}
l
>{\centering\arraybackslash}p{5.5cm}}
\cline{1-1}
\cline{3-3}
Date & & Signature of client\\
\end{longtable}
\end{document}
Jinja语法
组jinja模板语法将合并到用户语法中
[jinja_env]
[jinja_env.latex]
# define a latex jinja env
block_start_string = "\\BLOCK{"
block_end_string = "}"
variable_start_string = "\\VAR{"
variable_end_string = "}"
comment_start_string = "\\#{"
comment_end_string = "}"
line_statement_prefix = "%%"
line_comment_prefix = "%#"
trim_blocks = true
autoescape = false
[templates]
# map a template name to a jinja env
latex_template = "latex"
Jinja默认值
您还可以为组定义模板默认值,这些值将合并到用户模板默认值中。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
zeitig-0.4.1.tar.gz (21.6 kB 查看哈希值)
构建分布
zeitig-0.4.1-py3-none-any.whl (70.0 kB 查看哈希值)
关闭
zeitig-0.4.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e22bf6d57be21384aa7251ffb9fbda9c3c3e49c704d8dcf3d6d4ca474f87ad2b |
|
MD5 | 093423f1469919d0a949c2e5f8361d27 |
|
BLAKE2b-256 | cfb8b78ebefaece62111cfdf60aefb393f6c5b035d9db953893996ec5a0f6b5f |
关闭
zeitig-0.4.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee708e8e95da620db7aff55b37f704533d2911b47348f87d6300e0168ad8bf41 |
|
MD5 | 38121155b7cb55971c79b5e793b6be22 |
|
BLAKE2b-256 | 09d012f9ecb5d2fd5da06beeb1562035bfab51e876b0009bb7d3fd429255669d |