From 5f0476be792065505ddf8e864623451f018cbedf Mon Sep 17 00:00:00 2001 From: Carlos Tello Date: Thu, 3 Sep 2026 05:28:10 -0300 Subject: [PATCH] fix(schedule): corregir casteo de filtro de piso para compatibilidad con VARCHAR en PostgreSQL --- app/routes/classrooms.py | 6 +++++- app/routes/schedule.py | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/routes/classrooms.py b/app/routes/classrooms.py index b78eff3..1268140 100644 --- a/app/routes/classrooms.py +++ b/app/routes/classrooms.py @@ -107,7 +107,11 @@ def list_classrooms(): query = query.filter(Classroom.building_id == int(building_filter)) if floor_filter: - query = query.filter(Classroom.floor == floor_filter) + flr = str(floor_filter).strip() + if flr.upper() in ['0', 'PB', 'PLANTA BAJA']: + query = query.filter(db.or_(Classroom.floor == '0', Classroom.floor.ilike('%PB%'), Classroom.floor.ilike('%Planta Baja%'))) + else: + query = query.filter(Classroom.floor == flr) if search: query = query.filter( diff --git a/app/routes/schedule.py b/app/routes/schedule.py index 4825436..5164534 100644 --- a/app/routes/schedule.py +++ b/app/routes/schedule.py @@ -41,7 +41,11 @@ def today_schedule(): ) if floor_filter: - query = query.filter(Classroom.floor == str(floor_filter).strip()) + flr = str(floor_filter).strip() + if flr.upper() in ['0', 'PB', 'PLANTA BAJA']: + query = query.filter(or_(Classroom.floor == '0', Classroom.floor.ilike('%PB%'), Classroom.floor.ilike('%Planta Baja%'))) + else: + query = query.filter(Classroom.floor == flr) if shift_filter: query = query.filter(Reservation.shift.ilike(f'%{shift_filter}%')) @@ -501,7 +505,11 @@ def list_reservations(): ) if floor_filter: - query = query.filter(Classroom.floor == str(floor_filter).strip()) + flr = str(floor_filter).strip() + if flr.upper() in ['0', 'PB', 'PLANTA BAJA']: + query = query.filter(or_(Classroom.floor == '0', Classroom.floor.ilike('%PB%'), Classroom.floor.ilike('%Planta Baja%'))) + else: + query = query.filter(Classroom.floor == flr) if shift_filter: query = query.filter(Reservation.shift.ilike(f'%{shift_filter}%')) @@ -716,7 +724,11 @@ def calendar_data(): ) if floor: - query = query.filter(Classroom.floor == str(floor).strip()) + flr = str(floor).strip() + if flr.upper() in ['0', 'PB', 'PLANTA BAJA']: + query = query.filter(or_(Classroom.floor == '0', Classroom.floor.ilike('%PB%'), Classroom.floor.ilike('%Planta Baja%'))) + else: + query = query.filter(Classroom.floor == flr) if search: query = query.filter(