Terminal based time-tracking and reporting tool; comparable to 'worklog'.
Project description
Usage
Call getan or getan.py in a terminal to start with an empty list of tasks (in the default datebase) that you want to track time for.
Use the Insert-Key to add a new task to track or import a list of task via SQL. (A task is called project within getan.) You will have to give a project “key” and a project “description”.
Now select one of the projects with the arrow keys from your keyboard and press enter to start the clock. See INTRODUCTION for more keyboard commands.
The time log entries will be saved in an sqlite database, by default getan will create ~/.getan/time.db. The scripts/ will help to generate reports from them.
Tree mode
Getan supports a hierarchy of projects. A top level project key has only one character, once you starting using a second character as project key, it will be the next level down in the hierarchy. Example:
a Top level project aa 1st second level project ab 2nd second level project aba Third level Project
Use the switch_project_order key which is f2 by default to cycle to the hierarchical view.
Customization
Use ~/.getan/getanrc or the system-wide /etc/getanrc to customize keys and colors. See getan/config.py for the recognized options. Example:
[keybindings] # changes the insert function to be activated by the `)` key insert: ) [theme] header: light green, dark green body: light green, black
Installation
Getan requires urwid in a version >= 1.0. Urwid is a console user interface library written in Python. For console output e.g. zeiterfassung.py Getan also requires Jinja2 <http://jinja.pocoo.org/>_.
Install urwid
On Debian GNU/Linux >= Wheezy just run as root::
$ apt-get install python3-urwid
On other systems urwid may be installed via pip or directly put into the sources of getan.
Using pip
To install urwid via pip run as root:
$ pip install urwid
Or if you prefer using a 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
Using urwid sources
Urwid can be put as source to the getan directory when getan is run directly from the sources. Urwid source can be downloaded from pypi.
For urwid 1.1.2 the direct download link from pypi is https://pypi.python.org/packages/source/u/urwid/urwid-1.1.2.tar.gz (sha256sum is 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
Install Jinja2
On Debian GNU/Linux just run as root::
$ apt-get install python3-jinja2
On other systems jinja2 may be installed via pip or directly put into the sources of getan.
Using pip
To install jinja2 via pip run as root:
$ pip install jinja2
Or if you prefer using a virtualenv:
$ source getan-env/bin/activate (getan-env)$ pip install jinja2
Install getan
A installation of getan is not required. It can also be run directly from the sources. To install getan system wide the following command must be run as root user:
$ python3 setup.py install
You may need to install setuptools first, on Debian GNU/Linux just run as root::
$ apt-get install python3-setuptools
Starting getan
Getan can be directly run from sources or after a system wide installation from the bin dir (e.g. /usr/bin).
Running from Sources
To run getan from the sources run:
$ ./getan.py
or:
$ ./getan.py /path/to/mytime.db
to choose a different sqlite3 database then the default time.db
Running from installation
After installing getan it can be run with:
$ getan
or:
$ getan /path/to/mytime.db
Writing Templates
External templates must be stored in ~/.getan/templates/ to be able to call them.
Getan uses the Jinja2 templating language. You can find more information at Jinja2.
If a year or a week is specified, only the entries in this period will be loaded.
Variables
- current_week
The current week.
- current_year
The current year.
- user
What You indicated with -u.
- week
What You indicated with -w.
- iso_week
What You indicated with -w, in iso notation.
- unix_week
What You indicated with -w, in unix notation.
- year
What you indicated with -y.
- get_total_duration()
Total duration of all entries.
- database
Path of the database.
- entries
List of all entries.
- get_comment()
Description of the entry.
- get_workpackage()
Work package of the entry.
- desc
Work package and Description of the entry.
- startisoday
Year, month and day in ISO format.
- start
Start time as datetime.
- end
End time as datetime.
- get_duration()
Duration of the entry.
- projects
List of all projects.
- get_total_duration()
Total duration of all entries in the project.
- desc
Description of the project.
- key
Key of the project.
- entries
All entries in this project (See entries).
If -w is specified, only this week will be loaded from the database.
- year()
All entries in this year.
- month()
All entries in this month.
- week()
All entries in this week.
- day()
All entries in this day.
Filters
- human_time(delta)
return “%d:%02d” % (h, m)
- date_format(datetime)
strftime(“%d.%m.%Y”)
- decimal_hours(delta) -> float
Return hours as decimal with max 1 place after locale’s decimal_point.
- duration(events)
Sum of the durations of the given entries.
- sum_duration(projects)
Sum of the durations of the given projects.
Example
Example:
{{ 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 -%} # total time: {{ proj.get_total_duration()|human_time }}h {% endfor %} # total: {{ total_time|decimal_hours }}h
CREDITS
Getan is Free Software licensed under the terms of GNU GPL v>=3. For details see LICENSE coming with the source of ‘getan’.
Main development
Contributions
Thanks
To all users that gave feedback, especially at Intevation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file getan-3.7.1.tar.gz
.
File metadata
- Download URL: getan-3.7.1.tar.gz
- Upload date:
- Size: 43.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
03894f2e66c6106d1988121bd3e0ec85fb3782b475bd7e377f8e13ec9ce74357
|
|
MD5 |
99515d9d0e2a19e6daa6ef73112ab86c
|
|
BLAKE2b-256 |
437ec367465e1913d216ea33ef2e6dec42cf5db9af6921cbc2e7213df1a21c05
|
File details
Details for the file getan-3.7.1-py3-none-any.whl
.
File metadata
- Download URL: getan-3.7.1-py3-none-any.whl
- Upload date:
- Size: 48.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
90011a65c5039e501a0439bd0828a837a1794bc50a9b861a20f2ef3de82c5923
|
|
MD5 |
9795e89799bec94898577b4431cf0553
|
|
BLAKE2b-256 |
122c0ff388a01b17a15e4cbd42a1723dbef9b04ccc329b5aeddc686a41b421d9
|