Exemple #1
0
def MovieMatchHandler(request):
	fmovie = {}
	fscore = {}
	context= {}
	prevvote = False
	
	if request.is_ajax():
		if request.method == 'GET':
			params = request.GET
			template = "movievotingview.html"
		elif request.method == 'POST':
			params = request.POST
			winner = Movie.objects.get(mid=params['winner'])
			loser = Movie.objects.get(mid=params['loser'])
			if params['year']:
				year = params['year']
			userprofile = request.user.get_profile()
			ranks = CalculateRating('movie',winner,loser,userprofile)
			prevvote = True
			template = "movievotingview.html"
	else:
		params = {}
		template = "indexmovie.html"
	
	results = Filters.setFromParams(request,params,'movie')
	request.session['filtdict'] = results['filtdict']
	request.session['filtvalues'] = results['filtvalues']
	
	results = Filters.getMovieAndScoreFilters(request)
	fmovie = results['fmovie']
	fscore = results['fscore']
	topfmovie = results['topfmovie']
	
	if request.session.get('rematch') == 'Yes':
		rematch = True
		context['rematch'] = "Rematches Allowed"
		request.session['filtdict']['rematch'] = 'Rematches Allowed'
	else:
		rematch = False
		context['rematch'] = "No Rematches"
		if 'rematch' in request.session['filtdict']:
			del request.session['filtdict']['rematch']
	
	print fscore
	print fmovie
	
	if 'gametype' in request.session['filtvalues'] and (request.session['filtvalues']['gametype']=='winner' or request.session['filtvalues']['gametype']=='loser') and request.method == 'POST':
		print "it was a post bitch"
		if request.session['filtvalues']['gametype'] == 'winner':
			movie1 = winner
		elif request.session['filtvalues']['gametype'] == 'loser':
			movie1 = loser
		movie1mat = UserMovieScore.objects.get(uid=request.user.get_profile(),mid= movie1)
		results = getOneMovie(fmovie, fscore, rematch, movie1,request.user.get_profile())
		movie2 = results['Movie']
		movie2mat = results['matchup']
	elif request.session.get('m_lockedin') != None:
		movie1 = request.session['p_lockedin']#Movie.objects.get(mid= request.session['lockedin'])
		try:
			movie1mat = UserMovieScore.objects.get(uid = request.user.get_profile(),mid=movie1)
		except:
			movie1mat = UserMovieScore(uid = request.user.get_profile(), mid=movie1, elorating = 1000,numratings =0,wins=0,losses=0)
			movie1mat.save()
		if close_matchup:
			results = None#getCloseOneMovie(fmovie,fscore,rematch,movie1,movie1mat,request.user.get_profile())
		else:
			results = getOneMovie(fmovie, fscore, rematch, movie1, request.user.get_profile())
		movie2 = results['Movie']
		movie2mat = results['matchup']
	else:
		movies = getTwoMovies(fmovie,fscore,rematch,request.user.get_profile(),80)		
		if movies == None:
			movie1 = None
			movie2 = None
			movie1mat = None
			movie2mat = None
		else:
			movie1 = movies['1']
			movie2 = movies['2']
			movie1mat = movies['1mat']
			movie2mat = movies['2mat']
	if movie1 == None or movie2 == None:
		movie1 = None
		movie2 = None
		movie1mat = None
		movie1mat = None
		#return HttpResponse("NO PEOPLE")
	
	
	top25 = UserMovieScore.objects.filter(uid=request.user.get_profile()).order_by('elorating').reverse()
	if (top25.count()>25):
		top25 = top25[:25]
	
	if prevvote:
		context['ranks'] = ranks
	
	t1 = time.time()
	
	#count = 0
	#for i in range(1,1000):
	#	testmovies = getTwoMovies(fmovie,fscore,rematch,request.user.get_profile(),25)
	#	count += testmovies['count']
	#t2 = time.time()
	#print "time was {} count was {}".format(t2-t1,count)
	
	context['moviebar']= True
	context['movie1'] = movie1
	context['movie1mat'] = movie1mat
	context['movie2'] = movie2
	context['movie2mat'] = movie2mat
	if movie1 != None and movie1.images>0:
		#print movie1.images
		context['movie1ran'] = random.randint(1,movie1.images)
	if movie2 != None and movie2.images>0:
		context['movie2ran'] = random.randint(1,movie2.images)
	context['top20'] =  top25
	
	context['top20'] = top25
	context['filters'] = request.session.get('filtdict')
	
	#return_str = render_block_to_string('subtemplate.html', 'results', context)
	print context
	print movie1
	print movie2
	
	message = render_to_response(template, context,context_instance=RequestContext(request))
	return HttpResponse(message)	
