make default stake holder when creating assignment

This commit is contained in:
2025-08-25 13:09:17 +03:30
parent 64d19e9028
commit 7722ddfc84
3 changed files with 26 additions and 13 deletions

View File

@@ -182,13 +182,14 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
if client.exists():
request.data.update({'client': client.first().id})
else:
client = CustomOperations().custom_create(
request=request,
view=POSClientViewSet(),
data=request.data['client_data']
)
request.data.update({'client': client['id']})
# create client
client = CustomOperations().custom_create(
request=request,
view=POSClientViewSet(),
data=request.data['client_data']
)
request.data.update({'client': client['id']})
# create assignment
serializer = self.serializer_class(data=request.data)
@@ -204,6 +205,15 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
assignment.client.organization.has_pos = True
assignment.client.organization.save()
# after pos device assignment, must set owner
# as default stake holder
pos_models.StakeHolders.objects.create(
assignment=assignment,
device=assignment.device,
organization=assignment.client.organization,
default=True
)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)
@@ -225,6 +235,12 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
if serializer.is_valid():
assignment = serializer.save()
if assignment.client.organization:
# update default stake holder for device (assignment)
stake_holder = assignment.stake_holders.filter(default=True).first()
stake_holder.organization = assignment.client.organization
stake_holder.save()
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)