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
|
# TODO: test decorator
|
||||||
@with_base_attributes
|
@with_base_attributes
|
||||||
class EmployeeBackSerializers(PhoneMixinSerializer, serializers.ModelSerializer):
|
class EmployeeBackSerializers(PhoneMixinSerializer, serializers.ModelSerializer):
|
||||||
|
|
@ -968,6 +979,7 @@ class CardAndWinesSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
class TeamMemberSerializer(serializers.ModelSerializer):
|
class TeamMemberSerializer(serializers.ModelSerializer):
|
||||||
"""Serializer for team establishment BO section"""
|
"""Serializer for team establishment BO section"""
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = account_models.User
|
model = account_models.User
|
||||||
fields = (
|
fields = (
|
||||||
|
|
|
||||||
|
|
@ -292,8 +292,8 @@ class CardAndWinesListView(generics.RetrieveAPIView):
|
||||||
queryset = models.Establishment.objects.with_base_related()
|
queryset = models.Establishment.objects.with_base_related()
|
||||||
|
|
||||||
def get_object(self):
|
def get_object(self):
|
||||||
establishment = models.Establishment.objects.prefetch_plates()\
|
establishment = models.Establishment.objects.prefetch_plates() \
|
||||||
.filter(pk=self.kwargs['establishment_id'])\
|
.filter(pk=self.kwargs['establishment_id']) \
|
||||||
.first()
|
.first()
|
||||||
if establishment is None:
|
if establishment is None:
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
@ -705,7 +705,7 @@ class EmployeesListSearchViews(generics.ListAPIView):
|
||||||
serializer_class = serializers.EmployeeBackSerializers
|
serializer_class = serializers.EmployeeBackSerializers
|
||||||
queryset = (
|
queryset = (
|
||||||
models.Employee.objects.with_back_office_related()
|
models.Employee.objects.with_back_office_related()
|
||||||
.select_related('photo')
|
.select_related('photo')
|
||||||
)
|
)
|
||||||
permission_classes = get_permission_classes(
|
permission_classes = get_permission_classes(
|
||||||
IsEstablishmentManager,
|
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):
|
class RemoveAwardView(generics.DestroyAPIView):
|
||||||
"""
|
"""
|
||||||
## Remove award view.
|
## Remove award view.
|
||||||
|
|
@ -1226,10 +1262,10 @@ class EstablishmentGuideCreateDestroyView(generics.GenericAPIView):
|
||||||
lookup_url_kwarg = getattr(self, 'establishment_lookup_url_kwarg', None)
|
lookup_url_kwarg = getattr(self, 'establishment_lookup_url_kwarg', None)
|
||||||
|
|
||||||
assert lookup_url_kwarg in self.kwargs, (
|
assert lookup_url_kwarg in self.kwargs, (
|
||||||
'Expected view %s to be called with a URL keyword argument '
|
'Expected view %s to be called with a URL keyword argument '
|
||||||
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
||||||
'attribute on the view correctly.' %
|
'attribute on the view correctly.' %
|
||||||
(self.__class__.__name__, lookup_url_kwarg)
|
(self.__class__.__name__, lookup_url_kwarg)
|
||||||
)
|
)
|
||||||
|
|
||||||
filters = {'klass': queryset, lookup_url_kwarg: self.kwargs.get(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)
|
lookup_url_kwarg = getattr(self, 'guide_lookup_url_kwarg', None)
|
||||||
|
|
||||||
assert lookup_url_kwarg in self.kwargs, (
|
assert lookup_url_kwarg in self.kwargs, (
|
||||||
'Expected view %s to be called with a URL keyword argument '
|
'Expected view %s to be called with a URL keyword argument '
|
||||||
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
'named "%s". Fix your URL conf, or set the `.lookup_field` '
|
||||||
'attribute on the view correctly.' %
|
'attribute on the view correctly.' %
|
||||||
(self.__class__.__name__, lookup_url_kwarg)
|
(self.__class__.__name__, lookup_url_kwarg)
|
||||||
)
|
)
|
||||||
|
|
||||||
obj = get_object_or_404(klass=queryset, id=self.kwargs.get(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):
|
def delete(self, request, *args, **kwargs):
|
||||||
establishment = get_object_or_404(models.Establishment, id=kwargs['establishment_id'])
|
establishment = get_object_or_404(models.Establishment, id=kwargs['establishment_id'])
|
||||||
establishment.remove_award(kwargs['award_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.models import User
|
||||||
from account.serializers import BackUserSerializer
|
from account.serializers import BackUserSerializer
|
||||||
from main import models
|
from main import models
|
||||||
|
from main.serializers import CarouselListSerializer
|
||||||
|
|
||||||
|
|
||||||
class PanelSerializer(serializers.ModelSerializer):
|
class PanelSerializer(serializers.ModelSerializer):
|
||||||
|
|
@ -27,3 +28,16 @@ class PanelSerializer(serializers.ModelSerializer):
|
||||||
'user',
|
'user',
|
||||||
'user_id'
|
'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>/', views.PanelsRUDView.as_view(), name='panels-rud'),
|
||||||
path('panels/<int:pk>/execute/', views.PanelsExecuteView.as_view(), name='panels-execute'),
|
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>/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 serializers
|
||||||
from main import tasks
|
from main import tasks
|
||||||
from main.filters import AwardFilter, AwardTypeFilterSet
|
from main.filters import AwardFilter, AwardTypeFilterSet
|
||||||
from main.models import Award, Footer, PageType, Panel, SiteFeature, Feature, AwardType
|
from main.models import Award, Footer, PageType, Panel, SiteFeature, Feature, AwardType, Carousel
|
||||||
from main.serializers.back import PanelSerializer
|
from main.serializers.back import PanelSerializer, BackCarouselListSerializer
|
||||||
from main.views import SiteSettingsView, SiteListView
|
from main.views import SiteSettingsView, SiteListView
|
||||||
from utils.methods import get_permission_classes
|
from utils.methods import get_permission_classes
|
||||||
|
|
||||||
|
|
@ -331,3 +331,40 @@ class PanelsExecuteXLSView(PanelsExecuteView):
|
||||||
{"success": _('The file will be sent to your email.')},
|
{"success": _('The file will be sent to your email.')},
|
||||||
status=status.HTTP_200_OK
|
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