Academia Deltamontero · Documentación
Desarrollolocal_deltamodules

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íticaMotorCuándo se aceptaDónde se edita
Aviso de Tratamiento de Datos Personalestool_policy de Moodle (política del sitio)Al entrar por primera vezUsuarios → Cuentas → Aceptación de políticas (policies.php, pestaña datos)
Condiciones de uso del Asistente de IATexto propio publicado en local_ai_managerAntes de usar el chatConfiguración IA → Condiciones de uso (aiconfig.php)

Aviso de datos personales

MétodoQué 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

ElementoDónde se guarda
Versión (1.0, 1.1…)aiterms_version en local_deltamodules
Fecha de vigenciaaiterms_date
Resumen (un punto por línea, admite **negrita**)aiterms_summary
Acuerdo completo (HTML)aiterms_full
Pedir aceptaciónaiterms_required (sin valor = sí)
HTML publicadotermsofuse en local_ai_manager (policies::publish_ai())
Aceptación de cada personalocal_ai_manager_userinfo.confirmed + preferencia local_deltamodules_aiterms con versión y fecha
MétodoQué 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.

En esta página