Enhance trainee management UI and functionality

- Improved bulk edit options for user groups with success alerts.
- Updated trainee selection count display.
- Refined HTMX responses for user actions, providing better feedback.
- Enhanced checkbox toggle functionality for trainee selection.
This commit is contained in:
Ross
2026-06-15 09:53:21 +01:00
parent afd4cc3b87
commit fc9f2ed6af
3 changed files with 162 additions and 16 deletions
+68
View File
@@ -68,3 +68,71 @@ def test_trainee_stuff(client, create_cid_manager, create_users):
assert (
len(trainee_rows) == UserProfile.objects.filter(peninsula_trainee=True).count()
)
def test_bulk_edit_groups(client, create_cid_manager, create_users):
from generic.models import UserUserGroup
from django.contrib.auth import get_user_model
User = get_user_model()
client.login(username="cidmanager", password="password")
group = UserUserGroup.objects.create(name="Test Group")
user1 = User.objects.get(username="user1")
user2 = User.objects.get(username="user2")
# Bulk add to group
response = client.post(
reverse("generic:users_bulk_edit"),
data={"selection": [user1.pk, user2.pk]},
HTTP_HX_REQUEST="true",
HTTP_HX_TRIGGER=f"add-group--{group.id}"
)
assert response.status_code == 200
assert "Group added" in response.content.decode()
assert "alert alert-success" in response.content.decode()
user1.refresh_from_db()
user2.refresh_from_db()
assert group in user1.user_groups.all()
assert group in user2.user_groups.all()
# Bulk remove from group
response = client.post(
reverse("generic:users_bulk_edit"),
data={"selection": [user1.pk, user2.pk]},
HTTP_HX_REQUEST="true",
HTTP_HX_TRIGGER=f"remove-group--{group.id}"
)
assert response.status_code == 200
assert "Group removed" in response.content.decode()
assert "alert alert-success" in response.content.decode()
user1.refresh_from_db()
user2.refresh_from_db()
assert group not in user1.user_groups.all()
assert group not in user2.user_groups.all()
def test_user_not_trainee_htmx(client, create_cid_manager, create_users):
from django.contrib.auth import get_user_model
User = get_user_model()
client.login(username="cidmanager", password="password")
user2 = User.objects.get(username="user2")
assert user2.userprofile.peninsula_trainee is True
# Call view via HTMX
response = client.get(
reverse("generic:user_not_trainee", kwargs={"user_id": user2.pk}),
HTTP_HX_REQUEST="true"
)
assert response.status_code == 200
assert response.content == b""
user2.refresh_from_db()
assert user2.userprofile.peninsula_trainee is False