A small revolution with forms and routes ! need to redo all the classes and models so that their articles have exactly the same name and then it will implement itself
parent
9e30d68422
commit
64cf31f939
@ -1,139 +0,0 @@
|
||||
from flask import render_template, Blueprint, request, flash, redirect, url_for
|
||||
import minibase.theme as theme
|
||||
from minibase.blueprints.sensor.models import nbiotDevice
|
||||
import minibase.blueprints.sensor.utils as sensorUtils
|
||||
from minibase.blueprints.sensor.forms import updateNbioDeviceUpdateForm, updateNbioDeviceAddForm
|
||||
import minibase.blueprints.database.utils as dbUtils
|
||||
import minibase.blueprints.company.utils as companyUtils
|
||||
import minibase.blueprints.user.utils as userUtils
|
||||
from minibase.app import db
|
||||
import json
|
||||
import os
|
||||
|
||||
sensor = Blueprint('sensor', __name__, template_folder='templates')
|
||||
|
||||
DATA_FILE = 'data.json'
|
||||
|
||||
sensor.route('/callback', methods=['POST'])
|
||||
def callback():
|
||||
data = request.json
|
||||
|
||||
if not data:
|
||||
return jsonify({"error": "Invalid data"}), 400
|
||||
|
||||
# Read existing data
|
||||
if os.path.exists(DATA_FILE):
|
||||
with open(DATA_FILE, 'r') as f:
|
||||
stored_data = json.load(f)
|
||||
else:
|
||||
stored_data = []
|
||||
|
||||
# Append new data
|
||||
stored_data.append(data)
|
||||
|
||||
# Write data back to file
|
||||
with open(DATA_FILE, 'w') as f:
|
||||
json.dump(stored_data, f, indent=4)
|
||||
|
||||
return 'Callback received', 200
|
||||
|
||||
|
||||
@sensor.route('/data', methods=['GET'])
|
||||
def get_data():
|
||||
if os.path.exists(DATA_FILE):
|
||||
with open(DATA_FILE, 'r') as f:
|
||||
stored_data = json.load(f)
|
||||
else:
|
||||
stored_data = []
|
||||
|
||||
return jsonify(stored_data)
|
||||
|
||||
|
||||
@sensor.route('/list', methods=['GET','POST'])
|
||||
def list():
|
||||
page=request.args.get('page', 1, type=int)
|
||||
table=dbUtils.table_printable_paginate(nbiotDevice, page, 20, 'edit/', 'id')
|
||||
return(render_template('view.html', theme=theme, table=table, title="Devices List"))
|
||||
|
||||
|
||||
@sensor.route("/edit/<int:deviceId>", methods=['GET', 'POST'])
|
||||
def edit(deviceId):
|
||||
if deviceId:
|
||||
device = nbiotDevice.query.get_or_404(deviceId)
|
||||
form = updateNbioDeviceUpdateForm(current_device_id=device.id)
|
||||
form.user_id.choices = [(row.id, row.username) for row in userUtils.queryUserNamesWithDefault(device.user_id)]
|
||||
form.owner_id.choices = [(row.id, row.username) for row in userUtils.queryUserNamesWithDefault(device.user_id)]
|
||||
form.manufacturer_id.choices = [(row.id, row.name) for row in companyUtils.queryNamesWithDefault(device.manufacturer_id)]
|
||||
form.company_id.choices = [(row.id, row.name) for row in companyUtils.queryNamesWithDefault(device.company_id)]
|
||||
form.status_id.choices = [(row.id, row.name) for row in sensorUtils.queryStatusNamesWithDefault(device.status_id)]
|
||||
form.type_id.choices = [(row.id, row.name) for row in sensorUtils.queryTypeNamesWithDefault(device.type_id)]
|
||||
form.area_id.choices = [(row.id, row.name) for row in sensorUtils.queryAreaNamesWithDefault(device.area_id)]
|
||||
if form.validate_on_submit():
|
||||
device.name=form.name.data
|
||||
device.serial_no = form.serial_no.data
|
||||
device.device_id=form.device_id.data
|
||||
device.imsi=form.imsi.data
|
||||
device.iccid=form.iccid.data
|
||||
device.ip=form.ip.data
|
||||
device.port=form.port.data
|
||||
device.registration_date=form.registration_date.data
|
||||
device.activation_date=form.activation_date.data
|
||||
device.deactivation_date=form.deactivation_date.data
|
||||
device.owner_id=form.owner_id.data
|
||||
device.user_id=form.user_id.data
|
||||
device.status_id=form.status_id.data
|
||||
device.type_id=form.type_id.data
|
||||
device.area_id=form.area_id.data
|
||||
device.manufacturer_id = form.manufacturer_id.data
|
||||
device.company_id = form.manufacturer_id.data
|
||||
db.session.commit()
|
||||
flash('Device has been successfully updated', 'success')
|
||||
return redirect(url_for('sensor.edit', deviceId=deviceId))
|
||||
elif request.method == 'GET':
|
||||
form.name.data = device.name
|
||||
form.serial_no.data = device.serial_no
|
||||
form.device_id.data = device.device_id
|
||||
form.imsi.data = device.imsi
|
||||
form.iccid.data = device.iccid
|
||||
form.ip.data = device.ip
|
||||
form.port.data = device.port
|
||||
form.registration_date.data = device.registration_date
|
||||
form.activation_date.data = device.activation_date
|
||||
form.deactivation_date.data = device.deactivation_date
|
||||
|
||||
return render_template('sensor/account.html',
|
||||
theme=theme,
|
||||
form=form)
|
||||
else:
|
||||
flash('You need to select a Device id', 'alarm')
|
||||
return redirect(url_for('sensor.list'))
|
||||
|
||||
|
||||
@sensor.route('/add', methods=['GET', 'POST'])
|
||||
def add():
|
||||
form = updateNbioDeviceAddForm()
|
||||
form.user_id.choices = [(row.id, row.username) for row in userUtils.queryUserChoices(1)]
|
||||
form.status_id.choices = [(row.id, row.name) for row in sensorUtils.queryStatusChoices(1)]
|
||||
form.type_id.choices = [(row.id, row.name) for row in sensorUtils.queryTypeChoices(1)]
|
||||
form.area_id.choices = [(row.id, row.name) for row in sensorUtils.queryAreaChoices(1)]
|
||||
if form.validate_on_submit():
|
||||
dev = nbiotDevice(
|
||||
name=form.name.data,
|
||||
device_id=form.device_id.data,
|
||||
imsi=form.imsi.data,
|
||||
iccid=form.iccid.data,
|
||||
ip=form.ip.data,
|
||||
port=form.port.data,
|
||||
registration_date=form.registration_date.data,
|
||||
activation_date=form.activation_date.data,
|
||||
deactivation_date=form.deactivation_date.data,
|
||||
user_id=form.user_id.data,
|
||||
status_id=form.status_id.data,
|
||||
type_id=form.type_id.data,
|
||||
area_id=form.area_id.data)
|
||||
dbUtils.dbAddAndCommit(dev)
|
||||
flash('Device has been successfully added', 'success')
|
||||
|
||||
return render_template('sensor/account.html',
|
||||
theme=theme,
|
||||
form=form)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue