Example #1
0
def person (request,person_name):
    c=RequestContext(request)
    person = get_object_or_404(Person,name=person_name)
    entries = person.entry_set.all().order_by('-total_score')
    entriescount = entries.count()
    entriescountseason = entries.filter(round__season=Season.latest()).count()
    averagescore = entries.aggregate(Avg('total_score'))['total_score__avg']
    averagescoreseason = entries.filter(round__season=Season.latest()).aggregate(Avg('total_score'))['total_score__avg']
    return render_to_response('person.html',{'person':person,'entries':entries,'entriescount':entriescount,'entriescountseason':entriescountseason,'averagescore':averagescore,'averagescoreseason':averagescoreseason},c)
Example #2
0
def bulkadd(request):
	thisround = Round.objects.all().order_by('-id')[0]
	resultstext = request.POST.get('resultstext')
	resultsarr = []
	if resultstext != None:
		results = resultstext.split("\n")
		if request.POST.get('assign')=='true':
			for result in results:
				result = result.replace("\t\t","\t")
				bits = result.split("\t")
				mapname = request.POST.get('map'+bits[0])
				person = None
				if mapname=='new':
					person = Person(name=bits[0])
					person.save()
					person=Person.objects.get(name=bits[0])
				elif mapname==None:
					person=Person.objects.get(name=bits[0])
				else:
					person=Person.objects.get(id=mapname)
				thisentry=Entry(person=person,round=thisround,technical_score=bits[1],theme_score=bits[2],impact_score=bits[3],total_score=bits[4])
				thisentry.save()

			return HttpResponseRedirect("/cp/photocomp/round/")

		else:
			peopledropdown = ""
			peopledropdownarr = ["<option value=\"new\">(create new...)</option>"]
			for person in Person.objects.all().order_by('name'):
				peopledropdownarr.append('<option value="'+str(person.id)+'">'+person.name+'</option>')
			peopledropdown = ''.join(peopledropdownarr)
	
			for result in results:
				result = result.replace("\t\t","\t")
				bits = result.split("\t")
				if (len(bits)>=5):
					mapsto = bits[0]
					if Person.objects.filter(name=mapsto).exists()==False:
						mapsto = "<select name=\"map"+bits[0]+"\">"+peopledropdown+"</select>"
					resultsarr.append("<tr><td>"+bits[0]+"</td><td>"+mapsto+"</td><td>"+bits[1]+"</td><td>"+bits[2]+"</td><td>"+bits[3]+"</td><td>"+bits[4]+"</td></tr>")

	return render_to_response("admin/bulkadd.html", {
			'season':Season.latest(),
			'round':thisround,
			'resultstext':resultstext,
			'resultsarr':resultsarr
		}, RequestContext(request,{}))
Example #3
0
def season(request,season_name=None):
    c=RequestContext(request)
    if season_name == None:
        season=Season.latest()
    else:
        season = get_object_or_404(Season,name=season_name)
    rounds = Round.objects.filter(season=season).order_by('number')
    rounds = rounds.reverse()
    if len(rounds)==0:
        return render_to_response('season.html',{'season':season},c)
    else:
        winner = None
        counter = 0
        while winner == None:
            latestround = rounds[counter]
            entries = Entry.objects.filter(round=latestround).order_by('-total_score')
            if len(entries) > 0:
                winner=entries[0]
                counter+=1
                seasonscores=Entry.objects.values('person__name','round__season').filter(round__season=season).annotate(total=Sum('total_score'), entered=Count('round')).order_by('-total')

    rank = 1
    previous = None
    seasonscores = list(seasonscores)
    previous = seasonscores[0]
    previous['rank'] = 1
    for i, entry in enumerate(seasonscores[1:]):
        if entry['total'] != previous['total']:
            rank = i + 2
            entry['rank'] = str(rank)
        else:
            entry['rank'] = "%s=" % rank
            previous['rank'] = entry['rank']
            previous = entry

    bestentry = None
    if season.complete:
        winner = Person.objects.all().filter(name=seasonscores[0]['person__name'])[0]
        bestentry = Entry.objects.all().filter(person=winner,round__season=season).order_by('-total_score')[0]

    rounds = rounds.reverse()
    return render_to_response('season.html',{'season':season,'rounds':rounds,'latestround':latestround,'winner':winner,'seasonscores':seasonscores,'bestentry':bestentry},c)