rough new admin panel, more changes pending
This commit is contained in:
31
plugins/admin/forms.py
Normal file
31
plugins/admin/forms.py
Normal file
@ -0,0 +1,31 @@
|
||||
from flask_wtf import FlaskForm
|
||||
from wtforms import StringField, PasswordField, SelectField, BooleanField, IntegerField, SubmitField
|
||||
from wtforms.validators import DataRequired, Optional, ValidationError, NumberRange
|
||||
import re
|
||||
|
||||
def email_check(form, field):
|
||||
pattern = re.compile(r'^[^@]+@[^@]+\.[^@]+$')
|
||||
if not field.data or not pattern.match(field.data):
|
||||
raise ValidationError('Invalid email address.')
|
||||
|
||||
class UserForm(FlaskForm):
|
||||
email = StringField('Email', validators=[DataRequired(), email_check])
|
||||
password = PasswordField('Password', validators=[Optional()])
|
||||
role = SelectField('Role',
|
||||
choices=[('user','User'), ('admin','Admin')],
|
||||
validators=[DataRequired()])
|
||||
is_verified = BooleanField('Verified')
|
||||
excluded_from_analytics = BooleanField('Exclude from Analytics')
|
||||
|
||||
# new ban/suspend fields
|
||||
ban_type = SelectField('Account Status',
|
||||
choices=[
|
||||
('active','Active'),
|
||||
('temp','Temporarily Suspended'),
|
||||
('perm','Permanently Banned')
|
||||
],
|
||||
validators=[DataRequired()])
|
||||
suspend_days = IntegerField('Suspend days',
|
||||
default=7,
|
||||
validators=[Optional(), NumberRange(min=1, max=365)])
|
||||
submit = SubmitField('Save')
|
Reference in New Issue
Block a user