예제 #1
0
def agendamento():
    chave_usuario = Tabela_chaves.query.filter_by(
        id_usuario=current_user.get_id()).first()
    is_funcionario = user_is_funcionario(chave_usuario, current_user)

    if is_funcionario:
        servicos = Servicos.query.all()
        usuarios = Usuario.query.all()
        clientes = list()

        for usuario in usuarios:
            chave = Tabela_chaves.query.filter_by(
                id_usuario=usuario.id_usuario).first()

            if chave:
                if not user_is_funcionario(chave, usuario):
                    clientes.append((usuario, chave))
            else:
                clientes.append((usuario, None))

        return render_template('agendamento.html',
                               servicos=servicos,
                               clientes=clientes,
                               fn_decript=cripto.descriptografar,
                               user_is_funcionario=is_funcionario)
def perfil():
    chave_usuario = Tabela_chaves.query.filter_by(
        id_usuario=current_user.get_id()).first()
    is_funcionario = user_is_funcionario(chave_usuario, current_user)

    nome = cripto.descriptografar(chave_usuario.chave_privada,
                                  current_user.nome)
    email = cripto.descriptografar(chave_usuario.chave_privada,
                                   current_user.email)
    cpf = cripto.descriptografar(chave_usuario.chave_privada, current_user.cpf)
    data_nascimento = cripto.descriptografar(chave_usuario.chave_privada,
                                             current_user.data_nascimento)
    telefone = Telefone.query.filter_by(
        id_usuario=current_user.get_id()).first()
    endereco = Endereco.query.filter_by(
        id_usuario=current_user.get_id()).first()

    try:
        data_nascimento = datetime.strptime(data_nascimento, '%Y-%m-%d')
    except ValueError as e:
        data_nascimento = datetime.strptime(data_nascimento, '%Y-%d-%m')

    return render_template('perfil.html',
                           nome=nome,
                           email=email,
                           cpf=cpf,
                           data_nascimento=datetime.strftime(
                               data_nascimento, '%d/%m/%Y'),
                           telefone=telefone,
                           endereco=endereco,
                           user_is_funcionario=is_funcionario)
예제 #3
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for('usuario.get_historico'))

    if request.method == 'GET':
        return render_template('login.html')

    if request.method == 'POST':
        email = request.form.get('email')
        senha = request.form.get('senha')

        chave = Tabela_chaves.query.filter_by(email=email).first()
        user = Usuario.query.filter_by(id_usuario=chave.id_usuario).first()

        if not chave:
            flash('Por favor cheque suas informações e tente novamente!')
            return redirect(url_for('auth.login'))
        else:
            senha_usuario = cripto.descriptografar(chave.chave_privada, user.password)
            if senha == senha_usuario:
                login_user(user)

                if user_is_funcionario(chave, current_user):
                    return redirect(url_for('agendamento.agendamento'))

                return redirect(url_for('usuario.get_historico'))
            else:
                flash('Por favor cheque suas informações e tente novamente!')
                return redirect(url_for('auth.login'))
예제 #4
0
def servico():
    chave_usuario = Tabela_chaves.query.filter_by(
        id_usuario=current_user.get_id()).first()
    is_funcionario = user_is_funcionario(chave_usuario, current_user)

    if request.method == 'GET':
        servicos = Servicos.query.all()

    if request.method == 'POST':
        nome = request.form.get('nomeServico')
        descricao = request.form.get('descricao')
        preco = request.form.get('preco')
        duracao = request.form.get('duracao')

        novo_servico = Servicos(nome=nome,
                                descricao=descricao,
                                preco=preco,
                                duracao=duracao,
                                disponibilidade=True)

        db.session.add(novo_servico)
        db.session.commit()

        servicos = Servicos.query.all()

    return render_template('servico.html',
                           servicos=servicos,
                           user_is_funcionario=is_funcionario)
def deletar():
    chave_usuario = Tabela_chaves.query.filter_by(
        id_usuario=current_user.get_id()).first()
    is_funcionario = user_is_funcionario(chave_usuario, current_user)

    if not is_funcionario:
        db.session.delete(chave_usuario)
        db.session.commit()

        flash('Perfil deletado com sucesso', category='success')

        return redirect(url_for('auth.logout'))
