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)
def get(self): reminder = self.request.GET.get('reminder') == 'true' week = weeks.current() users_by_id = users.users_by_id() alive_entries = entries.alive_entries() to_send = defaultdict(list) for p in entries.nopicks(week): entry = alive_entries[p.entry_id] if entry.name: to_send[p.user_id].append(entry.name) for user_id, user_entries in to_send.iteritems(): user = users_by_id[user_id] deferred.defer(mail.email_picks_link, user, user_entries, week, reminder, _queue='email') self.redirect('/admin')
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))
def get(self): week = weeks.current() # re-evaluate games/stats for last week last_week = week - 1 complete_games(self, last_week) update_stats(last_week) # find any picks that need to be created based on changes picks_to_create = [] picks_for_week = entries.all_picks(week) for entry_id,e in entries.alive_entries().iteritems(): if entry_id not in picks_for_week: picks_to_create.append(e) entries.create_picks(week, picks_to_create) # send pick links for any newly created picks users_by_id = users.users_by_id() for entry in picks_to_create: user = users_by_id[entry.user_id] deferred.defer(mail.email_picks_link, user, [entry], week, False, _queue='email') self.redirect('/admin')