mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2025-02-20 12:56:18 +00:00
Return HttpResponse instead of redirects for AJAX follows
This is more efficient, and most follow activities are ajax
This commit is contained in:
parent
923495e454
commit
a7553c0b8c
2 changed files with 10 additions and 3 deletions
|
@ -42,11 +42,11 @@ def get_relationship(context, user_object):
|
||||||
"""caches the relationship between the logged in user and another user"""
|
"""caches the relationship between the logged in user and another user"""
|
||||||
user = context["request"].user
|
user = context["request"].user
|
||||||
return get_or_set(
|
return get_or_set(
|
||||||
f"cached-relationship-{user.id}-{user_object.id}",
|
f"relationship-{user.id}-{user_object.id}",
|
||||||
get_relationship_name,
|
get_relationship_name,
|
||||||
user,
|
user,
|
||||||
user_object,
|
user_object,
|
||||||
timeout=259200,
|
timeout=60 * 60,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
""" views for actions you can take in the application """
|
""" views for actions you can take in the application """
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import get_object_or_404, redirect
|
from django.shortcuts import get_object_or_404, redirect
|
||||||
from django.template.response import TemplateResponse
|
from django.template.response import TemplateResponse
|
||||||
from django.views.decorators.http import require_POST
|
from django.views.decorators.http import require_POST
|
||||||
|
@ -13,6 +15,7 @@ from .helpers import (
|
||||||
handle_remote_webfinger,
|
handle_remote_webfinger,
|
||||||
subscribe_remote_webfinger,
|
subscribe_remote_webfinger,
|
||||||
WebFingerError,
|
WebFingerError,
|
||||||
|
is_api_request
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,6 +37,8 @@ def follow(request):
|
||||||
# that means we should save to trigger a re-broadcast
|
# that means we should save to trigger a re-broadcast
|
||||||
follow_request.save()
|
follow_request.save()
|
||||||
|
|
||||||
|
if is_api_request(request):
|
||||||
|
return HttpResponse()
|
||||||
return redirect(to_follow.local_path)
|
return redirect(to_follow.local_path)
|
||||||
|
|
||||||
|
|
||||||
|
@ -58,8 +63,10 @@ def unfollow(request):
|
||||||
except models.UserFollowRequest.DoesNotExist:
|
except models.UserFollowRequest.DoesNotExist:
|
||||||
clear_cache(request.user, to_unfollow)
|
clear_cache(request.user, to_unfollow)
|
||||||
|
|
||||||
|
if is_api_request(request):
|
||||||
|
return HttpResponse()
|
||||||
# this is handled with ajax so it shouldn't really matter
|
# this is handled with ajax so it shouldn't really matter
|
||||||
return redirect(request.headers.get("Referer", "/"))
|
return redirect("/")
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|
Loading…
Reference in a new issue