Merge lp:~mthaddon/laika/is-sotn into lp:~elmo/laika/is-sotn

Proposed by Tom Haddon
Status: Merged
Merged at revision: 28
Proposed branch: lp:~mthaddon/laika/is-sotn
Merge into: lp:~elmo/laika/is-sotn
Diff against target: 134 lines (+38/-27)
1 file modified
laika (+38/-27)
To merge this branch: bzr merge lp:~mthaddon/laika/is-sotn
Reviewer Review Type Date Requested Status
James Troup Pending
Review via email: mp+361183@code.launchpad.net

Commit message

Update output to summarise MPs by project

Description of the change

Update output to summarise MPs by project.

Sample output: https://pastebin.canonical.com/p/sgM2TrNvWc/

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'laika'
2--- laika 2017-03-10 13:25:11 +0000
3+++ laika 2018-12-20 08:36:08 +0000
4@@ -12,6 +12,7 @@
5 # GNU General Public License version 3.
6
7 import ConfigParser
8+from collections import Counter
9 import datetime
10 from optparse import OptionParser
11 import os
12@@ -105,7 +106,7 @@
13 delta = UTCNOW - date
14 return delta <= win
15
16- def print_bugid(self, task):
17+ def render_bugid(self, task):
18 '''Using this interface adds the bug to global bug list.'''
19 ago = ""
20 self.bugs[task.bug.id] = 1
21@@ -123,10 +124,13 @@
22 ago += ", " if ago else ""
23 ago += "%d minute%s" % (minutes, "s" if minutes > 1 else "")
24
25- print " * %s" % (task.title)
26+ bug_title = "%s" % (task.title)
27 t = Template(self.bugpattern)
28- print " * %s " % (t.substitute(bugid=str(task.bug.id)))
29- #print "last updated", ago, "ago"
30+ bug_task_id = "%s " % (t.substitute(bugid=str(task.bug.id)))
31+ return {
32+ "bug_title": bug_title,
33+ "bug_task_id": bug_task_id,
34+ }
35
36 def print_assignments(self):
37 statuses = ['closed', 'fix_released', 'fix_committed',
38@@ -176,19 +180,18 @@
39 break
40 print
41
42- def print_reported(self):
43+ def render_reported(self):
44+ output = []
45 tasks = self.user.searchTasks(bug_reporter=self.user,
46 status=self.status,
47 created_since=self.since)
48 tasks = [LPWrap(t) for t in tasks]
49- #self.print_header("Reported Bugs")
50 for t in tasks:
51 if self.bugs.has_key(t.bug.id):
52 continue
53 if self.in_window(t.bug.date_created):
54- self.print_bugid(t)
55- print
56- #print
57+ output.append(self.render_bugid(t))
58+ return output
59
60 def print_ppa_activity(self):
61 if self.ppas == '':
62@@ -224,7 +227,8 @@
63 print
64 print
65
66- def print_merge_proposals(self):
67+ def render_merge_proposals(self):
68+ output = []
69 for status in ["Work in progress", "Needs review", "Approved",
70 "Rejected", "Merged", "Code failed to merge", "Queued",
71 "Superseded"]:
72@@ -234,7 +238,8 @@
73 for mp in mps:
74 if not self.in_window(mp.date_created):
75 break
76- print " * %s" % (mp.web_link)
77+ output.append("%s" % (mp.web_link))
78+ return [x for x in output if x]
79
80 def render(self, action="all"):
81 if action == "all":
82@@ -248,30 +253,36 @@
83 elif action == "comments":
84 self.print_comments()
85 elif action == "reported":
86- self.print_reported()
87+ return self.render_reported()
88 elif action == "ppa_activity":
89 self.print_ppa_activity()
90 elif action == "merge_proposals":
91- self.print_merge_proposals()
92+ return self.render_merge_proposals()
93
94 def generate(self):
95- #print "= Weekly Activity Report ="
96- #print " Generated at %s" % UTCNOW
97 if self.team:
98 self.team = self.launchpad.people[self.team]
99 members = self.team.participants
100- print "= Merge Proposals =\n"
101- for m in members:
102- if m.is_team:
103- continue
104- self.user = m
105- self.render(action="merge_proposals")
106- print "= Bug Reports =\n"
107- for m in members:
108- if m.is_team:
109- continue
110- self.user = m
111- self.render(action="reported")
112+ merge_proposals = []
113+ bug_reports = []
114+ for m in members:
115+ if m.is_team:
116+ continue
117+ self.user = m
118+ print("Processing %s" % m)
119+ merge_proposals.extend(self.render(action="merge_proposals"))
120+ bug_reports.extend(self.render(action="reported"))
121+ print("--- Paste into SoTN below here---")
122+ print("")
123+ print("")
124+ print("= Merge Proposals =\n")
125+ project_merge_proposals = Counter([x.split('/')[4] for x in merge_proposals])
126+ for i in project_merge_proposals.most_common():
127+ print(" * https://launchpad.net/%s %s" % (i[0], i[1]))
128+ print("= Bug Reports =\n")
129+ for bug_report in bug_reports:
130+ print(" * %s" % bug_report['bug_task_id'])
131+ print(" * %s" % bug_report['bug_title'])
132 else:
133 print "== %s ==" % self.user.display_name
134 self.render()

Subscribers

People subscribed via source and target branches

to all changes: