diff scripts/getan-eval.py @ 380:20fde79f8e12

Move all scripts in a common scripts directory Currently console scripts were kept in several directories. Now use a common directory for all scripts.
author Björn Ricks <bjoern.ricks@intevation.de>
date Mon, 05 Jan 2015 10:54:20 +0100
parents getan/contrib/getan-eval.py@82a5dd050436
children da9a400848fd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/getan-eval.py	Mon Jan 05 10:54:20 2015 +0100
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# (c) 2013, 2014 by Björn Ricks <bjoern.ricks@intevation.de>
+#
+# This is Free Software licensed under the terms of GPLv3 or later.
+# For details see LICENSE coming with the source of 'getan'.
+
+import codecs
+import locale
+import sys
+
+from datetime import date, datetime, timedelta
+from optparse import OptionParser
+
+from getan.template import render
+
+
+def main():
+    parser = OptionParser()
+    parser.add_option("-d", "--database", dest="database",
+                      help="getan database",  metavar="DATABASE")
+    parser.add_option("-t", "--template", dest="template", metavar="TEMPLATE",
+                      help="name of getan template")
+    parser.add_option("-u", "--user", dest="user", help="name of user")
+    parser.add_option("-p", "--project", dest="project",
+                      help="key of output project")
+    parser.add_option("-w", "--week", type="int", dest="week",
+                      help="week of year")
+    parser.add_option("-y", "--year", type="int", dest="year", help="year")
+    parser.add_option("-c", "--lastweek", dest="lastweek",
+                      help="entries of last working week",
+                      action="store_true")
+    parser.add_option("-m", "--empty", dest="empty",
+                      help="show projects without an entries",
+                      action="store_true")
+    parser.add_option("--encoding", dest="encoding",
+                      help="encoding of output", metavar="ENCODING")
+
+    (options, args) = parser.parse_args()
+
+    if options.lastweek:
+        week = (datetime.now() - timedelta(7)).isocalendar()[1]
+        year = int(date.today().strftime("%Y"))
+    else:
+        year = options.year
+        week = options.week
+
+    template_name = options.template or "wochenbericht"
+
+    if not options.encoding:
+        encoding = locale.getdefaultlocale()[1]
+
+    Writer = codecs.getwriter(encoding)
+    sys.stdout = Writer(sys.stdout)
+
+    print render(database=options.database, user=options.user,
+                 template=template_name, year=year, week=week,
+                 project=options.project, empty_projects=options.empty)
+
+
+if __name__ == '__main__':
+    main()
+
+# vim:set ts=4 sw=4 si et sta sts=4 :
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)