clearer names for actions, and infer actions better
[monitor.git] / statistics / rt_s2_parse_raw.py
1 #!/usr/bin/python
2
3 from datetime import datetime
4
5 from monitor import config
6 from monitor import database
7 from monitor.common import Time
8 import sys 
9
10 def main():
11     tickets = database.dbLoad("survey_tickets")
12
13 #if True:
14     #f = open('rt_monitor_data.csv','w')
15     queue = int(sys.argv[1])
16     exclude = ['monitor']
17
18     f = sys.stdout
19     print >>f, "ticket_id,s1,s2,start,lastreply,replies,complete,creator"
20     for t in sorted(tickets.keys()):
21         ticket_id = 0
22         start = datetime(2004,1,1)
23         lastreply = datetime.now()
24         resolved = 0
25         complete = 0
26         replies = 1
27         creator = ''
28         if tickets[t]['queue'] != queue: continue
29         for tr in tickets[t]['transactions']:
30             # create - ticketid,creator, datecreated, 
31             # correspond - creator, datecreated, content
32             # status - newvalue = resolved
33             if tr['type'] == 'Create':
34                 start = tr['datecreated']
35                 creator = tr['creator']
36                 if complete==0: complete = 1
37             elif tr['type'] == 'Correspond':
38                 if tr['creator'] not in exclude:
39                     lastreply = tr['datecreated']
40                     replies += 1
41                     if complete == 1: complete = 2
42
43             elif tr['type'] == 'Status' and tr['newvalue'] == 'resolved':
44                 resolved = 1
45                 if complete == 2: complete = 3
46
47         if replies < 1100:
48             if complete in [2,3]: complete = 1
49             else: complete = 0
50             print >>f, "%s,%s,%s,%s,%s,%s,%s,%s" % (t, start.strftime('%Y-%m-%d'), lastreply.strftime('%Y-%m-%d'), Time.dt_to_ts(start), Time.dt_to_ts(lastreply), replies, complete, creator)
51     f.close()
52
53 if __name__ == '__main__':
54         main()