edit device assignment bug fix - v1

This commit is contained in:
2025-10-22 17:23:57 +03:30
parent a1d9c64b88
commit 2e50b49a97

View File

@@ -224,8 +224,9 @@ class DeviceAssignmentViewSet(SoftDeleteMixin, viewsets.ModelViewSet):
# set device status to assigned # set device status to assigned
assignment.device.assigned_state = True assignment.device.assigned_state = True
assignment.device.acceptor = data['acceptor'] if 'acceptor' and 'terminal' in data.keys():
assignment.device.terminal = data['terminal'] assignment.device.acceptor = data['acceptor']
assignment.device.terminal = data['terminal']
if not assignment.device.password: if not assignment.device.password:
assignment.device.password = ''.join(random.choices(string.digits, k=6)) assignment.device.password = ''.join(random.choices(string.digits, k=6))
assignment.device.save() assignment.device.save()
@@ -238,12 +239,17 @@ class DeviceAssignmentViewSet(SoftDeleteMixin, viewsets.ModelViewSet):
# after pos device assignment, must set owner # after pos device assignment, must set owner
# as default stakeholder # as default stakeholder
broker = Broker.objects.filter(organization_type=client_org.type)
if broker.exists():
broker = broker.first()
else:
broker = None
pos_models.StakeHolders.objects.create( pos_models.StakeHolders.objects.create(
assignment=assignment, assignment=assignment,
device=assignment.device, device=assignment.device,
organization=client_org, organization=client_org,
default=True, default=True,
broker=Broker.objects.get(organization_type=client_org.type) broker=broker
) )
return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.data, status=status.HTTP_201_CREATED)
@@ -254,27 +260,36 @@ class DeviceAssignmentViewSet(SoftDeleteMixin, viewsets.ModelViewSet):
""" edit assignment """ """ edit assignment """
assignment = self.get_object() assignment = self.get_object()
if 'client_data' in request.data.keys(): assignment.delete()
client = CustomOperations().custom_update(
request=request,
view=POSClientViewSet(),
data_key='client_data',
obj_id=request.data['client_data']['id']
)
request.data.update({'client': client['id']})
serializer = self.serializer_class(data=request.data, instance=assignment, partial=True) re_create_assignment = self.create(request, *args, **kwargs)
if serializer.is_valid(): print(re_create_assignment.data)
assignment = serializer.save() assignment = self.queryset.get(id=re_create_assignment.data['id'])
assignment.organization = pos_models.Organization.objects.get(
if assignment.client.organization: id=re_create_assignment.data['client']['organization']['id']
# update default stake holder for device (assignment) )
stake_holder = assignment.stake_holders.filter(default=True).first() assignment.save()
stake_holder.organization = assignment.client.organization # if 'client_data' in request.data.keys():
stake_holder.save() # client = CustomOperations().custom_update(
# request=request,
return Response(serializer.data, status=status.HTTP_200_OK) # view=POSClientViewSet(),
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN) # data_key='client_data',
# obj_id=request.data['client_data']['id']
# )
# request.data.update({'client': client['id']})
#
# serializer = self.serializer_class(data=request.data, instance=assignment, partial=True)
# 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 re_create_assignment
@action( @action(
methods=['get'], methods=['get'],