''' Forms for AppName ''' from flask.ext.wtf import Form from wtforms import HiddenField, IntegerField, SelectField, TextField from wtforms.validators import Regexp, Required, ValidationError from app.sms import carriers from app.models import User carrier_tuples = [(key, carriers[key]['name']) for key in carriers.keys()] carrier_tuples.sort(key=lambda tup: tup[0]) class SignupForm(Form): '''Form for initial signup.''' carrier = SelectField('Carrier', choices=carrier_tuples) phone_number = TextField('Phone Number', [Required()]) def validate_phone_number(form, field): val = field.data val = form.num_filter(val) field.data = val if len(val) != 10: raise ValidationError('Invalid input.') if User.query.get(int(val)): raise ValidationError('Number already registered.') def num_filter(self, seq):
''' Forms for AppName ''' from flask.ext.wtf import Form from wtforms import HiddenField, IntegerField, SelectField, TextField from wtforms.validators import Regexp, Required, ValidationError from app.sms import carriers from app.models import User carrier_tuples = [(key, carriers[key]['name']) for key in carriers.keys()] carrier_tuples.sort(key=lambda tup: tup[0]) class SignupForm(Form): '''Form for initial signup.''' carrier = SelectField('Carrier', choices=carrier_tuples) phone_number = TextField('Phone Number', [Required()]) def validate_phone_number(form, field): val = field.data val = form.num_filter(val) field.data = val if len(val) != 10: raise ValidationError('Invalid input.') if User.query.get(int(val)): raise ValidationError('Number already registered.') def num_filter(self, seq): '''Remove all non-numeric characters from seq'''
''' SQLAlchemy models for AppName ''' from flask.ext.sqlalchemy import SQLAlchemy from app.sms import carriers db = SQLAlchemy() carrier_slugs = carriers.keys() class User(db.Model): '''Represent a user that can sign up for AppName''' carrier = db.Column(db.Enum(*carrier_slugs, name='Carriers')) phone_number = db.Column(db.BigInteger, primary_key=True) confirm_code = db.Column(db.Integer) confirmed = db.Column(db.Boolean) def __init__(self, carrier, phone_number, confirm_code): self.carrier = carrier self.phone_number = phone_number self.confirm_code = confirm_code self.confirmed = False