diff --git a/apps/authorization/serializers/common.py b/apps/authorization/serializers/common.py index f5e24fc9..a4c6f817 100644 --- a/apps/authorization/serializers/common.py +++ b/apps/authorization/serializers/common.py @@ -107,7 +107,7 @@ class LoginByUsernameOrEmailSerializer(SourceSerializerMixin, authentication = authenticate(username=user.get_username(), password=password) if not authentication: - raise utils_exceptions.WrongAuthCredentials() + raise utils_exceptions.UserNotFoundError() self.instance = user return attrs diff --git a/apps/establishment/serializers.py b/apps/establishment/serializers.py index c297ce54..3c1e3407 100644 --- a/apps/establishment/serializers.py +++ b/apps/establishment/serializers.py @@ -6,6 +6,7 @@ from comment.serializers import common as comment_serializers from establishment import models from favorites.models import Favorites from location.serializers import AddressSerializer +from main.models import MetaDataContent from main.serializers import MetaDataContentSerializer, AwardSerializer, CurrencySerializer from review import models as review_models from timetable.models import Timetable @@ -132,7 +133,7 @@ class EstablishmentBaseSerializer(serializers.ModelSerializer): subtypes = EstablishmentSubTypeSerializer(many=True) address = AddressSerializer() tags = MetaDataContentSerializer(many=True) - preview_image = serializers.SerializerMethodField() + preview_image = serializers.ImageField(source='image', use_url=False) class Meta: """Meta class.""" @@ -151,11 +152,6 @@ class EstablishmentBaseSerializer(serializers.ModelSerializer): '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): """Serializer for Establishment model.""" @@ -322,3 +318,16 @@ class EstablishmentFavoritesCreateSerializer(serializers.ModelSerializer): 'content_object': validated_data.pop('establishment') }) 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', + ] diff --git a/apps/establishment/urls/common.py b/apps/establishment/urls/common.py index 0f2958eb..007f7802 100644 --- a/apps/establishment/urls/common.py +++ b/apps/establishment/urls/common.py @@ -8,6 +8,7 @@ app_name = 'establishment' urlpatterns = [ path('', views.EstablishmentListView.as_view(), name='list'), + path('tags/', views.EstablishmentTagListView.as_view(), name='tags'), path('/', views.EstablishmentRetrieveView.as_view(), name='detail'), path('/comments/', views.EstablishmentCommentListView.as_view(), name='list-comments'), path('/comments/create/', views.EstablishmentCommentCreateView.as_view(), diff --git a/apps/establishment/views.py b/apps/establishment/views.py index 528d2377..379407bd 100644 --- a/apps/establishment/views.py +++ b/apps/establishment/views.py @@ -6,6 +6,7 @@ from rest_framework import generics, permissions from comment import models as comment_models from establishment import filters from establishment import models, serializers +from main.models import MetaDataContent from utils.views import JWTGenericViewMixin @@ -117,3 +118,15 @@ class EstablishmentFavoritesCreateDestroyView(generics.CreateAPIView, generics.D # May raise a permission denied self.check_object_permissions(self.request, 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')