Added fields to comments

This commit is contained in:
dormantman 2020-01-21 17:40:34 +03:00
parent 6d627ac240
commit b72f5c383b
2 changed files with 26 additions and 3 deletions

View File

@ -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

View File

@ -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]