def request_item(request, full_request=False): li = T.li(class_='request clearfix')( display_date(request.target_date), T.span(class_='email')(T.a(href=urls.user_home(request.owner))(logic.user_info(request.owner).full_name), ':'), T.a(href=request.uri, class_='request-subject')(request.subject), ) if full_request: li( T.a(request.branch, href=config.git_branch_url % dict(branch=request.branch)), T.p(class_='content')(request.message), ) if request.target_date > util.tznow().date(): li.attrs['class'] += ' future' if request.urgent: li.attrs['class'] += ' urgent' if request.state == 'rejected': li.attrs['class'] += ' rejected' if request.owner == users.get_current_user(): li.attrs['class'] += ' own' li(request_badges(request), T.span(request.branch, class_='branch'), T.div(linkify(request.message), class_='message')) return li
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 push_item(push): return T.li(class_='push')( T.a(href=push.uri)( common.display_datetime(push.ptime), T.span(' '), T.span(push.name or ''), ), common.user_home_link(push.owner), T.span(class_='state')(common.display_push_state(push)), )
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): 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 request_item(request): li = T.li(class_='request clearfix')( display_date(request.target_date), ' ', T.span(class_='email')(T.a(href=urls.user_home(request.owner))(logic.user_info(request.owner).full_name), ':'), ' ', T.a(href=request.uri, class_='request-subject')(request.subject), ' ', T.span(class_='verify')(request.time_to_verify), ) if request.target_date > util.tznow().date(): li.attrs['class'] += ' future' if request.urgent: li.attrs['class'] += ' urgent' if request.state == 'rejected': li.attrs['class'] += ' rejected' if request.owner == users.get_current_user(): li.attrs['class'] += ' own' if request.branch and '/' in request.branch: repo, _, branch = request.branch.partition('/') repo = 'devs/%s.git' % repo else: repo, branch = 'yelp-main.git', request.branch request_branch = T.a(request.branch, class_='branch', href=config.git_branch_url % dict(repo=repo,branch=branch)) li( ' ', request_badges(request), ' ', request_branch, ' ', T.div(linkify(request.message), class_='message'), ) return li
def request_item(request): li = T.li(class_='request')( display_date(request.target_date), T.span(class_='email')(T.a(href=urls.user_home(request.owner))(request.owner.nickname())), T.a(href=request.uri, class_='request-subject')(request.subject), ) if request.target_date > logic.tznow().date(): li.attrs['class'] += ' future' if request.urgent: li.attrs['class'] += ' urgent' if request.state == 'rejected': li.attrs['class'] += ' rejected' if request.owner == users.get_current_user(): li.attrs['class'] += ' own' li(request_badges(request)) return li
def push_item(push): return T.li(class_='push')( T.a(href=push.uri)(common.display_datetime(push.ctime)), T.span(common.display_push_state(push)), )