From 6094d19380c2b00ab130ce604fcc38028c9f44cb Mon Sep 17 00:00:00 2001 From: fsoest Date: Wed, 22 Jan 2025 23:34:29 +0100 Subject: [PATCH] Find users --- S1/waitinglists/forms.py | 10 ++++++++++ .../templates/waitinglists/management.html | 15 +++++++++++++++ S1/waitinglists/views.py | 17 ++++++++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/S1/waitinglists/forms.py b/S1/waitinglists/forms.py index 0f21224..0e99d01 100644 --- a/S1/waitinglists/forms.py +++ b/S1/waitinglists/forms.py @@ -26,3 +26,13 @@ class Meta: widgets = { "text": forms.Textarea(attrs={"rows": 3}), } + + +class UserDetailForm(forms.Form): + user_id = forms.CharField( + max_length=7, + label="User ID", + widget=forms.TextInput( + attrs={"class": "form-control", "placeholder": "Enter User ID"} + ), + ) diff --git a/S1/waitinglists/templates/waitinglists/management.html b/S1/waitinglists/templates/waitinglists/management.html index 268d700..63aad2a 100644 --- a/S1/waitinglists/templates/waitinglists/management.html +++ b/S1/waitinglists/templates/waitinglists/management.html @@ -32,5 +32,20 @@

Quiz Timeouts

{% endfor %} +
+
+

Find User

+
+ {% csrf_token %} +
+ {{ form.user_id.label_tag }} + {{ form.user_id }} + {% if form.user_id.errors %} +
{{ form.user_id.errors.0 }}
+ {% endif %} +
+ +
+
{% endblock %} \ No newline at end of file diff --git a/S1/waitinglists/views.py b/S1/waitinglists/views.py index 5f68896..488c271 100644 --- a/S1/waitinglists/views.py +++ b/S1/waitinglists/views.py @@ -12,7 +12,7 @@ from django.utils import timezone from dotenv import load_dotenv -from .forms import AttendanceForm, CommentForm +from .forms import AttendanceForm, CommentForm, UserDetailForm from .helpers import send_moodle_find_user, send_moodle_activity_completion, quiz_ids from .models import Attendance, Session, WaitingList, Module, Signup, QuizCompletion from connect.models import UserDetail @@ -347,6 +347,20 @@ def management(request): modules = Module.objects.all().order_by("name") timeout_details = UserDetail.objects.filter(flagged_for_deletion=True) timeout_users = [detail.user for detail in timeout_details] + + if request.method == "POST": + form = UserDetailForm(request.POST) + if form.is_valid(): + user_id = form.cleaned_data["user_id"] + # Check if the user exists + if User.objects.filter(username=user_id).exists(): + # Redirect to the user_detail view + return redirect(reverse("user_detail", args=[user_id])) + else: + form.add_error("user_id", "User not found.") + else: + form = UserDetailForm() + context = { "sessions": sessions, "prefer_en": request.user.userdetail.en_preferred, @@ -354,6 +368,7 @@ def management(request): "is_mentor": is_mentor(request.user), "modules": modules, "timeout_users": timeout_users, + "form": form, } template = loader.get_template("waitinglists/management.html") return HttpResponse(template.render(context, request))