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)
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'))
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'))
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'))