You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
6.6 KiB
122 lines
6.6 KiB
from flask_wtf import FlaskForm
|
|
from flask_wtf.file import FileField, FileAllowed
|
|
from wtforms import StringField, PasswordField, SubmitField, BooleanField, URLField, IntegerField, DateField, SelectField
|
|
from wtforms.validators import DataRequired, Length, Email, EqualTo, ValidationError
|
|
from minibase.blueprints.sensor.models import nbiotDevice
|
|
from datetime import date
|
|
|
|
class updateNbioDeviceUpdateForm(FlaskForm): # Defines the form class to be used for the user update
|
|
name = StringField('Device Name', validators=[DataRequired(), Length(min=3, max=50)])
|
|
device_id = StringField('Device Id', validators=[DataRequired(), Length(min=3, max=50)])
|
|
serial_no = StringField('Serial Number', validators=[DataRequired(), Length(min=3, max=50)])
|
|
imsi = StringField('Imsi No', validators=[DataRequired(), Length(min=10, max=50)])
|
|
iccid = StringField('Iccid No', validators=[DataRequired(), Length(min=10, max=100)])
|
|
ip = StringField('Ip (ipv4)', validators=[DataRequired(), Length(min=7, max=15)])
|
|
port = StringField('Port', validators=[DataRequired(), Length(min=3, max=10)])
|
|
registration_date = DateField('Registration Date', format='%Y-%m-%d', default=date.today, validators=[DataRequired()])
|
|
activation_date = DateField('Activation Date', format='%Y-%m-%d', default=date.today, validators=[DataRequired()])
|
|
deactivation_date = DateField('Deactivation Date', format='%Y-%m-%d', default=date.today, validators=[DataRequired()])
|
|
owner_id = SelectField('Owner', validators=[DataRequired()])
|
|
user_id = SelectField('User')
|
|
status_id = SelectField('Status', validators=[DataRequired()])
|
|
type_id = SelectField('Type', validators=[DataRequired()])
|
|
area_id = SelectField('Area', validators=[DataRequired()])
|
|
manufacturer_id = SelectField('Manufacturer', validators=[DataRequired()])
|
|
company_id = SelectField('Managed By', validators=[DataRequired()])
|
|
picture = FileField('Update Sensor Picture', validators=[FileAllowed(['jpg', 'png'])])
|
|
submit = SubmitField(f'Update')
|
|
|
|
def __init__(self, current_device_id, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.current_device = nbiotDevice.query.get(current_device_id)
|
|
|
|
def validate_name(self, input):
|
|
if input.data != self.current_device.name:
|
|
content = nbiotDevice.query.filter_by(name=input.data).first()
|
|
if content:
|
|
raise ValidationError('That device name is taken please choose another one')
|
|
|
|
def validate_device_id(self, input):
|
|
if input.data != self.current_device.device_id:
|
|
content = nbiotDevice.query.filter_by(device_id=input.data).first()
|
|
if content:
|
|
raise ValidationError('That device id is taken please choose another one')
|
|
|
|
def validate_imsi(self, input):
|
|
if input.data != self.current_device.imsi:
|
|
content = nbiotDevice.query.filter_by(imsi=input.data).first()
|
|
if content:
|
|
raise ValidationError('That IMSI id is taken please choose another one')
|
|
|
|
def validate_iccid(self, input):
|
|
if input.data != self.current_device.iccid:
|
|
content = nbiotDevice.query.filter_by(iccid=input.data).first()
|
|
if content:
|
|
raise ValidationError('That ICCID id is taken please choose another one')
|
|
|
|
def validate_ip(self, input):
|
|
if input.data != self.current_device.ip:
|
|
content = nbiotDevice.query.filter_by(ip=input.data).first()
|
|
if content:
|
|
raise ValidationError('That IP id is taken please choose another one')
|
|
|
|
class updateNbioDeviceAddForm(FlaskForm): # Defines the form class to be used for the user update
|
|
name = StringField('Device Name', validators=[DataRequired(), Length(min=3, max=50)])
|
|
device_id = StringField('Device Id', validators=[DataRequired(), Length(min=3, max=50)])
|
|
serial_no = StringField('Serial Number', validators=[DataRequired(), Length(min=3, max=50)])
|
|
imsi = StringField('Imsi No', validators=[DataRequired(), Length(min=10, max=50)])
|
|
iccid = StringField('Iccid No', validators=[DataRequired(), Length(min=10, max=100)])
|
|
ip = StringField('Ip (ipv4)', validators=[Length(min=7, max=15)])
|
|
port = StringField('Port', validators=[Length(min=3, max=10)])
|
|
registration_date = DateField('Registration Date', format='%Y-%m-%d', default=date.today, validators=[DataRequired()])
|
|
activation_date = DateField('Activation Date', format='%Y-%m-%d', default=date.today, validators=[DataRequired()])
|
|
deactivation_date = DateField('Deactivation Date', format='%Y-%m-%d', default=date.today, validators=[DataRequired()])
|
|
user_id = SelectField('Owner', validators=[DataRequired()])
|
|
status_id = SelectField('Status', validators=[DataRequired()])
|
|
type_id = SelectField('Type', validators=[DataRequired()])
|
|
area_id = SelectField('Area', validators=[DataRequired()])
|
|
manufacturer_id = SelectField('Manufacturer', validators=[DataRequired()])
|
|
company_id = SelectField('Managed By', validators=[DataRequired()])
|
|
|
|
submit = SubmitField(f'Add')
|
|
|
|
def validate_name(self, input):
|
|
content = nbiotDevice.query.filter_by(name=input.data).first()
|
|
if content:
|
|
raise ValidationError('That device name is taken please choose another one')
|
|
|
|
def validate_device_id(self, input):
|
|
content = nbiotDevice.query.filter_by(device_id=input.data).first()
|
|
if content:
|
|
raise ValidationError('That device id is taken please choose another one')
|
|
|
|
def validate_imsi(self, input):
|
|
content = nbiotDevice.query.filter_by(imsi=input.data).first()
|
|
if content:
|
|
raise ValidationError('That IMSI id is taken please choose another one')
|
|
|
|
def validate_iccid(self, input):
|
|
content = nbiotDevice.query.filter_by(iccid=input.data).first()
|
|
if content:
|
|
raise ValidationError('That ICCID id is taken please choose another one')
|
|
|
|
def validate_ip(self, input):
|
|
content = nbiotDevice.query.filter_by(ip=input.data).first()
|
|
if content:
|
|
raise ValidationError('That IP id is taken please choose another one')
|
|
|
|
|
|
class updateRoleForm(FlaskForm):
|
|
id = StringField('ID', render_kw={'disabled':''})
|
|
role = StringField('Role', validators=[DataRequired(), Length(min=4, max=20)])
|
|
description = StringField('Description', validators=[DataRequired(), Length(min=4, max=200)])
|
|
submit = SubmitField()
|
|
|
|
|
|
class updateRoleForm(FlaskForm):
|
|
id = StringField('ID', render_kw={'disabled':''})
|
|
role = StringField('Role', validators=[DataRequired(), Length(min=4, max=20)])
|
|
description = StringField('Description', validators=[DataRequired(), Length(min=4, max=200)])
|
|
submit = SubmitField()
|
|
|