def get(self, email): email = urllib.unquote_plus(email) doc = common.Document(title='pushmaster: recent activity: ' + email) doc.body(T.div(class_='bookmarklet')(common.bookmarklet(self.hostname))) user = users.User(email) requests = query.requests_for_user(user) pushes = query.pushes_for_user(user) if requests: doc.body( T.h3('Recent Requests'), T.ol(class_='my requests')(map(request_item, requests)), ) if pushes: doc.body( T.h3('Recent Pushes'), T.ol(class_='pushes')(map(push_item, pushes)), ) doc.serialize(self.response.out)
def get(self): doc = common.Document(title='pushmaster: recent pushes') pushes = query.open_pushes() doc.body(T.h1('Recent Pushes'), T.ol(map(push_item, pushes), class_='requests')) doc.serialize(self.response.out)
def get(self, datestr): from_date, to_date = report_date_range(datestr) doc = common.Document(title='pushmaster: reports') doc.body(T.h1('Report for ', from_date.strftime('%e %b %Y'), ' - ', to_date.strftime('%e %b %Y'))) pushes = query.pushes_for_the_week_of(from_date) for push in pushes: pushdiv = T.div(class_='push') pushdiv(T.h2( T.a(href=push.uri)( push.ltime.replace(tzinfo=timezone.UTC()).astimezone(config.timezone).strftime('%a, %l:%M %p, %e %b %Y'), T.span(' '), push.name or '', ), T.span(' by '), common.display_user_email(push.owner), )) reqlist = T.ol(class_='requests') for request in query.push_requests(push): reqlist(common.request_item(request)) pushdiv(reqlist) doc.body(pushdiv) doc.body(common.jquery_js, common.jquery_ui_js, common.pushmaster_js) doc.serialize(self.response.out)
def get(self): doc = common.Document(title="pushmaster: today's pushes") pushes = query.live_pushes_today() doc.body(T.h1("Today's Pushes"), T.ol(map(push_item_full, pushes))) self.dispatch_daily_push_report_email(doc) doc.serialize(self.response.out)
def get(self): doc = common.Document(title='pushmaster: pushes') pushes = query.open_pushes() push_list = T.ol(map(push_item, pushes)) doc.body(T.h1('Recent Pushes')) doc.body(push_list) doc.body(common.jquery_js, common.jquery_ui_js, common.pushmaster_js) doc.serialize(self.response.out)
def push_item(push): requests = query.push_requests(push) return T.li(class_='push')( T.div( common.display_datetime(push.ptime), T.a(href=push.uri)(push.name or 'push'), common.user_home_link(push.owner, logic.user_info(push.owner)), T.span(class_='state')(common.display_push_state(push)), class_='headline', ), T.ol(map(common.request_item, requests)) if requests else T.div('No requests.'), )
def get(self, datestr=None): if datestr: from_date, to_date = report_date_range(datestr) else: for_date = last_monday_datetime() - datetime.timedelta(days=7) return self.redirect('/lastweek/' + for_date.strftime('%Y%m%d')) pushes = query.pushes_for_the_week_of(from_date) requests = [] for push in pushes: requests.extend(query.push_requests(push)) requests = sorted(requests, key=lambda r: r.mtime) doc = common.Document(title='pushmaster: weekly report: ' + datestr) teams_list = T.ul(class_='teams') doc(teams_list) nothing_messages_list = None for team in config.report_users: team_item = T.li(class_='team')(T.h3(team['name'])) teams_list(team_item) devs_list = T.ul(class_='devs') team_item(devs_list) for dev in sorted(team['dev']): dev_item = T.li(class_='dev')(T.h4(dev)) devs_list(dev_item) dev_requests = filter(lambda r: r.owner.nickname() == dev, requests) if dev_requests: requests_list = T.ol(class_='requests')(map(common.request_item, dev_requests)) dev_item(requests_list) else: # lazy (re)initialize random messages if not nothing_messages_list: nothing_messages_list = list(config.nothing_messages) import random random.shuffle(nothing_messages_list) dev_item(T.div(nothing_messages_list.pop(), class_='nothing')) if 'prod' in team: team_item(T.h4('PM: ' if len(team['prod']) == 1 else 'PMs: ', ', '.join(team['prod']), class_='pm')) doc.serialize(self.response.out)
def get(self): doc = common.Document(title='pushmaster: reports') doc.body(T.h1('Reports')) last_monday = last_monday_datetime() report_dates = [last_monday - datetime.timedelta(days=(7 * n)) for n in xrange(0, 10)] ol = T.ol(class_='reports') for date in report_dates: ol(T.li(T.a(href=urls.report(date))( date.strftime('%e %b %Y'), T.span(' - '), (date + datetime.timedelta(days=6)).strftime('%e %b %Y'), ))) doc.body(ol, common.jquery_js, common.jquery_ui_js, common.pushmaster_js) doc.serialize(self.response.out)
def push_pending_list(push, requests): is_push_owner = users.get_current_user() == push.owner def request_item(request): li = common.request_item(request) if is_push_owner: li.children.insert(0, T.div(class_='actions')( T.form(class_='small', action=request.uri, method='post')( T.div(class_='fields')( T.button(type='submit')('Accept'), common.hidden(push=str(push.key()), act='accept')), ), T.span('or', class_='sep'), reject_request_link(request), ), ) return li ol = T.ol(class_='requests') if requests: ol(map(request_item, requests)) return ol
def accepted_list(accepted, request_item=common.request_item, state=''): return T.ol(class_=' '.join(['requests', state]))(map(request_item, accepted))
def request_list(requests): return T.ol(class_='requests')(map(request_item, requests))
def accepted_list(accepted, request_item=common.request_item): return T.ol(class_='accepted requests')(map(request_item, accepted))