fix: restaurar acceso a Optimizador de Aulas (IA) en Accesos Rapidos y menu de cronograma

This commit is contained in:
Carlos Tello
2026-09-03 03:17:15 -03:00
parent 9521b86399
commit 0c867e0031
4 changed files with 14 additions and 3 deletions
+1 -1
View File
@@ -249,7 +249,7 @@ genetic_web_bp = Blueprint('genetic_algorithm_web', __name__)
@login_required @login_required
def genetic_optimizer(): def genetic_optimizer():
"""Render the genetic algorithm optimizer interface""" """Render the genetic algorithm optimizer interface"""
if current_user.role not in ['ADMIN']: if not (current_user.has_permission('optimizer', 'read') or (current_user.role and current_user.role.upper() == 'ADMIN')):
return render_template('auth/403.html'), 403 return render_template('auth/403.html'), 403
return render_template('genetic_optimizer.html') return render_template('genetic_optimizer.html')
+2 -2
View File
@@ -113,8 +113,8 @@ def dashboard_stats_api():
@login_required @login_required
def genetic_optimizer(): def genetic_optimizer():
"""Serve the genetic algorithm optimization interface""" """Serve the genetic algorithm optimization interface"""
if current_user.role not in ['ADMIN']: if not (current_user.has_permission('optimizer', 'read') or (current_user.role and current_user.role.upper() == 'ADMIN')):
flash('You do not have permission to access the optimization tool.', 'danger') flash(_('No tienes permisos para acceder a la herramienta de optimización.'), 'danger')
return redirect(url_for('main.dashboard')) return redirect(url_for('main.dashboard'))
return render_template('genetic_optimizer.html') return render_template('genetic_optimizer.html')
+6
View File
@@ -90,6 +90,12 @@
<li><a class="dropdown-item" href="{{ url_for('schedule.today_schedule') }}"> <li><a class="dropdown-item" href="{{ url_for('schedule.today_schedule') }}">
<i class="bi bi-calendar-today"></i> {% trans %}Today's Schedule{% endtrans %} <i class="bi bi-calendar-today"></i> {% trans %}Today's Schedule{% endtrans %}
</a></li> </a></li>
{% if current_user.has_permission('optimizer', 'read') or (current_user.role and current_user.role|upper == 'ADMIN') %}
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="{{ url_for('genetic_algorithm_web.genetic_optimizer') }}">
<i class="bi bi-cpu text-info me-2"></i>{% trans %}Optimizador de Aulas (IA){% endtrans %}
</a></li>
{% endif %}
</ul> </ul>
</li> </li>
{% if current_user.is_authenticated and current_user.can_manage() %} {% if current_user.is_authenticated and current_user.can_manage() %}
+5
View File
@@ -141,6 +141,11 @@
<a href="{{ url_for('schedule.today_schedule') }}" class="btn btn-outline-info text-start"> <a href="{{ url_for('schedule.today_schedule') }}" class="btn btn-outline-info text-start">
<i class="bi bi-calendar-day me-2"></i>{% trans %}Cartelera del Día{% endtrans %} <i class="bi bi-calendar-day me-2"></i>{% trans %}Cartelera del Día{% endtrans %}
</a> </a>
{% if current_user.has_permission('optimizer', 'read') or (current_user.role and current_user.role|upper == 'ADMIN') %}
<a href="{{ url_for('genetic_algorithm_web.genetic_optimizer') }}" class="btn btn-outline-info text-start">
<i class="bi bi-cpu me-2"></i>{% trans %}Optimizador de Aulas (IA){% endtrans %}
</a>
{% endif %}
<a href="{{ url_for('classrooms.list_classrooms') }}" class="btn btn-outline-secondary text-start"> <a href="{{ url_for('classrooms.list_classrooms') }}" class="btn btn-outline-secondary text-start">
<i class="bi bi-door-open me-2"></i>{% trans %}Listado de Aulas{% endtrans %} <i class="bi bi-door-open me-2"></i>{% trans %}Listado de Aulas{% endtrans %}
</a> </a>