Mercurial > bottledash
diff modules/roundup_cc/display_issues.py @ 11:7a573ec679a6
added more files, can now display charts a bit
author | sean |
---|---|
date | Tue, 04 Aug 2015 14:23:53 +0200 |
parents | |
children | 50f4c64834cb |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/roundup_cc/display_issues.py Tue Aug 04 14:23:53 2015 +0200 @@ -0,0 +1,98 @@ +#!/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 + + +##Usage Example: ## + +render_db_stats_as_html(rcd.DATABASE_DEMO, rcd.SELECT_ALL) +""" + +import sqlite3 as db +import cgitb, os, sys +import roundup_cc.roundup_content_data as rcd + +PATH = os.path.abspath(os.path.dirname(sys.argv[0])) +HTML_DATA = "graph.html" +PATH_TO_HTML = PATH + "/modules/roundup_cc/" + HTML_DATA + +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(PATH_TO_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): +# webpage_string = "" +# for line in content.split("\n"): +# print(line) + + +def render_db_stats_as_html(db_file, sql_select): + + con = None + cur = None + + try: + con = db.connect(db_file) + cur = con.cursor() + cur.execute(sql_select) + + 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()) + # print(get_webpage()) + return get_webpage() + +# cgitb.enable() +# print("Content-Type: text/html") +# print()