Beispiel #1
0
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)
Beispiel #2
0
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