ticket.py 974 B

1234567891011121314151617181920212223242526272829303132333435
  1. from django.shortcuts import get_object_or_404
  2. from rest_framework import serializers
  3. from tickets.models import Ticket
  4. class BaseTicketSerializer(serializers.ModelSerializer):
  5. def validate(self, data):
  6. user = self.context['request'].user
  7. if not (user.is_superuser or data["ticket_list"].group in user.groups.all()):
  8. raise serializers.ValidationError("You don't have access to this list.")
  9. return data
  10. class TicketSerializer(BaseTicketSerializer):
  11. status = serializers.IntegerField(read_only=True)
  12. note = serializers.CharField(write_only=True, required=False)
  13. class Meta():
  14. model = Ticket
  15. exclude = ["updated_at"]
  16. class TicketDetailSerializer(BaseTicketSerializer):
  17. available_statuses = serializers.SerializerMethodField()
  18. def get_available_statuses(self, obj):
  19. return obj.get_available_statuses()
  20. class Meta():
  21. model = Ticket
  22. fields = "__all__"