예제 #6
0
def principal():
    if current_user.is_authenticated:
        chave_usuario = Tabela_chaves.query.filter_by(
            id_usuario=current_user.get_id()).first()
        is_funcionario = user_is_funcionario(chave_usuario, current_user)

        if is_funcionario:
            return redirect(url_for('agendamento.agendamento'))

        return redirect(url_for('usuario.perfil'))
    else:
        return redirect(url_for('auth.login'))
def get_historico():
    chave_usuario = Tabela_chaves.query.filter_by(
        id_usuario=current_user.get_id()).first()
    is_funcionario = user_is_funcionario(chave_usuario, current_user)

    historico = None

    if request.method == "GET":
        if is_funcionario:
            agendamentos = Agendamento.query.all()

            historico = list()
            for agendamento in agendamentos:
                chave_usuario = Tabela_chaves.query.filter_by(
                    id_usuario=agendamento.usuario_id).first()
                historico.append((agendamento, chave_usuario))
        else:
            historico = {
                'agendamentos':
                Agendamento.query.filter_by(
                    usuario_id=current_user.get_id()).all(),
                'chave_usuario':
                chave_usuario
            }

    elif request.method == "POST":
        if is_funcionario:
            usuario = Usuario.query.filter_by(
                usuario_id=request.form.get('id_usuario')).first()
            historico = Agendamento.query.filter_by(usuario=usuario).all()

    return render_template('historico.html',
                           historico=historico,
                           historico_is_list=type(historico) is list,
                           fn_decript=cripto.descriptografar,
                           user_is_funcionario=is_funcionario)
def editar():
    chave_usuario = Tabela_chaves.query.filter_by(
        id_usuario=current_user.get_id()).first()

    if request.method == "GET":
        is_funcionario = user_is_funcionario(chave_usuario, current_user)
        nome = cripto.descriptografar(chave_usuario.chave_privada,
                                      current_user.nome)
        email = cripto.descriptografar(chave_usuario.chave_privada,
                                       current_user.email)
        senha = cripto.descriptografar(chave_usuario.chave_privada,
                                       current_user.password)
        cpf = cripto.descriptografar(chave_usuario.chave_privada,
                                     current_user.cpf)
        data_nascimento = cripto.descriptografar(chave_usuario.chave_privada,
                                                 current_user.data_nascimento)
        telefone = Telefone.query.filter_by(
            id_usuario=current_user.get_id()).first()
        endereco = Endereco.query.filter_by(
            id_usuario=current_user.get_id()).first()

        return render_template('perfil_editar.html',
                               nome=nome,
                               email=email,
                               senha=senha,
                               cpf=cpf,
                               data_nascimento=data_nascimento,
                               telefone=telefone,
                               endereco=endereco,
                               user_is_funcionario=is_funcionario)

    if request.method == "POST":
        nome = request.form.get('nome')
        email = request.form.get('email')
        senha = request.form.get('senha')
        cpf = request.form.get('cpf')
        data_nascimento = request.form.get('data')

        try:
            data_nascimento = datetime.strptime(data_nascimento,
                                                '%Y-%m-%d').date()
        except ValueError as e:
            data_nascimento = datetime.strptime(data_nascimento,
                                                '%Y-%d-%m').date()

        current_user.nome = cripto.criptografar(chave_usuario.chave_privada,
                                                nome)
        current_user.cpf = cripto.criptografar(chave_usuario.chave_privada,
                                               cpf)
        current_user.data_nascimento = cripto.criptografar(
            chave_usuario.chave_privada, data_nascimento)
        current_user.password = cripto.criptografar(
            chave_usuario.chave_privada, senha)

        if email != chave_usuario.email:
            current_user.email = cripto.criptografar(
                chave_usuario.chave_privada, email)
            chave_usuario.email = email

        db.session.commit()

        flash('Dados pessoais alterados com sucesso', category='success')

        return redirect(url_for('usuario.perfil'))