From af3234bacc939647a68643c3d134b3362445d8d3 Mon Sep 17 00:00:00 2001
From: Ross
{% if grade %}
diff --git a/rad/urls.py b/rad/urls.py
index 90a1418c..b9f7b773 100644
--- a/rad/urls.py
+++ b/rad/urls.py
@@ -72,6 +72,9 @@ urlpatterns = [
path(
"accounts/bulk_create/", views.accounts_bulk_create, name="accounts_bulk_create"
),
+ path(
+ "accounts/bulk_create/check", views.accounts_bulk_create_check, name="accounts_bulk_create_check"
+ ),
path(
"accounts/create/", generic_views.create_user, name="create_user"
),
diff --git a/rad/views.py b/rad/views.py
index 9af2db23..7305f2ee 100644
--- a/rad/views.py
+++ b/rad/views.py
@@ -730,6 +730,35 @@ def accounts_check_users(request):
return
+@user_is_cid_user_manager
+def accounts_bulk_create_check(request):
+ if not request.method == "POST":
+ return HttpResponse("Invalid request")
+
+ user = json.loads(request.POST.get("user"))
+
+ if User.objects.filter(username=user["email"]).exists():
+ return HttpResponse(format_html("{}", "User already exists"))
+
+ if not UserGrades.objects.filter(name=user["grade"]):
+ return HttpResponse(format_html("{}", "Invalid grade"))
+
+ if "supervisor_email" in user:
+ supervisor = Supervisor.objects.filter(email=user["supervisor_email"])
+
+ if not supervisor:
+ return HttpResponse("Ok, supervisor will be created")
+
+ if supervisor.count() > 1:
+ return HttpResponse(format_html("{}", "More than one supervisor with that email"))
+
+ if supervisor.first().name != user["supervisor_name"]:
+ return HttpResponse(format_html("{}", "Supervisor name does not match"))
+
+ return HttpResponse("OK, supervisor exists")
+
+ return HttpResponse("OK")
+
@user_is_cid_user_manager
def accounts_bulk_create(request):
@@ -781,6 +810,7 @@ def accounts_bulk_create(request):
try:
user_profile = UserProfile.objects.get(user=new_user)
user_profile.peninsula_trainee = True
+ # TODO: check supervisor details are correct
if "supervisor_email" in user and "supervisor_name" in user:
s, created = Supervisor.objects.get_or_create(
email=user["supervisor_email"],
diff --git a/templates/accounts_bulk_create.html b/templates/accounts_bulk_create.html
index 7aaeac18..3f4a1b57 100644
--- a/templates/accounts_bulk_create.html
+++ b/templates/accounts_bulk_create.html
@@ -37,7 +37,7 @@
Please note users created this way bypass some of the validations so check details such as email addresses are correct