Commit d3aa64a2 authored by Lucie LONG's avatar Lucie LONG
Browse files

WebUI:

- Update device form.
parent 05a7465e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ class ConfigForm(FlaskForm):


class UpdateDeviceForm(FlaskForm):
    config_operational_status = SelectField('Operational Status',
    update_operational_status = SelectField('Operational Status',
                           choices=[(-1, 'Select...'), (0, 'Undefined'), (1, 'Disabled'), (2, 'Enabled')],
                           coerce=int,
                           validators=[NumberRange(min=0)])
+19 −24
Original line number Diff line number Diff line
@@ -207,28 +207,23 @@ def update(device_uuid):
    response = context_client.GetDevice(request)
    context_client.close()

    ## listing enum values
    #form.operational_status.choices = []
    #for key, value in DeviceOperationalStatusEnum.DESCRIPTOR.values_by_name.items():
    #    form.operational_status.choices.append((DeviceOperationalStatusEnum.Value(key), key.replace('DEVICEOPERATIONALSTATUS_', '')))
#
    #form.operational_status.default = response.device_operational_status
    print(form.errors)
    if form.is_submitted():
        print("submitted")
    if form.validate():
        print("valid")
    print(form.errors)
    #if form.validate_on_submit():
    #    device = Device()
    #    device.CopyFrom(response)
    #    device.device_operational_status = form.operational_status.data
    #    try:
    #        device_client.connect()
    #        response: DeviceId = device_client.ConfigureDevice(device)
    #        device_client.close()
    #        flash(f'New configuration was created with ID "{response.device_uuid.uuid}".', 'success')
    #        return redirect(url_for('device.home'))
    #    except Exception as e:
    #         flash(f'Problem adding the device. {e.details()}', 'danger')  
    # listing enum values
    form.update_operational_status.choices = []
    for key, value in DeviceOperationalStatusEnum.DESCRIPTOR.values_by_name.items():
        form.update_operational_status.choices.append((DeviceOperationalStatusEnum.Value(key), key.replace('DEVICEOPERATIONALSTATUS_', '')))

    form.update_operational_status.default = response.device_operational_status

    if form.validate_on_submit():
        device = Device()
        device.CopyFrom(response)
        device.device_operational_status = form.update_operational_status.data
        try:
            device_client.connect()
            response: DeviceId = device_client.ConfigureDevice(device)
            device_client.close()
            flash(f'Status of device with ID "{response.device_uuid.uuid}" was updated.', 'success')
            return redirect(url_for('device.home'))
        except Exception as e:
             flash(f'Problem updating the device. {e.details()}', 'danger')  
    return render_template('device/update.html', device=response, form=form, submit_text='Update Device')
+6 −5
Original line number Diff line number Diff line
@@ -4,19 +4,20 @@
<h1>Update Device {{ device.device_id.device_uuid.uuid }}</h1>
<br />
<form id="update_device" method="POST">
    {{ form.hidden_tag() }}
    <fieldset>
        <div class="row mb-3">
            {{ form.config_operational_status.label(class="col-sm-2 col-form-label") }}
            {{ form.update_operational_status.label(class="col-sm-2 col-form-label") }}
            <div class="col-sm-10">
                {% if form.config_operational_status.errors %}
                {{ form.config_operational_status(class="form-control is-invalid") }}
                {% if form.update_operational_status.errors %}
                {{ form.update_operational_status(class="form-control is-invalid") }}
                <div class="invalid-feedback">
                    {% for error in form.config_operational_status.errors %}
                    {% for error in form.update_operational_status.errors %}
                    <span>{{ error }}</span>
                    {% endfor %}
                </div>
                {% else %}
                {{ form.config_operational_status(class="form-select") }}
                {{ form.update_operational_status(class="form-select") }}
                {% endif %}
            </div>
        </div>