annotate collect_issues.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
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
1 #!/usr/bin/env python3
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
2 """ Fetch issues from a roundup-tracker and save them in a databse.
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
3
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
4 author: Sascha L. Teichmann <sascha.teichmann@intevation.de>
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
5 author: Bernhard Reiter <bernhard@intevation.de>
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
6 author: Sean Engelhardt <sean.engelhardt@intevation.de>
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
7
15
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
8 (c) 2010, 2015, 2018 by Intevation GmbH
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
9
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
10 This is Free Software unter the terms of the
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
11 GNU GENERAL PUBLIC LICENSE Version 3 or later.
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
12 See http://www.gnu.org/licenses/gpl-3.0.txt for details
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
13
17
adca5b3780d2 Add collecting no-prio issues. Restructure.
Bernhard Reiter <bernhard@intevation.de>
parents: 15
diff changeset
14 For usage see examples/.
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
15 """
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
16
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
17 import http.cookiejar
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
18 import urllib.parse
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
19 import urllib.request
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
20 import csv
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
21 import io
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
22 import sqlite3 as db
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
23 import os
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
24 import sys
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
25
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
26
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
27 # Getting all priority in their order.
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
28 CHECK_ROUNDUP_ORDER_PRIO = "priority?@action=export_csv&@columns=id,order"
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
29 # Getting all statuses in their order.
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
30 CHECK_ROUNDUP_ORDER_STATUS = "status?@action=export_csv&@columns=id,order"
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
31
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
32 # Getting keywords and their ids.
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
33 CHECK_KEYWORD_VALUES = "keyword?@action=export_csv&@columns=id,name"
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
34 # Getting states and their ids.
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
35 CHECK_STATUS_VALUES = "status?@action=export_csv&@columns=id,name"
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
36
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
37 # Getting the priority of each issue with the filter status and keywords
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
38 SEARCH_ROUNDUP_PRIO = "issue?@action=export_csv&@columns=priority&@filter=status,keyword&@pagesize=500&@startwith=0&status={search_values}&keyword={keyword_values}"
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
39 # Getting the status of each issue with the filter keywords
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
40 SEARCH_ROUNDUP_STATUS = "issue?@action=export_csv&@columns=status&@filter=keyword&@pagesize=500&@startwith=0&keyword={keyword_values}"
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
41
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
42
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
43 def connect_to_server(params, baseurl):
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
44 enc_data = urllib.parse.urlencode(params).encode()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
45 cj = http.cookiejar.CookieJar()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
46 opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
47 req = urllib.request.Request(url=baseurl, data=enc_data)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
48 opener.open(req)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
49 return opener
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
50
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
51
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
52 def get_csv_from_server(opener, roundup_url, sub_url):
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
53 csv_req = urllib.request.Request(url=roundup_url+sub_url)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
54 f = opener.open(csv_req)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
55 csv_reader = csv.DictReader(io.TextIOWrapper(f))
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
56 return csv_reader
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
57
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
58
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
59 def check_create_database(database_file, sql_create_db):
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
60 if not os.path.isfile(database_file):
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
61 con = None
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
62 cur = None
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
63 try:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
64 con = db.connect(database_file)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
65 cur = con.cursor()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
66 try:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
67 cur.execute(sql_create_db)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
68 con.commit()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
69 os.chmod(database_file, 0o644)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
70 except:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
71 con.rollback()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
72 raise
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
73 finally:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
74 if cur:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
75 cur.close()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
76 if con:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
77 con.close()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
78
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
79 def get_ids(opener, baseurl, parameter, url):
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
80 if parameter == [""]:
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
81 return ""
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
82
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
83 parameter_csv = get_csv_from_server(opener, baseurl, url)
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
84 parameter_dict = {}
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
85 for x in parameter_csv:
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
86 parameter_dict[x["name"]] = x["id"]
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
87
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
88 parameter_ids = []
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
89 for x in parameter:
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
90 if x not in parameter_dict:
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
91 print('The parameter "%s" does not exist in the tracker.' % x)
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
92 sys.exit(0)
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
93
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
94 parameter_ids.append(parameter_dict[x])
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
95
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
96 return ",".join(parameter_ids)
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
97
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
98
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
99 def issues_to_quantities(issue_csv, columns, orders_csv):
15
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
100 """Count issues per priority.
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
101
15
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
102 Returns: a list of ints, containing how often a prio occurred [:-1]
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
103 in order of the priorities, with the last being the "None" prio
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
104 """
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
105
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
106 quantities = [0] * (len(columns) +1)
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
107 order_dict = {}
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
108
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
109 #convert the csv-dict reader to real dict
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
110 for row in orders_csv:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
111 order_dict[row["id"]] = int(float(row["order"])) # int(float()) because the order-value is indeed "1.0, 2.0" etc
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
112
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
113 for issue in issue_csv:
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
114 priority = issue[issue_csv.fieldnames[0]]
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
115
2
3e9f4a6803d1 replaced funtion with string.isdigit.
sean
parents: 1
diff changeset
116 if priority.isdigit() == True :
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
117 quantities[order_dict[priority] -1 ] += 1
15
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
118 else: # no priority set
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
119 quantities[-1] += 1
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
120
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
121 # print("quantities : " + str(quantities))
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
122
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
123 return quantities
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
124
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
125
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
126 def save_issues_to_db(quantities, database_file, sql_create_db, sql_insert_in_db):
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
127 check_create_database(database_file, sql_create_db)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
128
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
129 cur = None
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
130 con = None
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
131
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
132 try:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
133 con = db.connect(database_file)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
134 cur = con.cursor()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
135 try:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
136 cur.execute(sql_insert_in_db, quantities)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
137 con.commit()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
138 except:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
139 con.rollback()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
140 raise
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
141 finally:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
142 if cur:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
143 cur.close()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
144 if con:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
145 con.close()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
146
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
147
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
148 def save_stats_in_db(search, login_parmeters, baseurl, db_file, columns, sql_create_db, sql_insert_in_db, keywords, status, include_no_prio=False):
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
149 try:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
150
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
151 opener = connect_to_server(login_parmeters, baseurl)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
152
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
153 keywords_ids_url = get_ids(opener, baseurl, keywords, CHECK_KEYWORD_VALUES)
20
3bb3d9a9f1b7 Filter by keywords and states.
Magnus Schieder <mschieder@intevation.de>
parents: 17
diff changeset
154
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
155 if search == "prio":
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
156 order_csv = get_csv_from_server(opener, baseurl, CHECK_ROUNDUP_ORDER_PRIO)
27
cdab667c6abb Delete Code Duplication and Clean Up.
Magnus Schieder <mschieder@intevation.de>
parents: 26
diff changeset
157 status_ids_url = get_ids(opener, baseurl, status, CHECK_STATUS_VALUES)
25
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
158 formated_search_url = SEARCH_ROUNDUP_PRIO.format(search_values=status_ids_url, keyword_values=keywords_ids_url)
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
159 elif search == "status":
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
160 order_csv = get_csv_from_server(opener, baseurl, CHECK_ROUNDUP_ORDER_STATUS)
7161ce4e7ab1 The web-based display is dynamically generated.
Magnus Schieder <mschieder@intevation.de>
parents: 20
diff changeset
161 formated_search_url = SEARCH_ROUNDUP_STATUS.format(keyword_values=keywords_ids_url)
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
162
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
163 current_issues_csv = get_csv_from_server(opener, baseurl, formated_search_url)
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
164
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
165 opener.close()
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
166
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
167 quantities = issues_to_quantities(current_issues_csv, columns, order_csv)
15
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
168 if not include_no_prio:
d0c439d1e833 Prepare for tracker entries without priority.
Bernhard Reiter <bernhard@intevation.de>
parents: 9
diff changeset
169 quantities = quantities[:-1]
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
170
9
e95f7bee8643 Really safe data.
Bernhard Reiter <bernhard@intevation.de>
parents: 2
diff changeset
171 save_issues_to_db(quantities, db_file, sql_create_db, sql_insert_in_db)
1
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
172
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
173 except urllib.error.URLError as e:
2df45f6ecd81 new appereance (solid and dotted lines), resonsive layout, new legend,
sean
parents:
diff changeset
174 print("No Valid Connection to server : " + baseurl + "\nerror: " + str(e))
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)