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')
|
||||
|
||||
@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/<int:id>/confirm', methods=['POST'])
|
||||
|
||||
@schedule_bp.route('/reservation/<int:id>/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')
|
||||
|
||||
@@ -43,7 +43,9 @@
|
||||
<div class="col-md-3">
|
||||
<div class="card border-0 shadow-sm">
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user