Merge branch 'feature/employees-params' into 'develop'
Feature/employees params See merge request gm/gm-backend!240
This commit is contained in:
commit
a8fc46ed60
|
|
@ -14,7 +14,7 @@ from main.models import Currency
|
||||||
from main.serializers import AwardSerializer
|
from main.serializers import AwardSerializer
|
||||||
from timetable.serialziers import ScheduleRUDSerializer
|
from timetable.serialziers import ScheduleRUDSerializer
|
||||||
from utils.decorators import with_base_attributes
|
from utils.decorators import with_base_attributes
|
||||||
from utils.serializers import ImageBaseSerializer, TimeZoneChoiceField, ProjectModelSerializer
|
from utils.serializers import ImageBaseSerializer, ProjectModelSerializer, TimeZoneChoiceField
|
||||||
|
|
||||||
|
|
||||||
def phones_handler(phones_list, establishment):
|
def phones_handler(phones_list, establishment):
|
||||||
|
|
@ -93,6 +93,19 @@ class EstablishmentListCreateSerializer(model_serializers.EstablishmentBaseSeria
|
||||||
return instance
|
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):
|
class EstablishmentRUDSerializer(model_serializers.EstablishmentBaseSerializer):
|
||||||
"""Establishment create serializer"""
|
"""Establishment create serializer"""
|
||||||
|
|
||||||
|
|
@ -516,6 +529,26 @@ class EstablishmentAdminListSerializer(UserShortSerializer):
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class EstablishmentEmployeePositionsSerializer(serializers.ModelSerializer):
|
||||||
|
"""Establishments from employee serializer"""
|
||||||
|
|
||||||
|
restaurant_name = serializers.CharField(read_only=True, source='establishment.name')
|
||||||
|
position = PositionBackSerializer(read_only=True)
|
||||||
|
state = serializers.CharField(read_only=True, source='status')
|
||||||
|
start = serializers.DateTimeField(read_only=True, source='from_date')
|
||||||
|
end = serializers.DateTimeField(read_only=True, source='to_date')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = models.EstablishmentEmployee
|
||||||
|
fields = [
|
||||||
|
'restaurant_name',
|
||||||
|
'position',
|
||||||
|
'state',
|
||||||
|
'start',
|
||||||
|
'end',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class _PlateSerializer(ProjectModelSerializer):
|
class _PlateSerializer(ProjectModelSerializer):
|
||||||
name_translated = TranslatedField()
|
name_translated = TranslatedField()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,10 @@ urlpatterns = [
|
||||||
path('subtypes/', views.EstablishmentSubtypeListCreateView.as_view(), name='subtype-list'),
|
path('subtypes/', views.EstablishmentSubtypeListCreateView.as_view(), name='subtype-list'),
|
||||||
path('subtypes/<int:pk>/', views.EstablishmentSubtypeRUDView.as_view(), name='subtype-rud'),
|
path('subtypes/<int:pk>/', views.EstablishmentSubtypeRUDView.as_view(), name='subtype-rud'),
|
||||||
path('positions/', views.EstablishmentPositionListView.as_view(), name='position-list'),
|
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(),
|
path('employee_establishments/<int:pk>/', views.EmployeeEstablishmentsListView.as_view(),
|
||||||
name='employee-establishments-list')
|
name='employee-establishments-list'),
|
||||||
|
path('employee_establishment_positions/<int:pk>/', views.EmployeeEstablishmentPositionsView.as_view(),
|
||||||
|
name='employee-establishment-positions')
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from rest_framework import generics, permissions, status
|
from rest_framework import generics, permissions
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
from account.models import User
|
from account.models import User
|
||||||
|
|
@ -32,6 +32,19 @@ class EstablishmentListCreateView(EstablishmentMixinViews, generics.ListCreateAP
|
||||||
serializer_class = serializers.EstablishmentListCreateSerializer
|
serializer_class = serializers.EstablishmentListCreateSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class EmployeeEstablishmentPositionsView(generics.ListAPIView):
|
||||||
|
"""Establishment by employee view."""
|
||||||
|
|
||||||
|
permission_classes = [IsWineryReviewer | IsCountryAdmin | IsEstablishmentManager]
|
||||||
|
queryset = models.EstablishmentEmployee.objects.all()
|
||||||
|
serializer_class = serializers.EstablishmentEmployeePositionsSerializer
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
employee_pk = self.kwargs.get('pk')
|
||||||
|
return super().get_queryset().filter(employee__id=employee_pk).all().prefetch_related(
|
||||||
|
'establishment').select_related('position')
|
||||||
|
|
||||||
|
|
||||||
class EmployeeEstablishmentsListView(generics.ListAPIView):
|
class EmployeeEstablishmentsListView(generics.ListAPIView):
|
||||||
"""Establishment by employee list view."""
|
"""Establishment by employee list view."""
|
||||||
|
|
||||||
|
|
@ -45,6 +58,19 @@ class EmployeeEstablishmentsListView(generics.ListAPIView):
|
||||||
return employee.establishments.with_extended_related()
|
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 get_queryset(self):
|
||||||
|
pk = self.kwargs.get('pk')
|
||||||
|
employee = get_object_or_404(models.Employee, pk=pk)
|
||||||
|
return employee.establishments.with_extended_related()
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView):
|
class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||||
lookup_field = 'slug'
|
lookup_field = 'slug'
|
||||||
queryset = models.Establishment.objects.all().prefetch_related(
|
queryset = models.Establishment.objects.all().prefetch_related(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user