Academia Deltamontero · Documentación
Desarrollolocal_deltamodules

Base de datos

Las once tablas de local_deltamodules (db/install.xml) con sus campos e índices, la tabla de local_candidate_enrollment y los pasos de actualización.

Las tablas se definen en db/install.xml (instalación nueva) y se crean en instalaciones existentes con db/upgrade.php. Todas usan el prefijo mdl_ en la base ($CFG->prefix = 'mdl_'); en el código se escriben entre llaves, por ejemplo {local_deltamodules_mail}.

Tipos: int(n) entero, char(n) texto corto, text texto largo, number(10,2) decimal. "NN" = obligatorio (NOTNULL).

local_deltamodules_rule

Reglas propias de un módulo (las que no siguen la regla general). Ver Reglas.

CampoTipoDetalle
idint(10) NN, secuencia
courseidint(10) NNClave foránea a course.id
namechar(50) NNClave de la regla
valuechar(255) NNValor como texto
usermodifiedint(10) NN, 0
timemodifiedint(10) NN, 0

Índice único coursename (courseid, name).

local_deltamodules_review

Historial de revisiones anuales (una fila por revisión). Ver Revisión anual.

CampoTipoDetalle
idint(10) NN, secuencia
courseidint(10) NNMódulo revisado
reviewdateint(10) NNFecha de revisión
responsablechar(255) NN
resultadochar(255) NN
cambiostextCambios requeridos
criteriostextCriterios mínimos evaluados
updatedateint(10)Fecha de actualización
nextdateint(10) NNPróxima revisión
useridint(10) NNQuién registró
timecreatedint(10) NN

Índice courseid.

local_deltamodules_team y local_deltamodules_teammem

Equipos de seguimiento. Ver Equipos.

TablaCampoTipoDetalle
teamidint(10) NN, secuencia
teamnamechar(255) NNNombre del equipo
teamleaderidint(10) NNLíder (índice leaderid)
teamtimecreated, timemodifiedint(10) NN
teammemidint(10) NN, secuencia
teammemteamidint(10) NNÍndice teamid
teammemuseridint(10) NNÍndice único userid: una persona, un equipo

local_deltamodules_rep

Informes personalizados guardados. Ver Reportes.

CampoTipoDetalle
idint(10) NN, secuencia
namechar(255) NNNombre del informe
basechar(30) NNBase (personas, modulos, evaluaciones, postulantes)
configtext NNColumnas, filtros y orden en JSON
useridint(10) NNQuién lo creó
timecreated, timemodifiedint(10) NN

local_deltamodules_client y local_deltamodules_clientcode

Empresas cliente. Ver Clientes.

TablaCampos
clientid; cohortid int(10) NN (índice único); razonsocial, nombrecomercial, sector, direccion, contacto, contactocargo char(255); ruc, char(20); ciudad char(100); telefono, contactotel char(50); email, contactoemail char(100); inicio, fin int(10) NN 0 (0 = sin fecha); active int(1) NN 1; notas text; timemodified int(10) NN 0
clientcodeid; cohortid int(10) NN (índice); code char(20) NN (índice único); expires int(10) NN 0 (0 = no vence); maxuses int(10) NN 0 (0 = sin límite); uses int(10) NN 0; revoked int(1) NN 0; note char(255); createdby, timecreated int(10) NN

local_deltamodules_excl

Módulos desactivados a una persona que los recibe por cargo o empresa. Ver Acceso a módulos.

CampoTipoDetalle
idint(10) NN, secuencia
courseid, useridint(10) NNÍndice único courseuser (courseid, userid)
createdby, timecreatedint(10) NN

local_deltamodules_mail

Cola de envío y registro de correos. Ver Correo.

CampoTipoDetalle
idint(10) NN, secuencia
useridint(10) NN, 00 si el destinatario es una dirección suelta
toemailchar(255) NN
tonamechar(255)
kindchar(30) NNTipo (mailer::KINDS)
subjectchar(255) NN
bodyhtml, bodytexttextEl enlace de contraseña se guarda como marcador, nunca válido
purposechar(10)welcome o reset cuando lleva enlace
dedupechar(100)Clave para no repetir
statusint(2) NN, 00 en cola, 1 enviado, 2 con error
attemptsint(2) NN, 0
lasterrorchar(255)
createdbyint(10) NN, 0
timecreatedint(10) NN
timemodified, timesentint(10) NN, 0

