refomap_adm / app.py
Persano's picture
Create app.py
f01f154 verified
raw
history blame
2.08 kB
from flask import Flask, render_template, request, redirect, url_for
from supabase import create_client, Client
from datetime import datetime
import os
app = Flask(__name__)
# Configuração Supabase
SUPABASE_URL = os.getenv("SUPABASE_URL")
SUPABASE_KEY = os.getenv("SUPABASE_KEY")
supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY)
# --- Rota: Listagem de orçamentos ---
@app.route("/")
def index():
response = supabase.table("orcamentos").select("*").order("id", desc=True).execute()
orcamentos = response.data
return render_template("index.html", orcamentos=orcamentos)
# --- Rota: Novo Orçamento ---
@app.route("/novo", methods=["GET", "POST"])
def novo():
if request.method == "POST":
dados = {
"cliente": request.form["cliente"],
"endereco": request.form["endereco"],
"area_total": request.form["area_total"],
"quartos": request.form["quartos"],
"banheiros": request.form["banheiros"],
"total": calcular_total(request.form), # Função que calcula o total
"data_criacao": datetime.now().isoformat()
}
supabase.table("orcamentos").insert(dados).execute()
return redirect(url_for('index'))
return render_template("novo.html")
# --- Rota: Detalhe ---
@app.route("/orcamento/<int:id>")
def orcamento(id):
response = supabase.table("orcamentos").select("*").eq("id", id).single().execute()
orcamento = response.data
return render_template("relatorio.html", orcamento=orcamento)
# --- Rota: Excluir ---
@app.route("/delete/<int:id>")
def delete(id):
supabase.table("orcamentos").delete().eq("id", id).execute()
return redirect(url_for('index'))
# --- Função de cálculo (exemplo simplificado) ---
def calcular_total(form):
area = float(form.get("area_total", 0))
quartos = int(form.get("quartos", 0))
banheiros = int(form.get("banheiros", 0))
base_m2 = 500
return area * base_m2 + quartos * 3000 + banheiros * 4000
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)