From 955527a2c110b79e26afb056d4a831c7bc65733e Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 7 Feb 2020 15:02:58 +0300 Subject: [PATCH] employee for admin --- apps/establishment/urls/back.py | 1 + apps/establishment/views/back.py | 27 +++++++++++++-------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 64bf736d..8882ba91 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -60,6 +60,7 @@ urlpatterns = [ path('/employees/', views.EstablishmentEmployeeListView.as_view(), name='establishment-employees'), path('employees/', views.EmployeeListCreateView.as_view(), name='employees'), + path('employees/for_admin/', views.AdminEmployeeListView.as_view(), name='employees-list-for-admin'), path('employees/search/', views.EmployeesListSearchViews.as_view(), name='employees-search'), path('employees//', views.EmployeeRUDView.as_view(), name='employees-rud'), path('employees//', views.RemoveAwardView.as_view(), name='employees-award-delete'), diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index e25b083e..9b73ac02 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -829,35 +829,34 @@ class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView): class AdminEmployeeListView(generics.ListAPIView): """ - ## Employee list view, where request user is admin. + ## Employee list view, where request user is ESTABLISHMENT_ADMINISTRATOR. ### *GET* #### Description - Return paginated list of employees with available filters: - * search (`str`) - filter by name or last name with mistakes - * position_id (`int`) - filter by employees position identifier - * public_mark (`str`) - filter by establishment public mark - * toque_number (`str`) - filter by establishment toque number - * username (`str`) - filter by a username or name + Return paginated list of employees. #### Response ``` { "id": 1324, "name": "Alex", - "establishment_id": 1324, - "establishment_type": 1324, - "establishment_subtype": 1324, - "establishment_slug": "slug", + "last_name": "Wolf", { ``` """ - serializer_class = serializers.EmployeeBackSerializers - queryset = models.Employee.objects.all().distinct().with_back_office_related() + serializer_class = serializers.AdminEmployeeBackSerializers permission_classes = get_permission_classes(IsEstablishmentAdministrator, ) + pagination_class = None def get_queryset(self): - qs = super().get_queryset() + user = self.request.user + est_ids = models.Establishment.objects.filter( + userrole__user=user, + userrole__role__role=Role.ESTABLISHMENT_ADMINISTRATOR, + ).values_list('id', flat=True) + + qs = models.Employee.objects.filter(establishments__in=est_ids).distinct().with_back_office_related() + if self.request.country_code: qs = qs.filter(establishments__address__city__country__code=self.request.country_code) return qs