def kullanici_takip_et_cikar(request):
    if not request.is_ajax():
        return HttpResponseBadRequest()

    data = {'html': ' ','is_valid': True, 'msg':'<b>Takip Ediliyor</b>'}
    follower_username = request.GET.get('follower_username', None)
    followed_username = request.GET.get('followed_username', None)

    follower = get_object_or_404(User, username=follower_username)
    followed = get_object_or_404(User, username=followed_username)
    takip_ediyor_mu = Following.kullaniciyi_takip_ediyor_mu(follower=follower,followed=followed)

    if not takip_ediyor_mu:
        Following.kullanici_takip_et(follower=follower, followed=followed)
        data.update({'msg': 'Takipten Çıkar'})
    else:
        Following.kullaniciyi_takipten_cikar(follower=follower, followed=followed)
        data.update({'msg':'Takip Et'})

    takipci_ve_takip_edilen_sayisi = Following.kullaniciyi_takip_edilenler_ve_takipciler(followed)
    context = {'takipciler':takipci_ve_takip_edilen_sayisi['takipciler'],
               'takip_edilenler':takipci_ve_takip_edilen_sayisi['takip_edilenler']}
    html = render_to_string('ProfileTemplate/index.html',context=context, request=request)
    data.update({'html':html})
    return JsonResponse(data=data)
def user_password_change(request):
    # form = UserPasswordChangeForm(user=request.user, data=request.POST or None)
    form = UserPasswordChangeForm2(user=request.user,
                                   data=request.POST or None)
    takipci_ve_takip_edilen = Following.kullaniciyi_takip_edilenler_ve_takipciler(
        request.user)
    takipciler = takipci_ve_takip_edilen['takipciler']
    takip_edilenler = takipci_ve_takip_edilen['takip_edilenler']

    if form.is_valid():
        user = form.save(commit=True)
        update_session_auth_hash(request, user)
        # new_password = form.cleaned_data.get('new_password')
        # request.user.set_password(new_password)
        # request.user.save()
        # update_session_auth_hash(request, request.user)
        return HttpResponseRedirect(
            reverse('user_profile', kwargs={'username':
                                            request.user.username}))
    return render(request,
                  'BlogTemplate/password_change.html',
                  context={
                      'form': form,
                      'page': 'change',
                      'takipciler': takipciler,
                      'takip_edilenler': takip_edilenler,
                  })
def user_about(request, username):
    user = get_object_or_404(User, username=username)
    takip_ediyor_mu = False
    takipci_ve_takip_edilen = Following.kullaniciyi_takip_edilenler_ve_takipciler(
        user)
    takipciler = takipci_ve_takip_edilen['takipciler']
    takip_edilenler = takipci_ve_takip_edilen['takip_edilenler']

    if user != request.user:
        takip_ediyor_mu = Following.kullaniciyi_takip_ediyor_mu(
            follower=request.user, followed=user)

    return render(request,
                  'ProfileTemplate/about.html',
                  context={
                      'user': user,
                      'page': 'about',
                      'takipciler': takipciler,
                      'takip_edilenler': takip_edilenler,
                      'takip_ediyor_mu': takip_ediyor_mu,
                  })
def user_settings(request):
    cinsiyet = request.user.userprofile.cinsiyet
    bio = request.user.userprofile.bio
    profile_photo = request.user.userprofile.profile_photo
    # dogum_tarihi = request.user.userprofile.dogum_tarihi
    initial = {
        'cinsiyet': cinsiyet,
        'bio': bio,
        'profile_photo': profile_photo
    }
    form = UserProfileUpdateForm(initial=initial,
                                 instance=request.user,
                                 data=request.POST or None,
                                 files=request.FILES or None)
    takipci_ve_takip_edilen = Following.kullaniciyi_takip_edilenler_ve_takipciler(
        request.user)
    takipciler = takipci_ve_takip_edilen['takipciler']
    takip_edilenler = takipci_ve_takip_edilen['takip_edilenler']
    if form.is_valid():
        user = form.save(commit=True)
        bio = form.cleaned_data.get('bio', None)
        cinsiyet = form.cleaned_data.get('cinsiyet', None)
        profile_photo = form.cleaned_data.get('profile_photo', None)
        email = form.cleaned_data.get('email', None)
        print("email", email)
        user.userprofile.cinsiyet = cinsiyet
        user.userprofile.bio = bio
        user.userprofile.email = email
        user.userprofile.profile_photo = profile_photo
        user.userprofile.save()
        return HttpResponseRedirect(
            reverse('user_profile', kwargs={'username': user.username}))

    return render(request,
                  'ProfileTemplate/settings.html',
                  context={
                      'form': form,
                      'takipciler': takipciler,
                      'takip_edilenler': takip_edilenler,
                  })
def user_profile(request, username):
    takip_ediyor_mu = False
    user = get_object_or_404(User, username=username)
    article_list = Product.objects.filter(user=user)
    takipci_ve_takip_edilen = Following.kullaniciyi_takip_edilenler_ve_takipciler(
        user)
    takipciler = takipci_ve_takip_edilen['takipciler']
    comments = len(Comment.objects.filter(user=user))
    takip_edilenler = takipci_ve_takip_edilen['takip_edilenler']
    if user != request.user:
        takip_ediyor_mu = Following.kullaniciyi_takip_ediyor_mu(
            follower=request.user, followed=user)

    return render(request,
                  'ProfileTemplate/articles.html',
                  context={
                      'user': user,
                      'takipciler': takipciler,
                      'takip_edilenler': takip_edilenler,
                      'comments': comments,
                      'takip_ediyor_mu': takip_ediyor_mu,
                      'article_list': article_list,
                      'page': 'user_profile'
                  })