Skip to content

Commit 04013c0

Browse files
committed
fix: include independents in queryset
1 parent 91264d8 commit 04013c0

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

codeforlife/user/views/user.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,19 @@ def get_queryset(
5454
new_student__class_field__teacher=user.teacher
5555
)
5656
)
57+
independents = (
58+
user_class.objects.filter(
59+
new_student__pending_class_request__teacher__school=(
60+
user.teacher.school_id
61+
)
62+
)
63+
if user.teacher.is_admin
64+
else user_class.objects.filter(
65+
new_student__pending_class_request__teacher=user.teacher
66+
)
67+
)
5768

58-
return teachers | students
69+
return teachers | students | independents
5970

6071
return user_class.objects.filter(pk=user.pk)
6172

codeforlife/user/views/user_test.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
class TestUserViewSet(ModelViewSetTestCase[RequestUser, User]):
2929
basename = "user"
3030
model_view_set_class = UserViewSet
31-
fixtures = ["non_school_teacher", "school_1"]
31+
fixtures = ["non_school_teacher", "school_1", "independent"]
3232

3333
def setUp(self):
3434
self.admin_school_teacher_user = AdminSchoolTeacherUser.objects.get(
@@ -160,7 +160,7 @@ def test_list__students_in_class(self):
160160
filters={"students_in_class": klass.access_code},
161161
)
162162

163-
def test_list__only_teachers(self):
163+
def test_list__type__teacher(self):
164164
"""Can successfully list only teacher-users."""
165165
user = self.admin_school_teacher_user
166166
school_teacher_users = user.teacher.school_teacher_users.all()
@@ -169,7 +169,31 @@ def test_list__only_teachers(self):
169169
self.client.login_as(user)
170170
self.client.list(
171171
models=school_teacher_users,
172-
filters={"only_teachers": str(True)},
172+
filters={"type": "teacher"},
173+
)
174+
175+
def test_list__type__student(self):
176+
"""Can successfully list only student-users."""
177+
user = self.admin_school_teacher_user
178+
student_users = user.teacher.student_users.all()
179+
assert student_users.exists()
180+
181+
self.client.login_as(user)
182+
self.client.list(
183+
models=student_users,
184+
filters={"type": "student"},
185+
)
186+
187+
def test_list__type__indy(self):
188+
"""Can successfully list only independent-users."""
189+
user = self.admin_school_teacher_user
190+
indy_users = user.teacher.indy_users.all()
191+
assert indy_users.exists()
192+
193+
self.client.login_as(user)
194+
self.client.list(
195+
models=indy_users,
196+
filters={"type": "indy"},
173197
)
174198

175199
def test_list___id(self):

0 commit comments

Comments
 (0)