Ejemplo n.º 1
0
def view(view_type):
    devices, parameters = fetch_all('Device'), get_one('Parameters').serialized
    return dict(template=f'{view_type}_view.html',
                pools=fetch_all('Pool'),
                parameters=parameters,
                view=request.form.get('view', parameters['default_view']),
                google_earth_form=GoogleEarthForm(request.form),
                add_device_form=AddDevice(request.form),
                add_link_form=AddLink(request.form),
                device_subtypes=device_subtypes,
                link_colors=link_subtype_to_color,
                name_to_id={d.name: id
                            for id, d in enumerate(devices)},
                devices=serialize('Device'),
                links=serialize('Link'))
Ejemplo n.º 2
0
def view(view_type):
    add_device_form = AddDevice(request.form)
    add_link_form = AddLink(request.form)
    all_devices = Device.choices()
    add_link_form.source.choices = all_devices
    add_link_form.destination.choices = all_devices
    view_options_form = ViewOptionsForm(request.form)
    google_earth_form = GoogleEarthForm(request.form)
    scheduling_form = SchedulingForm(request.form)
    scheduling_form.job.choices = Job.choices()
    scheduling_form.devices.choices = all_devices
    scheduling_form.pools.choices = Pool.choices()
    labels = {'device': 'name', 'link': 'name'}
    if 'view_options' in request.form:
        # update labels
        labels = {
            'device': request.form['device_label'],
            'link': request.form['link_label']
        }
    # for the sake of better performances, the view defaults to markercluster
    # if there are more than 2000 devices
    view = 'leaflet' if len(Device.query.all()) < 2000 else 'markercluster'
    if 'view' in request.form:
        view = request.form['view']
    # name to id
    name_to_id = {
        device.name: id for id, device in enumerate(Device.query.all())
    }
    return render_template(
        f'{view_type}_view.html',
        pools=Pool.query.all(),
        parameters=Parameters.query.one().serialized,
        view=view,
        scheduling_form=scheduling_form,
        view_options_form=view_options_form,
        google_earth_form=google_earth_form,
        add_device_form=add_device_form,
        add_link_form=add_link_form,
        device_fields=device_public_properties,
        link_fields=link_public_properties,
        labels=labels,
        names=pretty_names,
        device_subtypes=device_subtypes,
        link_colors=link_subtype_to_color,
        name_to_id=name_to_id,
        devices=Device.serialize(),
        links=Link.serialize()
    )
Ejemplo n.º 3
0
def view(view_type: str) -> dict:
    devices, parameters = fetch_all("Device"), get_one("Parameters").serialized
    return dict(
        template=f"{view_type}_view.html",
        pools=fetch_all("Pool"),
        parameters=parameters,
        view=request.form.get("view", parameters["default_view"]),
        google_earth_form=GoogleEarthForm(request.form),
        add_device_form=AddDevice(request.form),
        add_link_form=AddLink(request.form),
        device_subtypes=device_subtypes,
        gotty_connection_form=GottyConnectionForm(request.form),
        link_colors=link_subtype_to_color,
        name_to_id={d.name: id
                    for id, d in enumerate(devices)},
        devices=serialize("Device"),
        links=serialize("Link"),
    )
