status display and new status for ticket error
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.1.2 on 2025-02-28 15:24
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('ticket', '0015_remove_ticket_attachments_remove_ticket_content'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='ticket',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('in_progress', 'در حال پردازش'), ('resolved', 'حل شده'), ('closed', 'بسته')], default='in_progress', max_length=20, verbose_name='وضعیت تیکت'),
|
||||
),
|
||||
]
|
||||
@@ -40,7 +40,7 @@ class Ticket(models.Model):
|
||||
ticket_category = models.CharField(max_length=30, verbose_name='دسته بندی تیکت', choices=CATEGORY_CHOICES)
|
||||
customer = models.ForeignKey(User, on_delete=models.CASCADE, related_name="tickets", verbose_name='کاربر')
|
||||
admin = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name="assigned_tickets", verbose_name='ادمین')
|
||||
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='open', verbose_name='وضعیت تیکت')
|
||||
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='in_progress', verbose_name='وضعیت تیکت')
|
||||
created_at = jmodels.jDateTimeField(auto_now_add=True, verbose_name='ساخته شده در')
|
||||
updated_at = jmodels.jDateTimeField(auto_now=True, verbose_name='اپدیت شده در')
|
||||
order = models.ForeignKey(OrderModel ,blank=True, null=True, on_delete=models.SET_NULL)
|
||||
|
||||
@@ -29,6 +29,7 @@ class MessageForTicketSerializer(serializers.ModelSerializer):
|
||||
model = Message
|
||||
exclude = ('sender', 'ticket')
|
||||
class TicketSerializer(serializers.ModelSerializer):
|
||||
status = serializers.SerializerMethodField()
|
||||
messages = MessageSerializer(many=True, read_only=True)
|
||||
message = MessageForTicketSerializer(write_only=True)
|
||||
class Meta:
|
||||
@@ -39,7 +40,7 @@ class TicketSerializer(serializers.ModelSerializer):
|
||||
def create(self, validated_data):
|
||||
message = validated_data.pop('message', None)
|
||||
ticket = super().create(validated_data)
|
||||
print(f'fck this shit{ticket.pk}')
|
||||
print(f'fck this shit id {ticket.pk}')
|
||||
message['ticket'] = ticket.pk
|
||||
message_obj = MessageSerializer(data=message)
|
||||
if message_obj.is_valid():
|
||||
@@ -47,11 +48,15 @@ class TicketSerializer(serializers.ModelSerializer):
|
||||
return ticket
|
||||
else:
|
||||
raise Exception('bullshit data for message')
|
||||
def get_status(self, obj):
|
||||
return obj.get_status_display()
|
||||
|
||||
class TicketListSerializer(serializers.ModelSerializer):
|
||||
status = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
model = Ticket
|
||||
exclude = ('customer', 'admin', )
|
||||
read_only_fields = ('status',)
|
||||
|
||||
def get_status(self, obj):
|
||||
return obj.get_status_display()
|
||||
|
||||
|
||||
@@ -57,13 +57,11 @@ class TicketCreateView(APIView):
|
||||
def post(self, request):
|
||||
new_ticket_ser = self.serializer_class(data=request.data)
|
||||
message = request.data.get('message', None)
|
||||
print(message)
|
||||
if new_ticket_ser.is_valid():
|
||||
new_ticket_ser.save(customer=request.user)
|
||||
return Response(new_ticket_ser.data, status=status.HTTP_201_CREATED)
|
||||
else:
|
||||
print(new_ticket_ser.error_messages)
|
||||
return Response(new_ticket_ser.errors)
|
||||
return Response(new_ticket_ser.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
class TicketListView(APIView):
|
||||
serializer_class = TicketListSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
Reference in New Issue
Block a user