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(),
|
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'),
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user