ticket update
This commit is contained in:
@@ -3,40 +3,55 @@ from .models import Ticket, Message, Attachment
|
||||
from django.utils.timezone import localtime
|
||||
from account.serializers import ProfileSerializer
|
||||
|
||||
|
||||
|
||||
class MessageSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Message
|
||||
fields = '__all__'
|
||||
|
||||
class TicketSerializer(serializers.ModelSerializer):
|
||||
messages = MessageSerializer(many=True, read_only=True)
|
||||
admin = ProfileSerializer(read_only=True)
|
||||
class Meta:
|
||||
model = Ticket
|
||||
exclude = ('customer', )
|
||||
read_only_fields = ('status', 'admin', )
|
||||
|
||||
|
||||
class TicketListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Ticket
|
||||
exclude = ('customer', 'admin', 'order', 'content')
|
||||
read_only_fields = ('status',)
|
||||
|
||||
|
||||
class AttachmentSerializer(serializers.ModelSerializer):
|
||||
file = serializers.FileField(write_only=True)
|
||||
link = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = Attachment
|
||||
fields = ['id', 'name', 'file','link' , 'created_at', 'size']
|
||||
fields = ['id', 'name', 'file', 'link' , 'created_at', 'size']
|
||||
read_only_fields = ('size', 'name', )
|
||||
|
||||
def get_link(self, obj):
|
||||
request = self.context.get('request')
|
||||
if request is not None:
|
||||
return request.build_absolute_uri(obj.file.url)
|
||||
return obj.file.url
|
||||
return obj.file.url
|
||||
|
||||
class MessageSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Message
|
||||
exclude = ('sender', )
|
||||
extra_kwargs = {'ticket': {'write_only': True}}
|
||||
|
||||
class MessageForTicketSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Message
|
||||
exclude = ('sender', 'ticket')
|
||||
class TicketSerializer(serializers.ModelSerializer):
|
||||
messages = MessageSerializer(many=True, read_only=True)
|
||||
message = MessageForTicketSerializer(write_only=True)
|
||||
class Meta:
|
||||
model = Ticket
|
||||
exclude = ('customer', 'admin')
|
||||
read_only_fields = ('status',)
|
||||
|
||||
def create(self, validated_data):
|
||||
message = validated_data.pop('message', None)
|
||||
ticket = super().create(validated_data)
|
||||
print(f'fck this shit{ticket.pk}')
|
||||
message['ticket'] = ticket.pk
|
||||
message_obj = MessageSerializer(data=message)
|
||||
if message_obj.is_valid():
|
||||
message_obj.save(sender=ticket.customer)
|
||||
return ticket
|
||||
else:
|
||||
raise Exception('bullshit data for message')
|
||||
|
||||
class TicketListSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Ticket
|
||||
exclude = ('customer', 'admin', )
|
||||
read_only_fields = ('status',)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user