Spaces:
No application file
No application file
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 -------- | |
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') | |
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 -------- | |
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 -------- | |
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 -------- | |
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 -------- | |
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 -------- | |
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) | |