Ticket #1198: Timeline.py.diff
| File Timeline.py.diff, 3.8 KB (added by mrovner@…, 4 years ago) |
|---|
-
trac/Timeline.py
33 33 template_name = 'timeline.cs' 34 34 template_rss_name = 'timeline_rss.cs' 35 35 36 def get_info(self, req, start, stop, maxrows, filters=AVAILABLE_FILTERS ):36 def get_info(self, req, start, stop, maxrows, filters=AVAILABLE_FILTERS, only_user=None): 37 37 perm_map = {'tickets': perm.TICKET_VIEW, 'changeset': perm.CHANGESET_VIEW, 38 38 'wiki': perm.WIKI_VIEW, 'milestone': perm.MILESTONE_VIEW} 39 39 filters = list(filters) # copy list so we can make modifications … … 43 43 if not filters: 44 44 return [] 45 45 46 if only_user: 47 param1 = (start, stop, only_user) 48 else: 49 param1 = (start, stop) 50 46 51 sql, params = [], [] 47 52 if 'changeset' in filters: 48 sql.append("SELECT time,rev,'','changeset',message,author"53 query = ("SELECT time,rev,'','changeset',message,author" 49 54 " FROM revision WHERE time>=%s AND time<=%s") 50 params += (start, stop) 55 if only_user: query += " AND author='%s'" 56 sql.append(query) 57 params += param1 58 51 59 if 'ticket' in filters: 52 sql.append("SELECT time,id,'','newticket',summary,reporter"60 query = ("SELECT time,id,'','newticket',summary,reporter" 53 61 " FROM ticket WHERE time>=%s AND time<=%s") 54 params += (start, stop) 55 sql.append("SELECT time,ticket,'','reopenedticket','',author " 62 if only_user: query += " AND reporter='%s'" 63 sql.append(query) 64 params += param1 65 query = ("SELECT time,ticket,'','reopenedticket','',author " 56 66 "FROM ticket_change WHERE field='status' " 57 67 "AND newvalue='reopened' AND time>=%s AND time<=%s") 58 params += (start, stop) 59 sql.append("SELECT t1.time,t1.ticket,t2.newvalue,'closedticket'," 68 if only_user: query += " AND author='%s'" 69 sql.append(query) 70 params += param1 71 query = ("SELECT t1.time,t1.ticket,t2.newvalue,'closedticket'," 60 72 "t3.newvalue,t1.author" 61 73 " FROM ticket_change t1" 62 74 " INNER JOIN ticket_change t2 ON t1.ticket = t2.ticket" … … 66 78 " WHERE t1.field = 'status' AND t1.newvalue = 'closed'" 67 79 " AND t2.field = 'resolution'" 68 80 " AND t1.time >= %s AND t1.time <= %s") 69 params += (start,stop) 81 if only_user: query += " AND t1.author='%s'" 82 sql.append(query) 83 params += param1 70 84 if 'wiki' in filters: 71 sql.append("SELECT time,-1,name,'wiki',comment,author"85 query = ("SELECT time,-1,name,'wiki',comment,author" 72 86 " FROM wiki WHERE time>=%s AND time<=%s") 73 params += (start, stop) 87 if only_user: query += " AND author='%s'" 88 sql.append(query) 89 params += param1 74 90 if 'milestone' in filters: 75 91 sql.append("SELECT completed AS time,-1,name,'milestone','',''" 76 92 " FROM milestone WHERE completed>=%s AND completed<=%s") … … 148 164 for f in filters: 149 165 req.hdf.setValue('timeline.%s' % f, 'checked') 150 166 151 info = self.get_info(req, start, stop, maxrows, filters) 167 user = req.args.get('user', '') 168 req.hdf.setValue('timeline.user', user) 169 170 info = self.get_info(req, start, stop, maxrows, filters, user) 152 171 for item in info: 153 172 render_func = getattr(self, '_render_%s' % item['type']) 154 173 item = render_func(req, item)
