From 1711057ceed60eb87857d52b149fbb4e6cd43384 Mon Sep 17 00:00:00 2001 From: Semyon Yekhmenin Date: Mon, 25 Nov 2019 12:15:51 +0000 Subject: [PATCH] Feature/bo establishment employee features --- apps/establishment/serializers/back.py | 3 ++- apps/establishment/urls/back.py | 1 + apps/establishment/views/back.py | 9 +++++++++ apps/utils/decorators.py | 4 +++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 52af0574..dd16e861 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -162,7 +162,7 @@ class ContactEmailBackSerializers(model_serializers.PlateSerializer): class EmployeeBackSerializers(serializers.ModelSerializer): """Employee serializers.""" - awards = AwardSerializer(many=True) + awards = AwardSerializer(many=True, read_only=True) class Meta: model = models.Employee @@ -209,6 +209,7 @@ class EstablishmentEmployeeBackSerializer(serializers.ModelSerializer): 'from_date', 'to_date', 'position', + 'status', ] diff --git a/apps/establishment/urls/back.py b/apps/establishment/urls/back.py index 63bb286d..d9b2fbd7 100644 --- a/apps/establishment/urls/back.py +++ b/apps/establishment/urls/back.py @@ -54,4 +54,5 @@ urlpatterns = [ path('types//', views.EstablishmentTypeRUDView.as_view(), name='type-rud'), path('subtypes/', views.EstablishmentSubtypeListCreateView.as_view(), name='subtype-list'), path('subtypes//', views.EstablishmentSubtypeRUDView.as_view(), name='subtype-rud'), + path('positions/', views.EstablishmentPositionListView.as_view(), name='position-list'), ] diff --git a/apps/establishment/views/back.py b/apps/establishment/views/back.py index 312bb171..d3afbf2e 100644 --- a/apps/establishment/views/back.py +++ b/apps/establishment/views/back.py @@ -356,3 +356,12 @@ class EstablishmentEmployeeDeleteView(generics.DestroyAPIView): object_to_delete = self._get_object_to_delete(establishment_id, employee_id) object_to_delete.delete() return HttpResponse(status=status.HTTP_204_NO_CONTENT) + + +class EstablishmentPositionListView(generics.ListAPIView): + """Establishment positions list view.""" + + pagination_class = None + permission_classes = (permissions.AllowAny, ) + queryset = models.Position.objects.all() + serializer_class = serializers.PositionBackSerializer diff --git a/apps/utils/decorators.py b/apps/utils/decorators.py index c48a26c7..18bed79b 100644 --- a/apps/utils/decorators.py +++ b/apps/utils/decorators.py @@ -1,3 +1,5 @@ +from django.contrib.auth.models import AbstractUser + def with_base_attributes(cls): @@ -8,7 +10,7 @@ def with_base_attributes(cls): if request and hasattr(request, "user"): user = request.user - if user is not None: + if user is not None and isinstance(user, AbstractUser): data.update({'modified_by': user}) if not self.instance: