def device_control_panel(id):
    device = user_device.get_device_view_model(id)
    lastData = user_device.get_last_data(id)

    return render_template('devices/user_device_control_panel.html',
                           device=device,
                           data=lastData)
def edit_config(device_id, config_uuid=None):
    if (config_uuid):
        device = user_device.get_device_view_model(device_id)
        config = user_device.get_device_config(device_id, config_uuid)
        form = user_device.get_device_config_form(device)

        if form.validate_on_submit():
            if user_device.validate_config_form(form):
                return render_template('devices/edit_device_config.html',
                                       form=form,
                                       device=device,
                                       config=config)

            user_device.save_device_config(form, device, config_uuid)
        else:
            form = user_device.get_config_form(device, config, form)

        return render_template('devices/edit_device_config.html',
                               form=form,
                               device=device,
                               config=config)
    else:
        device = user_device.get_device_view_model(device_id)
        form = user_device.get_device_config_form(device)

        if form.validate_on_submit():
            if user_device.validate_config_form(form):
                return render_template('devices/create_device_config.html',
                                       form=form,
                                       device=device)

            user_device.save_device_config(form, device, None)
            return redirect(url_for('main.device_configurations',
                                    id=device_id))

        return render_template('devices/create_device_config.html',
                               form=form,
                               device=device)
def edit_device(id):
    form = DeviceForm()
    device = user_device.get_device_view_model(id)

    if form.validate_on_submit():
        user_device.edit_device(id, form)
    else:
        form.device_name.default = device.device_name
        form.device_type.default = device.device_type
        form.process()

    return render_template('devices/edit_device.html',
                           form=form,
                           device=device)
def device_action_history(id):
    device = user_device.get_device_view_model(id)
    return render_template('devices/user_device_action_history.html',
                           device=device)
def device_analytics(id):
    device = user_device.get_device_view_model(id)
    return render_template('devices/device_analytics.html', device=device)
def device_configurations(id):
    device = user_device.get_device_view_model(id)
    return render_template('devices/device_configurations.html', device=device)