From 333ffac4e662be0b04957a4d8da1d1d46caf159c Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Tue, 11 Nov 2025 15:38:02 +0500 Subject: [PATCH] orders: add user field to deleted party model, deleted party list serializer, deleted party api --- .../migrations/0037_deletedparty_user.py | 21 +++++++++++++++++++ core/apps/orders/serializers/party.py | 11 +++++++++- core/apps/orders/views/party.py | 2 +- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 core/apps/orders/migrations/0037_deletedparty_user.py diff --git a/core/apps/orders/migrations/0037_deletedparty_user.py b/core/apps/orders/migrations/0037_deletedparty_user.py new file mode 100644 index 0000000..7be12b2 --- /dev/null +++ b/core/apps/orders/migrations/0037_deletedparty_user.py @@ -0,0 +1,21 @@ +# Generated by Django 5.2.4 on 2025-11-11 15:36 + +import django.db.models.deletion +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('orders', '0036_offer_is_deleted'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AddField( + model_name='deletedparty', + name='user', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='deleted_parties', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/core/apps/orders/serializers/party.py b/core/apps/orders/serializers/party.py index 1afee10..836f06c 100644 --- a/core/apps/orders/serializers/party.py +++ b/core/apps/orders/serializers/party.py @@ -222,7 +222,8 @@ class DeletedPartyCreateSerializer(serializers.Serializer): def create(self, validated_data): with transaction.atomic(): return DeletedParty.objects.create( - comment=validated_data.get("comment"), party=validated_data.get("party") + comment=validated_data.get("comment"), party=validated_data.get("party"), + user=self.context.get('user') ) @@ -245,8 +246,16 @@ class DeletedPartyListSerializer(serializers.ModelSerializer): 'created_at', 'comment', 'party', + 'user', ] + def get_user(self, obj): + return { + "id": obj.user.id, + "full_name": obj.user.full_name, + "profile_image": obj.user.profile_image, + } if obj.user else {} + def get_mediator(self, obj): return {"id": obj.party.mediator.id, "name": obj.party.mediator.full_name} diff --git a/core/apps/orders/views/party.py b/core/apps/orders/views/party.py index 5f2b9b2..fe89813 100644 --- a/core/apps/orders/views/party.py +++ b/core/apps/orders/views/party.py @@ -78,7 +78,7 @@ class PartyDeleteApiView(generics.GenericAPIView): permission_classes = [HasRolePermission] def post(self, request, party_id): - serializer = self.serializer_class(data=request.data, context={'party_id': party_id}) + serializer = self.serializer_class(data=request.data, context={'party_id': party_id, 'user': request.user}) if serializer.is_valid(raise_exception=True): serializer.save() return Response(