diff -ru mytrac/templates/timeline.cs mytrac-with-userfilter/templates/timeline.cs
|
old
|
new
|
|
| 1 | 1 | <?cs include "header.cs"?> |
| | 2 | <?cs include "macros.cs" ?> |
| 2 | 3 | |
| 3 | 4 | <div id="ctxtnav" class="nav"></div> |
| 4 | 5 | |
| … |
… |
|
| 12 | 13 | <label><input type="text" size="3" name="daysback" value="<?cs |
| 13 | 14 | var:timeline.daysback ?>" /> days back</label>. |
| 14 | 15 | </div> |
| | 16 | <?cs if:len(timeline.known_users) ?> |
| | 17 | <div> |
| | 18 | |
| | 19 | <label>View changes made by user: </label> |
| | 20 | <?cs call:hdf_select(timeline.known_users, 'username', timeline.username, 1) ?> |
| | 21 | </div> |
| | 22 | <?cs /if ?> |
| | 23 | |
| 15 | 24 | <fieldset><?cs |
| 16 | 25 | each:filter = timeline.filters ?> |
| 17 | 26 | <label><input type="checkbox" name="<?cs var:filter.name ?>"<?cs |
diff -ru mytrac/trac/Timeline.py mytrac-with-userfilter/trac/Timeline.py
|
old
|
new
|
|
| 89 | 89 | def match_request(self, req): |
| 90 | 90 | return re.match(r'/timeline/?', req.path_info) is not None |
| 91 | 91 | |
| | 92 | def _add_known_users_to_request(self, req): |
| | 93 | user_list = list(self.env.get_known_users()) |
| | 94 | |
| | 95 | for index, (username, name, email) in enumerate(user_list): |
| | 96 | req.hdf["timeline.known_users.%d" % (index,)] = username |
| | 97 | |
| | 98 | req.hdf['timeline.username'] = '' |
| | 99 | |
| | 100 | if req.args.has_key('username'): |
| | 101 | req.hdf['timeline.username'] = req.args.get('username') |
| | 102 | |
| 92 | 103 | def process_request(self, req): |
| 93 | 104 | req.perm.assert_permission('TIMELINE_VIEW') |
| 94 | 105 | |
| … |
… |
|
| 112 | 123 | req.hdf['timeline.from'] = format_date(fromdate) |
| 113 | 124 | req.hdf['timeline.daysback'] = daysback |
| 114 | 125 | |
| | 126 | self._add_known_users_to_request(req) |
| | 127 | |
| 115 | 128 | available_filters = [] |
| 116 | 129 | for event_provider in self.event_providers: |
| 117 | 130 | available_filters += event_provider.get_timeline_filters(req) |
| … |
… |
|
| 135 | 148 | elif req.session.has_key(key): |
| 136 | 149 | del req.session[key] |
| 137 | 150 | |
| | 151 | user_filter = req.args.get("username") |
| | 152 | |
| 138 | 153 | stop = fromdate |
| 139 | 154 | start = stop - (daysback + 1) * 86400 |
| 140 | 155 | |
| … |
… |
|
| 161 | 176 | |
| 162 | 177 | idx = 0 |
| 163 | 178 | for kind, href, title, date, author, message in events: |
| | 179 | # Do not display the event if the user is not explicitly mentioned in the filter |
| | 180 | if user_filter and author not in user_filter: |
| | 181 | continue |
| | 182 | |
| 164 | 183 | event = {'kind': kind, 'title': title, 'href': href, |
| 165 | 184 | 'author': author or 'anonymous', |
| 166 | 185 | 'date': format_date(date), |