Esempio n. 1
0
File: views.py Progetto: biznixcn/WR
def show_profile(request, user_id):
    """
    user_id: id of user to show the profile

    wr_user: User showing the display from
    """

    #wr_user = UserProfile.objects.get(user=user_id)
    try:
        wr_user = User.objects.get(pk=user_id)
    except User.DoesNotExist:
        return HttpResponse('No Such User')

    try:
        userprofile = wr_user.userprofile
    except UserProfile.DoesNotExist:
        userprofile = UserProfile(user=wr_user)
        userprofile.save()

    followers = userprofile.get_followers()
    following = userprofile.get_followed_users()
    fav_circuits = userprofile.favorites.all()
    favs = [x.id for x in fav_circuits]

    if request.user.is_authenticated():
        if user_id == str(request.user.id):
            own_profile = True
            following_wr_user = False
        else:
            own_profile = False
            if request.user in followers:
                following_wr_user = True
            else:
                following_wr_user = False
    else:
        following_wr_user = False
        own_profile = False

    user_categories = wr_user.categories.all()
    user_categories_ids = [str(uc.category) for uc in user_categories]
    circuits = Circuit.objects.filter(author=user_id).all()
    categories_form = make_categories_form()

    template_context = {
        'wr_user': wr_user,
        'followers': followers,
        'following': following,
        'following_wr_user': following_wr_user,
        'own_profile': own_profile,
        'sidebar_item': 'profile',
        'circuits': circuits,
        'favs_circuits': fav_circuits,
        'user_categories': user_categories,
        'user_categories_ids': user_categories_ids,
        'favs': favs,
        'categories_form': categories_form,
    }

    wr_user_fb = None
    try:
        wr_user_fb = UserFacebook.objects.get(user=wr_user)
    except UserFacebook.DoesNotExist:
        pass
    if wr_user_fb:
        integrator = FacebookIntegrator()
        fb_data = {
            'fb_name': wr_user_fb.name,
            'fb_link': wr_user_fb.link,
            'fb_picture': \
                integrator.get_profile_picture_url(wr_user_fb.facebook_graphid)
        }
        template_context['fb_data'] = fb_data

    wr_user_twitter = None
    try:
        wr_user_twitter = UserTwitter.objects.get(user=wr_user)
    except UserTwitter.DoesNotExist:
        pass
    if wr_user_twitter:
        integrator = TwitterIntegrator()
        twitter_data = {
            'twitter_name': wr_user_twitter.name,
            'twitter_screen_name': wr_user_twitter.screen_name,
            'twitter_link': wr_user_twitter.link,
            'twitter_picture': integrator.get_user_picture(
                wr_user_twitter.oauth_token_key,
                wr_user_twitter.oauth_token_secret,
                # Can set twitter picture size here
                'bigger'
            )
        }
        template_context['twitter_data'] = twitter_data


    return render(request,
                "profile/show_profile.html",
                template_context,
            )