def save_sensor(request, roomid): rackid = request.POST.get('rackid') column = int(request.POST.get('column')) get_object_or_404(Room, pk=roomid) rack = get_object_or_404(Rack, pk=rackid) item_type = request.POST.get('item_type') if item_type == "Sensor": sensorid = request.POST.get('sensorid') sensor = get_object_or_404(Sensor, pk=sensorid) item = SensorRackItem(sensor=sensor) elif item_type == "SensorsDiff": minuendid = request.POST.get('minuendid') minuend = get_object_or_404(Sensor, pk=minuendid) subtrahendid = request.POST.get('subtrahendid') subtrahend = get_object_or_404(Sensor, pk=subtrahendid) item = SensorsDiffRackItem(minuend=minuend, subtrahend=subtrahend) elif item_type == "SensorsSum": sensors = request.POST.getlist('sensors[]') sensors = [int(s) for s in sensors if s] title = request.POST.get('title') item = SensorsSumRackItem(title=title, sensors=sensors) try: if column == RACK_CENTER: rack.add_center_item(item) rack.save() return render( request, 'info/room/fragment_racksensor.html', { 'racksensor': item, 'column': column, }, ) else: if column == RACK_LEFT: rack.add_left_item(item) else: rack.add_right_item(item) rack.save() return render( request, 'info/room/fragment_rackpdusensor.html', { 'racksensor': item, 'column': column, }, ) except (ValueError, IntegrityError) as error: return HttpResponse(error, status=500)
def test_rack(test_sensor): rack = Rack(room=test_sensor.netbox.room, rackname="Rack 1") item = SensorRackItem(test_sensor) rack.add_left_item(item) return rack