view scripts/weekly-report @ 5282:b051559eaae8

Apply upgrading.txt "Improve query editing" upgrade 1.5.1 to 1.6.0. Allows user to continue edit search query if there is an error in query. Otherwise search is lost if it is invalid (e.g. duplicate search name).
author John Rouillard <rouilj@ieee.org>
date Sun, 24 Sep 2017 19:01:56 -0400
parents 5db2dfff85d8
children c75defc1c2f0
line wrap: on
line source

#! /usr/bin/env python

# This script generates a simple report outlining the activity in one
# tracker for the most recent week.

# This script is free software, you may redistribute it
# and/or modify under the same terms as Python.

import sys, math
from roundup import instance, date

# open the instance
if len(sys.argv) != 2:
    print 'You need to specify an instance home dir'
instance_home = sys.argv[1]
instance = instance.open(instance_home)
db = instance.open('admin')

old = date.Date('-1w')

created = []
summary = {}
messages = []

# loop through all the recently-active issues
for issue_id in db.issue.filter(None, {'activity': '-1w;'}):
    num = 0
    for x,ts,userid,action,data in db.issue.history(issue_id):
        if ts < old: continue
        if action == 'create':
            created.append(issue_id)
        elif action == 'set' and data.has_key('messages'):
            num += 1
    summary.setdefault(db.issue.get(issue_id, 'status'), []).append(issue_id)
    messages.append((num, issue_id))

#print 'STATUS SUMMARY:'
#for k,v in summary.items():
#    print k, len(v)

print '\nCREATED:'
print '\n'.join(['%s: %s'%(id, db.issue.get(id, 'title'))
    for id in created])

print '\nRESOLVED:'
resolved_id = db.status.lookup('resolved')
print '\n'.join(['%s: %s'%(id, db.issue.get(id, 'title'))
    for id in summary.get(resolved_id, [])])

print '\nTOP TEN MOST DISCUSSED:'
messages.sort()
messages.reverse()
nmax = messages[0][0]
fmt = '%%%dd - %%s: %%s'%(int(math.log(nmax, 10)) + 1)
print '\n'.join([fmt%(num, id, db.issue.get(id, 'title'))
    for num, id in messages[:10]])

# vim: set filetype=python ts=4 sw=4 et si

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