added endpoint to retrieve establishment tags
This commit is contained in:
parent
cf884ed906
commit
1ee21edb8e
|
|
@ -107,7 +107,7 @@ class LoginByUsernameOrEmailSerializer(SourceSerializerMixin,
|
||||||
authentication = authenticate(username=user.get_username(),
|
authentication = authenticate(username=user.get_username(),
|
||||||
password=password)
|
password=password)
|
||||||
if not authentication:
|
if not authentication:
|
||||||
raise utils_exceptions.WrongAuthCredentials()
|
raise utils_exceptions.UserNotFoundError()
|
||||||
self.instance = user
|
self.instance = user
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from comment.serializers import common as comment_serializers
|
||||||
from establishment import models
|
from establishment import models
|
||||||
from favorites.models import Favorites
|
from favorites.models import Favorites
|
||||||
from location.serializers import AddressSerializer
|
from location.serializers import AddressSerializer
|
||||||
|
from main.models import MetaDataContent
|
||||||
from main.serializers import MetaDataContentSerializer, AwardSerializer, CurrencySerializer
|
from main.serializers import MetaDataContentSerializer, AwardSerializer, CurrencySerializer
|
||||||
from review import models as review_models
|
from review import models as review_models
|
||||||
from timetable.models import Timetable
|
from timetable.models import Timetable
|
||||||
|
|
@ -132,7 +133,7 @@ class EstablishmentBaseSerializer(serializers.ModelSerializer):
|
||||||
subtypes = EstablishmentSubTypeSerializer(many=True)
|
subtypes = EstablishmentSubTypeSerializer(many=True)
|
||||||
address = AddressSerializer()
|
address = AddressSerializer()
|
||||||
tags = MetaDataContentSerializer(many=True)
|
tags = MetaDataContentSerializer(many=True)
|
||||||
preview_image = serializers.SerializerMethodField()
|
preview_image = serializers.ImageField(source='image', use_url=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
@ -151,11 +152,6 @@ class EstablishmentBaseSerializer(serializers.ModelSerializer):
|
||||||
'tags',
|
'tags',
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_preview_image(self, obj):
|
|
||||||
"""Get preview image"""
|
|
||||||
return obj.get_full_image_url(request=self.context.get('request'),
|
|
||||||
thumbnail_key='establishment_preview')
|
|
||||||
|
|
||||||
|
|
||||||
class EstablishmentListSerializer(EstablishmentBaseSerializer):
|
class EstablishmentListSerializer(EstablishmentBaseSerializer):
|
||||||
"""Serializer for Establishment model."""
|
"""Serializer for Establishment model."""
|
||||||
|
|
@ -322,3 +318,16 @@ class EstablishmentFavoritesCreateSerializer(serializers.ModelSerializer):
|
||||||
'content_object': validated_data.pop('establishment')
|
'content_object': validated_data.pop('establishment')
|
||||||
})
|
})
|
||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
|
|
||||||
|
class EstablishmentTagListSerializer(serializers.ModelSerializer):
|
||||||
|
"""List establishment tag serializer."""
|
||||||
|
label_translated = serializers.CharField(
|
||||||
|
source='metadata.label_translated', read_only=True, allow_null=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
"""Meta class."""
|
||||||
|
model = MetaDataContent
|
||||||
|
fields = [
|
||||||
|
'label_translated',
|
||||||
|
]
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ app_name = 'establishment'
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', views.EstablishmentListView.as_view(), name='list'),
|
path('', views.EstablishmentListView.as_view(), name='list'),
|
||||||
|
path('tags/', views.EstablishmentTagListView.as_view(), name='tags'),
|
||||||
path('<int:pk>/', views.EstablishmentRetrieveView.as_view(), name='detail'),
|
path('<int:pk>/', views.EstablishmentRetrieveView.as_view(), name='detail'),
|
||||||
path('<int:pk>/comments/', views.EstablishmentCommentListView.as_view(), name='list-comments'),
|
path('<int:pk>/comments/', views.EstablishmentCommentListView.as_view(), name='list-comments'),
|
||||||
path('<int:pk>/comments/create/', views.EstablishmentCommentCreateView.as_view(),
|
path('<int:pk>/comments/create/', views.EstablishmentCommentCreateView.as_view(),
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from rest_framework import generics, permissions
|
||||||
from comment import models as comment_models
|
from comment import models as comment_models
|
||||||
from establishment import filters
|
from establishment import filters
|
||||||
from establishment import models, serializers
|
from establishment import models, serializers
|
||||||
|
from main.models import MetaDataContent
|
||||||
from utils.views import JWTGenericViewMixin
|
from utils.views import JWTGenericViewMixin
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -117,3 +118,15 @@ class EstablishmentFavoritesCreateDestroyView(generics.CreateAPIView, generics.D
|
||||||
# May raise a permission denied
|
# May raise a permission denied
|
||||||
self.check_object_permissions(self.request, obj)
|
self.check_object_permissions(self.request, obj)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
|
class EstablishmentTagListView(generics.ListAPIView):
|
||||||
|
"""List view for establishment tags."""
|
||||||
|
serializer_class = serializers.EstablishmentTagListSerializer
|
||||||
|
permission_classes = (permissions.AllowAny,)
|
||||||
|
pagination_class = None
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
"""Override get_queryset method"""
|
||||||
|
return MetaDataContent.objects.by_content_type(app_label='establishment',
|
||||||
|
model='establishment')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user