add api for establishment admin
This commit is contained in:
parent
86b2e708f0
commit
bd6f8a47a1
|
|
@ -95,11 +95,15 @@ class UserQuerySet(models.QuerySet):
|
||||||
|
|
||||||
def by_role(self, role):
|
def by_role(self, role):
|
||||||
"""Filter by role."""
|
"""Filter by role."""
|
||||||
return self.filter(userrole__role=role).dictinct()
|
return self.filter(userrole__role=role)
|
||||||
|
|
||||||
def by_roles(self, roles: list):
|
def by_roles(self, roles: list):
|
||||||
"""Filter by roles."""
|
"""Filter by roles."""
|
||||||
return self.filter(userrole__role__in=roles).dictinct()
|
return self.filter(userrole__role__in=roles)
|
||||||
|
|
||||||
|
def establishment_admin(self, establishment):
|
||||||
|
role = Role.objects.filter(role=Role.ESTABLISHMENT_MANAGER).first()
|
||||||
|
return self.by_role(role).filter(userrole__establishment=establishment)
|
||||||
|
|
||||||
|
|
||||||
class User(AbstractUser):
|
class User(AbstractUser):
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,3 @@ class UserRoleSerializer(serializers.ModelSerializer):
|
||||||
'user',
|
'user',
|
||||||
'establishment'
|
'establishment'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class OwnerSerializer(BackUserSerializer):
|
|
||||||
"""Owner serializer."""
|
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,4 @@ urlpatterns = [
|
||||||
path('user-role/', views.UserRoleLstView.as_view(), name='user-role-list-create'),
|
path('user-role/', views.UserRoleLstView.as_view(), name='user-role-list-create'),
|
||||||
path('user/', views.UserLstView.as_view(), name='user-create-list'),
|
path('user/', views.UserLstView.as_view(), name='user-create-list'),
|
||||||
path('user/<int:id>/', views.UserRUDView.as_view(), name='user-rud'),
|
path('user/<int:id>/', views.UserRUDView.as_view(), name='user-rud'),
|
||||||
path('owner/', views.OwnerListView.as_view(), name='owner-list'),
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,3 @@ class UserRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||||
serializer_class = serializers.BackDetailUserSerializer
|
serializer_class = serializers.BackDetailUserSerializer
|
||||||
permission_classes = (permissions.IsAdminUser,)
|
permission_classes = (permissions.IsAdminUser,)
|
||||||
lookup_field = 'id'
|
lookup_field = 'id'
|
||||||
|
|
||||||
|
|
||||||
class OwnerListView(generics.ListAPIView):
|
|
||||||
serializer_class = serializers.OwnerSerializer
|
|
||||||
queryset = models.User.objects.active()
|
|
||||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly, )
|
|
||||||
|
|
|
||||||
|
|
@ -324,3 +324,14 @@ class EstablishmentNoteListCreateSerializer(EstablishmentNoteBaseSerializer):
|
||||||
"""Return establishment instance from view."""
|
"""Return establishment instance from view."""
|
||||||
if self.serializer_view:
|
if self.serializer_view:
|
||||||
return self.serializer_view.get_object()
|
return self.serializer_view.get_object()
|
||||||
|
|
||||||
|
|
||||||
|
class EstablishmentAdminListSerializer(UserShortSerializer):
|
||||||
|
"""Establishment admin serializer."""
|
||||||
|
class Meta:
|
||||||
|
model = UserShortSerializer.Meta.model
|
||||||
|
fields = [
|
||||||
|
'id',
|
||||||
|
'username',
|
||||||
|
'email'
|
||||||
|
]
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ urlpatterns = [
|
||||||
name='note-list-create'),
|
name='note-list-create'),
|
||||||
path('slug/<slug:slug>/notes/<int:note_pk>/', views.EstablishmentNoteRUDView.as_view(),
|
path('slug/<slug:slug>/notes/<int:note_pk>/', views.EstablishmentNoteRUDView.as_view(),
|
||||||
name='note-rud'),
|
name='note-rud'),
|
||||||
|
path('slug/<slug:slug>/admin/', views.EstablishmentAdminView.as_view(),
|
||||||
|
name='establishment-admin-list'),
|
||||||
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
|
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
|
||||||
path('menus/<int:pk>/', views.MenuRUDView.as_view(), name='menu-rud'),
|
path('menus/<int:pk>/', views.MenuRUDView.as_view(), name='menu-rud'),
|
||||||
path('plates/', views.PlateListCreateView.as_view(), name='plates'),
|
path('plates/', views.PlateListCreateView.as_view(), name='plates'),
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
"""Establishment app views."""
|
"""Establishment app views."""
|
||||||
from django.http import Http404, HttpResponse
|
from django.http import Http404, HttpResponse
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from rest_framework import generics, permissions, status
|
from rest_framework import generics, permissions
|
||||||
|
from rest_framework import status
|
||||||
|
|
||||||
|
from account.models import User
|
||||||
from establishment import filters, models, serializers
|
from establishment import filters, models, serializers
|
||||||
|
from timetable.models import Timetable
|
||||||
from timetable.serialziers import ScheduleRUDSerializer, ScheduleCreateSerializer
|
from timetable.serialziers import ScheduleRUDSerializer, ScheduleCreateSerializer
|
||||||
from utils.permissions import IsCountryAdmin, IsEstablishmentManager, IsWineryReviewer
|
from utils.permissions import IsCountryAdmin, IsEstablishmentManager, IsWineryReviewer
|
||||||
from utils.views import CreateDestroyGalleryViewMixin
|
from utils.views import CreateDestroyGalleryViewMixin
|
||||||
from timetable.models import Timetable
|
|
||||||
from rest_framework import status
|
|
||||||
from rest_framework.response import Response
|
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentMixinViews:
|
class EstablishmentMixinViews:
|
||||||
|
|
@ -374,3 +374,14 @@ class EstablishmentPositionListView(generics.ListAPIView):
|
||||||
permission_classes = (permissions.AllowAny, )
|
permission_classes = (permissions.AllowAny, )
|
||||||
queryset = models.Position.objects.all()
|
queryset = models.Position.objects.all()
|
||||||
serializer_class = serializers.PositionBackSerializer
|
serializer_class = serializers.PositionBackSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class EstablishmentAdminView(generics.ListAPIView):
|
||||||
|
"""Establishment admin list view."""
|
||||||
|
serializer_class = serializers.EstablishmentAdminListSerializer
|
||||||
|
permission_classes = (permissions.IsAuthenticatedOrReadOnly, )
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
establishment = get_object_or_404(
|
||||||
|
models.Establishment, slug=self.kwargs['slug'])
|
||||||
|
return User.objects.establishment_admin(establishment).distinct()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user