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))
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)
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 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)
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')