Exemple #1
0
def reset_everything_handler(request):
    # Delete words
    userwords = UserWord.objects.filter(user=request.user).delete()

    # Delete progress (will be regenerated next access)
    get_user_progress(request.user).delete()

    return {"message": "Reset successful"}
def current_words_json(user):
    progress = get_user_progress(user)

    # Get level words
    words = current_words(progress)

    # UserWords for this level
    userwords = get_or_create_userwords(words,user)

    # Definitions
    definitions = Definition.objects.filter(word__in = words)

    # Create the resulting object
    json = []
    for word in words:
        userword = [userword for userword in userwords if userword.word == word][0]
        defs = [definition for definition in definitions if definition.word == word]
        def def_to_json(defn):
            return {
                "id":defn.id,
                "text":defn.text,
            }
        defs_json = [def_to_json(defn) for defn in defs]
        json.append({
            'id':word.id,
            'word':word.text,
            'skill':userword.skill,
            'current':True,
            'definitions':defs_json,
        })
    return json
Exemple #3
0
def reset_level_handler(request):
    user_progress = get_user_progress(request.user)
    userwords = UserWord.objects.filter(user=request.user, word__level=user_progress.current_level)
    num_userwords = len(userwords)
    userwords.delete()

    return {
        "message": "Reset %s words on level %s for user %s."
        % (num_userwords, user_progress.current_level.number, request.user)
    }
Exemple #4
0
def vocab_home(request,fb=False):
    level_number = get_user_progress(request.user).current_level.number
    percent = get_level_percent(request.user)
    bar_width = max(int(226 * (percent/100.0)),2)
    xp = int(percent)

    try: 
        socialauth = UserSocialAuth.objects.get(user=request.user,provider='facebook')
        
        # Your own access token
        access_token = socialauth.extra_data['access_token']

        # Get users who are friends who logged in < 2 days ago
        day_ago = datetime.now() - timedelta(days=1)
        friends = User.objects.filter(userfriend__friend = request.user,
                last_login__gt = day_ago)

        # Get their uids
        fb_friends = UserSocialAuth.objects.filter(user__in = friends, provider =
                'facebook')
        uids = [friend.uid for friend in fb_friends]

    except UserSocialAuth.DoesNotExist:
        access_token = None
        uids = []

    template = "vocab_home.html" if not fb else "vocab_home_facebook.html"

    return render(request, template, {
        'level_number':level_number,
        'percent':percent,
        'bar_width':bar_width,
        'access_token':access_token,
        'uids':uids,
        'xp':xp,
        'logged_in':True,
    })