annotate 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
rev   line source
3
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
1 #!/usr/bin/env python3
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
2
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
3 """ Fetch issues from a roundup-tracker and save them in a databse.
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
4
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
5 author: Sascha L. Teichmann <sascha.teichmann@intevation.de>
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
6 author: Bernhard Reiter <bernhard@intevation.de>
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
7 author: Sean Engelhardt <sean.engelhardt@intevation.de>
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
8
17
adca5b3780d2 Add collecting no-prio issues. Restructure.
Bernhard Reiter <bernhard@intevation.de>
parents: 13
diff changeset
9 (c) 2010, 2015, 2018 by Intevation GmbH
3
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
10
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
11 This is Free Software unter the terms of the
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
12 GNU GENERAL PUBLIC LICENSE Version 3 or later.
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
13 See http://www.gnu.org/licenses/gpl-3.0.txt for details
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
14 """
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
15 import configparser
21
7a523e13fcb3 Argpars added for the configuration file.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
16 import argparse
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
17 from display_issues import *
3
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
18
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
19 def main():
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
20 PRIO = "critical, urgent, bug, feature, wish"
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
21 STATES = "unread, deferred, chatting, need_eg, in_progress, testing, done_cbb, resolved"
21
7a523e13fcb3 Argpars added for the configuration file.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
22
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
23 parser = argparse.ArgumentParser()
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
24 parser.add_argument("config_file", type=str, metavar="[config file]")
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
25 args = parser.parse_args()
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
26
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
27 config = configparser.ConfigParser()
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
28 config.read(args.config_file)
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 24
diff changeset
29
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
30 db = config.get("DB", "DatabaseFile")
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
31 keywords = config.get("SEARCH", "Keywords", fallback="")
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 24
diff changeset
32
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 24
diff changeset
33
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
34 search = config.get("SEARCH", "Search", fallback="prio")
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
35 if search == "prio":
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
36 status = config.get("SEARCH", "Status", fallback="")
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
37 columns = config.get("SEARCH", "Priority", fallback=PRIO)
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
38 noPrio = config.get("SEARCH", "IncludeNoPrio", fallback=False)
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
39 if noPrio:
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
40 columns += ", None"
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
41
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
42 elif search == "status":
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
43 columns = config.get("SEARCH", "Status", fallback=STATES)
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
44 status = ""
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
45
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 24
diff changeset
46 else:
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
47 print("Incorrect [SEARCH]Search parameter. (prio, status)")
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
48 return
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 24
diff changeset
49
3
99c68ebfb3b9 Streamlined to example use.
Bernhard Reiter <bernhard@intevation.de>
parents:
diff changeset
50
26
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
51 cgitb.enable() # (optional) HTML traceback to browser
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
52 #render_db_stats_as_html("./demo1.db", rcd.SELECT_ALL)
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
53 render_db_stats_as_html(db,
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
54 rcd.build_sql_select(columns).format("timestamp > date('now', '-2 month')"),
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
55 columns, status, keywords)
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
56
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
57 if __name__ == '__main__':
761ee2351f58 Change the parameter read in.
Magnus Schieder <mschieder@intevation.de>
parents: 25
diff changeset
58 main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)