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)
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)