Added employee positions method
This commit is contained in:
parent
c78c6a67b1
commit
8fb8c49bfe
|
|
@ -92,6 +92,19 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
|
|||
return instance
|
||||
|
||||
|
||||
class EstablishmentPositionListSerializer(model_serializers.EstablishmentBaseSerializer):
|
||||
"""Establishment position serializer"""
|
||||
|
||||
class Meta:
|
||||
model = models.Establishment
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'transliterated_name',
|
||||
'index_name',
|
||||
]
|
||||
|
||||
|
||||
class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
|
||||
"""Establishment create serializer"""
|
||||
|
||||
|
|
|
|||
|
|
@ -57,6 +57,8 @@ urlpatterns = [
|
|||
path('subtypes/', views.EstablishmentSubtypeListCreateView.as_view(), name='subtype-list'),
|
||||
path('subtypes/<int:pk>/', views.EstablishmentSubtypeRUDView.as_view(), name='subtype-rud'),
|
||||
path('positions/', views.EstablishmentPositionListView.as_view(), name='position-list'),
|
||||
path('employee_positions/<int:pk>/', views.EmployeePositionsListView.as_view(),
|
||||
name='employee-positions-list'),
|
||||
path('employee_establishments/<int:pk>/', views.EmployeeEstablishmentsListView.as_view(),
|
||||
name='employee-establishments-list')
|
||||
name='employee-establishments-list'),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -4,10 +4,12 @@ from django.http import Http404
|
|||
from django.shortcuts import get_object_or_404
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework.response import Response
|
||||
|
||||
from account.models import User
|
||||
from establishment import filters, models, serializers
|
||||
from establishment.models import EstablishmentEmployee
|
||||
from establishment.serializers import PositionBackSerializer
|
||||
from timetable.models import Timetable
|
||||
from timetable.serialziers import ScheduleCreateSerializer, ScheduleRUDSerializer
|
||||
from utils.permissions import IsCountryAdmin, IsEstablishmentManager, IsWineryReviewer
|
||||
|
|
@ -45,6 +47,34 @@ class EmployeeEstablishmentsListView(generics.ListAPIView):
|
|||
return employee.establishments.with_extended_related()
|
||||
|
||||
|
||||
class EmployeePositionsListView(generics.ListAPIView):
|
||||
"""Establishment position by employee list view."""
|
||||
|
||||
permission_classes = [IsWineryReviewer | IsCountryAdmin | IsEstablishmentManager]
|
||||
queryset = models.Establishment.objects.all()
|
||||
serializer_class = serializers.EstablishmentPositionListSerializer
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
pk = self.kwargs.get('pk')
|
||||
employee = get_object_or_404(models.Employee, pk=pk)
|
||||
|
||||
queryset = employee.establishments.with_extended_related()
|
||||
queryset = self.filter_queryset(queryset)
|
||||
|
||||
data = PositionBackSerializer(
|
||||
employee.establishmentemployee_set.all().values_list('position', flat=True), many=True
|
||||
).data
|
||||
|
||||
page = self.paginate_queryset(queryset)
|
||||
if page is not None:
|
||||
serializer = self.get_serializer(page, many=True)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
|
||||
serializer = self.get_serializer(queryset, many=True)
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||
lookup_field = 'slug'
|
||||
queryset = models.Establishment.objects.all().prefetch_related(
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user