Example #1
0
 def post(self):
     email = self.request.POST.get('email')
     num_entries = int(self.request.POST.get('num_entries') or 1)
     user = users.create(email)
     logging.info('Got user %s', user)
     if not user:
         logging.warning('Cannot create user, email already used: %s', email)
         self.abort(409)
     else:
         for i in range(num_entries):
             entry = entries.Entry(user_id=user.key().id())
             entry.put()
         deferred.defer(mail.email_new_user, email, users.make_login_token(user), num_entries, _queue='email')
         self.response.write(users.make_login_token(user))
Example #2
0
def email_picks_link(user, entries, week, reminder):

    subject = '2012 NFL Suicide Pool: Your Picks for Week %d' % week
    if reminder:
        subject = 'REMINDER: ' + subject
        
    token = users.make_login_token(user)
    args = {
        'name': user.name,
        'entries': '\n'.join(e for e in entries),
        'link': 'http://www.jgsuicidepool.com/login/%s' % token,
        'week': week,
        'deadline': weeks.deadline(week).strftime('%A, %B %d at %I:%M%p'),
    }
    plain_template = picks_template
    html_template = html_picks_template
    if reminder:
        plain_template = reminder_picks_template 
        html_template = reminder_html_picks_template
    plain = picks_template % args
    args['deadline'] = '<b>%s</b>' % args['deadline']
    args['entries'] = args['entries'].replace('\n', '<br/>')
    args['link'] = '<a href="%(link)s">%(link)s</a>' % args
    html = html_template % args
    _send_mail([user.email], subject, plain, html)
Example #3
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 #4
0
 def post(self, user_id):
     user_id = int(user_id)
     entry = entries.Entry(user_id=user_id)
     entry.put()
     user = users.User.get_by_id(user_id)
     logging.info('Adding new entry for user %d by admin %s', user_id, self.user.name)
     num_entries = entries.unnamed_entries(user_id)
     deferred.defer(mail.email_new_entries, user.email, users.make_login_token(user), num_entries, _queue='email')
     self.response.write(num_entries)
Example #5
0
 def post(self, user_id):
     user_id = int(user_id)
     user = users.User.get_by_id(user_id)
     num_entries = entries.unnamed_entries(user_id)
     deferred.defer(mail.email_new_user, user.email, users.make_login_token(user), num_entries, _queue='email')