orders: add user field to deleted party model, deleted party list serializer, deleted party api
This commit is contained in:
21
core/apps/orders/migrations/0037_deletedparty_user.py
Normal file
21
core/apps/orders/migrations/0037_deletedparty_user.py
Normal file
@@ -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),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -222,7 +222,8 @@ class DeletedPartyCreateSerializer(serializers.Serializer):
|
|||||||
def create(self, validated_data):
|
def create(self, validated_data):
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
return DeletedParty.objects.create(
|
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',
|
'created_at',
|
||||||
'comment',
|
'comment',
|
||||||
'party',
|
'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):
|
def get_mediator(self, obj):
|
||||||
return {"id": obj.party.mediator.id, "name": obj.party.mediator.full_name}
|
return {"id": obj.party.mediator.id, "name": obj.party.mediator.full_name}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class PartyDeleteApiView(generics.GenericAPIView):
|
|||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
|
|
||||||
def post(self, request, party_id):
|
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):
|
if serializer.is_valid(raise_exception=True):
|
||||||
serializer.save()
|
serializer.save()
|
||||||
return Response(
|
return Response(
|
||||||
|
|||||||
Reference in New Issue
Block a user