employee for admin
This commit is contained in:
parent
e4547b9554
commit
955527a2c1
|
|
@ -60,6 +60,7 @@ urlpatterns = [
|
|||
path('<int:establishment_id>/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/<int:pk>/', views.EmployeeRUDView.as_view(), name='employees-rud'),
|
||||
path('employees/<int:pk>/<int:award_id>', views.RemoveAwardView.as_view(), name='employees-award-delete'),
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user