45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
# borrar_branding.py
|
|
# Pone en BLANCO el campo 'programa' de todos los conjuntos que tienen BRANDING
|
|
# en la tabla conjunto_sede_programa de Supabase. La SEDE se conserva.
|
|
# Ejecutar en backend/: python borrar_branding.py
|
|
import os, requests
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
URL = os.getenv("CARTERA_URL") or os.getenv("SUPABASE_PAUTA_URL", "")
|
|
KEY = os.getenv("CARTERA_KEY") or os.getenv("SUPABASE_PAUTA_KEY", "")
|
|
T = "conjunto_sede_programa"
|
|
H = {"apikey": KEY, "Authorization": f"Bearer {KEY}"}
|
|
assert URL and KEY, "Falta CARTERA_URL/KEY en .env"
|
|
|
|
# 1) traer todos y ver cuales tienen BRANDING
|
|
r = requests.get(f"{URL}/rest/v1/{T}", params={"select": "*"}, headers=H, timeout=30)
|
|
r.raise_for_status()
|
|
filas = r.json()
|
|
brand = [f for f in filas if "BRANDING" in str(f.get("programa") or "").upper()]
|
|
|
|
print(f"\nTotal filas: {len(filas)}")
|
|
print(f"Con BRANDING en programa: {len(brand)}")
|
|
for f in brand[:60]:
|
|
print(f" {f.get('conjunto'):45} sede={f.get('sede'):10} prog={f.get('programa')}")
|
|
|
|
if not brand:
|
|
print("\nNo hay nada con BRANDING. Listo.")
|
|
raise SystemExit
|
|
|
|
# 2) actualizar programa='' donde el programa contenga BRANDING
|
|
hp = dict(H); hp["Content-Type"] = "application/json"; hp["Prefer"] = "return=minimal"
|
|
ok = 0
|
|
for f in brand:
|
|
co = f.get("conjunto")
|
|
rr = requests.patch(f"{URL}/rest/v1/{T}",
|
|
params={"conjunto": f"eq.{co}"},
|
|
headers=hp, json={"programa": ""}, timeout=30)
|
|
if rr.ok:
|
|
ok += 1
|
|
else:
|
|
print(f" ERROR {co}: {rr.status_code} {rr.text[:80]}")
|
|
|
|
print(f"\nOK -> {ok} conjuntos actualizados (programa BRANDING borrado, sede conservada).")
|
|
print("Ahora en el dashboard: reinicia backend o dale 'Actualizar'.")
|