Edgewall Software
Modify

Opened 15 years ago

Closed 13 years ago

Last modified 4 years ago

#975 closed enhancement (fixed)

Make timestamps link to timeline

Reported by: Christian Boos Owned by: Christian Boos
Priority: high Milestone: 0.11
Component: timeline Version: 0.8
Severity: normal Keywords: timestamp link
Cc: Branch:
Release Notes:
API Changes:

Description (last modified by Christian Boos)

Current focus of this ticket

Provide the ability to link into the timeline.

This could be done using a timeline:<date> TracLinks resolver, where <date> should be specified as using the ISO:8601 format.

Another possibility would be to add links to the timeline from various places where dates are displayed in Trac. Most interesting would probably be Changeset dates and Ticket last change (e.g. to find corresponding fix changeset if it wasn't specified otherwise).

Original pipeline-style idea

The timeline should be able to display future events as well as past events, therefore providing a time window around a given present time.

Of course, if the present time is really the present, there would be few future events to show:

  • the upcoming Milestones
  • a compact representation of the highest and high priority Tickets, maybe simply as a list like that:

But the present could also be set to an arbitrary date. The Timeline view would be very usefull to show what happened that date. In such case, it would be convenient to see what happenened just before and just after that date.

In particular, one could link the changeset timestamps to the Timeline with the present set to the value of that timestamp. In the end any timestamp displayed in Trac could actually be such a link.

Attachments (5)

timestamp_href-r2500.patch (12.0 KB ) - added by Christian Boos 14 years ago.
Timestamps in changeset (and wiki history) link back to the Timeline, in order to show the "context" of that event (i.e. what kind of other activity was going on at that time)
timestamp_href-r2645.patch (11.8 KB ) - added by Christian Boos 14 years ago.
Updated the above patch for the trunk at r2645
timeline_link_resolver-r4452.diff (14.2 KB ) - added by Christian Boos 13 years ago.
Updated patch for 0.11
timeline-link-resolver-snapshot1.png (11.9 KB ) - added by Christian Boos 13 years ago.
Show how the created date and last modified date are displayed using r4538
timeline-link-resolver-snapshot2.png (24.7 KB ) - added by Christian Boos 13 years ago.
Show how the timeline looks like when following the link for the last modified date shown in the previous snapshot

Download all attachments as: .zip

Change History (22)

comment:1 by vittorio, 15 years ago

Severity: normalenhancement

comment:2 by Christopher Lenz, 15 years ago

Resolution: wontfix
Status: newclosed

I really don't think this is a good idea. The timeline is well defined as a list of the project-wide history of events. Reading such a history is trivial and well-understood.

Displaying information useful for scheduling/planning is a totally different beast, and is actually what the roadmap module is intended to provide. I.e. timeline — the past, roadmap — the future.

I can see how unifying the two might appear attractive from a theoretical standpoint… but IMHO mixing them would create a very awkward, hard to understand interface. I'd really need to see a working prototype of such an interface to be convinced.

This might also be related to the "dashboard" feature described in #1.

comment:3 by Christian Boos, 15 years ago

Resolution: wontfix
Status: closedreopened

I'd like to reactivate this one…

Forget the show future milestones and high prio tickets part, and only consider the idea of making the timestamps (e.g. from the changeset) hyperlinks for the timeline at that date.

comment:4 by Christopher Lenz, 15 years ago

Summary: [ER] Show Future Events In TimelineMake timestamps link to timeline

The lets change the summary.

by Christian Boos, 14 years ago

Attachment: timestamp_href-r2500.patch added

Timestamps in changeset (and wiki history) link back to the Timeline, in order to show the "context" of that event (i.e. what kind of other activity was going on at that time)

comment:5 by Christian Boos, 14 years ago

Milestone: 1.0

Concerning:

In particular, one could link the changeset timestamps to the Timeline with the present set to the value of that timestamp. In the end any timestamp displayed in Trac could actually be such a link.

I have now an implementation for this (attachment:timestamp_href-r2500.patch) which I think looks quite nice.

Please review.

by Christian Boos, 14 years ago

Attachment: timestamp_href-r2645.patch added

Updated the above patch for the trunk at r2645

comment:6 by Christian Boos, 14 years ago

Keywords: review added
Priority: normalhigh

Added updated patch as attachment:timestamp_href-r2645.patch

Note that you need to apply the patch using patch -p1 (it was generated by Mercurial).

Please review.

comment:7 by Christian Boos, 14 years ago

If I get no negative feedback when I come back from holidays, I'll assume that everyone liked the patch :)

comment:8 by Christopher Lenz, 14 years ago

Actually, I'm not convinced I like the change. While the general idea is nice (“see what else happened around this time”), the presentation of the feature to the user is rather unclear IMHO.

I don't have any bright ideas on how to improve this, which is why I haven't commented yet. So I'd prefer not taking no negative feedback as a go in this case. :-P

comment:9 by Christian Boos, 14 years ago

the presentation of the feature to the user is rather unclear IMHO.

Can you elaborate?

For me, showing the a timeline "window" centered on the event seems to address the problem quite well (i.e. show what happened around that event). Furthermore, the event itself is highlighted.

That's already quite useful. It could be improved upon, perhaps (I also don't see how), but what's bad about providing a first draft, maybe not perfect the first time?

