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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user