diff --git a/apps/comment/serializers/common.py b/apps/comment/serializers/common.py index c92e4266..1f646fac 100644 --- a/apps/comment/serializers/common.py +++ b/apps/comment/serializers/common.py @@ -1,7 +1,9 @@ """Common serializers for app comment.""" from rest_framework import serializers +import establishment.serializers.common as establishment_serializers from comment.models import Comment +from establishment.models import EstablishmentType class CommentBaseSerializer(serializers.ModelSerializer): @@ -15,6 +17,11 @@ class CommentBaseSerializer(serializers.ModelSerializer): source='get_status_display') last_ip = serializers.IPAddressField(read_only=True, source='user.last_ip') + content_type = serializers.SerializerMethodField(read_only=True) + content_name = serializers.CharField(read_only=True, source='content_object.name') + + user_email = serializers.CharField(read_only=True, source='user.email') + class Meta: """Serializer for model Comment""" model = Comment @@ -30,7 +37,21 @@ class CommentBaseSerializer(serializers.ModelSerializer): 'status', 'status_display', 'last_ip', + 'content_type', + 'content_name', + 'user_email' ] extra_kwargs = { 'status': {'read_only': True}, } + + def get_content_type(self, instance: Comment): + if instance.content_object.establishment_type == EstablishmentType.PRODUCER: + return establishment_serializers.EstablishmentSubTypeBaseSerializer( + instance.content_object.establishment_subtypes, many=True + ).data + + return establishment_serializers.EstablishmentTypeBaseSerializer( + instance.content_object.establishment_type + ).data + diff --git a/apps/comment/views/back.py b/apps/comment/views/back.py index e5e1ee51..a3c05543 100644 --- a/apps/comment/views/back.py +++ b/apps/comment/views/back.py @@ -1,13 +1,15 @@ -from rest_framework import generics, permissions -from comment.serializers import CommentBaseSerializer +from rest_framework import generics + from comment import models -from utils.permissions import IsCommentModerator, IsCountryAdmin +from comment.serializers import CommentBaseSerializer +from utils.permissions import IsCommentModerator class CommentLstView(generics.ListCreateAPIView): """Comment list create view.""" serializer_class = CommentBaseSerializer queryset = models.Comment.objects.all() + # permission_classes = [permissions.IsAuthenticatedOrReadOnly| IsCommentModerator|IsCountryAdmin]