예제 #1
0
파일: forms.py 프로젝트: kevana/dci-notify
'''
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):
예제 #2
0
파일: forms.py 프로젝트: kevana/dci-notify
'''
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'''
예제 #3
0
파일: models.py 프로젝트: kevana/dci-notify
'''
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
예제 #4
0
파일: models.py 프로젝트: kevana/dci-notify
'''
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