refomap_adm / app.py
Persano's picture
Update app.py
37c820c verified
raw
history blame
3.18 kB
from flask import Flask, render_template, request, redirect, session, url_for
from supabase_client import supabase
import os
app = Flask(__name__)
app.secret_key = os.urandom(24)
# -------- Autenticação --------
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
result = supabase.auth.sign_in_with_password({'email': email, 'password': password})
if result.user:
session['user'] = result.user.id
return redirect('/dashboard')
else:
return "Login inválido"
return render_template('login.html')
@app.route('/logout')
def logout():
session.clear()
return redirect('/login')
def login_required(f):
def wrap(*args, **kwargs):
if 'user' in session:
return f(*args, **kwargs)
else:
return redirect('/login')
wrap.__name__ = f.__name__
return wrap
# -------- Dashboard --------
@app.route('/dashboard')
@login_required
def dashboard():
user_id = session['user']
response = supabase.table('orcamentos').select('*').eq('user_id', user_id).execute()
orcamentos = response.data
return render_template('dashboard.html', orcamentos=orcamentos)
# -------- Criar Orçamento --------
@app.route('/orcamentos/novo', methods=['GET', 'POST'])
@login_required
def criar_orcamento():
if request.method == 'POST':
dados = {
'user_id': session['user'],
'cliente': request.form['cliente'],
'endereco': request.form['endereco'],
'valor_total': request.form['valor_total']
}
supabase.table('orcamentos').insert(dados).execute()
return redirect('/dashboard')
return render_template('create_orcamento.html')
# -------- Editar Orçamento --------
@app.route('/orcamentos/<int:orcamento_id>/editar', methods=['GET', 'POST'])
@login_required
def editar_orcamento(orcamento_id):
if request.method == 'POST':
update_data = {
'cliente': request.form['cliente'],
'endereco': request.form['endereco'],
'valor_total': request.form['valor_total']
}
supabase.table('orcamentos').update(update_data).eq('id', orcamento_id).execute()
return redirect('/dashboard')
orcamento = supabase.table('orcamentos').select('*').eq('id', orcamento_id).single().execute().data
return render_template('edit_orcamento.html', orcamento=orcamento)
# -------- Ver Orçamento --------
@app.route('/orcamentos/<int:orcamento_id>')
@login_required
def visualizar_orcamento(orcamento_id):
orcamento = supabase.table('orcamentos').select('*').eq('id', orcamento_id).single().execute().data
return render_template('view_orcamento.html', orcamento=orcamento)
# -------- Excluir Orçamento --------
@app.route('/orcamentos/<int:orcamento_id>/excluir', methods=['POST'])
@login_required
def excluir_orcamento(orcamento_id):
supabase.table('orcamentos').delete().eq('id', orcamento_id).execute()
return redirect('/dashboard')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=7860)