view display_issues_demo.py @ 25:7161ce4e7ab1

The web-based display is dynamically generated. * All graphs are passed in one object. All graphs are passed in one object. The graphs are generated iteratiev and assigned a color. * roundup_cc.py can count how many issues are in which state.
author Magnus Schieder <mschieder@intevation.de>
date Mon, 12 Nov 2018 18:03:26 +0100
parents 89469aa41fe1
children 761ee2351f58
line wrap: on
line source
#!/usr/bin/env python3

""" Fetch issues from a roundup-tracker and save them in a databse.

author: Sascha L. Teichmann <sascha.teichmann@intevation.de>
author: Bernhard Reiter <bernhard@intevation.de>
author: Sean Engelhardt <sean.engelhardt@intevation.de>

(c) 2010, 2015, 2018 by Intevation GmbH

This is Free Software unter the terms of the
GNU GENERAL PUBLIC LICENSE Version 3 or later.
See http://www.gnu.org/licenses/gpl-3.0.txt for details
"""
import configparser
import argparse
from display_issues import *

STATES = "unread, deferred, chatting, need_eg, in_progress, testing, done_cbb, resolved"

parser = argparse.ArgumentParser()
parser.add_argument("config_file", type=str, metavar="[config file]")
args = parser.parse_args()

config = configparser.ConfigParser()
config.read(args.config_file)

db = config.get("DB", "DatabaseFile")
keywords = config.get("SEARCH", "Keywords", fallback="")



status = config.get("SEARCH", "Status", fallback="")
columns = config.get("SEARCH", "Columns", fallback="critical, urgent, bug, feature, wish")
noPrio = config.get("SEARCH", "IncludeNoPrio", fallback=False)
search = config.get("SEARCH", "Search", fallback="prio")
if search == "status":
    if status == "":
        columns = STATES
    else:
        columns = status
    noPrio = False

if noPrio:
    columns += ", None"

cgitb.enable() # (optional) HTML traceback to browser
#render_db_stats_as_html("./demo1.db", rcd.SELECT_ALL)
render_db_stats_as_html(db,
        rcd.build_sql_select(columns).format("timestamp > date('now', '-2 month')"),
        columns, status, keywords)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)