Índices: status (status, timemodified), timesent, dedupe, userkind (userid, kind). Las filas de más de 180 días se borran.

local_deltamodules_pwtoken

Enlaces de un solo uso para crear contraseña.

CampoTipoDetalle
idint(10) NN, secuencia
useridint(10) NN
purposechar(10) NNwelcome o reset
tokenhashchar(64) NNsha256 del código; índice único
expiresint(10) NN
usedint(1) NN, 0
timecreatedint(10) NN

Índice userpurpose (userid, purpose). Los vencidos hace más de 30 días se borran.

local_deltamodules_chunks

Fragmentos de contenido de video con su vector, para un RAG dentro de la misma base de MariaDB.

CampoTipoDetalle
idint(10) NN, secuencia
contentidchar(255) NNIdentificador del extractor ({codigo}__{video_id}); índice
courseidint(10) NNCurso al que pertenece; índice
temachar(255)
textotext NNFragmento de transcripción o resumen
videourlchar(255)
tsinicio, tsfinnumber(10,2)Segundos de inicio y fin del tramo
embeddingtextVector en JSON
embeddingmodelchar(100)
timecreatedint(10) NN

Solo infrastructure/moodle/import-rag-chunks.php escribe en esta tabla y ninguna clase del plugin la lee. El propio script indica que no debe ejecutarse todavía (consume la API de embeddings de Gemini). La arquitectura vigente del RAG se describe en Arquitectura. Por confirmar si la tabla se seguirá usando o se retirará.

Tabla de local_candidate_enrollment: local_candenrol_code

Códigos de acceso a la Prueba Técnica de Selección. Ver local_candidate_enrollment.

CampoTipoDetalle
idint(10) NN, secuencia
codechar(20) NNNormalizado (mayúsculas, sin guion); índice único
groupidint(10) NNGrupo del curso de selección = cargo / prueba
notechar(255)Para quién
maxusesint(5) NN, 1
usesint(5) NN, 0
usedbytextIds de postulantes separados por coma
timeexpiresint(10) NN
revokedint(1) NN, 0
createdby, timecreatedint(10) NN

Pasos de actualización

PluginVersión del pasoCambio
local_deltamodules2026091001Crea local_deltamodules_chunks
local_deltamodules2026092401Crea local_deltamodules_review
local_deltamodules2026092402Agrega criterios a local_deltamodules_review
local_deltamodules2026092403Crea team y teammem y migra los líderes existentes (rol delta_lider_equipo en contexto de usuario) a equipos con nombre
local_deltamodules2026092408Crea local_deltamodules_rep
local_deltamodules2026092901Crea local_deltamodules_clientcode
local_deltamodules2026092902Crea local_deltamodules_excl y local_deltamodules_client
local_deltamodules2026092904Crea local_deltamodules_mail y local_deltamodules_pwtoken
local_deltamodules2026100500Crea local_deltamodules_rule
local_candidate_enrollment2026092401Crea local_candenrol_code

Cada paso comprueba si la tabla o el campo ya existen antes de crearlos.

Privacidad de las tablas

Las tablas con datos personales están declaradas en los proveedores de privacidad: local_deltamodules\privacy\provider (correos, enlaces de contraseña, equipos, módulos desactivados, informes, revisiones, códigos de registro, reglas y contactos de clientes) y local_candidate_enrollment\privacy\provider (usedby y createdby de local_candenrol_code). Qué se exporta, qué se borra y qué se desvincula se detalla en local_deltamodules → Privacidad y en local_candidate_enrollment. Una tabla nueva con datos de personas debe agregarse al proveedor correspondiente.

Datos en tablas de Moodle

Además de sus tablas, el código escribe en tablas nativas: campos personalizados de curso (customfield_data: ultima_revision, proxima_revision, responsable_revision, resultado_revision, cambios_requeridos, fecha_actualizacion, asignacion_por_cargo, tipo_asignacion), campo de perfil de usuario area (user_info_data), cohortes (cargo_*, cli_*, clientes, candidatos, delta_todos), excepciones de cuestionario (quiz_overrides), local_ai_manager_userinfo, customcert_issues (revocación) y configuración y preferencias (ver Ajustes y preferencias).

En esta página