From 266481e8d651e582aeeb0e2853fcfebb1c9327fe Mon Sep 17 00:00:00 2001 From: Kieron Date: Mon, 5 Dec 2022 10:31:25 +1030 Subject: [PATCH 1/2] limits circles to one per user --- project/circles/views.py | 62 +++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/project/circles/views.py b/project/circles/views.py index f44637b..5b17f61 100644 --- a/project/circles/views.py +++ b/project/circles/views.py @@ -170,40 +170,44 @@ def get_form(self, form_class=None): def join_as_companion(request, circle_id): if request.user.is_authenticated: - # Ensure circle exists - try: - circle = Circle.objects.get(pk=circle_id) - except Circle.DoesNotExist: - message = _("Could not find circle at the requested URL") - raise Http404(message) - - # Redirect to circle page if user is already a companion - if Companion.objects.filter( - circle=circle_id, - user=request.user, - ).exists(): - return redirect(circle) + # Ensure user is not already a companion of any circle + if Companion.objects.filter(user=request.user).exists(): + return render(request, "404.html") + else: + # Ensure circle exists + try: + circle = Circle.objects.get(pk=circle_id) + except Circle.DoesNotExist: + message = _("Could not find circle at the requested URL") + raise Http404(message) + + # Redirect to circle page if user is already a companion + if Companion.objects.filter( + circle=circle_id, + user=request.user, + ).exists(): + return redirect(circle) - # Show "request received" if user has already submitted a join request - if JoinRequest.objects.filter( - circle=circle_id, - user=request.user, - ).exists(): - return render(request, "circles/circle_join_received.html") - - # Handle join request - if request.method == "POST": - join_request = JoinRequest( - circle=circle, + # Show "request received" if user has already submitted a join request + if JoinRequest.objects.filter( + circle=circle_id, user=request.user, - ) + ).exists(): + return render(request, "circles/circle_join_received.html") + + # Handle join request + if request.method == "POST": + join_request = JoinRequest( + circle=circle, + user=request.user, + ) - join_request.save() + join_request.save() - return render(request, "circles/circle_join_received.html") + return render(request, "circles/circle_join_received.html") - # Show join form by default - return render(request, "circles/circle_join.html") + # Show join form by default + return render(request, "circles/circle_join.html") else: # Show login/register buttons by default return render(request, "circles/login_register.html") From aa41b49149cc36beb6fd4ab87bf3892a2695d891 Mon Sep 17 00:00:00 2001 From: Kieron Date: Mon, 5 Dec 2022 11:39:51 +1030 Subject: [PATCH 2/2] removes uneccessary else used after return --- project/circles/views.py | 59 ++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 30 deletions(-) diff --git a/project/circles/views.py b/project/circles/views.py index 5b17f61..9d6b83c 100644 --- a/project/circles/views.py +++ b/project/circles/views.py @@ -173,41 +173,40 @@ def join_as_companion(request, circle_id): # Ensure user is not already a companion of any circle if Companion.objects.filter(user=request.user).exists(): return render(request, "404.html") - else: - # Ensure circle exists - try: - circle = Circle.objects.get(pk=circle_id) - except Circle.DoesNotExist: - message = _("Could not find circle at the requested URL") - raise Http404(message) - - # Redirect to circle page if user is already a companion - if Companion.objects.filter( - circle=circle_id, - user=request.user, - ).exists(): - return redirect(circle) + # Ensure circle exists + try: + circle = Circle.objects.get(pk=circle_id) + except Circle.DoesNotExist: + message = _("Could not find circle at the requested URL") + raise Http404(message) + + # Redirect to circle page if user is already a companion + if Companion.objects.filter( + circle=circle_id, + user=request.user, + ).exists(): + return redirect(circle) - # Show "request received" if user has already submitted a join request - if JoinRequest.objects.filter( - circle=circle_id, + # Show "request received" if user has already submitted a join request + if JoinRequest.objects.filter( + circle=circle_id, + user=request.user, + ).exists(): + return render(request, "circles/circle_join_received.html") + + # Handle join request + if request.method == "POST": + join_request = JoinRequest( + circle=circle, user=request.user, - ).exists(): - return render(request, "circles/circle_join_received.html") - - # Handle join request - if request.method == "POST": - join_request = JoinRequest( - circle=circle, - user=request.user, - ) + ) - join_request.save() + join_request.save() - return render(request, "circles/circle_join_received.html") + return render(request, "circles/circle_join_received.html") - # Show join form by default - return render(request, "circles/circle_join.html") + # Show join form by default + return render(request, "circles/circle_join.html") else: # Show login/register buttons by default return render(request, "circles/login_register.html")