Package: trac
Version: 0.11.5-4
Severity: wishlist
Tags: patch

In upstream trunk there is a patch to support a user filter in
the timeline. I use the feature since six months and it works
fine. See http://trac.edgewall.org/ticket/1198 for details.
Index: trac/trac/timeline/web_ui.py
===================================================================
--- trac/trac/timeline/web_ui.py	(revision 7937)
+++ trac/trac/timeline/web_ui.py	(working copy)
@@ -118,8 +118,12 @@
         daysback = max(0, daysback)
         if self.max_daysback >= 0:
             daysback = min(self.max_daysback, daysback)
+        author = req.args.get('author',
+                              req.session.get('timeline.author', ''))
+        author = author.strip()
 
         data = {'fromdate': fromdate, 'daysback': daysback,
+                'author': author,
                 'today': format_date(today),
                 'yesterday': format_date(today - timedelta(days=1)),
                 'precisedate': precisedate, 'precision': precision,
@@ -158,7 +162,9 @@
             try:
                 for event in provider.get_timeline_events(req, start, stop,
                                                           filters):
-                    events.append(self._event_data(provider, event))
+                    author_index = len(event) < 6 and 2 or 4    # 0.10 events
+                    if not author or event[author_index] == author:
+                        events.append(self._event_data(provider, event))
             except Exception, e: # cope with a failure of that provider
                 self._provider_failure(e, req, provider, filters,
                                        [f[0] for f in available_filters])
@@ -185,6 +191,7 @@
             return 'timeline.rss', data, 'application/rss+xml'
         else:
             req.session['timeline.daysback'] = daysback
+            req.session['timeline.author'] = author
             html_context = Context.from_request(req)
             html_context.set_hints(wiki_flavor='oneliner', 
                                    shorten_lines=self.abbreviated_messages)
@@ -192,7 +199,8 @@
 
         add_stylesheet(req, 'common/css/timeline.css')
         rss_href = req.href.timeline([(f, 'on') for f in filters],
-                                     daysback=90, max=50, format='rss')
+                                     daysback=90, max=50, author=author,
+                                     format='rss')
         add_link(req, 'alternate', rss_href, _('RSS Feed'),
                  'application/rss+xml', 'rss')
 
Index: trac/trac/timeline/templates/timeline.html
===================================================================
--- trac/trac/timeline/templates/timeline.html	(revision 7937)
+++ trac/trac/timeline/templates/timeline.html	(working copy)
@@ -18,7 +18,8 @@
       <form id="prefs" method="get" action="">
        <div>
         <label>View changes from <input type="text" size="10" name="from" value="${format_date(fromdate)}" /></label> <br />
-        and <label><input type="text" size="3" name="daysback" value="$daysback" /> days back</label>.
+        and <label><input type="text" size="3" name="daysback" value="$daysback" /> days back</label><br />
+        <label>done by <input type="text" size="16" name="author" value="$author" /></label>
        </div>
        <fieldset>
         <label py:for="filter in filters">

Reply via email to