fix spanish
This commit is contained in:
+27
-21
@@ -119,17 +119,18 @@ def calendar_view():
|
|||||||
return render_template('schedule/calendar.html', title='Calendar View')
|
return render_template('schedule/calendar.html', title='Calendar View')
|
||||||
|
|
||||||
@schedule_bp.route('/commissions')
|
@schedule_bp.route('/commissions')
|
||||||
@login_required
|
|
||||||
def commissions_view():
|
def commissions_view():
|
||||||
"""View commissions by subject for easy mapping"""
|
subjects = Subject.query.all()
|
||||||
from app.models.subject import Subject, Commission
|
|
||||||
|
# Calculamos el total de capacidad sumando todas las comisiones de todas las materias
|
||||||
# Get all active subjects with their commissions
|
total_capacity = sum(c.max_students for s in subjects for c in s.commissions)
|
||||||
subjects = Subject.query.filter_by(is_active=True).options(
|
# Calculamos el total de comisiones
|
||||||
db.joinedload(Subject.commissions).joinedload(Commission.teacher)
|
total_commissions = sum(len(s.commissions) for s in subjects)
|
||||||
).all()
|
|
||||||
|
return render_template('schedule/commissions.html',
|
||||||
return render_template('schedule/commissions.html', title='Commissions Management', subjects=subjects)
|
subjects=subjects,
|
||||||
|
total_capacity=total_capacity,
|
||||||
|
total_commissions=total_commissions)
|
||||||
|
|
||||||
@schedule_bp.route('/add', methods=['GET', 'POST'])
|
@schedule_bp.route('/add', methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
@@ -199,27 +200,32 @@ def list_reservations():
|
|||||||
"""List all reservations"""
|
"""List all reservations"""
|
||||||
return redirect(url_for('schedule.today_schedule'))
|
return redirect(url_for('schedule.today_schedule'))
|
||||||
|
|
||||||
@schedule_bp.route('/reservation/<int:id>/confirm', methods=['POST'])
|
|
||||||
|
@schedule_bp.route('/reservation/<int:id>/confirm', methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
def confirm_reservation(id):
|
def confirm_reservation(id):
|
||||||
"""Confirm a reservation"""
|
"""Confirm a reservation (Handles both GET from link and POST from form)"""
|
||||||
try:
|
try:
|
||||||
reservation = Reservation.query.get_or_404(id)
|
reservation = Reservation.query.get_or_404(id)
|
||||||
|
|
||||||
|
# Validación de seguridad: Solo confirmar si está pendiente
|
||||||
if reservation.status != ReservationStatus.PENDING:
|
if reservation.status != ReservationStatus.PENDING:
|
||||||
flash('Only pending reservations can be confirmed.', 'error')
|
flash('Only pending reservations can be confirmed.', 'warning')
|
||||||
return redirect(request.referrer)
|
return redirect(url_for('schedule.today_schedule'))
|
||||||
|
|
||||||
reservation.status = ReservationStatus.CONFIRMED
|
reservation.status = ReservationStatus.CONFIRMED
|
||||||
db.session.commit()
|
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:
|
except Exception as e:
|
||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
flash(f'Error confirming reservation: {str(e)}', 'error')
|
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
|
# API endpoints
|
||||||
@schedule_bp.route('/api/classroom-availability')
|
@schedule_bp.route('/api/classroom-availability')
|
||||||
|
|||||||
@@ -43,7 +43,9 @@
|
|||||||
<div class="col-md-3">
|
<div class="col-md-3">
|
||||||
<div class="card border-0 shadow-sm">
|
<div class="card border-0 shadow-sm">
|
||||||
<div class="card-body text-center">
|
<div class="card-body text-center">
|
||||||
<h2 class="text-info">{{ subjects|map(attribute='commissions')|list|flatten|sum(attribute='max_students')|sum }}</h2>
|
<h2 class="text-success">{{ total_commissions }}</h2>
|
||||||
|
|
||||||
|
<h2 class="text-info">{{ total_capacity }}</h2>
|
||||||
<p class="mb-0">Total Student Capacity</p>
|
<p class="mb-0">Total Student Capacity</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user