GET carousel for BO
This commit is contained in:
parent
c866721c8d
commit
6feb67b0b5
|
|
@ -355,6 +355,17 @@ class PositionBackSerializer(serializers.ModelSerializer):
|
|||
]
|
||||
|
||||
|
||||
class AdminEmployeeBackSerializers(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = models.Employee
|
||||
fields = [
|
||||
'id',
|
||||
'name',
|
||||
'last_name',
|
||||
]
|
||||
|
||||
|
||||
# TODO: test decorator
|
||||
@with_base_attributes
|
||||
class EmployeeBackSerializers(PhoneMixinSerializer, serializers.ModelSerializer):
|
||||
|
|
@ -968,6 +979,7 @@ class CardAndWinesSerializer(serializers.ModelSerializer):
|
|||
|
||||
class TeamMemberSerializer(serializers.ModelSerializer):
|
||||
"""Serializer for team establishment BO section"""
|
||||
|
||||
class Meta:
|
||||
model = account_models.User
|
||||
fields = (
|
||||
|
|
|
|||
|
|
@ -292,8 +292,8 @@ class CardAndWinesListView(generics.RetrieveAPIView):
|
|||
queryset = models.Establishment.objects.with_base_related()
|
||||
|
||||
def get_object(self):
|
||||
establishment = models.Establishment.objects.prefetch_plates()\
|
||||
.filter(pk=self.kwargs['establishment_id'])\
|
||||
establishment = models.Establishment.objects.prefetch_plates() \
|
||||
.filter(pk=self.kwargs['establishment_id']) \
|
||||
.first()
|
||||
if establishment is None:
|
||||
raise Http404
|
||||
|
|
@ -705,7 +705,7 @@ class EmployeesListSearchViews(generics.ListAPIView):
|
|||
serializer_class = serializers.EmployeeBackSerializers
|
||||
queryset = (
|
||||
models.Employee.objects.with_back_office_related()
|
||||
.select_related('photo')
|
||||
.select_related('photo')
|
||||
)
|
||||
permission_classes = get_permission_classes(
|
||||
IsEstablishmentManager,
|
||||
|
|
@ -827,6 +827,42 @@ class EmployeeRUDView(generics.RetrieveUpdateDestroyAPIView):
|
|||
)
|
||||
|
||||
|
||||
class AdminEmployeeListView(generics.ListAPIView):
|
||||
"""
|
||||
## Employee list view, where request user is admin.
|
||||
### *GET*
|
||||
#### Description
|
||||
Return paginated list of employees with available filters:
|
||||
* search (`str`) - filter by name or last name with mistakes
|
||||
* position_id (`int`) - filter by employees position identifier
|
||||
* public_mark (`str`) - filter by establishment public mark
|
||||
* toque_number (`str`) - filter by establishment toque number
|
||||
* username (`str`) - filter by a username or name
|
||||
|
||||
#### Response
|
||||
```
|
||||
{
|
||||
"id": 1324,
|
||||
"name": "Alex",
|
||||
"establishment_id": 1324,
|
||||
"establishment_type": 1324,
|
||||
"establishment_subtype": 1324,
|
||||
"establishment_slug": "slug",
|
||||
{
|
||||
```
|
||||
|
||||
"""
|
||||
serializer_class = serializers.EmployeeBackSerializers
|
||||
queryset = models.Employee.objects.all().distinct().with_back_office_related()
|
||||
permission_classes = get_permission_classes(IsEstablishmentAdministrator, )
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super().get_queryset()
|
||||
if self.request.country_code:
|
||||
qs = qs.filter(establishments__address__city__country__code=self.request.country_code)
|
||||
return qs
|
||||
|
||||
|
||||
class RemoveAwardView(generics.DestroyAPIView):
|
||||
"""
|
||||
## Remove award view.
|
||||
|
|
@ -1226,10 +1262,10 @@ class EstablishmentGuideCreateDestroyView(generics.GenericAPIView):
|
|||
lookup_url_kwarg = getattr(self, 'establishment_lookup_url_kwarg', None)
|
||||
|
||||
assert lookup_url_kwarg in self.kwargs, (
|
||||
'Expected view %s to be called with a URL keyword argument '
|
||||
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
||||
'attribute on the view correctly.' %
|
||||
(self.__class__.__name__, lookup_url_kwarg)
|
||||
'Expected view %s to be called with a URL keyword argument '
|
||||
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
||||
'attribute on the view correctly.' %
|
||||
(self.__class__.__name__, lookup_url_kwarg)
|
||||
)
|
||||
|
||||
filters = {'klass': queryset, lookup_url_kwarg: self.kwargs.get(lookup_url_kwarg)}
|
||||
|
|
@ -1247,10 +1283,10 @@ class EstablishmentGuideCreateDestroyView(generics.GenericAPIView):
|
|||
lookup_url_kwarg = getattr(self, 'guide_lookup_url_kwarg', None)
|
||||
|
||||
assert lookup_url_kwarg in self.kwargs, (
|
||||
'Expected view %s to be called with a URL keyword argument '
|
||||
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
||||
'attribute on the view correctly.' %
|
||||
(self.__class__.__name__, lookup_url_kwarg)
|
||||
'Expected view %s to be called with a URL keyword argument '
|
||||
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
||||
'attribute on the view correctly.' %
|
||||
(self.__class__.__name__, lookup_url_kwarg)
|
||||
)
|
||||
|
||||
obj = get_object_or_404(klass=queryset, id=self.kwargs.get(lookup_url_kwarg))
|
||||
|
|
@ -1431,4 +1467,4 @@ class EstablishmentAwardCreateAndBind(generics.CreateAPIView, generics.DestroyAP
|
|||
def delete(self, request, *args, **kwargs):
|
||||
establishment = get_object_or_404(models.Establishment, id=kwargs['establishment_id'])
|
||||
establishment.remove_award(kwargs['award_id'])
|
||||
return self._award_list_for_establishment(kwargs['establishment_id'], status.HTTP_200_OK)
|
||||
return self._award_list_for_establishment(kwargs['establishment_id'], status.HTTP_200_OK)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ from rest_framework import serializers
|
|||
from account.models import User
|
||||
from account.serializers import BackUserSerializer
|
||||
from main import models
|
||||
from main.serializers import CarouselListSerializer
|
||||
|
||||
|
||||
class PanelSerializer(serializers.ModelSerializer):
|
||||
|
|
@ -27,3 +28,16 @@ class PanelSerializer(serializers.ModelSerializer):
|
|||
'user',
|
||||
'user_id'
|
||||
]
|
||||
|
||||
|
||||
class BackCarouselListSerializer(CarouselListSerializer):
|
||||
"""Serializer for retrieving list of carousel items."""
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
||||
model = models.Carousel
|
||||
fields = CarouselListSerializer.Meta.fields + [
|
||||
'active',
|
||||
'is_parse',
|
||||
]
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ urlpatterns = [
|
|||
path('panels/<int:pk>/', views.PanelsRUDView.as_view(), name='panels-rud'),
|
||||
path('panels/<int:pk>/execute/', views.PanelsExecuteView.as_view(), name='panels-execute'),
|
||||
path('panels/<int:pk>/csv/', views.PanelsExportCSVView.as_view(), name='panels-csv'),
|
||||
path('panels/<int:pk>/xls/', views.PanelsExecuteXLSView.as_view(), name='panels-xls')
|
||||
path('panels/<int:pk>/xls/', views.PanelsExecuteXLSView.as_view(), name='panels-xls'),
|
||||
path('carousel/', views.BackCarouselListView.as_view(), name='carousel-list'),
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ from establishment.serializers.back import EmployeeBackSerializers
|
|||
from main import serializers
|
||||
from main import tasks
|
||||
from main.filters import AwardFilter, AwardTypeFilterSet
|
||||
from main.models import Award, Footer, PageType, Panel, SiteFeature, Feature, AwardType
|
||||
from main.serializers.back import PanelSerializer
|
||||
from main.models import Award, Footer, PageType, Panel, SiteFeature, Feature, AwardType, Carousel
|
||||
from main.serializers.back import PanelSerializer, BackCarouselListSerializer
|
||||
from main.views import SiteSettingsView, SiteListView
|
||||
from utils.methods import get_permission_classes
|
||||
|
||||
|
|
@ -331,3 +331,40 @@ class PanelsExecuteXLSView(PanelsExecuteView):
|
|||
{"success": _('The file will be sent to your email.')},
|
||||
status=status.HTTP_200_OK
|
||||
)
|
||||
|
||||
|
||||
class BackCarouselListView(generics.ListAPIView):
|
||||
"""
|
||||
## List of carousel.
|
||||
### *GET*
|
||||
#### Description
|
||||
Return list of carousel items.
|
||||
##### Response
|
||||
E.g.:
|
||||
```
|
||||
{
|
||||
"id": 1,
|
||||
"model_name": "model_name",
|
||||
"name": "name",
|
||||
...
|
||||
"awards": [
|
||||
{
|
||||
"id": 1,
|
||||
...
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
"""
|
||||
|
||||
queryset = Carousel.objects.all()
|
||||
serializer_class = BackCarouselListSerializer
|
||||
permission_classes = get_permission_classes()
|
||||
pagination_class = None
|
||||
|
||||
def get_queryset(self):
|
||||
country_code = self.request.country_code
|
||||
qs = Carousel.objects.all()
|
||||
if country_code:
|
||||
qs = qs.by_country_code(country_code)
|
||||
return qs
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user