status display and new status for ticket error

This commit is contained in:
Parsa Nazer
2025-02-28 18:57:53 +03:30
parent 87f62f5af4
commit 83960c7bd4
4 changed files with 27 additions and 6 deletions
@@ -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='وضعیت تیکت'),
),
]
+1 -1
View File
@@ -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)
+7 -2
View File
@@ -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()
+1 -3
View File
@@ -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]