Skip to content

Commit 5376d01

Browse files
committed
Add separate endpoint for users list
1 parent 7ba47a7 commit 5376d01

File tree

4 files changed

+26
-10
lines changed

4 files changed

+26
-10
lines changed

api/drf_views.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@
126126

127127
CountryOfFieldReportToReviewSerializer,
128128
)
129+
from api.filter_set import UserFilterSet
130+
129131
from .logger import logger
130132

131133

@@ -1106,3 +1108,15 @@ class CountryOfFieldReportToReviewViewset(viewsets.ReadOnlyModelViewSet):
11061108
class Meta:
11071109
model = CountryOfFieldReportToReview
11081110
fields = ('country_id')
1111+
1112+
1113+
class UsersViewset(viewsets.ReadOnlyModelViewSet):
1114+
"""
1115+
List all active users
1116+
"""
1117+
serializer_class = UserSerializer
1118+
permission_classes = [IsAuthenticated]
1119+
filterset_class = UserFilterSet
1120+
1121+
def get_queryset(self):
1122+
return User.objects.filter(is_active=True)

api/filter_set.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import django_filters as filters
2+
3+
from django.contrib.auth.models import User
4+
5+
6+
class UserFilterSet(filters.FilterSet):
7+
name = filters.CharFilter(field_name='username', lookup_expr='icontains')
8+
9+
class Meta:
10+
model = User
11+
fields = ()

dref/views.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -174,16 +174,6 @@ def get(self, request, version=None):
174174
"national_society_actions": [
175175
{"key": action[0], "value": action[1]} for action in NationalSocietyAction.Title.choices
176176
],
177-
"users": [
178-
{
179-
"id": user.id,
180-
"email": user.email,
181-
"username": user.username,
182-
"first_name": user.first_name,
183-
"last_name": user.last_name,
184-
}
185-
for user in User.objects.filter(is_active=True)
186-
],
187177
"type_of_dref": [{"key": dref_type.value, "value": dref_type.label} for dref_type in Dref.DrefType]
188178
}
189179
return response.Response(options)

main/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159
router.register(r'donor-group', flash_views.DonorGroupViewSet, basename='donor_group')
160160
router.register(r'donor', flash_views.DonorsViewSet, basename='donor')
161161
router.register(r'share-flash-update', flash_views.ShareFlashUpdateViewSet, basename='share_flash_update')
162+
router.register(r'users', api_views.UsersViewset, basename='users')
162163

163164
# Dref apis
164165
router.register(r'dref', dref_views.DrefViewSet, basename='dref')

0 commit comments

Comments
 (0)