from flask_wtf import FlaskForm from flask_wtf.file import FileAllowed, FileRequired from wtforms import StringField, PasswordField, SubmitField, BooleanField, FileField from wtforms.validators import DataRequired from flask_babel import lazy_gettext as _l class LoginForm(FlaskForm): username = StringField(_l('Username'), validators=[DataRequired()]) password = PasswordField(_l('Password'), validators=[DataRequired()]) submit = SubmitField(_l('Sign In')) remember_me = BooleanField('Remember Me') class SettingsForm(FlaskForm): # Access point settings ssid = StringField('SSID', validators=[DataRequired()]) wifi_password = PasswordField(_l('WiFi Password')) enable_access_point = BooleanField(_l('Enable Access Point')) # Customisation settings butterbox_name = StringField(_l('Butterbox Name'), validators=[DataRequired()]) butterbox_logo = FileField((_l('Butterbox Logo')), validators=[FileAllowed(['jpg', 'png', 'svg'], 'Images only!')]) # Services settings enable_file_viewer = BooleanField(_l('Enable File Viewer')) enable_map_viewer = BooleanField(_l('Enable Map Viewer')) enable_chat = BooleanField(_l('Enable Chat')) enable_app_store = BooleanField(_l('Enable App Store')) enable_deltachat = BooleanField(_l('Enable DeltaChat')) # Access Settings admin_password = PasswordField(_l('Admin Password')) ssh_password = PasswordField(_l('SSH Password')) submit = SubmitField(_l('Submit')) apply_changes = SubmitField(_l('Apply Changes'))