예제 #1
0
파일: users.py 프로젝트: jinzhuw/football
 def get(self):
     sections = dict((c, []) for c in string.uppercase)
     new_users = []
     entries_by_player = defaultdict(list)
     for e in entries.get_all_entries():
         entries_by_player[e.user_id].append(e)
     for user in users.users_by_id().itervalues():
         token = users.make_login_token(user)
         if not user.name:
             new_users.append((user, entries_by_player.get(user.key().id(), []), 0, token))
         else:
             new_entries = 0 
             user_entries = []
             for e in entries_by_player.get(user.key().id(), []):
                 if e.activated:
                     user_entries.append(e)
                 else:
                     new_entries += 1
             sections[user.name[0].upper()].append((user, sorted(user_entries, key=lambda e: e.name), new_entries, token))
     for section in sections.values():
         section.sort(key=lambda x: x[0].name)
     new_users.sort(key=lambda x: x[0].created)
     view.render(self, 'users', {
         'users': sorted(sections.items()),
         'new_users': sorted(new_users, key=lambda x: x[0].email),
     }, css=True, js=True)
예제 #2
0
    def get(self):
        data = defaultdict(list)
        entries_by_id = {}
        for e in entries.get_all_entries():
            entries_by_id[e.key().id()] = e
        current_entry_id = None
        current_entry = None
        current_week = 1
        for pick in entries.iterpicks(True):
            if current_entry_id != pick.entry_id:
                current_entry_id = pick.entry_id
                current_entry = entries_by_id[current_entry_id]
                current_week = 1
            # fill empty weeks with buybacks
            while current_week < pick.week:
                data[current_entry.name].append({"status": "buyback", "team": ""})
                current_week += 1

            team = teams.shortname(pick.team)
            if pick.status not in (entries.Status.WIN, entries.Status.NONE):
                status = "violation"
                if pick.status == entries.Status.LOSS:
                    status = "loss"
                if pick.buyback:
                    status = "buyback"
                team = {"team": team, "status": status}
            data[entries_by_id[pick.entry_id].name].append(team)
            current_week += 1
        return view.render_json(self, data)
예제 #3
0
파일: users.py 프로젝트: jinzhuw/football
 def get(self):
     players = users.users_by_id()
     data = defaultdict(list)
     unknown = []
     for e in entries.get_all_entries():
         if e.user_id not in players:
             unknown.append((e.user_id, e.key().id()))
             continue
         data[players[e.user_id].email].append({
             'name': e.name,
             'alive': e.alive
         })
     buf = ['<table>']
     n = 0
     for name,ents in sorted(data.iteritems()):
         buf.append('<tr><td>%s</td><td>%d</td></tr>' % (name, len(ents)))
         n += len(ents)
     buf.append('</table>')
     buf.append('<br/>------------')
     buf.append('<br/>Total    %d' % n)
     buf.append('<br/><br/>Unknown %s' % unknown)
     self.response.out.write(''.join(buf))