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