diff --git a/backend/ticket/migrations/0016_alter_ticket_status.py b/backend/ticket/migrations/0016_alter_ticket_status.py new file mode 100644 index 0000000..1890399 --- /dev/null +++ b/backend/ticket/migrations/0016_alter_ticket_status.py @@ -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='وضعیت تیکت'), + ), + ] diff --git a/backend/ticket/models.py b/backend/ticket/models.py index 6a40c05..7d92380 100644 --- a/backend/ticket/models.py +++ b/backend/ticket/models.py @@ -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) diff --git a/backend/ticket/serializers.py b/backend/ticket/serializers.py index ba2cc9c..d28077c 100644 --- a/backend/ticket/serializers.py +++ b/backend/ticket/serializers.py @@ -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() diff --git a/backend/ticket/views.py b/backend/ticket/views.py index 556d6b8..50f80b4 100644 --- a/backend/ticket/views.py +++ b/backend/ticket/views.py @@ -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]