Ejemplo n.º 1
0
def set_default_lang(user, request):
    try:
        graph = GraphAPI(user.access_token)
        # Get friend list
        friends = graph.get_connections("me","friends")['data']
    except Exception:
        return redirect('/greetme/')

    
    if request.method =='POST':
        form = DefaultLanguageForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            o = DefaultLanguage(lang=cd['lang'], user=user)
            o.save()
            included_friends = request.POST.getlist('select')
            excluded_friends = [f for f in friends if included_friends.count(f['id'])==0]
            # Delete the previous settings before
            e = ExcludedFriend.objects.filter(user=user)
            e.delete()
            for sel in excluded_friends:
                e = ExcludedFriend(user=user, friend_id=sel['id'])
                e.save()
            return redirect('/greetme/')
    else:
        try:
            o = DefaultLanguage.objects.get(user=user)
        except DefaultLanguage.DoesNotExist:
            o = DefaultLanguage(user=user)
        form = DefaultLanguageForm( instance=o)
    
        
    ex_friends_id = [ ex.friend_id for ex in ExcludedFriend.objects.filter(user=user)]
    excluded_friends = []
    included_friends = []
    for f in friends:
        if ex_friends_id.count(f['id'])>0:
            excluded_friends.append(f)
        else:
            included_friends.append(f)
    
    return render(user, request, 'options.html', {'form': form,\
                                               'excluded_friends':excluded_friends,\
                                               'included_friends': included_friends})
Ejemplo n.º 2
0
def get_user_from_token(uid, access_token):
    """
    Get the user and if it doesn't exist create it into db.
    Store a local instance of the user data so we don't need
    a round-trip to Facebook on every request
    """
    try:
        user = FacebookUser.objects.get(uid=uid, aid=FACEBOOK_APP['ID'])
    except FacebookUser.DoesNotExist:
        try:
            graph = GraphAPI(access_token)
            profile = graph.get_object("me")
            user = FacebookUser(uid=str(profile["id"]),
                                aid=FACEBOOK_APP['ID'],
                                profile_url=profile["link"],
                                access_token=access_token,
                                username=str(profile["username"]))
            user.save()
            # We have to create some default greeting senteces for him
            # and an default language too
            def_greets = Greeting.objects.filter(default=True)
            for def_g in def_greets:
                def_g.users.add(user)
            
    
            try:
                l = Language.objects.get(id='en')
            except Language.DoesNotExist:
                l = Language(id='en', name='English')
                l.save()
            opt = DefaultLanguage(user=user, lang=l)
            opt.save()
        except GraphAPIError:
            return None
        
    else:
        # Update the access token!
        if access_token and user.access_token != access_token:
            user.access_token = access_token
            user.save()

    return user