[Getan-commits] [PATCH 2 of 2] Reworked the --help function

Wald Commits scm-commit at wald.intevation.org
Tue Jan 22 15:57:14 CET 2019


# HG changeset patch
# User Magnus Schieder <mschieder at intevation.de>
# Date 1548167728 -3600
# Node ID 31282f97b8073438bed87fd39329df3388ac7879
# Parent  bad607aec1afd7f8bf878c1b6b1910044644607f
Reworked the --help function

 * More information about the templates

 * Information about the templates and how to
   create them added to the README file.

diff -r bad607aec1af -r 31282f97b807 README
--- a/README	Thu Jan 17 19:27:07 2019 +0100
+++ b/README	Tue Jan 22 15:35:28 2019 +0100
@@ -167,6 +167,74 @@
     $ getan /path/to/mytime.db
 
 
+Writing Templates
+=================
+
+Getan uses the Jinja2 templating language. You can find more information
+at `Jinja2 <http://jinja.pocoo.org/>`_.
+
+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.
+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.
+
+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|human_time }}h
+
+
 CREDITS
 =======
 Getan is Free Software licensed under the terms of GNU GPL v>=3.
diff -r bad607aec1af -r 31282f97b807 getan/main.py
--- a/getan/main.py	Thu Jan 17 19:27:07 2019 +0100
+++ b/getan/main.py	Tue Jan 22 15:35:28 2019 +0100
@@ -47,11 +47,12 @@
     ''' % getan.__version__
 
     parser = argparse.ArgumentParser(prog='getan', usage=usage,
-             formatter_class=argparse.RawTextHelpFormatter)
+            description="You can find more information at https://pypi.org/project/getan/",
+            formatter_class=argparse.RawTextHelpFormatter)
     parser.add_argument('--version', action='version',
                         version=textwrap.dedent(version))
     parser.add_argument(dest='filename', nargs='?',
-                        help='[databasefile (default: %(default)s)]',
+                        help='[databasefile (default: ~/.getan/%(default)s)]',
                         default=DEFAULT_DATABASE)
     parser.add_argument('--init-only', action='store_true', dest='initonly',
                         help='create databasefile if necessary and exit')
diff -r bad607aec1af -r 31282f97b807 scripts/getan-report
--- a/scripts/getan-report	Thu Jan 17 19:27:07 2019 +0100
+++ b/scripts/getan-report	Tue Jan 22 15:35:28 2019 +0100
@@ -14,16 +14,23 @@
 import argparse
 
 from getan.template import render
+from getan.backend import DEFAULT_DATABASE
 
 
 def main():
     usage='getan-report [options]'
-    parser = argparse.ArgumentParser(prog='getan', usage=usage)
+    parser = argparse.ArgumentParser(prog='getan', usage=usage,
+            description="You can find more information at https://pypi.org/project/getan/")
 
-    parser.add_argument('-d', '--database', dest='database',metavar="DATABASE",
-                        help='metavar="DATABASE')
+    parser.add_argument('-d', '--database', dest='database',metavar="DATABASE_FILE",
+                        help='databasefile (default: ~/.getan/%(default)s)]',
+                        default=DEFAULT_DATABASE)
     parser.add_argument('-t', '--template', dest='template',
-                        metavar='TEMPLATE', help='name of getan template')
+                        metavar='TEMPLATE',
+                        help="""name of getan template (wochenbericht,
+                                zeiterfassung, zeiterfassung2),
+                                external templates must be stored in
+                                ~/.getan/templates/ to be able to call them.""")
     parser.add_argument('-u', '--user', dest='user', help='name of user')
     parser.add_argument('-p', '--project', dest='project',
                         help='key of output project')


More information about the Getan-commits mailing list