From 18f1d3a8c3a1b3356654c16d68de4158f4681a1a Mon Sep 17 00:00:00 2001 From: Alejandro Vazquez Date: Mon, 30 Mar 2026 17:37:53 -0300 Subject: [PATCH] fix spanish --- app/routes/schedule.py | 48 ++++++++++++++----------- app/templates/schedule/commissions.html | 4 ++- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/app/routes/schedule.py b/app/routes/schedule.py index 1376162..20bbd77 100644 --- a/app/routes/schedule.py +++ b/app/routes/schedule.py @@ -119,17 +119,18 @@ def calendar_view(): return render_template('schedule/calendar.html', title='Calendar View') @schedule_bp.route('/commissions') -@login_required def commissions_view(): - """View commissions by subject for easy mapping""" - from app.models.subject import Subject, Commission - - # Get all active subjects with their commissions - subjects = Subject.query.filter_by(is_active=True).options( - db.joinedload(Subject.commissions).joinedload(Commission.teacher) - ).all() - - return render_template('schedule/commissions.html', title='Commissions Management', subjects=subjects) + subjects = Subject.query.all() + + # Calculamos el total de capacidad sumando todas las comisiones de todas las materias + total_capacity = sum(c.max_students for s in subjects for c in s.commissions) + # Calculamos el total de comisiones + total_commissions = sum(len(s.commissions) for s in subjects) + + return render_template('schedule/commissions.html', + subjects=subjects, + total_capacity=total_capacity, + total_commissions=total_commissions) @schedule_bp.route('/add', methods=['GET', 'POST']) @login_required @@ -199,27 +200,32 @@ def list_reservations(): """List all reservations""" return redirect(url_for('schedule.today_schedule')) -@schedule_bp.route('/reservation//confirm', methods=['POST']) + +@schedule_bp.route('/reservation//confirm', methods=['GET', 'POST']) @login_required def confirm_reservation(id): - """Confirm a reservation""" + """Confirm a reservation (Handles both GET from link and POST from form)""" try: reservation = Reservation.query.get_or_404(id) - + + # Validación de seguridad: Solo confirmar si está pendiente if reservation.status != ReservationStatus.PENDING: - flash('Only pending reservations can be confirmed.', 'error') - return redirect(request.referrer) - + flash('Only pending reservations can be confirmed.', 'warning') + return redirect(url_for('schedule.today_schedule')) + reservation.status = ReservationStatus.CONFIRMED db.session.commit() - - flash('Reservation confirmed successfully!', 'success') - + + flash( + f'Reservation for {reservation.commission.code if reservation.commission else "Class"} confirmed successfully!', + 'success') + except Exception as e: db.session.rollback() flash(f'Error confirming reservation: {str(e)}', 'error') - - return redirect(request.referrer) + + # Redirigir a la página desde la que venía el usuario o al inicio de hoy + return redirect(request.referrer or url_for('schedule.today_schedule')) # API endpoints @schedule_bp.route('/api/classroom-availability') diff --git a/app/templates/schedule/commissions.html b/app/templates/schedule/commissions.html index 85c205d..73f8151 100644 --- a/app/templates/schedule/commissions.html +++ b/app/templates/schedule/commissions.html @@ -43,7 +43,9 @@
-

{{ subjects|map(attribute='commissions')|list|flatten|sum(attribute='max_students')|sum }}

+

{{ total_commissions }}

+ +

{{ total_capacity }}

Total Student Capacity