Exemple #1
0
class FormLogin(FlaskForm):
    usuario = StringField(
        'Usuário',
        validators=[Data(),
                    Regexp('^[a-z0-9_]+$', message=MSG_USUARIO)])
    senha = PasswordField('Senha', validators=[Data()])
    submit = SubmitField('Entrar')
Exemple #2
0
class FormAtualizacaoPedido(FlaskForm):
    id = HiddenField()
    cliente = StringField('Cliente', validators=[Data()])
    itens = FieldList(FormField(FormItensPedido))
    vendedor = HiddenField()
    desconto = IntegerField('Desconto', validators=[Data()])
    total = HiddenField()
    submit = SubmitField('Cadastrar')

    def validate_cliente(self, field):
        if Cliente.query.filter_by(documento=field.data).first() is None:
            raise ValidationError('Cliente não encontrado.')

    def populate(self, pedido):
        i = 0
        cliente = Cliente.query.filter_by(documento=self.cliente.data).first()
        pedido.cliente = cliente
        vendedor = Funcionario.query.filter_by(id=current_user.id).first()
        pedido.vendedor = vendedor
        pedido.desconto = self.desconto.data
        total = 0
        for item in pedido.itens:
            livro = Livro.query.filter_by(
                isbn=self.itens[i].livro.data).first()
            item.livro = livro
            item.quantidade = self.itens[i].quantidade.data
            total += livro.preco * item.quantidade
            i += 1
        pedido.total = total
Exemple #3
0
class FormItensPedido(FlaskForm):
    livro = StringField('Livro', validators=[Data()])
    quantidade = IntegerField('Quantidade', validators=[Data()])

    def validate_livro(self, field):
        if not is_isbn10(field.data) and not is_isbn13(field.data):
            return ValidationError('ISBN inválido')
        if Livro.query.filter_by(isbn=field.data).first() is None:
            raise ValidationError('Livro não encontrado.')
Exemple #4
0
class FormAtualizacaoVendedor(FlaskForm):
    id = HiddenField(validators=[Data()])
    nome = StringField('Nome', validators=[Data()])
    usuario = StringField(
        'Usuário',
        validators=[Data(),
                    Regexp('^[a-z0-9_]+$', message=MSG_USUARIO)])
    nova_senha = PasswordField(
        'Nova senha',
        description='Opcional',
        validators=[EqualTo('confirma_senha', message=MSG_SENHA)])
    confirma_senha = PasswordField('Confirme a senha')
    submit = SubmitField('Atualizar')
Exemple #5
0
class FormCadastroCliente(FlaskForm):
    nome = StringField('Nome', validators=[Data()])
    documento = StringField(
        'Documento',
        validators=[Data(), Regexp('^[0-9]{5,13}$', message=MSG_DOC)])
    data_nascimento = DateField('Data de nascimento',
                                validators=[Data()],
                                format='%d/%m/%Y')
    endereco = FormField(FormEndereco)
    telefone = StringField(
        'Telefone',
        validators=[Data(), Regexp('^[0-9]{10,11}$', message=MSG_TEL)])
    email = StringField('E-mail', validators=[Data(), Email()])
    submit = SubmitField('Cadastrar')
Exemple #6
0
class FormCadastroLivro(FlaskForm):
    titulo = StringField('Título', validators=[Data()])
    autor = StringField('Autor', validators=[Data()])
    editora = StringField('Editora', validators=[Data()])
    edicao = StringField('Edição', validators=[Data()])
    ano = IntegerField('Ano', validators=[Data()])
    isbn = StringField('ISBN', validators=[Data()], id='isbn_field')
    idioma = StringField('Idioma', validators=[Data()])
    preco = DecimalField('Preço', validators=[Data()])
    exemplares = IntegerField('Número de exemplares', validators=[Data()])
    submit = SubmitField('Enviar')
