comparison 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
comparison
equal deleted inserted replaced
10:d71f39618d6f 11:7a573ec679a6
1 #!/usr/bin/env python3
2
3 """ Display previously saved issues from a database on webpage via CGI.
4
5 author: Sascha L. Teichmann <sascha.teichmann@intevation.de>
6 author: Bernhard Reiter <bernhard@intevation.de>
7 author: Sean Engelhardt <sean.engelhardt@intevation.de>
8
9 (c) 2010,2015 by Intevation GmbH
10
11 This is Free Software unter the terms of the
12 GNU GENERAL PUBLIC LICENSE Version 3 or later.
13 See http://www.gnu.org/licenses/gpl-3.0.txt for details
14
15
16 ##Usage Example: ##
17
18 render_db_stats_as_html(rcd.DATABASE_DEMO, rcd.SELECT_ALL)
19 """
20
21 import sqlite3 as db
22 import cgitb, os, sys
23 import roundup_cc.roundup_content_data as rcd
24
25 PATH = os.path.abspath(os.path.dirname(sys.argv[0]))
26 HTML_DATA = "graph.html"
27 PATH_TO_HTML = PATH + "/modules/roundup_cc/" + HTML_DATA
28
29 def make_js_object_string(array):
30 formated = []
31
32 for item in array:
33 formated.append("{points: " + str(item) + "}")
34
35 return ",".join(formated)
36
37
38 def make_js_object_date(array):
39 formated = []
40
41 for item in array:
42 formated.append("{date : new Date('" + str(item) + "')}")
43
44 return ", ".join(formated)
45
46
47 def get_webpage():
48
49 with open(PATH_TO_HTML, "r") as html_chart_file:
50 base_html_data = html_chart_file.read()
51
52 base_html_data = (base_html_data
53 .replace("var critical=[];", "var critical=[" + make_js_object_string(rcd.data_dict["critical"]) + "]")
54 .replace("var urgent=[];", "var urgent=[" + make_js_object_string(rcd.data_dict["urgent"]) + "]")
55 .replace("var bug=[];", "var bug=[" + make_js_object_string(rcd.data_dict["bug"]) + "]")
56 .replace("var feature=[];", "var feature=[" + make_js_object_string(rcd.data_dict["feature"]) + "]")
57 .replace("var wish=[];", "var wish=[" + make_js_object_string(rcd.data_dict["wish"]) + "]")
58 .replace("var timestamp=[];", "var timestamp=[" + make_js_object_date(rcd.data_dict["date"]) + "]"))
59
60 return base_html_data
61
62
63 # def render_webpage(content):
64 # webpage_string = ""
65 # for line in content.split("\n"):
66 # print(line)
67
68
69 def render_db_stats_as_html(db_file, sql_select):
70
71 con = None
72 cur = None
73
74 try:
75 con = db.connect(db_file)
76 cur = con.cursor()
77 cur.execute(sql_select)
78
79 for row in cur.fetchall():
80 rcd.data_dict["date"].append(row[0])
81 rcd.data_dict["critical"].append(row[1])
82 rcd.data_dict["urgent"].append(row[2])
83 rcd.data_dict["bug"].append(row[3])
84 rcd.data_dict["feature"].append(row[4])
85 rcd.data_dict["wish"].append(row[5])
86 finally:
87 if cur:
88 cur.close()
89 if con:
90 con.close()
91
92 # render_webpage(get_webpage())
93 # print(get_webpage())
94 return get_webpage()
95
96 # cgitb.enable()
97 # print("Content-Type: text/html")
98 # print()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)