Mercurial > roundup-cc
diff display_issues @ 0:3f139db894f1
initial commit
author | sean |
---|---|
date | Thu, 02 Apr 2015 09:51:19 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/display_issues Thu Apr 02 09:51:19 2015 +0200 @@ -0,0 +1,91 @@ +#!/usr/bin/env python3 + +""" Display previously saved issues from a database on webpage via CGI. + +author: Sascha L. Teichmann <sascha.teichmann@intevation.de> +author: Bernhard Reiter <bernhard@intevation.de> +author: Sean Engelhardt <sean.engelhardt@intevation.de> + +(c) 2010,2015 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 sqlite3 as db +import cgitb +import roundup_content_data as rcd + + +def make_js_object_string(array): + formated = [] + + for item in array: + formated.append("{points: " + str(item) + "}") + + return ",".join(formated) + + +def make_js_object_date(array): + formated = [] + + for item in array: + formated.append("{date : new Date('" + str(item) + "')}") + + return ", ".join(formated) + + +def get_webpage(): + + with open ("graph.html", "r") as html_chart_file: + base_html_data = html_chart_file.read() + + base_html_data = (base_html_data + .replace("var critical=[];", "var critical=[" + make_js_object_string(rcd.data_dict["critical"]) + "]") + .replace("var urgent=[];", "var urgent=[" + make_js_object_string(rcd.data_dict["urgent"]) + "]") + .replace("var bug=[];", "var bug=[" + make_js_object_string(rcd.data_dict["bug"]) + "]") + .replace("var feature=[];", "var feature=[" + make_js_object_string(rcd.data_dict["feature"]) + "]") + .replace("var wish=[];", "var wish=[" + make_js_object_string(rcd.data_dict["wish"]) + "]") + .replace("var timestamp=[];", "var timestamp=[" + make_js_object_date(rcd.data_dict["date"]) + "]")) + + return base_html_data + + +def render_webpage(content): + for line in content.split("\n"): + print(line) + + +def render_db_stats_as_html(): + + con = None + cur = None + + try: + con = db.connect(rcd.DATABASE_FILE) + cur = con.cursor() + cur.execute(rcd.SELECT_ALL) + + for row in cur.fetchall(): + rcd.data_dict["date"].append(row[0]) + rcd.data_dict["critical"].append(row[1]) + rcd.data_dict["urgent"].append(row[2]) + rcd.data_dict["bug"].append(row[3]) + rcd.data_dict["feature"].append(row[4]) + rcd.data_dict["wish"].append(row[5]) + finally: + if cur: + cur.close() + if con: + con.close() + + render_webpage(get_webpage()) + + +cgitb.enable() +print("Content-Type: text/html") +print() + + +render_db_stats_as_html()