Ejemplo n.º 4
0
def view(view_type):
    add_node_form = AddNode(request.form)
    add_link_form = AddLink(request.form)
    all_nodes = Node.choices()
    add_link_form.source.choices = add_link_form.destination.choices = all_nodes
    view_options_form = ViewOptionsForm(request.form)
    google_earth_form = GoogleEarthForm(request.form)
    scheduling_form = SchedulingForm(request.form)
    scheduling_form.scripts.choices = Script.choices()
    scheduling_form.nodes.choices = all_nodes
    scheduling_form.pools.choices = Pool.choices()
    labels = {'node': 'name', 'link': 'name'}
    if 'view_options' in request.form:
        # update labels
        labels = {
            'node': request.form['node_label'],
            'link': request.form['link_label']
        }
    # for the sake of better performances, the view defaults to markercluster
    # if there are more than 2000 nodes
    view = 'leaflet' if len(Node.query.all()) < 2000 else 'markercluster'
    if 'view' in request.form:
        view = request.form['view']
    # name to id
    name_to_id = {node.name: id for id, node in enumerate(Node.query.all())}
    return render_template('{}_view.html'.format(view_type),
                           pools=Pool.query.all(),
                           parameters=Parameters.query.one().serialized,
                           view=view,
                           scheduling_form=scheduling_form,
                           view_options_form=view_options_form,
                           google_earth_form=google_earth_form,
                           add_node_form=add_node_form,
                           add_link_form=add_link_form,
                           node_fields=node_public_properties,
                           link_fields=link_public_properties,
                           labels=labels,
                           names=pretty_names,
                           subtypes=list(node_class),
                           name_to_id=name_to_id,
                           nodes=Node.serialize(),
                           links=Link.serialize())
Ejemplo n.º 5
0
def view(view_type):
    add_link_form = AddLink(request.form)
    all_devices = Device.choices()
    add_link_form.source.choices = all_devices
    add_link_form.destination.choices = all_devices
    labels = {'device': 'name', 'link': 'name'}
    if 'view_options' in request.form:
        labels = {
            'device': request.form['device_label'],
            'link': request.form['link_label']
        }
    if len(Device.query.all()) < 50:
        view = 'glearth'
    elif len(Device.query.all()) < 2000:
        view = 'leaflet'
    else:
        view = 'markercluster'
    if 'view' in request.form:
        view = request.form['view']
    # name to id
    name_to_id = {
        device.name: id
        for id, device in enumerate(Device.query.all())
    }
    return render_template(f'{view_type}_view.html',
                           pools=Pool.query.all(),
                           parameters=Parameters.query.one().serialized,
                           view=view,
                           view_options_form=ViewOptionsForm(request.form),
                           google_earth_form=GoogleEarthForm(request.form),
                           add_device_form=AddDevice(request.form),
                           add_link_form=add_link_form,
                           device_fields=device_public_properties,
                           link_fields=link_public_properties,
                           labels=labels,
                           names=pretty_names,
                           device_subtypes=device_subtypes,
                           link_colors=link_subtype_to_color,
                           name_to_id=name_to_id,
                           devices=Device.serialize(),
                           links=Link.serialize())
Ejemplo n.º 6
0
def view(view_type):
    devices = fetch_all('Device')
    add_link_form = AddLink(request.form)
    form_devices = [(l.name, l.name) for l in fetch_all('Device')]
    add_link_form.source_name.choices = form_devices
    add_link_form.destination_name.choices = form_devices
    labels = {'device': 'name', 'link': 'name'}
    if 'view_options' in request.form:
        labels = {
            'device': request.form['device_label'],
            'link': request.form['link_label']
        }
    if len(devices) < 50:
        view = 'glearth'
    elif len(devices) < 2000:
        view = 'leaflet'
    else:
        view = 'markercluster'
    if 'view' in request.form:
        view = request.form['view']
    name_to_id = {device.name: id for id, device in enumerate(devices)}
    return render_template(f'{view_type}_view.html',
                           pools=fetch_all('Pool'),
                           parameters=get_one('Parameters').serialized,
                           view=view,
                           view_options_form=ViewOptionsForm(request.form),
                           google_earth_form=GoogleEarthForm(request.form),
                           add_device_form=AddDevice(request.form),
                           add_link_form=add_link_form,
                           device_fields=device_public_properties,
                           link_fields=link_public_properties,
                           labels=labels,
                           names=pretty_names,
                           device_subtypes=device_subtypes,
                           link_colors=link_subtype_to_color,
                           name_to_id=name_to_id,
                           devices=serialize('Device'),
                           links=serialize('Link'))