def coin_top(cls, coin, now, stdout=sys.stdout): """ Calculate and record a new top for a coin """ coin_obj = Coin.get(coin) if not coin_obj: stdout.write('No such coin %s' % coin) return stdout.write(' Calculating coin %s top...' % coin) players = list(Player.objects.filter(race__can_play=True)) players.sort(lambda b, a: a.coins.get(coin) - b.coins.get(coin)) for i, p in enumerate(players): hs = NewHistory.record(p, now, relative_to=coin_obj) hs.position, hs.points = i + 1, p.coins.get(coin_obj.name) hs.save() stdout.write('\n')
def topcoin(request, coin): coin_obj = Coin.get(coin) if coin_obj is None: raise Http404 pageno = request.GET.get('page', 0) topcoin_qs = NewHistory.get_coin_top(coin_obj) paginator = Paginator(topcoin_qs, PERPAGE) try: pageno = int(pageno) topcoin = paginator.page(pageno) except (EmptyPage, InvalidPage, ValueError): pageno = 1 topcoin = paginator.page(pageno) return render_to_response('top/coin_top.html', {'top': topcoin, 'coin': coin_obj, 'page_start': (pageno - 1) * PERPAGE}, context_instance=RequestContext(request))
def topcoin(request, coin): coin_obj = Coin.get(coin) if coin_obj is None: raise Http404 pageno = request.GET.get('page', 0) topcoin_qs = NewHistory.get_coin_top(coin_obj) paginator = Paginator(topcoin_qs, PERPAGE) try: pageno = int(pageno) topcoin = paginator.page(pageno) except (EmptyPage, InvalidPage, ValueError): pageno = 1 topcoin = paginator.page(pageno) return render_to_response('top/coin_top.html', { 'top': topcoin, 'coin': coin_obj, 'page_start': (pageno - 1) * PERPAGE }, context_instance=RequestContext(request))
def get_coin_position(cls, coin, user): coin = Coin.get(coin) return NewHistory.get_obj_position(user, relative_to=coin)