~jml/+junk/whip

« back to all changes in this revision

Viewing changes to lpwhip/main.py

  • Committer: Jonathan Lange
  • Date: 2010-12-23 15:31:55 UTC
  • Revision ID: jml@canonical.com-20101223153155-8wz6scysij6uoqf9
Crappy HTML output

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
from itertools import chain, imap
2
 
from operator import attrgetter
3
2
import os
 
3
import urlparse
4
4
 
5
5
from launchpadlib.launchpad import Launchpad
6
6
from launchpadlib.uris import LPNET_SERVICE_ROOT
115
115
    def __str__(self):
116
116
        return self._lp_branch.bzr_identity
117
117
 
 
118
    @property
 
119
    def web_url(self):
 
120
        return 'https://code.launchpad.net/+branch/%s' % (
 
121
            self._lp_branch.unique_name,)
 
122
 
 
123
    def to_html(self):
 
124
        return '<a href="%s">%s</a>' % (self.web_url, str(self))
 
125
 
118
126
 
119
127
class MergeProposal(object):
120
128
 
137
145
    def status(self):
138
146
        return self._lp_mp.queue_status
139
147
 
 
148
    @property
 
149
    def web_url(self):
 
150
        path = urlparse.urlparse(self._lp_mp.self_link).path.lstrip('/')
 
151
        return 'https://code.launchpad.net/%s' % path.split('/', 1)[1]
 
152
 
 
153
    def to_html(self):
 
154
        return '<a href="%s">%s</a>' % (self.web_url, str(self))
 
155
 
140
156
    def __str__(self):
141
157
        return '%s => %s' % (self.source_branch, self.target_branch)
142
158
 
154
170
    def target(self):
155
171
        return Target(self._lp_bugtask.target)
156
172
 
 
173
    @property
 
174
    def web_url(self):
 
175
        return 'http://pad.lv/%s' % (self.bug_id,)
 
176
 
157
177
    def __str__(self):
158
178
        return '%s (%s)' % (self._lp_bugtask.title, self._lp_bugtask.status)
159
179
 
 
180
    def to_html(self):
 
181
        return '<a href="%s">%s</a>' % (self.web_url, str(self))
 
182
 
160
183
 
161
184
class Target(object):
162
185
 
170
193
    def name(self):
171
194
        return self._lp_target.name
172
195
 
 
196
    @property
 
197
    def web_url(self):
 
198
        return 'https://launchpad.net/%s' % (self.name,)
 
199
 
 
200
    def to_html(self):
 
201
        return '<a href="%s">%s</a>' % (self.web_url, str(self))
 
202
 
173
203
 
174
204
class Dashboard(object):
175
205
 
239
269
                    print ' * %s' % (item,)
240
270
                print
241
271
 
 
272
    def to_html(self):
 
273
        targets = self.grouped_by_target(ordered=True)
 
274
        print ('<html><head><title>%s</title></head><body>'
 
275
               % (self._person.name,))
 
276
        print '<h1>%s work-in-progress</h1>' % (self._person.name,)
 
277
        for name, items in targets:
 
278
            print '<h2>%s</h2>' % (name,)
 
279
            for item_type, item_values in items:
 
280
                print '<h3>%s</h3>' % (item_type,)
 
281
                print '<ul>'
 
282
                for item in item_values:
 
283
                    print '<li>%s</li>' % item.to_html()
 
284
                print '</ul>'
 
285
        print '</body></html>'
 
286
 
242
287
    def dump(self):
243
 
        self.summary_by_target()
 
288
        self.to_html()
244
289
 
245
290
 
246
291
def run(args):