Exemple #7
0
class FormConsultaPedido(FlaskForm):
    opcoes = [('id', 'Nº pedido'), ('cliente', 'Cliente'),
              ('vendedor', 'Vendedor')]
    campo = SelectField('Campo de busca', choices=opcoes)
    termo = StringField('Palavra-chave', validators=[Data()])
    consultar_ativos = BooleanField('Consultar somente pedidos ativos.')
    submit = SubmitField('Consultar')
Exemple #8
0
class FormCadastroVendedor(FlaskForm):
    nome = StringField('Nome', validators=[Data()])
    usuario = StringField(
        'Usuário',
        validators=[Data(),
                    Regexp('^[a-z0-9_]+$', message=MSG_USUARIO)])
    senha = PasswordField(
        'Senha',
        validators=[Data(),
                    EqualTo('confirma_senha', message=MSG_SENHA)])
    confirma_senha = PasswordField('Confirme a senha', validators=[Data()])
    admin = BooleanField('Conceder permissão de administrador.')
    submit = SubmitField('Registrar')

    def validate_usuario(self, field):
        if Funcionario.query.filter_by(usuario=field.data).first():
            raise ValidationError('Nome de usuário já utilizado.')
Exemple #9
0
class FormCadastroPedido(FlaskForm):
    cliente = StringField('Cliente', validators=[Data()])
    itens = FieldList(FormField(FormItensPedido), min_entries=1, max_entries=9)
    desconto = IntegerField('Desconto', validators=[InputRequired()])
    submit = SubmitField('Cadastrar')

    def validate_cliente(self, field):
        if Cliente.query.filter_by(documento=field.data).first() is None:
            raise ValidationError('Cliente não encontrado.')
Exemple #10
0
class FormConsultaVendedor(FlaskForm):
    opcoes = [
        (atr, atr.capitalize()) for atr in dir(Funcionario)
        if atr is not 'id' and not atr.startswith(('_', 'a', 'q', 'm', 'v',
                                                   'is', 'senha', 'get'))
    ]
    opcoes.insert(0, ('id', 'Registro'))
    campo = SelectField('Campo de busca', choices=opcoes)
    termo = StringField('Palavra-chave', validators=[Data()])
    submit = SubmitField('Consultar')
Exemple #11
0
class FormEndereco(FlaskForm):
    logradouro = StringField('Logradouro', validators=[Data()])
    numero = StringField('Número', validators=[Data()])
    complemento = StringField('Complemento')
    bairro = StringField('Bairro', validators=[Data()])
    cidade = StringField('Cidade', validators=[Data()])
    estado = StringField('Estado', validators=[Data()])
    cep = StringField(
        'CEP', validators=[Data(),
                           Regexp('^[0-9]{8}$', message=MSG_CEP)])
Exemple #12
0
class FormConsultaIsbn(FlaskForm):
    isbn = StringField('ISBN', validators=[Data()])  #, isbn()])
    submit = SubmitField('Localizar')
Exemple #13
0
class FormConsultaLivro(FlaskForm):
    opcoes = [(atr, atr.capitalize()) for atr in dir(Livro)
              if atr is not 'id' and not atr.startswith(('_', 'q', 'm'))]
    campo = SelectField('Campo de busca', choices=opcoes)
    termo = StringField('Palavra-chave', validators=[Data()])
    submit = SubmitField('Consultar')
Exemple #14
0
class FormNumeroPedido(FlaskForm):
    pedido = StringField('Nº pedido', validators=[Data()])
    submit = SubmitField('Consultar')
Exemple #15
0
class FormConsultaId(FlaskForm):
    id = StringField('Nº registro', validators=[Data()])
    submit = SubmitField('Localizar')
Exemple #16
0
class FormConsultaDocumento(FlaskForm):
    documento = StringField(
        'Documento',
        validators=[Data(), Regexp('^[0-9]{5,13}$', message=MSG_DOC)])
    submit = SubmitField('Localizar')