Added employee establishments method

This commit is contained in:
dormantman 2020-01-21 19:19:38 +03:00
parent de78ee5d6e
commit 88e488e481
3 changed files with 26 additions and 4 deletions

View File

@ -5,8 +5,7 @@ from django.utils.translation import gettext_lazy as _
from rest_framework import serializers
from account.serializers.common import UserShortSerializer
from establishment import models
from establishment import serializers as model_serializers
from establishment import models, serializers as model_serializers
from establishment.models import ContactPhone, EstablishmentEmployee
from gallery.models import Image
from location.models import Address
@ -14,7 +13,7 @@ from location.serializers import AddressDetailSerializer, TranslatedField
from main.models import Currency
from main.serializers import AwardSerializer
from utils.decorators import with_base_attributes
from utils.serializers import TimeZoneChoiceField, ImageBaseSerializer
from utils.serializers import ImageBaseSerializer, TimeZoneChoiceField
def phones_handler(phones_list, establishment):

View File

@ -57,4 +57,6 @@ 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_establishments/<int:pk>/', views.EmployeeEstablishmentsListView.as_view(),
name='employee-establishments-list')
]

View File

@ -1,4 +1,6 @@
"""Establishment app views."""
from django.core.exceptions import ObjectDoesNotExist
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
@ -7,7 +9,7 @@ from account.models import User
from establishment import filters, models, serializers
from establishment.models import EstablishmentEmployee
from timetable.models import Timetable
from timetable.serialziers import ScheduleRUDSerializer, ScheduleCreateSerializer
from timetable.serialziers import ScheduleCreateSerializer, ScheduleRUDSerializer
from utils.permissions import IsCountryAdmin, IsEstablishmentManager, IsWineryReviewer
from utils.views import CreateDestroyGalleryViewMixin
@ -30,6 +32,25 @@ class EstablishmentListCreateView(EstablishmentMixinViews, generics.ListCreateAP
serializer_class = serializers.EstablishmentListCreateSerializer
class EmployeeEstablishmentsListView(generics.ListAPIView):
"""Establishment by employee list view."""
permission_classes = [IsWineryReviewer | IsCountryAdmin | IsEstablishmentManager]
queryset = models.Establishment.objects.all()
serializer_class = serializers.EstablishmentListCreateSerializer
def get_queryset(self):
pk = self.kwargs.get('pk')
try:
employee = models.Employee.objects.get(pk=pk)
except ObjectDoesNotExist:
raise Http404
return employee.establishments.all()
class EstablishmentRUDView(generics.RetrieveUpdateDestroyAPIView):
lookup_field = 'slug'
queryset = models.Establishment.objects.all().prefetch_related(