annotate scripts/weekly-report @ 5296:b48e2fe4a7bd

Make tracker user native (postgres) test indexer. This is apparently how things are expected to be set up on the server. Leaving it blank pulls in the xapian indexer which they don't want.
author John Rouillard <rouilj@ieee.org>
date Thu, 28 Sep 2017 19:22:21 -0400
parents 5db2dfff85d8
children c75defc1c2f0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4041
5db2dfff85d8 Fix issue1891328
Stefan Seefeld <stefan@seefeld.name>
parents: 3764
diff changeset
1 #! /usr/bin/env python
3764
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3 # This script generates a simple report outlining the activity in one
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 # tracker for the most recent week.
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6 # This script is free software, you may redistribute it
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 # and/or modify under the same terms as Python.
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 import sys, math
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10 from roundup import instance, date
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 # open the instance
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13 if len(sys.argv) != 2:
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 print 'You need to specify an instance home dir'
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 instance_home = sys.argv[1]
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 instance = instance.open(instance_home)
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 db = instance.open('admin')
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 old = date.Date('-1w')
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
21 created = []
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22 summary = {}
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 messages = []
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 # loop through all the recently-active issues
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 for issue_id in db.issue.filter(None, {'activity': '-1w;'}):
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 num = 0
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 for x,ts,userid,action,data in db.issue.history(issue_id):
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 if ts < old: continue
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 if action == 'create':
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 created.append(issue_id)
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 elif action == 'set' and data.has_key('messages'):
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 num += 1
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 summary.setdefault(db.issue.get(issue_id, 'status'), []).append(issue_id)
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 messages.append((num, issue_id))
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 #print 'STATUS SUMMARY:'
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38 #for k,v in summary.items():
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
39 # print k, len(v)
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 print '\nCREATED:'
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 print '\n'.join(['%s: %s'%(id, db.issue.get(id, 'title'))
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 for id in created])
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 print '\nRESOLVED:'
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 resolved_id = db.status.lookup('resolved')
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 print '\n'.join(['%s: %s'%(id, db.issue.get(id, 'title'))
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 for id in summary.get(resolved_id, [])])
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 print '\nTOP TEN MOST DISCUSSED:'
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 messages.sort()
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 messages.reverse()
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 nmax = messages[0][0]
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 fmt = '%%%dd - %%s: %%s'%(int(math.log(nmax, 10)) + 1)
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 print '\n'.join([fmt%(num, id, db.issue.get(id, 'title'))
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
56 for num, id in messages[:10]])
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
57
7f0c63868fa9 add new script
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
58 # vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/