Políticas y aceptaciones
Aviso de Tratamiento de Datos Personales (tool_policy) y Condiciones de uso del Asistente de IA, con su registro de aceptaciones (classes/policies.php).
El personal acepta dos políticas. classes/policies.php las maneja en un solo lugar.
| Política | Motor | Cuándo se acepta | Dónde se edita |
|---|---|---|---|
| Aviso de Tratamiento de Datos Personales | tool_policy de Moodle (política del sitio) | Al entrar por primera vez | Usuarios → Cuentas → Aceptación de políticas (policies.php, pestaña datos) |
| Condiciones de uso del Asistente de IA | Texto propio publicado en local_ai_manager | Antes de usar el chat | Configuración IA → Condiciones de uso (aiconfig.php) |
Aviso de datos personales
| Método | Qué hace |
|---|---|
policies::data() | Versión vigente de la primera política de tipo 0 (tool_policy_versions unida a tool_policy.currentversionid). |
data_enabled(), set_data_enabled($on) | Activa o desactiva sitepolicyhandler = tool_policy y purga la caché changesinpolicies. |
save_data($name, $summary, $content, $newversion) | Sin versión nueva, corrige el texto de la versión vigente (quien ya aceptó no vuelve a aceptar). Con versión nueva, la crea con tool_policy\api::form_policydoc_update_new() y la hace vigente: todos deben aceptarla otra vez. |
data_rows() | Estado de cada persona activa (sin super administradores ni cuentas de servicio) frente a la versión vigente (tool_policy_acceptances). |
El texto inicial lo carga configure-site-policy.php (no se ejecuta en cada arranque). La página de aceptación se simplifica con el parche patch-policy-consentpage.php (una sola página, sin encabezados sobrantes ni error en la primera carga), con estilos propios en el SCSS del tema y con JavaScript que muestra los avisos de "requerido" solo si se intenta continuar sin marcar la casilla (ver Parches e Interfaz global).
Condiciones del Asistente de IA
| Elemento | Dónde se guarda |
|---|---|
Versión (1.0, 1.1…) | aiterms_version en local_deltamodules |
| Fecha de vigencia | aiterms_date |
Resumen (un punto por línea, admite **negrita**) | aiterms_summary |
| Acuerdo completo (HTML) | aiterms_full |
| Pedir aceptación | aiterms_required (sin valor = sí) |
| HTML publicado | termsofuse en local_ai_manager (policies::publish_ai()) |
| Aceptación de cada persona | local_ai_manager_userinfo.confirmed + preferencia local_deltamodules_aiterms con versión y fecha |
| Método | Qué hace |
|---|---|
ai() | Condiciones vigentes. |
save_ai($summary, $full, $newversion) | Guarda y publica. Con versión nueva sube el número menor, fija la fecha y, si se exige aceptación, pone confirmed = 0 a todos (devuelve cuántos deben aceptar de nuevo). |
set_ai_required($on) | Pedir o no la aceptación. |
ai_html(), ai_css() | Resumen numerado y acuerdo completo desplegable. |
ai_accept($userid), ai_revoke($userid) | Registra o retira la aceptación. |
ai_rows() | Estado de cada persona (sin postulantes, que no usan el chat). |
configure-ai-terms.php (en cada despliegue) carga el texto inicial solo la primera vez y en cada arranque vuelve a publicar lo vigente sin pisar lo editado desde la plataforma.
aiterms.php (cualquier persona con sesión) muestra las condiciones vigentes y registra la aceptación (acción con casilla agree) o permite retirarla. hook_callbacks redirige aquí la página de confirmación de local_ai_manager (local-ai_manager-confirm_ai_usage). Si se dejó de exigir la aceptación, el chat se activa solo para cada persona que no es postulante (una vez por sesión).
Registro de aceptaciones: policies.php
Usuarios → Cuentas → Aceptación de políticas. Página externa local_deltamodules_policies con las capacidades tool/policy:managedocs o local/ai_manager:manage; cada pestaña exige la suya (datos con tool/policy:managedocs, ia con local/ai_manager:manage).
policies::render_table() muestra conteos (personas, aceptaron, falta), filtro (todos, aceptaron, pendientes) y la tabla; policies::download() descarga en Excel con report_export::xlsx().
La antigua página local/candidate_enrollment/ai_terms_report.php redirige a policies.php?tab=ia. Los textos de las políticas deben validarlos Talento Humano y asesoría legal por la LOPDP, según indica configure-ai-terms.php.
Asistente de IA
Cómo se integra el chat de IA (local_ai_manager y block_ai_chat) con el código propio - perfil del usuario, agente de acciones, niveles de cuota, autor de preguntas y Configuración IA.
Reportes
Reportes listos (reports), informes personalizados (report_builder y custom.php) y exportación con el formato institucional (report_export, report_pdf, report-docx.py).