label position

This commit is contained in:
曹前明 2022-06-29 17:05:06 +08:00
parent a7d5299c70
commit ef396346a3
2 changed files with 27 additions and 3 deletions

View File

@ -28,7 +28,7 @@ class BindAreaSerializer(serializers.Serializer):
class LabelLocationSerializer(CustomModelSerializer):
class Meta:
model = TDevice
fields = ['type', 'location', 'area', 'areas']
fields = ['type', 'location', 'area', 'areas', 'code']
class BindAreasSerializer(serializers.Serializer):

View File

@ -50,14 +50,38 @@ class TDeviceViewSet(CustomGenericViewSet):
_, res = dhClient.request(**dhapis['channel_list'], json=request.data)
return Response(res)
@action(methods=['put'], detail=True, perms_map={'put': 'tdevice:label_location'},
serializer_class=LabelLocationSerializer, lookup_field='code')
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:label_location'},
serializer_class=LabelLocationSerializer)
def label_location(self, request):
"""
标注坐标位置
标注坐标位置
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
vdata = serializer.vdata
td = TDevice.objects.filter(code=vdata['code']).first()
if td:
td.location = vdata['location']
td.type = vdata['type']
td.area = vdata['area']
td.update_by = request.user
td.areas.clear()
for i in vdata['areas']:
td.areas.add(i)
td.save()
else:
td = TDevice()
td.type = vdata['type']
td.code = vdata['code']
td.location = vdata['location']
td.area = vdata['area']
td.areas.clear()
for i in vdata['areas']:
td.areas.add(i)
td.create_by = request.user
td.save()
return Response()
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:bind_area'},