Example #1
0
 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)
Example #2
0
 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')
Example #3
0
 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))
Example #4
0
    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')