Exemple #2
0
def PersonMatchHandler(request):
	year = ""
	context = {}
	#fperson = {}
	#fscore = {'uid':request.user.get_profile(),'neveruse':False}
	fscore = {}
	prevvote = False
	if request.is_ajax():
		if request.method == 'GET':
			params = request.GET
			template = 'personvotingview.html'
			print params
		elif request.method == 'POST':
			params = request.POST
			winner = Person.objects.get(pid=params['winner'])
			loser = Person.objects.get(pid=params['loser'])
			prevvote = True
			
			userprofile = request.user.get_profile()
			ranks = CalculateRating('person',winner,loser,userprofile)
			template = 'personvotingview.html'
	else:
		params = request.GET
		template = "indexperson.html"
	
	results = Filters.setFromParams(request,params,'person')
	request.session['filtdict'] = results['filtdict']
	request.session['filtvalues'] = results['filtvalues']
	
	results = Filters.getPersonAndScoreFilters(request)
	fperson = results['fperson']
	fscore = results['fscore']
	topfperson = results['topfperson']
	
	
	if 'Food.objects.filter(tags__name__in=["delicious"])' in params:
		request.session['filtdict']['search'] = Person.objects.get(pid=params['search']).name
		request.session['search'] = params['search']
		
	##########################################
	#TEMPORARY UNTIL TAGGING GETS IMPLEMENTED
#	if 'cat' in params:
#		if params['cat'] == 'All Categories':
#			request.session['cat'] = None
#		else:
#			request.session['cat'] = params['cat']	
#	cat=None	
#	if request.session.get('cat') != None:
#		cat = PersonCategory.objects.get(gid=request.session.get('cat'))
#		context['cat'] = PersonTag.objects.get(slug=request.session.get('cat'))
#		request.session['filtdict']['cat'] = context['cat']
#		fperson['tags__slug'] = request.session.get('cat')
#		#fperson['cats__category']=cat.category
#	else:
#		context['cat'] = "All Categories"
	#############################################
	
	rematch = request.session['filtvalues']['rematch']
	if 'gametype' in request.session['filtdict'] and request.session['filtdict']['gametype'] == 'Close Matchup':
		close_matchup = True
	else:
		close_matchup = False
	
	if fscore != {}:
		fscore['uid'] = request.user.get_profile()
		fscore['neveruse'] = False
	
	print "fperson {} fscore {}".format(fperson, fscore)
	
	
	if 'gametype' in request.session['filtvalues'] and (request.session['filtvalues']['gametype']=='winner' or request.session['filtvalues']['gametype']=='loser') and request.method == 'POST':
		print "it was a post bitch"
		if request.session['filtvalues']['gametype'] == 'winner':
			person1 = winner
		elif request.session['filtvalues']['gametype'] == 'loser':
			person1 = loser
		person1mat = UserPersonScore.objects.get(uid=request.user.get_profile(),pid = person1)
		results = getOnePerson(fperson, fscore, rematch, person1,request.user.get_profile(),25)
		person2 = results['person']
		person2mat = results['matchup']
	elif 'p_lockedin' in request.session['filtvalues'] and request.session['filtvalues']['p_lockedin'] != None:
		print "lockedin"
		person1 = request.session['filtvalues']['p_lockedin']#Person.objects.get(pid = request.session['lockedin'])
		try:
			person1mat = UserPersonScore.objects.get(uid = request.user.get_profile(),pid=person1)
		except:
			person1mat = UserPersonScore(uid = request.user.get_profile(), pid=person1, elorating = 1000,numratings =0,wins=0,losses=0)
			person1mat.save()
		if close_matchup:
			results = getCloseOnePerson(fperson,fscore,rematch,person1,person1mat,request.user.get_profile())
		else:
			results = getOnePerson(fperson, fscore, rematch, person1, request.user.get_profile(),25)
		person2 = results['person']
		person2mat = results['matchup']
	else:
		print request.session['filtvalues']
		print "two people"
		people = getTwoPeople(fperson,fscore,rematch,request.user.get_profile(),25)		
		if people == None:
			person1 = None
			person2 = None
			person1mat = None
			person2mat = None
		else:
			person1 = people['1']
			person2 = people['2']
			person1mat = people['1mat']
			person2mat = people['2mat']
	if person1 == None or person2 == None:
		person1 = None
		person2 = None
		person1mat = None
		person1mat = None
		#return HttpResponse("NO PEOPLE")
	topfperson={}
	
	if 'popularity_rating__gte' in fperson:
		del fperson['popularity_rating__gte']
	
	for i in fperson:
		index = "pid__" + str(i)
		topfperson[index] = fperson[i]
	print topfperson
	top25 = UserPersonScore.objects.filter(uid=request.user.get_profile()).filter(**topfperson).order_by('elorating').reverse()
	if (top25.count()>25):
		top25 = top25[:25]
	
	if prevvote:
		context['ranks'] = ranks
	
	#t1 = time.time()
	
	#for i in range(1,1000):
	#	testtvshows = getTwoPeople(fperson,fscore,rematch,request.user.get_profile(),25)
	#t2 = time.time()
	
	#print "1000 2 people was {}".format(t2-t1)
	
	
	context['filters'] = request.session.get('filtdict')
	context['person1'] = person1
	context['person1mat'] = person1mat
	context['person2'] = person2
	context['person2mat'] = person2mat
	context['p_tag'] = Person.tags.most_common()
	context['lists'] = PersonList.objects.all()
	context['peoplebar'] = True
	
	if person1 != None and person1.images>0:
		print person1.images
		context['person1ran'] = random.randint(1,person1.images)
	if person2 != None and person2.images>0:
		context['person2ran'] = random.randint(1,person2.images)
	context['top20'] =  top25
	
	
	message = render_to_response(template, context,
		context_instance=RequestContext(request))
	return HttpResponse(message)