From 7933523d7c14988cc2519ef75818ab9bfc40a069 Mon Sep 17 00:00:00 2001 From: Carlos Tello Date: Thu, 3 Sep 2026 20:36:20 -0300 Subject: [PATCH] feat: vista previa y modificacion de clases en salas virtuales y busqueda por codigo de materia --- app/routes/classrooms.py | 17 ++- app/routes/schedule.py | 4 +- app/templates/classrooms/list.html | 195 ++++++++++++++++++++++++++--- 3 files changed, 196 insertions(+), 20 deletions(-) diff --git a/app/routes/classrooms.py b/app/routes/classrooms.py index b2eaa70..fc2d75e 100644 --- a/app/routes/classrooms.py +++ b/app/routes/classrooms.py @@ -279,7 +279,8 @@ def list_classrooms(): 'day_count': day_cnt, 'week_count': week_cnt, 'month_count': month_cnt, - 'total_count': len(res_list) + 'total_count': len(res_list), + 'reservations': sorted(res_list, key=lambda x: x.start_time) }) virtual_rooms.sort(key=lambda x: (x['subject_name'], x['commission_code'])) @@ -315,6 +316,20 @@ def list_classrooms(): return render_template('classrooms/list.html', classrooms=None, title='Classrooms') +@classrooms_bp.route('/virtual-room//update-link', methods=['POST']) +@login_required +def update_virtual_link(commission_id): + """Actualizar enlace de videollamada para una comisión virtual""" + from app.models.subject import Commission + from flask_babel import gettext as _ + comm = Commission.query.get_or_404(commission_id) + new_link = request.form.get('virtual_link', '').strip() or None + comm.virtual_link = new_link + db.session.commit() + flash(_('Enlace de videollamada para %(code)s actualizado correctamente.', code=comm.get_full_code()), 'success') + return redirect(request.referrer or url_for('classrooms.list_classrooms', view_mode='virtual')) + + @classrooms_bp.route('/') @login_required def view_classroom(id): diff --git a/app/routes/schedule.py b/app/routes/schedule.py index f623d5f..da5e954 100644 --- a/app/routes/schedule.py +++ b/app/routes/schedule.py @@ -654,8 +654,10 @@ def list_reservations(): or_( Subject.name.ilike(f'%{search}%'), Subject.code.ilike(f'%{search}%'), + Commission.code.ilike(f'%{search}%'), Classroom.code.ilike(f'%{search}%'), - Reservation.purpose.ilike(f'%{search}%') + Reservation.purpose.ilike(f'%{search}%'), + Reservation.shift.ilike(f'%{search}%') ) ) diff --git a/app/templates/classrooms/list.html b/app/templates/classrooms/list.html index bb26330..f218d13 100644 --- a/app/templates/classrooms/list.html +++ b/app/templates/classrooms/list.html @@ -619,48 +619,207 @@ - + + + {% endfor %}