Academia Deltamontero · Documentación
Desarrollolocal_deltamodules

Equipos

Equipos de seguimiento (líder e integrantes) con el rol "Líder de equipo" asignado en contexto de usuario, la página team.php y la tarjeta del Área personal.

Los equipos permiten que un líder siga el avance solo del personal bajo su responsabilidad. Esta funcionalidad es la que el proyecto preveía para el plugin local_team_management, que quedó vacío: vive en local_deltamodules.

Modelo

ElementoDetalle
EquipoFila en local_deltamodules_team: nombre, líder (leaderid), fechas.
IntegrantesFilas en local_deltamodules_teammem; el índice único sobre userid hace que una persona pertenezca a un solo equipo.
Candado de accesoRol delta_lider_equipo ("Líder de equipo (seguimiento)"), asignado al líder en el contexto de usuario de cada integrante. Moodle impone así el alcance.

team::roleid() crea el rol si no existe, con nivel de contexto CONTEXT_USER y las capacidades moodle/user:viewdetails y moodle/user:viewuseractivitiesreport. align-access-profiles-to-manual.php lo invoca en cada despliegue.

API de team

MétodoQué hace
all()Todos los equipos con nombre del líder y cantidad de integrantes.
led_by($userid), is_leader($userid)Equipos que lidera una persona.
members($teamid)Integrantes activos.
membership()userid => nombre del equipo actual.
save($teamid, $name, $leaderid, $memberids)Crea o actualiza. Solo personal activo (no super administradores, invitados, postulantes, suspendidos ni borrados). Si un integrante estaba en otro equipo, lo mueve. Sincroniza el rol de todos los líderes afectados.
delete($teamid)Elimina el equipo y sincroniza el rol del líder.
sync_leader($leaderid)Deja el rol del líder exactamente sobre los integrantes de sus equipos (asigna los que faltan, quita los que sobran).
progress($userid)Avance de una persona en cada curso visible: actividades con seguimiento completadas (cuenta lo bloqueado y excluye lo oculto y el certificado), repasos aprobados, promedio de notas, si tiene certificado y último acceso. Ordena primero los módulos M01…M12.
overall($rows)Porcentaje global.

Pantallas

LugarQuiénQué ve
team.php (barra superior "Equipos")local/deltamodules:manageteams (por perfil, solo Talento Humano)Todos los equipos como tarjetas; crear, editar, mover personas y eliminar.
team.php (barra superior "Mi equipo")Líder de al menos un equipoSolo su equipo, en lectura.
Área personal (my-index)LíderTarjeta "Lideras el equipo…" con enlace a Mi equipo, insertada por hook_callbacks::my_team_card().

Los integrantes que no lideran un equipo no ven nada de equipos, ni entrando por la dirección.

Relación con otros procesos

  • people::remove_staff() saca a la persona de su equipo y sincroniza al líder; no se puede quitar del personal ni eliminar a quien lidera un equipo.
  • La importación de Excel crea o actualiza los equipos Grupo X con la Contadora-Líder del grupo como líder.
  • db/upgrade.php (versión 2026092403) migró los equipos que existían como asignaciones del rol de líder a equipos con nombre Equipo de <nombre del líder>.
  • align-access-profiles-to-manual.php retira local/deltamodules:manageteams a delta_gerentes, delta_socios y delta_a1_operaciones: armar equipos es de Talento Humano.

En esta página