예제 #1
0
파일: email.py 프로젝트: jinzhuw/football
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)
예제 #2
0
파일: email.py 프로젝트: jinzhuw/football
def email_new_user(email, token, num_entries):
    logging.info('Emailing new user %s', email)
    args = {
        'num_entries': num_entries,
        'link': 'http://www.jgsuicidepool.com/login/' + token,
        'deadline': weeks.deadline(1).strftime('%A, %B %d at %I:%M%p'),
    }
    plain = new_user_template % args
    args['deadline'] = '<strong>%s</strong>' % args['deadline']
    args['link'] = '<a href="%(link)s">Activate Your Account</a>' % args
    html = html_new_user_template % args
    _send_mail([email], '2012 NFL Suicide Pool: Activate Your Account', plain, html)
예제 #3
0
파일: email.py 프로젝트: jinzhuw/football
def email_new_entries(email, token, num_entries):
    logging.info('Emailing new user %s', email)
    week = weeks.current()
    args = {
        'num_entries': num_entries,
        'link': 'http://www.jgsuicidepool.com/login/' + token,
        'week': week,
        'deadline': weeks.deadline(week).strftime('%A, %B %d at %I:%M%p'),
    }
    plain = new_entries_template % args
    args['deadline'] = '<strong>%s</strong>' % args['deadline']
    args['link'] = '<a href="%(link)s">Name Your Entries</a>' % args
    html = html_new_entries_template % args
    _send_mail([email], '2012 NFL Suicide Pool: Name New Entries', plain, html)
예제 #4
0
파일: picks.py 프로젝트: jinzhuw/football
 def post(self, entry_id):
     entry_id = int(entry_id)
     team = int(self.request.POST.get('team'))
     week = weeks.current()
     game = games.game_for_team(week, team)
     current_pick = entries.pick_for_entry(entry_id, week)
     current_game = games.game_for_team(week, current_pick.team)
     current_time = weeks.current_time()
     if current_time < weeks.deadline(week) and \
        current_time < game.tz_deadline() and \
        (current_game is None or current_time < current_game.tz_deadline()):
         entries.select_team(entry_id, weeks.current(), team)
     else:
         logging.warning('Attempt to set pick after deadline, user %s, team %s',
                         self.user.name, teams.shortname(team))
         self.abort(403)
예제 #5
0
파일: picks.py 프로젝트: jinzhuw/football
 def get(self):
     week = weeks.current()
     user_entries = entries.entries_for_user(self.user)
     user_picks = entries.picks_for_user(self.user, week)
     picks = []
     for pick in user_picks.itervalues():
         entry = user_entries[pick.entry_id]
         if entry.activated:
             picks.append((entry.name, entry.key().id(), pick))
          
     args = {
         'week': week,
         'picks': sorted(picks),
         'current_time': time.mktime(weeks.current_time().timetuple()),
         'deadline': weeks.deadline(week),
         'deadline_passed': not weeks.check_deadline(week),
     }
     logging.debug(args)
     
     view.render(self, 'picks', args, css=True, js=True)
예제 #6
0
파일: admin.py 프로젝트: jinzhuw/football
    def get(self):
        week = weeks.current()
        current_time = weeks.current_time()
        if current_time > weeks.deadline(week):
            closed = entries.close_picks(week)
            if closed > 0:
                view.clear_cache('/results/data')
            counts = entries.get_team_counts(week)
            logging.info('Saving counts: %s', counts)
            breakdown.save_team_counts(week, counts)
            breakdown.save_status_counts(week, 0, 0, entries.num_violations(week))
            self.redirect('/admin')
            return

        past_deadline = []
        for g in games.open_past_deadline(week, current_time):
            past_deadline.append(g.home)
            past_deadline.append(g.visiting)

        closed = entries.close_picks(week, past_deadline)
        if closed > 0:
            view.clear_cache('/results/data')
        self.redirect('/admin')