feat(settings): agregar opcion global para habilitar o deshabilitar saludo y selector de rol en dashboard

This commit is contained in:
2026-09-23 20:18:43 -03:00
parent 63511b9311
commit a188c3bd8f
7 changed files with 154 additions and 3 deletions
+6 -2
View File
@@ -11,6 +11,7 @@ from app import db
from app.models.milestone import AcademicMilestone
from app.models.subject import Commission
from app.models.setting import SystemSetting
api_dashboard_bp = Blueprint('api_dashboard', __name__, url_prefix='/api/v1/dashboard')
@@ -137,9 +138,9 @@ def get_stats():
recent_audits = AuditLog.query.order_by(AuditLog.created_at.desc()).limit(6).all()
audit_data = [{
'created_at': a.created_at.strftime('%Y-%m-%d %H:%M') if a.created_at else None,
'action_type': a.action_type,
'action_type': getattr(a, 'action', getattr(a, 'action_type', 'AUDIT')),
'ip_address': a.ip_address,
'user_email': getattr(a.user, 'email', 'System') if hasattr(a, 'user') else 'System'
'user_email': getattr(a, 'user_email', None) or (getattr(a.user, 'email', 'System') if hasattr(a, 'user') else 'System')
} for a in recent_audits]
occupancy_rate = min(100, int((today_reservations / max(1, physical_classrooms * 3)) * 100)) if physical_classrooms > 0 else 0
@@ -307,6 +308,9 @@ def get_stats():
'today_schedule_list': today_schedule_list,
'upcoming_reservations': upcoming_reservations,
'milestones': milestones,
'ui': {
'show_role_banner': SystemSetting.get_value('dashboard_role_banner_enabled', 'true') in ['true', 'True', '1', True]
},
'bedelia': {
'unassigned_commissions_week': unassigned_commissions_week,
'unassigned_commissions_month': unassigned_commissions_month,