view display_issues_demo.py @ 27:cdab667c6abb

Delete Code Duplication and Clean Up. * The search for the status does not require the "-1". * If the parameter you are looking for is not available in the tracker, an error message is issued and the program terminates, to avoid incorrect entries in the database
author Magnus Schieder <mschieder@intevation.de>
date Tue, 13 Nov 2018 21:04:22 +0100
parents 761ee2351f58
children e2864dabdb8c
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 *

def main():
    PRIO = "critical, urgent, bug, feature, wish"
    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="")


    search = config.get("SEARCH", "Search", fallback="prio")
    if search == "prio":
        status = config.get("SEARCH", "Status", fallback="")
        columns = config.get("SEARCH", "Priority", fallback=PRIO)
        noPrio = config.get("SEARCH", "IncludeNoPrio", fallback=False)
        if noPrio:
            columns += ", None"

    elif search == "status":
        columns = config.get("SEARCH", "Status", fallback=STATES)
        status = ""

    else:
        print("Incorrect [SEARCH]Search parameter. (prio, status)")
        return


    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)

if __name__ == '__main__':
    main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)