Then, some users may see the feature, think about an improvement, and push the thing forward…

Keeping this aside will most probably make the feature die, for no good reason (IMHO too).

comment:10 by Christian Boos, 13 years ago

Keywords: review removed
Milestone: 1.00.11
Owner: changed from Jonas Borgström to Christian Boos
Status: reopenednew

I propose to resurrect this one, forgetting about the time window thing around the event (until a "clearer" way to present it to the user is found), and simply add the timeline:YYYY-MM-DD TracLinks resolver, for jumping to the timeline at a specific day (adopting the ISO:8601 format which is the less unambiguous and the easier to justify).

by Christian Boos, 13 years ago

Updated patch for 0.11

comment:11 by Christian Boos, 13 years ago

Keywords: review added
Status: newassigned

Patch attachment:timeline_link_resolver-r4452.diff updated for current trunk. The time window thing that cmlenz objected to above is gone. Now you just provide a regular from argument to the timeline.

Still, the events which are within an hour of the specified time are highlighted (when the time is specified in addition to the date).

There are also a bunch of bug fixes to the timezone selection (most notably the ± signs for the timezones were reversed).

comment:12 by Jonas Borgström, 13 years ago

Are you sure the bundled timezone implementation is incorrect? Please compare it against the pytz module.

For example: "CET" is currently the same as "Etc/GMT-1" not "Etc/GMT+1":

http://www.gsp.com/support/virtual/admin/unix/tz/gmt/

comment:13 by Christian Boos, 13 years ago

Well, I did some research, and I found the origin of the confusion. This comes from the choice of the convention (POSIX), which is at odds with the usually accepted convention (ISO). That confusion is quite common, see the following mail exchange for example:

The choice of the POSIX convention goes the reverse way of the usual convention, which is to prefix with "+" the time zones eastern of Greenwich:

So outside of the UNIX context, that convention makes little sense. For example, on Windows, the Date and Time Properties panel lists the CET time zone as:

  • (GMT +01:00) Brussels, Copenhagen, Madrid, Paris

In order to be unambiguous, I propose that we use the ISO standard names for our FixedZone implementation, not the the UNIX-oriented one: UTC+1.

Further testing with pytz shows that they also use internally the "+" sign for eastern timezones:

>>> import pytz
>>> from datetime import datetime
>>> cet = pytz.timezone('CET')
>>> cet
<DstTzInfo 'CET' CET+1:00:00 STD>

(note the "+1" here)

>>> utc = pytz.timezone('UTC')
>>> now = datetime.now(utc)
>>> now
datetime.datetime(2006, 12, 15, 8, 4, 22, 609000, tzinfo=<UTC>)
>>> now.astimezone(cet)
datetime.datetime(2006, 12, 15, 9, 4, 22, 609000, tzinfo=<DstTzInfo 'CET' CET+1:00:00 STD>)

… but right, they stick to the POSIX conventions for the "Etc/GMT" time zones:

>>> gmt_plus_1 = pytz.timezone('Etc/GMT+1')
>>> gmt_plus_1
<StaticTzInfo 'Etc/GMT_plus_1'>
>>> now.astimezone(gmt_plus_1)
datetime.datetime(2006, 12, 15, 7, 4, 22, 609000, tzinfo=<StaticTzInfo 'Etc/GMT_plus_1'>)

So in the case of pytz, I'd suggest that either we override the ambiguous and unixish (*) 'Etc/GMT-1' kind of names and replace them by the unambiguous 'UTC+1' names or that we add a note about how those 'etcetera' time zones should be interpreted, as I suppose I won't be the only one to get confused.

comment:14 by Christian Boos, 13 years ago

Description: modified (diff)

In internet protocols also, the usage of "+" correspond to eastern timezones:

The "+" or "-" indicates whether the time-of-day is ahead of (i.e., east of) or behind (i.e., west of) Universal Time. (RFC:2822 #s3.3)

See also RFC:3339, #s4.2

So I updated patch to use strings like "GMT +01:00".

Also, I modified the format_datetime helper function and the dateinfo macros so that we get links to the timeline from various places (e.g. changeset time, ticket created and last modified time, browser age, wiki history, …).

Actually, instead of the patch, what about yet another work branch? (as this makes it easier to review the changes and eventually fine tune them before the integration).

See source:sandbox/timeline-link-resolver-tmp.

by Christian Boos, 13 years ago

Show how the created date and last modified date are displayed using r4538

by Christian Boos, 13 years ago

Show how the timeline looks like when following the link for the last modified date shown in the previous snapshot

comment:15 by Christian Boos, 13 years ago

Here's an example for the additional automatic timeline links:

Show how the created date and last modified date are displayed using r4538

By following the "Last modified 1 month ago" link, one goes back to the timeline: Show how the timeline looks like when following the link for the last modified date shown in the previous snapshot

comment:16 by Christian Boos, 13 years ago

Keywords: review removed
Resolution: fixed
Status: assignedclosed

Implemented in [4645:4651].

comment:17 by Ryan J Ollos, 4 years ago

Reporter: changed from cboos@… to Christian Boos

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christian Boos.
The resolution will be deleted. Next status will be 'reopened'.
to as closed The owner will be changed from Christian Boos to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.