From 215e7b5f19cbedca8df758c9f773c4fa300d85d2 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 20 Jan 2020 12:13:50 +0300 Subject: [PATCH] establishment employee list --- apps/establishment/serializers/back.py | 42 +++++++++++++++++++++++++- apps/establishment/views/back.py | 6 ++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 41ddc6d5..05cccc56 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -7,7 +7,7 @@ from rest_framework import serializers from account.serializers.common import UserShortSerializer from establishment import models from establishment import serializers as model_serializers -from establishment.models import ContactPhone +from establishment.models import ContactPhone, EstablishmentEmployee from gallery.models import Image from location.models import Address from location.serializers import AddressDetailSerializer, TranslatedField @@ -340,6 +340,46 @@ class EstablishmentEmployeeBackSerializer(serializers.ModelSerializer): ] +class EstEmployeeBackSerializer(EmployeeBackSerializers): + def get_positions(self, obj): + es_emp = EstablishmentEmployee.objects.filter( + employee=obj + ).distinct().order_by('position_id') + result = [] + for item in es_emp: + result.append({ + 'id': item.id, + 'from_date': item.from_date, + 'to_date': item.to_date, + 'status': item.status, + 'position_id': item.position_id, + 'position_priority': item.position.priority, + 'position_index_name': item.position.index_name, + 'position_name_translated': item.position.name_translated, + }) + + return result + + class Meta: + model = models.Employee + fields = [ + 'id', + 'name', + 'last_name', + 'user', + 'public_mark', + 'positions', + 'awards', + 'sex', + 'birth_date', + 'email', + 'phone', + 'toque_number', + 'available_for_events', + 'photo', + ] + + class EstablishmentBackOfficeGallerySerializer(serializers.ModelSerializer): """Serializer class for model EstablishmentGallery.""" diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index 5ef8fff3..8b446ac6 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -189,12 +189,14 @@ class EmployeesListSearchViews(generics.ListAPIView): class EstablishmentEmployeeListView(generics.ListCreateAPIView): """Establishment emplyoees list view.""" permission_classes = (permissions.AllowAny,) - serializer_class = serializers.EstablishmentEmployeeBackSerializer + serializer_class = serializers.EstEmployeeBackSerializer pagination_class = None def get_queryset(self): establishment_id = self.kwargs['establishment_id'] - return models.EstablishmentEmployee.objects.filter(establishment__id=establishment_id).order_by('position') + return models.Employee.objects.filter( + establishmentemployee__establishment_id=establishment_id, + ).distinct() class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView):