def get(self):
        data = defaultdict(list)
        entries_by_id = {}
        for e in entries.get_all_entries():
            entries_by_id[e.key().id()] = e
        current_entry_id = None
        current_entry = None
        current_week = 1
        for pick in entries.iterpicks(True):
            if current_entry_id != pick.entry_id:
                current_entry_id = pick.entry_id
                current_entry = entries_by_id[current_entry_id]
                current_week = 1
            # fill empty weeks with buybacks
            while current_week < pick.week:
                data[current_entry.name].append({"status": "buyback", "team": ""})
                current_week += 1

            team = teams.shortname(pick.team)
            if pick.status not in (entries.Status.WIN, entries.Status.NONE):
                status = "violation"
                if pick.status == entries.Status.LOSS:
                    status = "loss"
                if pick.buyback:
                    status = "buyback"
                team = {"team": team, "status": status}
            data[entries_by_id[pick.entry_id].name].append(team)
            current_week += 1
        return view.render_json(self, data)
Example #2
0
 def get(self):
     current_entry = None 
     base = defaultdict(int)
     buybacks = defaultdict(int)
     prev_week = 0
     for p in entries.iterpicks():
         if current_entry != p.entry_id:
             current_entry = p.entry_id
             base[p.week] += 1
             prev_week = 0
         if p.buyback:
             buybacks[p.week] += p.week - prev_week
         prev_week = p.week
     data = {
         'buybacks': dict((w,t*25) for w,t in buybacks.iteritems()),
         'weeks': dict((w,t*w*25) for w,t in base.iteritems())
     }
     data['total'] = sum(t for t in data['buybacks'].itervalues()) \
                   + sum(t for t in data['weeks'].itervalues())
     view.render_json(self, data)