Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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,
    )
Esempio n. 4
0
    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
Esempio n. 5
0
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)
Esempio n. 6
0
    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