feat: Implement supervisor trainee management features, including search, add, and remove functionalities

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Ross
2026-04-29 22:27:09 +01:00
parent f63f3b3687
commit 89c8cd565f
10 changed files with 500 additions and 82 deletions
+32
View File
@@ -83,13 +83,45 @@
<span class="text-muted">None</span>
{% endif %}
</li>
<li class="list-group-item">Supervisor account:
{% if supervisor_account %}
<a href="{% url 'generic:supervisor_detail' supervisor_account.pk %}">{{ supervisor_account.name }}</a>
{% else %}
<span class="text-muted">Not linked</span>
{% endif %}
</li>
</ul>
<div class="card-body">
{% if supervisor_action == 'created' %}
<div class="alert alert-success py-2" role="alert">Supervisor account created and linked.</div>
{% elif supervisor_action == 'linked' %}
<div class="alert alert-success py-2" role="alert">Existing supervisor record linked to this user.</div>
{% elif supervisor_action == 'already_linked' %}
<div class="alert alert-info py-2" role="alert">This user is already linked to a supervisor account.</div>
{% elif supervisor_action == 'no_email' %}
<div class="alert alert-warning py-2" role="alert">Cannot create supervisor account: user has no email address.</div>
{% elif supervisor_action == 'email_in_use' %}
<div class="alert alert-danger py-2" role="alert">Cannot link supervisor account: email is already linked to another user.</div>
{% endif %}
<a class="btn btn-outline-primary d-block mb-2" href="{% url 'password_change' %}">Change password</a>
{% if request.user|has_group:"cid_user_manager" %}
<a class="btn btn-outline-secondary d-block mb-2" href="{% url 'account_update' user.username %}">Update user details</a>
{% endif %}
<a class="btn btn-primary d-block mb-2" href="{% url 'account_profile_update' user.username %}">Edit profile</a>
{% if request.user.is_superuser or is_cid_user_manager %}
{% if not supervisor_account %}
<form method="post" action="{% url 'account_set_supervisor' user.username %}" class="mb-2">
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.get_full_path }}">
<button type="submit" class="btn btn-outline-success d-block w-100">Set up as supervisor</button>
</form>
{% else %}
<a class="btn btn-outline-success d-block mb-2" href="{% url 'generic:supervisor_detail' supervisor_account.pk %}">Open supervisor record</a>
{% endif %}
{% endif %}
{% if request.user == user %}
<a class="btn btn-outline-secondary d-block mb-2" href="{% url 'atlas:api_tokens' %}">API tokens</a>
{% endif %}