Beispiel #1
0
def remove_datapoint(datapoint_id: int):
    with config().db_connection() as db_conn:
        db_conn.execute(
            '''
            delete from Datapoint
            where id = ?;
            ''', (datapoint_id, ))
Beispiel #2
0
def insert_datapoints(datapoints: List[DataPoints]):
    with config().db_connection() as db_conn:
        db_conn.executemany(
            '''
            insert into Datapoint (sensor_id, project_id, timestamp, angle, temperature, battery)
            values (?, ?, datetime(?), ?, ?, ?);
            ''', [(d.sensor_id, d.project_id, d.timestamp, d.angle,
                   d.temperature, d.battery) for d in datapoints])
Beispiel #3
0
def add_user():
    username = request.form.get('username')
    password = request.form.get('password')
    is_admin = request.form.get('is_admin')

    with config().db_connection() as db_conn:
        # TODO(tr) Do we need to encode the password as utf-8?
        User.create(db_conn, username, password, is_admin)
    return redirect(url_for('admin.admin_users'))
Beispiel #4
0
def edit_sensor(id):
    name = request.form.get('sensor_name')
    secret = request.form.get('sensor_secret')
    owner_id = request.form.get('sensor_owner_id')
    max_battery = request.form.get('sensor_max_battery')
    min_battery = request.form.get('sensor_min_battery')
    with config().db_connection() as db_conn:
        access.Sensor.edit(db_conn, id, name, secret, owner_id, max_battery, min_battery)
    return redirect(url_for('admin.admin_sensors'))
Beispiel #5
0
def check_login():
    username = request.form.get('username')
    password = request.form.get('password')
    remember = request.form.get(
        'remember') is not None  # only has a value if ticked

    with config().db_connection() as db_conn:
        user = User.verify(db_conn, username, password)
        if user is not None:
            current_app.logger.info('User {} is logging in.'.format(user.name))
            login_user(user, remember=remember)
            return redirect(url_for('home.index'))

    return render_template('login.html.mako', error="Wrong credentials")
Beispiel #6
0
def insert_sensor(name: AnyStr, secret: AnyStr, owner: int) -> int:
    with config().db_connection() as db_conn:
        return Sensor.create_new(db_conn, name, secret, owner)
Beispiel #7
0
def get_sensor_data(sensor_id: int) -> Optional[SensorData]:
    with config().db_connection() as db_conn:
        return SensorData.get_data(db_conn, sensor_id)
Beispiel #8
0
def insert_project(name: AnyStr, owner: int) -> int:
    with config().db_connection() as db_conn:
        return Project.create_new(db_conn, name, owner)
Beispiel #9
0
def delete_user(id):
    with config().db_connection() as db_conn:
        User.delete(db_conn, id)
    return redirect(url_for('admin.admin_users'))
Beispiel #10
0
def get_project_data(project_id: int) -> Optional[ProjectData]:
    with config().db_connection() as db_conn:
        return ProjectData.get_data(db_conn, project_id)
Beispiel #11
0
def get_sensor(sensor_id: int) -> Optional[Sensor]:
    with config().db_connection() as db_conn:
        return Sensor.find(db_conn, sensor_id)
Beispiel #12
0
def get_active_project_for_sensor(
        sensor_id: int) -> Tuple[Optional[Sensor], Optional[Project]]:
    with config().db_connection() as db_conn:
        return Sensor.find(db_conn, sensor_id), ProjectData.by_active_sensor(
            db_conn, sensor_id)
Beispiel #13
0
def admin_projects():
    with config().db_connection() as db_conn:
        users = User.get_users(db_conn)
        projects = access.Project.get_all(db_conn)
    return render_template('admin_projects.html.mako', projects=projects, users=users)
Beispiel #14
0
def get_sensors() -> List[Sensor]:
    with config().db_connection() as db_conn:
        return Sensor.get_all(db_conn)
Beispiel #15
0
def update_project_sensor(project: Project,
                          sensor_id: Optional[int] = None) -> None:
    with config().db_connection() as db_conn:
        project.attach_sensor(db_conn, sensor_id)
Beispiel #16
0
def admin_sensors():
    with config().db_connection() as db_conn:
        users = User.get_users(db_conn)
        sensors = access.Sensor.get_all(db_conn)
    return render_template('admin_sensors.html.mako', sensors=sensors, users=users)
Beispiel #17
0
def edit_project(id):
    name = request.form.get('project_name')
    owner_id = request.form.get('project_owner_id')
    with config().db_connection() as db_conn:
        access.Project.edit(db_conn, id, name, owner_id)
    return redirect(url_for('admin.admin_projects'))
Beispiel #18
0
def delete_sensor(id):
    with config().db_connection() as db_conn:
        access.Sensor.delete(db_conn, id)
    return redirect(url_for('admin.admin_sensors'))
Beispiel #19
0
def delete_project(id):
    with config().db_connection() as db_conn:
        access.Project.delete(db_conn, id)
    return redirect(url_for('admin.admin_projects'))
Beispiel #20
0
def get_projects() -> List[Project]:
    with config().db_connection() as db_conn:
        return Project.get_all(db_conn)
Beispiel #21
0
def admin_users():
    with config().db_connection() as db_conn:
        users = User.get_users(db_conn)
    return render_template('admin_users.html.mako', users=users)