コード例 #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