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

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()