Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)