employee for admin

This commit is contained in:
alex 2020-02-07 15:02:58 +03:00
parent e4547b9554
commit 955527a2c1
2 changed files with 14 additions and 14 deletions

View File

@ -60,6 +60,7 @@ urlpatterns = [
path('<int:establishment_id>/employees/', views.EstablishmentEmployeeListView.as_view(), path('<int:establishment_id>/employees/', views.EstablishmentEmployeeListView.as_view(),
name='establishment-employees'), name='establishment-employees'),
path('employees/', views.EmployeeListCreateView.as_view(), name='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/search/', views.EmployeesListSearchViews.as_view(), name='employees-search'),
path('employees/<int:pk>/', views.EmployeeRUDView.as_view(), name='employees-rud'), path('employees/<int:pk>/', views.EmployeeRUDView.as_view(), name='employees-rud'),
path('employees/<int:pk>/<int:award_id>', views.RemoveAwardView.as_view(), name='employees-award-delete'), path('employees/<int:pk>/<int:award_id>', views.RemoveAwardView.as_view(), name='employees-award-delete'),

View File

@ -829,35 +829,34 @@ class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView):
class AdminEmployeeListView(generics.ListAPIView): class AdminEmployeeListView(generics.ListAPIView):
""" """
## Employee list view, where request user is admin. ## Employee list view, where request user is ESTABLISHMENT_ADMINISTRATOR.
### *GET* ### *GET*
#### Description #### Description
Return paginated list of employees with available filters: Return paginated list of employees.
* 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
#### Response #### Response
``` ```
{ {
"id": 1324, "id": 1324,
"name": "Alex", "name": "Alex",
"establishment_id": 1324, "last_name": "Wolf",
"establishment_type": 1324,
"establishment_subtype": 1324,
"establishment_slug": "slug",
{ {
``` ```
""" """
serializer_class = serializers.EmployeeBackSerializers serializer_class = serializers.AdminEmployeeBackSerializers
queryset = models.Employee.objects.all().distinct().with_back_office_related()
permission_classes = get_permission_classes(IsEstablishmentAdministrator, ) permission_classes = get_permission_classes(IsEstablishmentAdministrator, )
pagination_class = None
def get_queryset(self): 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: if self.request.country_code:
qs = qs.filter(establishments__address__city__country__code=self.request.country_code) qs = qs.filter(establishments__address__city__country__code=self.request.country_code)
return qs return qs