Edgewall Software

MacroBazaar: ReTickets.py

File ReTickets.py, 1.0 KB (added by mgood, 6 years ago)
Line 
1"""
2Lists all tickets matching a given regular expression
3
4This macro takes one parameter, the regexp
5"""
6
7import time
8import re
9from StringIO import StringIO
10
11def execute(hdf, args, env):
12    db = env.get_db_cnx()
13    cursor = db.cursor()
14
15    regexp = 'ZZ'
16    if args:
17        argv = [arg.strip() for arg in args.split(',')]
18        if len(argv) > 0:
19            regexp = argv[0].replace("'", "''")
20
21    sql = "SELECT id, owner, summary, description FROM ticket WHERE status IN ('new', 'assigned', 'reopened')"
22
23    cursor.execute(sql)
24
25    buf = StringIO()
26    while 1:
27        row = cursor.fetchone()
28        if row == None:
29            break
30        m = re.search(regexp,row[2])
31        if m:
32          buf.write('<a href="%s" title="(%s) %s">[#%s(%s)]</a> ' % (env.href.ticket(row[0]), 
33                                                   row[2],
34                                                   row[3],
35                                                   row[0],
36                                                   row[1]))
37
38    return buf.getvalue()
39