import string import random from .. import db from ..models import User, Role, Region from flask_wtf import FlaskForm, RecaptchaField from wtforms import StringField, PasswordField, BooleanField, SubmitField, SelectField, DecimalField from wtforms import validators, ValidationError from wtforms.fields.html5 import EmailField, DecimalRangeField class OrderForm(FlaskForm): cpu = DecimalRangeField('Processor Cores', default=2) memory = DecimalRangeField('Memory', default=512) storage = DecimalRangeField('Storage', default=20) alias = StringField('Machine Alias:', [validators.Regexp(message='ex.: myservice1.com, myservice2.local', regex='^[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.([a-zA-Z]{1,6}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,3})$'), validators.Length(6,64)]) submit = SubmitField('Create') class ChargeForm(FlaskForm): amount = DecimalField('Стойност:', [validators.DataRequired(), validators.NumberRange(min=1, max=500)]) submit = SubmitField('Зареди') class Addr2PoolForm(FlaskForm): #regions = Region.query.all() #region_choices = [] #for region in regions: # region_choices.expand((region.pid, str(region.description))) region_choices = [(1, 'Plovdiv, Bulgaria')] region = SelectField('Region', choices=region_choices, coerce=int) ip = StringField('IP Address:', [validators.DataRequired(), validators.Regexp(message='172.16.0.1', regex='^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$')]) rdns = StringField('Reverse DNS:', [validators.Optional(), validators.Regexp(message='must be fqdn', regex='^[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.([a-zA-Z]{1,6}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,3})$')]) reserved = BooleanField('Reserved:') submit = SubmitField('Add IP')