def pick_category(request): context = RequestContext(request, {}) #TODO(leifos): filter this #cats = Category.objects.filter(is_shown=True) import random cats = sorted(Category.objects.filter(is_shown=True)[:10], key=lambda x: random.random()) for c in cats: if request.user.is_authenticated(): hs = HighScore.objects.filter(user=request.user, category=c) if len(hs) > 0: c.score = hs[0].highest_score else: c.score = 0 else: c.score = 0 c.url = encode_string_to_url(c.name) avatar = GameAvatar('CategoryPage') if request.user.is_authenticated(): avatar.update(user=request.user) msg = avatar.get() response = render_to_response('pagefetch/cat_picker.html', { 'cats': cats, 'avatar': msg }, context) response.delete_cookie('game_id') return response
def pick_category(request): context = RequestContext(request, {}) # TODO(leifos): filter this # cats = Category.objects.filter(is_shown=True) import random cats = sorted(Category.objects.filter(is_shown=True)[:10], key=lambda x: random.random()) for c in cats: if request.user.is_authenticated(): hs = HighScore.objects.filter(user=request.user, category=c) if len(hs) > 0: c.score = hs[0].highest_score else: c.score = 0 else: c.score = 0 c.url = encode_string_to_url(c.name) avatar = GameAvatar("CategoryPage") if request.user.is_authenticated(): avatar.update(user=request.user) msg = avatar.get() response = render_to_response("rmiyc/cat_picker.html", {"cats": cats, "avatar": msg}, context) response.delete_cookie("game_id") return response
def profile_page(request, username): view_permission = False context = RequestContext(request, {}) user = User.objects.get(username=username) if user: user_profile = user.get_profile() achievements = PlayerAchievement.objects.filter(user=user) # TODO(mtbvc): do the following in a cleaner way # filter out achievements player got from all that are available available_achievements = Achievement.objects.all() player_badges = [item.achievement for item in achievements] av_achievements = [] for item in available_achievements: if item not in player_badges: av_achievements.append(item) # do same with highscores available_cats = Category.objects.all() highscores = HighScore.objects.filter(user=user) scores = list(highscores) player_cats = [item.category for item in highscores] for item in available_cats: if item not in player_cats: scores.append(HighScore(category=item, highest_score=0)) progress = get_progress(user, user_profile) for score in scores: score.url = encode_string_to_url(score.category.name) print score.url if request.user == user: view_permission = True return render_to_response( "profiles/profile_page.html", { "usr": user, "profile": user_profile, "murl": MEDIA_URL, "achievements": achievements, "available_achievements": av_achievements, "view_perm": view_permission, "highscores": scores, "progress": progress, "total_score": sum(i.highest_score for i in highscores), }, context, )
def highscore_to_list(self, highscores): """ :param highscores: list of rows from HighScore :return: a formatted list rank, username, uid, category, cid, highest_score """ leaders = list() for i, hs in enumerate(highscores): entry = {'rank': i+1, 'username': hs.user.username, 'score': hs.highest_score} if hs.category: print hs.category entry['category'] = hs.category.name entry['category_url'] = encode_string_to_url(hs.category.name) print entry leaders.append(entry) return leaders
def profile_page(request, username): view_permission = False context = RequestContext(request, {}) user = User.objects.get(username=username) if user: user_profile = user.get_profile() achievements = PlayerAchievement.objects.filter(user=user) #TODO(mtbvc): do the following in a cleaner way #filter out achievements player got from all that are available available_achievements = Achievement.objects.all() player_badges = [item.achievement for item in achievements] av_achievements = [] for item in available_achievements: if item not in player_badges: av_achievements.append(item) #do same with highscores available_cats = Category.objects.all() highscores = HighScore.objects.filter(user=user) scores = list(highscores) player_cats = [item.category for item in highscores] for item in available_cats: if item not in player_cats: scores.append(HighScore(category=item, highest_score=0)) progress = get_progress(user, user_profile) for score in scores: score.url = encode_string_to_url(score.category.name) print score.url if request.user == user: view_permission = True return render_to_response( 'profiles/profile_page.html', { 'usr': user, 'profile': user_profile, 'murl': MEDIA_URL, 'achievements': achievements, 'available_achievements': av_achievements, 'view_perm': view_permission, 'highscores': scores, 'progress': progress, 'total_score': sum(i.highest_score for i in highscores) }, context)
def highscore_to_list(self, highscores): """ :param highscores: list of rows from HighScore :return: a formatted list rank, username, uid, category, cid, highest_score """ leaders = list() for i, hs in enumerate(highscores): entry = { 'rank': i + 1, 'username': hs.user.username, 'score': hs.highest_score } if hs.category: print hs.category entry['category'] = hs.category.name entry['category_url'] = encode_string_to_url(hs.category.name) print entry leaders.append(entry) return leaders