Merge lp:~tcole/lalita/hal-review-age into lp:~verterok/lalita/hal

Proposed by Tim Cole
Status: Merged
Merge reported by: Guillermo Gonzalez
Merged at revision: not available
Proposed branch: lp:~tcole/lalita/hal-review-age
Merge into: lp:~verterok/lalita/hal
Diff against target: 65 lines (+18/-13)
1 file modified
plugins/launchpad.py (+18/-13)
To merge this branch: bzr merge lp:~tcole/lalita/hal-review-age
Reviewer Review Type Date Requested Status
Guillermo Gonzalez Approve
Review via email: mp+23321@code.launchpad.net

Description of the change

Show age for merge proposals.

To post a comment you must log in.
Revision history for this message
Guillermo Gonzalez (verterok) wrote :

Can't merge the branch due to different rich-root support.

I just applied the patch.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/launchpad.py'
2--- plugins/launchpad.py 2009-12-23 15:24:42 +0000
3+++ plugins/launchpad.py 2010-04-13 14:12:21 +0000
4@@ -20,6 +20,19 @@
5 return self._require_lp(func, self, *args)
6 return wrapper
7
8+def format_age(date_created):
9+ """Convert a datetime to a human-readable age relative to the current time."""
10+ now = datetime.datetime.utcnow()
11+ build_datetime = functools.partial(datetime.datetime, now.year,
12+ now.month, now.day)
13+ delta = build_datetime(tzinfo=date_created.tzinfo) - date_created
14+ if delta.days <= 0:
15+ return 'less than a day old'
16+ elif delta.days == 1:
17+ return '%s day old' % str(delta.days)
18+ else:
19+ return '%s days old' % str(delta.days)
20+
21
22 class LaunchpadPlugin(Plugin):
23 ''' Base Launchpad plugin. Provides the plumbings to get a launchpad object'''
24@@ -173,20 +186,10 @@
25 'In Progress', 'Confirmed'],
26 importance='Critical')
27 say = functools.partial(reactor.callFromThread, self.say, channel)
28- now = datetime.datetime.utcnow()
29- build_datetime = functools.partial(datetime.datetime, now.year,
30- now.month, now.day)
31 for task in tasks:
32 try:
33 bug = task.bug
34- date_created = task.date_created
35- delta = build_datetime(tzinfo=date_created.tzinfo) - date_created
36- if delta.days <= 0:
37- age = 'less than a day'
38- elif delta.days == 1:
39- age = '%s day' % str(delta.days)
40- else:
41- age = '%s days' % str(delta.days)
42+ age = format_age(task.date_created)
43 if bug.tags:
44 tags = '- %s' % ','.join([tag for tag in bug.tags])
45 else:
46@@ -250,7 +253,8 @@
47 candidate = {'url':"https://launchpad.net/" + \
48 c.self_link.split(self.service_root)[1],
49 'status':c.queue_status,
50- 'votes':votes_by_user.values()}
51+ 'votes':votes_by_user.values(),
52+ 'age':format_age(c.date_created)}
53 show([candidate])
54
55 # if we didn't got any candidates
56@@ -265,7 +269,8 @@
57 for k in set(candidate['votes'])))
58 else:
59 votes = 'No reviews'
60- self.say(channel, '%s | %s' % (candidate['url'], votes))
61+ self.say(channel, '%s | %s (%s)' % (candidate['url'], votes,
62+ candidate['age']))
63
64 def cmd_review_list(self, user, channel, command, *args):
65 """ show the list of merge proposals with status = 'Needs review'. """

Subscribers

People subscribed via source and target branches

to all changes: