add /item/comment endpoint and prefetch related models
This commit is contained in:
parent
bc4b17c551
commit
8a60908be6
4 changed files with 66 additions and 11 deletions
|
@ -3,7 +3,7 @@ from rest_framework import serializers
|
|||
from rest_framework.relations import SlugRelatedField
|
||||
|
||||
from files.models import File
|
||||
from inventory.models import Event, Container, Item
|
||||
from inventory.models import Event, Container, Item, Comment
|
||||
from inventory.shared_serializers import BasicItemSerializer
|
||||
from mail.models import EventAddress
|
||||
from tickets.shared_serializers import BasicIssueSerializer
|
||||
|
@ -38,6 +38,18 @@ class ContainerSerializer(serializers.ModelSerializer):
|
|||
return len(instance.items)
|
||||
|
||||
|
||||
class CommentSerializer(serializers.ModelSerializer):
|
||||
|
||||
def validate(self, attrs):
|
||||
if 'comment' not in attrs or attrs['comment'] == '':
|
||||
raise serializers.ValidationError('comment cannot be empty')
|
||||
return attrs
|
||||
|
||||
class Meta:
|
||||
model = Comment
|
||||
fields = ('id', 'comment', 'timestamp', 'item')
|
||||
|
||||
|
||||
class ItemSerializer(BasicItemSerializer):
|
||||
timeline = serializers.SerializerMethodField()
|
||||
dataImage = serializers.CharField(write_only=True, required=False)
|
||||
|
@ -48,6 +60,7 @@ class ItemSerializer(BasicItemSerializer):
|
|||
fields = ['cid', 'box', 'id', 'description', 'file', 'dataImage', 'returned', 'event', 'related_issues',
|
||||
'timeline']
|
||||
read_only_fields = ['id']
|
||||
prefetch_related_fields = ['comments', 'issue_relation_changes', 'container_history']
|
||||
|
||||
def to_internal_value(self, data):
|
||||
container = None
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue